Note:

You are viewing a development version of the library. Goto the latest version.

Module OUnitDiff


module OUnitDiff: sig .. end
Unit tests for collection of elements

This module allows to define a more precise way to display differences between collection of elements. When collection differ, the tester is interested by what are the missing/extra elements. This module provides a diff operation to spot the difference quickly between two sets of elements.

Example:

open OUnit;;

module EInt = 
struct 
  type t = int
  let compare = ( - )
  let pp_print = Format.pp_print_int
  let pp_print_sep = OUnitDiff.comma_separator
end

module ListInt = OUnitDiff.ListSimpleMake(EInt);;

let test_diff () = 
  ListInt.assert_equal
    [1; 2; 3; 4; 5]
    [1; 2; 5; 4]
;;

let _ = 
  run_test_tt_main ("test_diff" >:: test_diff)
;;

when run this test outputs:

OUnit: expected: 1, 2, 3, 4, 5 but got: 1, 2, 5, 4
differences: element number 2 differ (3 <> 5)

Author(s): Sylvain Le Gall
Since 1.1.0


Signatures


module type DIFF_ELEMENT = sig .. end
Definition of an element
module type S = sig .. end
Definition of standard operations

Implementations


module SetMake: 
functor (D : DIFF_ELEMENT) -> S with type e = D.t
Collection of elements based on a Set, elements order doesn't matter
module ListSimpleMake: 
functor (D : DIFF_ELEMENT) -> S with type e = D.t and type t = D.t list
Collection of elements based on a List, order matters but difference display is very simple.
val pp_comma_separator : Format.formatter -> unit -> unit