`sig
val assert_failure : string -> 'a
val assert_bool : string -> bool -> unit
val ( @? ) : string -> bool -> unit
val assert_string : string -> unit
val assert_equal :
?cmp:('a -> 'a -> bool) ->
?printer:('a -> string) -> ?msg:string -> 'a -> 'a -> unit
val assert_raises : ?msg:string -> exn -> (unit -> 'a) -> unit
val cmp_float : ?epsilon:float -> float -> float -> bool
val bracket : (unit -> 'a) -> ('a -> 'b) -> ('a -> 'c) -> unit -> 'c
type test =
TestCase of (unit -> unit)
| TestList of OUnit.test list
| TestLabel of string * OUnit.test
val ( >: ) : string -> OUnit.test -> OUnit.test
val ( >:: ) : string -> (unit -> unit) -> OUnit.test
val ( >::: ) : string -> OUnit.test list -> OUnit.test
val test_case_count : OUnit.test -> int
type node = ListItem of int | Label of string
type path = OUnit.node list
val string_of_node : OUnit.node -> string
val string_of_path : OUnit.path -> string
val test_case_paths : OUnit.test -> OUnit.path list
type test_result =
RSuccess of OUnit.path
| RFailure of OUnit.path * string
| RError of OUnit.path * string
type test_event =
EStart of OUnit.path
| EEnd of OUnit.path
| EResult of OUnit.test_result
val perform_test :
(OUnit.test_event -> 'a) -> OUnit.test -> OUnit.test_result list
val run_test_tt : ?verbose:bool -> OUnit.test -> OUnit.test_result list
val run_test_tt_main : OUnit.test -> OUnit.test_result list
end`