# 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