mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
chore: move to ounit2
see if that fixes the windows build.
This commit is contained in:
parent
977e0c9577
commit
58ac755f82
12 changed files with 156 additions and 151 deletions
|
|
@ -18,7 +18,7 @@ depends: [
|
||||||
"either" # compat
|
"either" # compat
|
||||||
"qtest" { with-test }
|
"qtest" { with-test }
|
||||||
"qcheck" { >= "0.14" & with-test }
|
"qcheck" { >= "0.14" & with-test }
|
||||||
"ounit" { with-test }
|
"ounit2" { with-test }
|
||||||
"iter" { with-test }
|
"iter" { with-test }
|
||||||
"gen" { with-test }
|
"gen" { with-test }
|
||||||
"csexp" { with-test }
|
"csexp" { with-test }
|
||||||
|
|
|
||||||
|
|
@ -40,25 +40,25 @@ end
|
||||||
(*$R
|
(*$R
|
||||||
let h = H.of_list [5;3;4;1;42;0] in
|
let h = H.of_list [5;3;4;1;42;0] in
|
||||||
let h, x = H.take_exn h in
|
let h, x = H.take_exn h in
|
||||||
OUnit.assert_equal ~printer:string_of_int 0 x;
|
OUnit2.assert_equal ~printer:string_of_int 0 x;
|
||||||
let h, x = H.take_exn h in
|
let h, x = H.take_exn h in
|
||||||
OUnit.assert_equal ~printer:string_of_int 1 x;
|
OUnit2.assert_equal ~printer:string_of_int 1 x;
|
||||||
let h, x = H.take_exn h in
|
let h, x = H.take_exn h in
|
||||||
OUnit.assert_equal ~printer:string_of_int 3 x;
|
OUnit2.assert_equal ~printer:string_of_int 3 x;
|
||||||
let h, x = H.take_exn h in
|
let h, x = H.take_exn h in
|
||||||
OUnit.assert_equal ~printer:string_of_int 4 x;
|
OUnit2.assert_equal ~printer:string_of_int 4 x;
|
||||||
let h, x = H.take_exn h in
|
let h, x = H.take_exn h in
|
||||||
OUnit.assert_equal ~printer:string_of_int 5 x;
|
OUnit2.assert_equal ~printer:string_of_int 5 x;
|
||||||
let h, x = H.take_exn h in
|
let h, x = H.take_exn h in
|
||||||
OUnit.assert_equal ~printer:string_of_int 42 x;
|
OUnit2.assert_equal ~printer:string_of_int 42 x;
|
||||||
OUnit.assert_raises H.Empty (fun () -> H.take_exn h);
|
OUnit2.assert_raises H.Empty (fun () -> H.take_exn h);
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(*$QR & ~count:30
|
(*$QR & ~count:30
|
||||||
Q.(list_of_size Gen.(return 1_000) int) (fun l ->
|
Q.(list_of_size Gen.(return 1_000) int) (fun l ->
|
||||||
(* put elements into a heap *)
|
(* put elements into a heap *)
|
||||||
let h = H.of_iter (Iter.of_list l) in
|
let h = H.of_iter (Iter.of_list l) in
|
||||||
OUnit.assert_equal 1_000 (H.size h);
|
OUnit2.assert_equal 1_000 (H.size h);
|
||||||
let l' = extract_list h in
|
let l' = extract_list h in
|
||||||
is_sorted l'
|
is_sorted l'
|
||||||
)
|
)
|
||||||
|
|
@ -70,7 +70,7 @@ end
|
||||||
(* put elements into a heap *)
|
(* put elements into a heap *)
|
||||||
let h = H.of_iter (Iter.of_list l) in
|
let h = H.of_iter (Iter.of_list l) in
|
||||||
let h = H.filter (fun x->x mod 2=0) h in
|
let h = H.filter (fun x->x mod 2=0) h in
|
||||||
OUnit.assert_bool "all odd"
|
OUnit2.assert_bool "all odd"
|
||||||
(H.to_iter h |> Iter.for_all (fun x -> x mod 2 = 0));
|
(H.to_iter h |> Iter.for_all (fun x -> x mod 2 = 0));
|
||||||
let l' = extract_list h in
|
let l' = extract_list h in
|
||||||
is_sorted l'
|
is_sorted l'
|
||||||
|
|
|
||||||
|
|
@ -170,13 +170,14 @@ let read_all ?(size=1024) ic = read_all_ ~op:Ret_string ~size ic
|
||||||
(*$R
|
(*$R
|
||||||
let s = String.make 200 'y' in
|
let s = String.make 200 'y' in
|
||||||
let s = Printf.sprintf "a\nb\n %s\nlast line\n" s in
|
let s = Printf.sprintf "a\nb\n %s\nlast line\n" s in
|
||||||
OUnit.bracket_tmpfile ~prefix:"test_containers" ~mode:[Open_creat; Open_trunc]
|
File.with_temp ~prefix:"test_containers" ~suffix:""
|
||||||
(fun (name, oc) ->
|
(fun name ->
|
||||||
|
with_out name @@ fun oc ->
|
||||||
output_string oc s;
|
output_string oc s;
|
||||||
flush oc;
|
flush oc;
|
||||||
let s' = with_in name read_all in
|
let s' = with_in name read_all in
|
||||||
OUnit.assert_equal ~printer:(fun s->s) s s'
|
OUnit2.assert_equal ~printer:(fun s->s) s s'
|
||||||
) ()
|
)
|
||||||
*)
|
*)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -237,12 +238,13 @@ let write_lines_l oc l =
|
||||||
(*$QR
|
(*$QR
|
||||||
Q.(list_of_size Gen.(0 -- 40) printable_string) (fun l ->
|
Q.(list_of_size Gen.(0 -- 40) printable_string) (fun l ->
|
||||||
let l' = ref [] in
|
let l' = ref [] in
|
||||||
OUnit.bracket_tmpfile ~prefix:"test_containers" ~mode:[Open_creat; Open_trunc]
|
File.with_temp ~prefix:"test_containers" ~suffix:""
|
||||||
(fun (name, oc) ->
|
(fun name ->
|
||||||
|
with_out name @@ fun oc ->
|
||||||
write_lines_l oc l;
|
write_lines_l oc l;
|
||||||
flush oc;
|
flush oc;
|
||||||
l' := with_in name read_lines_l;
|
l' := with_in name read_lines_l;
|
||||||
) ();
|
);
|
||||||
String.concat "\n" l = String.concat "\n" !l'
|
String.concat "\n" l = String.concat "\n" !l'
|
||||||
)
|
)
|
||||||
*)
|
*)
|
||||||
|
|
@ -250,12 +252,13 @@ let write_lines_l oc l =
|
||||||
(*$QR
|
(*$QR
|
||||||
Q.(list_of_size Gen.(0 -- 40) printable_string) (fun l ->
|
Q.(list_of_size Gen.(0 -- 40) printable_string) (fun l ->
|
||||||
let l' = ref [] in
|
let l' = ref [] in
|
||||||
OUnit.bracket_tmpfile ~prefix:"test_containers" ~mode:[Open_creat; Open_trunc]
|
File.with_temp ~prefix:"test_containers" ~suffix:""
|
||||||
(fun (name, oc) ->
|
(fun name ->
|
||||||
|
with_out name @@ fun oc ->
|
||||||
write_lines oc (Gen.of_list l);
|
write_lines oc (Gen.of_list l);
|
||||||
flush oc;
|
flush oc;
|
||||||
l' := with_in name (fun ic -> read_lines_gen ic |> Gen.to_list);
|
l' := with_in name (fun ic -> read_lines_gen ic |> Gen.to_list);
|
||||||
) ();
|
);
|
||||||
String.concat "\n" l = String.concat "\n" !l'
|
String.concat "\n" l = String.concat "\n" !l'
|
||||||
)
|
)
|
||||||
*)
|
*)
|
||||||
|
|
@ -288,16 +291,18 @@ let copy_into ?(bufsize=4_096) ic oc : unit =
|
||||||
(*$QR
|
(*$QR
|
||||||
Q.(list_of_size Gen.(0 -- 40) printable_string) (fun l ->
|
Q.(list_of_size Gen.(0 -- 40) printable_string) (fun l ->
|
||||||
let s = ref "" in
|
let s = ref "" in
|
||||||
OUnit.bracket_tmpfile ~prefix:"test_containers1" ~mode:[Open_creat; Open_trunc]
|
File.with_temp ~prefix:"test_containers1" ~suffix:""
|
||||||
(fun (name1, oc1) ->
|
(fun name1 ->
|
||||||
|
with_out name1 @@ fun oc1 ->
|
||||||
write_gen ~sep:"" oc1 (Gen.of_list l);
|
write_gen ~sep:"" oc1 (Gen.of_list l);
|
||||||
flush oc1;
|
flush oc1;
|
||||||
OUnit.bracket_tmpfile ~prefix:"test_containers2" ~mode:[Open_creat; Open_trunc]
|
File.with_temp ~prefix:"test_containers2" ~suffix:""
|
||||||
(fun (name2, oc2) ->
|
(fun name2 ->
|
||||||
|
with_out name2 @@ fun oc2 ->
|
||||||
CCIO.with_in name1 (fun ic1 -> copy_into ic1 oc2);
|
CCIO.with_in name1 (fun ic1 -> copy_into ic1 oc2);
|
||||||
flush oc2;
|
flush oc2;
|
||||||
s := with_in name2 read_all;) ();
|
s := with_in name2 read_all;);
|
||||||
) ();
|
);
|
||||||
String.concat "" l = !s
|
String.concat "" l = !s
|
||||||
)
|
)
|
||||||
*)
|
*)
|
||||||
|
|
@ -390,7 +395,7 @@ module File = struct
|
||||||
else gen_singleton (`File, d)
|
else gen_singleton (`File, d)
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
OUnit.assert_bool "walk categorizes files"
|
OUnit2.assert_bool "walk categorizes files"
|
||||||
(File.walk "."
|
(File.walk "."
|
||||||
|> Gen.for_all
|
|> Gen.for_all
|
||||||
(function
|
(function
|
||||||
|
|
|
||||||
|
|
@ -1349,7 +1349,7 @@ let join ~join_row s1 s2 : _ t =
|
||||||
if string_of_int i = j then Some (string_of_int i ^ " = " ^ j) else None
|
if string_of_int i = j then Some (string_of_int i ^ " = " ^ j) else None
|
||||||
in
|
in
|
||||||
let s = join ~join_row s1 s2 in
|
let s = join ~join_row s1 s2 in
|
||||||
OUnit.assert_equal ["1 = 1"; "2 = 2"] s;
|
OUnit2.assert_equal ["1 = 1"; "2 = 2"] s;
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let join_by (type a) ?(eq=Stdlib.(=)) ?(hash=Hashtbl.hash) f1 f2 ~merge c1 c2 =
|
let join_by (type a) ?(eq=Stdlib.(=)) ?(hash=Hashtbl.hash) f1 f2 ~merge c1 c2 =
|
||||||
|
|
|
||||||
|
|
@ -170,10 +170,10 @@ let[@inline] clear v =
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
let v = of_iter Iter.(1 -- 10) in
|
let v = of_iter Iter.(1 -- 10) in
|
||||||
OUnit.assert_equal 10 (size v);
|
OUnit2.assert_equal 10 (size v);
|
||||||
clear v;
|
clear v;
|
||||||
OUnit.assert_equal 0 (size v);
|
OUnit2.assert_equal 0 (size v);
|
||||||
OUnit.assert_bool "empty_after_clear" (Iter.is_empty (to_iter v));
|
OUnit2.assert_bool "empty_after_clear" (Iter.is_empty (to_iter v));
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let clear_and_reset v =
|
let clear_and_reset v =
|
||||||
|
|
@ -187,9 +187,9 @@ let clear_and_reset v =
|
||||||
push v ("hello"^"world");
|
push v ("hello"^"world");
|
||||||
Weak.set a 0 (Some (get v 0));
|
Weak.set a 0 (Some (get v 0));
|
||||||
Gc.full_major(); Gc.compact();
|
Gc.full_major(); Gc.compact();
|
||||||
OUnit.assert_bool "is alive" (Weak.check a 0);
|
OUnit2.assert_bool "is alive" (Weak.check a 0);
|
||||||
Gc.full_major(); Gc.compact();
|
Gc.full_major(); Gc.compact();
|
||||||
OUnit.assert_equal None (Weak.get a 0);
|
OUnit2.assert_equal None (Weak.get a 0);
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let[@inline] is_empty v = v.size = 0
|
let[@inline] is_empty v = v.size = 0
|
||||||
|
|
@ -295,9 +295,9 @@ let append a b =
|
||||||
let a = of_iter Iter.(1 -- 5) in
|
let a = of_iter Iter.(1 -- 5) in
|
||||||
let b = of_iter Iter.(6 -- 10) in
|
let b = of_iter Iter.(6 -- 10) in
|
||||||
append a b;
|
append a b;
|
||||||
OUnit.assert_equal 10 (size a);
|
OUnit2.assert_equal 10 (size a);
|
||||||
OUnit.assert_equal (Iter.to_array Iter.(1 -- 10)) (to_array a);
|
OUnit2.assert_equal (Iter.to_array Iter.(1 -- 10)) (to_array a);
|
||||||
OUnit.assert_equal (Iter.to_array Iter.(6 -- 10)) (to_array b);
|
OUnit2.assert_equal (Iter.to_array Iter.(6 -- 10)) (to_array b);
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let[@inline] get v i =
|
let[@inline] get v i =
|
||||||
|
|
@ -525,12 +525,12 @@ let[@inline] copy v = {
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
let v = of_iter Iter.(1 -- 100) in
|
let v = of_iter Iter.(1 -- 100) in
|
||||||
OUnit.assert_equal 100 (size v);
|
OUnit2.assert_equal 100 (size v);
|
||||||
let v' = copy v in
|
let v' = copy v in
|
||||||
OUnit.assert_equal 100 (size v');
|
OUnit2.assert_equal 100 (size v');
|
||||||
clear v';
|
clear v';
|
||||||
OUnit.assert_bool "empty" (is_empty v');
|
OUnit2.assert_bool "empty" (is_empty v');
|
||||||
OUnit.assert_bool "not_empty" (not (is_empty v));
|
OUnit2.assert_bool "not_empty" (not (is_empty v));
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(*$QR
|
(*$QR
|
||||||
|
|
@ -551,7 +551,7 @@ let truncate v n =
|
||||||
(*$R
|
(*$R
|
||||||
let v = of_iter Iter.(1 -- 10) in
|
let v = of_iter Iter.(1 -- 10) in
|
||||||
truncate v 5;
|
truncate v 5;
|
||||||
OUnit.assert_equal [1;2;3;4;5] (to_list v);
|
OUnit2.assert_equal [1;2;3;4;5] (to_list v);
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(*$QR
|
(*$QR
|
||||||
|
|
|
||||||
|
|
@ -129,14 +129,14 @@ let peek_front d = match peek_front_opt d with
|
||||||
(*$R
|
(*$R
|
||||||
let d = of_iter Iter.(1 -- 10) in
|
let d = of_iter Iter.(1 -- 10) in
|
||||||
let printer = pint in
|
let printer = pint in
|
||||||
OUnit.assert_equal ~printer 1 (peek_front d);
|
OUnit2.assert_equal ~printer 1 (peek_front d);
|
||||||
push_front d 42;
|
push_front d 42;
|
||||||
OUnit.assert_equal ~printer 42 (peek_front d);
|
OUnit2.assert_equal ~printer 42 (peek_front d);
|
||||||
OUnit.assert_equal ~printer 42 (take_front d);
|
OUnit2.assert_equal ~printer 42 (take_front d);
|
||||||
OUnit.assert_equal ~printer 1 (take_front d);
|
OUnit2.assert_equal ~printer 1 (take_front d);
|
||||||
OUnit.assert_equal ~printer 2 (take_front d);
|
OUnit2.assert_equal ~printer 2 (take_front d);
|
||||||
OUnit.assert_equal ~printer 3 (take_front d);
|
OUnit2.assert_equal ~printer 3 (take_front d);
|
||||||
OUnit.assert_equal ~printer 10 (peek_back d);
|
OUnit2.assert_equal ~printer 10 (peek_back d);
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let peek_back_opt d =
|
let peek_back_opt d =
|
||||||
|
|
@ -159,14 +159,14 @@ let peek_back d = match peek_back_opt d with
|
||||||
(*$R
|
(*$R
|
||||||
let d = of_iter Iter.(1 -- 10) in
|
let d = of_iter Iter.(1 -- 10) in
|
||||||
let printer = pint in
|
let printer = pint in
|
||||||
OUnit.assert_equal ~printer 1 (peek_front d);
|
OUnit2.assert_equal ~printer 1 (peek_front d);
|
||||||
push_back d 42;
|
push_back d 42;
|
||||||
OUnit.assert_equal ~printer 42 (peek_back d);
|
OUnit2.assert_equal ~printer 42 (peek_back d);
|
||||||
OUnit.assert_equal ~printer 42 (take_back d);
|
OUnit2.assert_equal ~printer 42 (take_back d);
|
||||||
OUnit.assert_equal ~printer 10 (take_back d);
|
OUnit2.assert_equal ~printer 10 (take_back d);
|
||||||
OUnit.assert_equal ~printer 9 (take_back d);
|
OUnit2.assert_equal ~printer 9 (take_back d);
|
||||||
OUnit.assert_equal ~printer 8 (take_back d);
|
OUnit2.assert_equal ~printer 8 (take_back d);
|
||||||
OUnit.assert_equal ~printer 1 (peek_front d);
|
OUnit2.assert_equal ~printer 1 (peek_front d);
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let take_back_node_ n = match n.cell with
|
let take_back_node_ n = match n.cell with
|
||||||
|
|
@ -365,7 +365,7 @@ let iter f d =
|
||||||
let d = of_iter Iter.(1 -- 5) in
|
let d = of_iter Iter.(1 -- 5) in
|
||||||
let s = Iter.from_iter (fun k -> iter k d) in
|
let s = Iter.from_iter (fun k -> iter k d) in
|
||||||
let l = Iter.to_list s in
|
let l = Iter.to_list s in
|
||||||
OUnit.assert_equal ~printer:plist [1;2;3;4;5] l;
|
OUnit2.assert_equal ~printer:plist [1;2;3;4;5] l;
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let append_front ~into q = iter (push_front into) q
|
let append_front ~into q = iter (push_front into) q
|
||||||
|
|
@ -411,7 +411,7 @@ let length d = d.size
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
let d = of_iter Iter.(1 -- 10) in
|
let d = of_iter Iter.(1 -- 10) in
|
||||||
OUnit.assert_equal ~printer:pint 10 (length d)
|
OUnit2.assert_equal ~printer:pint 10 (length d)
|
||||||
*)
|
*)
|
||||||
|
|
||||||
type 'a iter = ('a -> unit) -> unit
|
type 'a iter = ('a -> unit) -> unit
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ let empty : type a. a t = Shallow Zero
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
let q = empty in
|
let q = empty in
|
||||||
OUnit.assert_bool "is_empty" (is_empty q)
|
OUnit2.assert_bool "is_empty" (is_empty q)
|
||||||
*)
|
*)
|
||||||
|
|
||||||
exception Empty
|
exception Empty
|
||||||
|
|
@ -95,7 +95,7 @@ let rec snoc : type a. a t -> a -> a t
|
||||||
let q = tail q in
|
let q = tail q in
|
||||||
let q = List.fold_left snoc q [6;7;8] in
|
let q = List.fold_left snoc q [6;7;8] in
|
||||||
let l = Iter.to_list (to_iter q) in
|
let l = Iter.to_list (to_iter q) in
|
||||||
OUnit.assert_equal ~printer:pp_ilist [2;3;4;5;6;7;8] l
|
OUnit2.assert_equal ~printer:pp_ilist [2;3;4;5;6;7;8] l
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let rec take_front_exn : 'a. 'a t -> ('a *'a t)
|
let rec take_front_exn : 'a. 'a t -> ('a *'a t)
|
||||||
|
|
@ -124,11 +124,11 @@ let rec take_front_exn : 'a. 'a t -> ('a *'a t)
|
||||||
(*$R
|
(*$R
|
||||||
let q = of_list [1;2;3;4] in
|
let q = of_list [1;2;3;4] in
|
||||||
let x, q = take_front_exn q in
|
let x, q = take_front_exn q in
|
||||||
OUnit.assert_equal 1 x;
|
OUnit2.assert_equal 1 x;
|
||||||
let q = List.fold_left snoc q [5;6;7] in
|
let q = List.fold_left snoc q [5;6;7] in
|
||||||
OUnit.assert_equal 2 (first_exn q);
|
OUnit2.assert_equal 2 (first_exn q);
|
||||||
let x, q = take_front_exn q in
|
let x, q = take_front_exn q in
|
||||||
OUnit.assert_equal 2 x;
|
OUnit2.assert_equal 2 x;
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let take_front q =
|
let take_front q =
|
||||||
|
|
@ -363,7 +363,7 @@ let append q1 q2 =
|
||||||
let q2 = of_iter (Iter.of_list [5;6;7;8]) in
|
let q2 = of_iter (Iter.of_list [5;6;7;8]) in
|
||||||
let q = append q1 q2 in
|
let q = append q1 q2 in
|
||||||
let l = Iter.to_list (to_iter q) in
|
let l = Iter.to_list (to_iter q) in
|
||||||
OUnit.assert_equal ~printer:pp_ilist [1;2;3;4;5;6;7;8] l
|
OUnit2.assert_equal ~printer:pp_ilist [1;2;3;4;5;6;7;8] l
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let add_seq_front seq q =
|
let add_seq_front seq q =
|
||||||
|
|
@ -443,7 +443,7 @@ let rec fold : 'a 'b. ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
|
||||||
(*$R
|
(*$R
|
||||||
let q = of_iter (Iter.of_list [1;2;3;4]) in
|
let q = of_iter (Iter.of_list [1;2;3;4]) in
|
||||||
let n = fold (+) 0 q in
|
let n = fold (+) 0 q in
|
||||||
OUnit.assert_equal 10 n;
|
OUnit2.assert_equal 10 n;
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let iter f q = to_iter q f
|
let iter f q = to_iter q f
|
||||||
|
|
|
||||||
|
|
@ -16,17 +16,17 @@ type 'b injection = {
|
||||||
(*$R
|
(*$R
|
||||||
let inj_int = create_inj () in
|
let inj_int = create_inj () in
|
||||||
let tbl = create 10 in
|
let tbl = create 10 in
|
||||||
OUnit.assert_equal None (get ~inj:inj_int tbl "a");
|
OUnit2.assert_equal None (get ~inj:inj_int tbl "a");
|
||||||
set ~inj:inj_int tbl "a" 1;
|
set ~inj:inj_int tbl "a" 1;
|
||||||
OUnit.assert_equal (Some 1) (get ~inj:inj_int tbl "a");
|
OUnit2.assert_equal (Some 1) (get ~inj:inj_int tbl "a");
|
||||||
let inj_string = create_inj () in
|
let inj_string = create_inj () in
|
||||||
set ~inj:inj_string tbl "b" "Hello";
|
set ~inj:inj_string tbl "b" "Hello";
|
||||||
OUnit.assert_equal (Some "Hello") (get ~inj:inj_string tbl "b");
|
OUnit2.assert_equal (Some "Hello") (get ~inj:inj_string tbl "b");
|
||||||
OUnit.assert_equal None (get ~inj:inj_string tbl "a");
|
OUnit2.assert_equal None (get ~inj:inj_string tbl "a");
|
||||||
OUnit.assert_equal (Some 1) (get ~inj:inj_int tbl "a");
|
OUnit2.assert_equal (Some 1) (get ~inj:inj_int tbl "a");
|
||||||
set ~inj:inj_string tbl "a" "Bye";
|
set ~inj:inj_string tbl "a" "Bye";
|
||||||
OUnit.assert_equal None (get ~inj:inj_int tbl "a");
|
OUnit2.assert_equal None (get ~inj:inj_int tbl "a");
|
||||||
OUnit.assert_equal (Some "Bye") (get ~inj:inj_string tbl "a");
|
OUnit2.assert_equal (Some "Bye") (get ~inj:inj_string tbl "a");
|
||||||
*)
|
*)
|
||||||
|
|
||||||
type 'a t = ('a, unit -> unit) Hashtbl.t
|
type 'a t = ('a, unit -> unit) Hashtbl.t
|
||||||
|
|
@ -58,12 +58,12 @@ let length tbl = Hashtbl.length tbl
|
||||||
let tbl = create 5 in
|
let tbl = create 5 in
|
||||||
set ~inj:inj_int tbl "foo" 1;
|
set ~inj:inj_int tbl "foo" 1;
|
||||||
set ~inj:inj_int tbl "bar" 2;
|
set ~inj:inj_int tbl "bar" 2;
|
||||||
OUnit.assert_equal 2 (length tbl);
|
OUnit2.assert_equal 2 (length tbl);
|
||||||
OUnit.assert_equal 2 (find ~inj:inj_int tbl "bar");
|
OUnit2.assert_equal 2 (find ~inj:inj_int tbl "bar");
|
||||||
set ~inj:inj_int tbl "foo" 42;
|
set ~inj:inj_int tbl "foo" 42;
|
||||||
OUnit.assert_equal 2 (length tbl);
|
OUnit2.assert_equal 2 (length tbl);
|
||||||
remove tbl "bar";
|
remove tbl "bar";
|
||||||
OUnit.assert_equal 1 (length tbl);
|
OUnit2.assert_equal 1 (length tbl);
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let clear tbl = Hashtbl.clear tbl
|
let clear tbl = Hashtbl.clear tbl
|
||||||
|
|
@ -75,9 +75,9 @@ let clear tbl = Hashtbl.clear tbl
|
||||||
set ~inj:inj_int tbl "foo" 1;
|
set ~inj:inj_int tbl "foo" 1;
|
||||||
set ~inj:inj_int tbl "bar" 2;
|
set ~inj:inj_int tbl "bar" 2;
|
||||||
set ~inj:inj_str tbl "baaz" "hello";
|
set ~inj:inj_str tbl "baaz" "hello";
|
||||||
OUnit.assert_equal 3 (length tbl);
|
OUnit2.assert_equal 3 (length tbl);
|
||||||
clear tbl;
|
clear tbl;
|
||||||
OUnit.assert_equal 0 (length tbl);
|
OUnit2.assert_equal 0 (length tbl);
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let remove tbl x = Hashtbl.remove tbl x
|
let remove tbl x = Hashtbl.remove tbl x
|
||||||
|
|
@ -100,12 +100,12 @@ let mem ~inj tbl x =
|
||||||
set ~inj:inj_int tbl "foo" 1;
|
set ~inj:inj_int tbl "foo" 1;
|
||||||
set ~inj:inj_int tbl "bar" 2;
|
set ~inj:inj_int tbl "bar" 2;
|
||||||
set ~inj:inj_str tbl "baaz" "hello";
|
set ~inj:inj_str tbl "baaz" "hello";
|
||||||
OUnit.assert_bool "mem foo int" (mem ~inj:inj_int tbl "foo");
|
OUnit2.assert_bool "mem foo int" (mem ~inj:inj_int tbl "foo");
|
||||||
OUnit.assert_bool "mem bar int" (mem ~inj:inj_int tbl "bar");
|
OUnit2.assert_bool "mem bar int" (mem ~inj:inj_int tbl "bar");
|
||||||
OUnit.assert_bool "not mem baaz int" (not (mem ~inj:inj_int tbl "baaz"));
|
OUnit2.assert_bool "not mem baaz int" (not (mem ~inj:inj_int tbl "baaz"));
|
||||||
OUnit.assert_bool "not mem foo str" (not (mem ~inj:inj_str tbl "foo"));
|
OUnit2.assert_bool "not mem foo str" (not (mem ~inj:inj_str tbl "foo"));
|
||||||
OUnit.assert_bool "not mem bar str" (not (mem ~inj:inj_str tbl "bar"));
|
OUnit2.assert_bool "not mem bar str" (not (mem ~inj:inj_str tbl "bar"));
|
||||||
OUnit.assert_bool "mem baaz str" (mem ~inj:inj_str tbl "baaz");
|
OUnit2.assert_bool "mem baaz str" (mem ~inj:inj_str tbl "baaz");
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let find ~inj tbl x =
|
let find ~inj tbl x =
|
||||||
|
|
@ -136,7 +136,7 @@ let keys_iter tbl yield =
|
||||||
set ~inj:inj_int tbl "bar" 2;
|
set ~inj:inj_int tbl "bar" 2;
|
||||||
set ~inj:inj_str tbl "baaz" "hello";
|
set ~inj:inj_str tbl "baaz" "hello";
|
||||||
let l = keys_iter tbl |> Iter.to_list in
|
let l = keys_iter tbl |> Iter.to_list in
|
||||||
OUnit.assert_equal ["baaz"; "bar"; "foo"] (List.sort compare l);
|
OUnit2.assert_equal ["baaz"; "bar"; "foo"] (List.sort compare l);
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let bindings_of ~inj tbl yield =
|
let bindings_of ~inj tbl yield =
|
||||||
|
|
@ -164,7 +164,7 @@ let bindings tbl yield =
|
||||||
set ~inj:inj_str tbl "baaz" "hello";
|
set ~inj:inj_str tbl "baaz" "hello";
|
||||||
set ~inj:inj_str tbl "str" "rts";
|
set ~inj:inj_str tbl "str" "rts";
|
||||||
let l_int = bindings_of ~inj:inj_int tbl |> Iter.to_list in
|
let l_int = bindings_of ~inj:inj_int tbl |> Iter.to_list in
|
||||||
OUnit.assert_equal ["bar", 2; "foo", 1] (List.sort compare l_int);
|
OUnit2.assert_equal ["bar", 2; "foo", 1] (List.sort compare l_int);
|
||||||
let l_str = bindings_of ~inj:inj_str tbl |> Iter.to_list in
|
let l_str = bindings_of ~inj:inj_str tbl |> Iter.to_list in
|
||||||
OUnit.assert_equal ["baaz", "hello"; "str", "rts"] (List.sort compare l_str);
|
OUnit2.assert_equal ["baaz", "hello"; "str", "rts"] (List.sort compare l_str);
|
||||||
*)
|
*)
|
||||||
|
|
|
||||||
|
|
@ -11,23 +11,23 @@
|
||||||
|
|
||||||
let tbl = CCMixtbl.create 10 ;;
|
let tbl = CCMixtbl.create 10 ;;
|
||||||
|
|
||||||
OUnit.assert_equal None (CCMixtbl.get ~inj:inj_int tbl "a");;
|
OUnit2.assert_equal None (CCMixtbl.get ~inj:inj_int tbl "a");;
|
||||||
|
|
||||||
CCMixtbl.set inj_int tbl "a" 1;;
|
CCMixtbl.set inj_int tbl "a" 1;;
|
||||||
|
|
||||||
OUnit.assert_equal (Some 1) (CCMixtbl.get ~inj:inj_int tbl "a");;
|
OUnit2.assert_equal (Some 1) (CCMixtbl.get ~inj:inj_int tbl "a");;
|
||||||
|
|
||||||
let inj_string = CCMixtbl.create_inj () ;;
|
let inj_string = CCMixtbl.create_inj () ;;
|
||||||
|
|
||||||
CCMixtbl.set inj_string tbl "b" "Hello";
|
CCMixtbl.set inj_string tbl "b" "Hello";
|
||||||
|
|
||||||
OUnit.assert_equal (Some "Hello") (CCMixtbl.get inj_string tbl "b");;
|
OUnit2.assert_equal (Some "Hello") (CCMixtbl.get inj_string tbl "b");;
|
||||||
OUnit.assert_equal None (CCMixtbl.get inj_string tbl "a");;
|
OUnit2.assert_equal None (CCMixtbl.get inj_string tbl "a");;
|
||||||
OUnit.assert_equal (Some 1) (CCMixtbl.get inj_int tbl "a");;
|
OUnit2.assert_equal (Some 1) (CCMixtbl.get inj_int tbl "a");;
|
||||||
CCMixtbl.set inj_string tbl "a" "Bye";;
|
CCMixtbl.set inj_string tbl "a" "Bye";;
|
||||||
|
|
||||||
OUnit.assert_equal None (CCMixtbl.get inj_int tbl "a");;
|
OUnit2.assert_equal None (CCMixtbl.get inj_int tbl "a");;
|
||||||
OUnit.assert_equal (Some "Bye") (CCMixtbl.get inj_string tbl "a");;
|
OUnit2.assert_equal (Some "Bye") (CCMixtbl.get inj_string tbl "a");;
|
||||||
]}
|
]}
|
||||||
|
|
||||||
@since 0.6 *)
|
@since 0.6 *)
|
||||||
|
|
|
||||||
|
|
@ -224,13 +224,13 @@ module Make(H : HashedType) : S with type key = H.t = struct
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
let h = H.of_iter my_iter in
|
let h = H.of_iter my_iter in
|
||||||
OUnit.assert_equal "a" (H.find h 1);
|
OUnit2.assert_equal "a" (H.find h 1);
|
||||||
OUnit.assert_raises Not_found (fun () -> H.find h 5);
|
OUnit2.assert_raises Not_found (fun () -> H.find h 5);
|
||||||
let h' = H.replace h 5 "e" in
|
let h' = H.replace h 5 "e" in
|
||||||
OUnit.assert_equal "a" (H.find h' 1);
|
OUnit2.assert_equal "a" (H.find h' 1);
|
||||||
OUnit.assert_equal "e" (H.find h' 5);
|
OUnit2.assert_equal "e" (H.find h' 5);
|
||||||
OUnit.assert_equal "a" (H.find h 1);
|
OUnit2.assert_equal "a" (H.find h 1);
|
||||||
OUnit.assert_raises Not_found (fun () -> H.find h 5);
|
OUnit2.assert_raises Not_found (fun () -> H.find h 5);
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
|
|
@ -239,9 +239,9 @@ module Make(H : HashedType) : S with type key = H.t = struct
|
||||||
let h = H.of_iter seq in
|
let h = H.of_iter seq in
|
||||||
Iter.iter
|
Iter.iter
|
||||||
(fun (k,v) ->
|
(fun (k,v) ->
|
||||||
OUnit.assert_equal ~printer:(fun x -> x) v (H.find h k))
|
OUnit2.assert_equal ~printer:(fun x -> x) v (H.find h k))
|
||||||
seq;
|
seq;
|
||||||
OUnit.assert_raises Not_found (fun () -> H.find h (n+1));
|
OUnit2.assert_raises Not_found (fun () -> H.find h (n+1));
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(*$QR
|
(*$QR
|
||||||
|
|
@ -271,7 +271,7 @@ module Make(H : HashedType) : S with type key = H.t = struct
|
||||||
let h = H.of_iter
|
let h = H.of_iter
|
||||||
Iter.(map (fun i -> i, string_of_int i)
|
Iter.(map (fun i -> i, string_of_int i)
|
||||||
(0 -- 200)) in
|
(0 -- 200)) in
|
||||||
OUnit.assert_equal 201 (H.length h);
|
OUnit2.assert_equal 201 (H.length h);
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(*$QR
|
(*$QR
|
||||||
|
|
@ -371,21 +371,21 @@ module Make(H : HashedType) : S with type key = H.t = struct
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
let h = H.of_iter my_iter in
|
let h = H.of_iter my_iter in
|
||||||
OUnit.assert_equal "a" (H.find h 1);
|
OUnit2.assert_equal "a" (H.find h 1);
|
||||||
OUnit.assert_raises Not_found (fun () -> H.find h 5);
|
OUnit2.assert_raises Not_found (fun () -> H.find h 5);
|
||||||
let h1 = H.add h 5 "e" in
|
let h1 = H.add h 5 "e" in
|
||||||
OUnit.assert_equal "a" (H.find h1 1);
|
OUnit2.assert_equal "a" (H.find h1 1);
|
||||||
OUnit.assert_equal "e" (H.find h1 5);
|
OUnit2.assert_equal "e" (H.find h1 5);
|
||||||
OUnit.assert_equal "a" (H.find h 1);
|
OUnit2.assert_equal "a" (H.find h 1);
|
||||||
let h2 = H.add h1 5 "ee" in
|
let h2 = H.add h1 5 "ee" in
|
||||||
OUnit.assert_equal "ee" (H.find h2 5);
|
OUnit2.assert_equal "ee" (H.find h2 5);
|
||||||
OUnit.assert_raises Not_found (fun () -> H.find h 5);
|
OUnit2.assert_raises Not_found (fun () -> H.find h 5);
|
||||||
let h3 = H.remove h2 1 in
|
let h3 = H.remove h2 1 in
|
||||||
OUnit.assert_equal "ee" (H.find h3 5);
|
OUnit2.assert_equal "ee" (H.find h3 5);
|
||||||
OUnit.assert_raises Not_found (fun () -> H.find h3 1);
|
OUnit2.assert_raises Not_found (fun () -> H.find h3 1);
|
||||||
let h4 = H.remove h3 5 in
|
let h4 = H.remove h3 5 in
|
||||||
OUnit.assert_equal "e" (H.find h4 5);
|
OUnit2.assert_equal "e" (H.find h4 5);
|
||||||
OUnit.assert_equal "ee" (H.find h3 5);
|
OUnit2.assert_equal "ee" (H.find h3 5);
|
||||||
*)
|
*)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -415,14 +415,14 @@ module Make(H : HashedType) : S with type key = H.t = struct
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
let h = H.of_iter my_iter in
|
let h = H.of_iter my_iter in
|
||||||
OUnit.assert_equal (H.find h 2) "b";
|
OUnit2.assert_equal (H.find h 2) "b";
|
||||||
OUnit.assert_equal (H.find h 3) "c";
|
OUnit2.assert_equal (H.find h 3) "c";
|
||||||
OUnit.assert_equal (H.find h 4) "d";
|
OUnit2.assert_equal (H.find h 4) "d";
|
||||||
OUnit.assert_equal (H.length h) 4;
|
OUnit2.assert_equal (H.length h) 4;
|
||||||
let h = H.remove h 2 in
|
let h = H.remove h 2 in
|
||||||
OUnit.assert_equal (H.find h 3) "c";
|
OUnit2.assert_equal (H.find h 3) "c";
|
||||||
OUnit.assert_equal (H.length h) 3;
|
OUnit2.assert_equal (H.length h) 3;
|
||||||
OUnit.assert_raises Not_found (fun () -> H.find h 2)
|
OUnit2.assert_raises Not_found (fun () -> H.find h 2)
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
|
|
@ -430,10 +430,10 @@ module Make(H : HashedType) : S with type key = H.t = struct
|
||||||
let n = 10000 in
|
let n = 10000 in
|
||||||
let seq = Iter.map (fun i -> i, string_of_int i) (0 -- n) in
|
let seq = Iter.map (fun i -> i, string_of_int i) (0 -- n) in
|
||||||
let h = H.of_iter seq in
|
let h = H.of_iter seq in
|
||||||
OUnit.assert_equal (n+1) (H.length h);
|
OUnit2.assert_equal (n+1) (H.length h);
|
||||||
let h = Iter.fold (fun h i -> H.remove h i) h (0 -- 500) in
|
let h = Iter.fold (fun h i -> H.remove h i) h (0 -- 500) in
|
||||||
OUnit.assert_equal (n-500) (H.length h);
|
OUnit2.assert_equal (n-500) (H.length h);
|
||||||
OUnit.assert_bool "is_empty" (H.is_empty (H.create 16));
|
OUnit2.assert_bool "is_empty" (H.is_empty (H.create 16));
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(*$QR
|
(*$QR
|
||||||
|
|
@ -569,10 +569,10 @@ module Make(H : HashedType) : S with type key = H.t = struct
|
||||||
| `Both (s1,s2) -> if s1 < s2 then Some s1 else Some s2)
|
| `Both (s1,s2) -> if s1 < s2 then Some s1 else Some s2)
|
||||||
t1 t2
|
t1 t2
|
||||||
in
|
in
|
||||||
OUnit.assert_equal ~printer:string_of_int 3 (H.length t);
|
OUnit2.assert_equal ~printer:string_of_int 3 (H.length t);
|
||||||
OUnit.assert_equal "a" (H.find t 1);
|
OUnit2.assert_equal "a" (H.find t 1);
|
||||||
OUnit.assert_equal "b1" (H.find t 2);
|
OUnit2.assert_equal "b1" (H.find t 2);
|
||||||
OUnit.assert_equal "c" (H.find t 3);
|
OUnit2.assert_equal "c" (H.find t 3);
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let add_iter init seq =
|
let add_iter init seq =
|
||||||
|
|
@ -611,7 +611,7 @@ module Make(H : HashedType) : S with type key = H.t = struct
|
||||||
(*$R
|
(*$R
|
||||||
let h = H.of_iter my_iter in
|
let h = H.of_iter my_iter in
|
||||||
let l = Iter.to_list (H.to_iter h) in
|
let l = Iter.to_list (H.to_iter h) in
|
||||||
OUnit.assert_equal my_list (List.sort compare l)
|
OUnit2.assert_equal my_list (List.sort compare l)
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let to_iter t =
|
let to_iter t =
|
||||||
|
|
@ -620,9 +620,9 @@ module Make(H : HashedType) : S with type key = H.t = struct
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
let h = H.of_iter my_iter in
|
let h = H.of_iter my_iter in
|
||||||
OUnit.assert_equal "b" (H.find h 2);
|
OUnit2.assert_equal "b" (H.find h 2);
|
||||||
OUnit.assert_equal "a" (H.find h 1);
|
OUnit2.assert_equal "a" (H.find h 1);
|
||||||
OUnit.assert_raises Not_found (fun () -> H.find h 42);
|
OUnit2.assert_raises Not_found (fun () -> H.find h 42);
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let equal eq t1 t2 =
|
let equal eq t1 t2 =
|
||||||
|
|
|
||||||
|
|
@ -304,7 +304,7 @@ module Make(P : PARAM) = struct
|
||||||
1
|
1
|
||||||
)) l in
|
)) l in
|
||||||
let l' = List.map Fut.get l in
|
let l' = List.map Fut.get l in
|
||||||
OUnit.assert_equal n (List.fold_left (+) 0 l');
|
OUnit2.assert_equal n (List.fold_left (+) 0 l');
|
||||||
)
|
)
|
||||||
[ 10; 300; ]
|
[ 10; 300; ]
|
||||||
*)
|
*)
|
||||||
|
|
@ -320,7 +320,7 @@ module Make(P : PARAM) = struct
|
||||||
1
|
1
|
||||||
)) l in
|
)) l in
|
||||||
let l' = List.map Fut2.get l in
|
let l' = List.map Fut2.get l in
|
||||||
OUnit.assert_equal n (List.fold_left (+) 0 l');
|
OUnit2.assert_equal n (List.fold_left (+) 0 l');
|
||||||
)
|
)
|
||||||
[ 10; 300; ]
|
[ 10; 300; ]
|
||||||
*)
|
*)
|
||||||
|
|
@ -443,21 +443,21 @@ module Make(P : PARAM) = struct
|
||||||
let a = Fut.make (fun () -> 1) in
|
let a = Fut.make (fun () -> 1) in
|
||||||
let b = Fut.return 42 in
|
let b = Fut.return 42 in
|
||||||
let c = Fut.monoid_product CCPair.make a b in
|
let c = Fut.monoid_product CCPair.make a b in
|
||||||
OUnit.assert_equal (1,42) (Fut.get c)
|
OUnit2.assert_equal (1,42) (Fut.get c)
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
let a = Fut.make (fun () -> 1) in
|
let a = Fut.make (fun () -> 1) in
|
||||||
let b = Fut.make (fun () -> 42) in
|
let b = Fut.make (fun () -> 42) in
|
||||||
let c = Fut.monoid_product CCPair.make a b in
|
let c = Fut.monoid_product CCPair.make a b in
|
||||||
OUnit.assert_equal (1,42) (Fut.get c)
|
OUnit2.assert_equal (1,42) (Fut.get c)
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
let a = Fut.make (fun () -> 1) in
|
let a = Fut.make (fun () -> 1) in
|
||||||
let b = Fut.map succ @@ Fut.make (fun () -> 41) in
|
let b = Fut.map succ @@ Fut.make (fun () -> 41) in
|
||||||
let c = Fut.monoid_product CCPair.make a b in
|
let c = Fut.monoid_product CCPair.make a b in
|
||||||
OUnit.assert_equal (1,42) (Fut.get c)
|
OUnit2.assert_equal (1,42) (Fut.get c)
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let monoid_product f x y = match x, y with
|
let monoid_product f x y = match x, y with
|
||||||
|
|
@ -582,7 +582,7 @@ module Make(P : PARAM) = struct
|
||||||
|> Fut.map (List.fold_left (+) 0)
|
|> Fut.map (List.fold_left (+) 0)
|
||||||
in
|
in
|
||||||
let expected = List.fold_left (fun acc x -> acc + 10 * x) 0 l in
|
let expected = List.fold_left (fun acc x -> acc + 10 * x) 0 l in
|
||||||
OUnit.assert_equal expected (Fut.get l')
|
OUnit2.assert_equal expected (Fut.get l')
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
|
|
@ -594,7 +594,7 @@ module Make(P : PARAM) = struct
|
||||||
|> Fut.map (List.fold_left (+) 0)
|
|> Fut.map (List.fold_left (+) 0)
|
||||||
in
|
in
|
||||||
let expected = 100_000 in
|
let expected = 100_000 in
|
||||||
OUnit.assert_equal expected (Fut.get l')
|
OUnit2.assert_equal expected (Fut.get l')
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
|
|
@ -605,7 +605,7 @@ module Make(P : PARAM) = struct
|
||||||
|> Fut.sequence_l
|
|> Fut.sequence_l
|
||||||
|> Fut.map (List.fold_left (+) 0)
|
|> Fut.map (List.fold_left (+) 0)
|
||||||
in
|
in
|
||||||
OUnit.assert_raises Exit (fun () -> Fut.get l')
|
OUnit2.assert_raises Exit (fun () -> Fut.get l')
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
|
|
@ -616,9 +616,9 @@ module Make(P : PARAM) = struct
|
||||||
(fun x-> Fut.make (fun () -> Thread.yield(); fib (x mod 20)))
|
(fun x-> Fut.make (fun () -> Thread.yield(); fib (x mod 20)))
|
||||||
|> Fut.(map_l (fun x->x>|= fun x->x+1))
|
|> Fut.(map_l (fun x->x>|= fun x->x+1))
|
||||||
in
|
in
|
||||||
OUnit.assert_bool "not done" (Fut.state l = Waiting);
|
OUnit2.assert_bool "not done" (Fut.state l = Waiting);
|
||||||
let l' = Fut.get l in
|
let l' = Fut.get l in
|
||||||
OUnit.assert_equal 10_000 (List.length l');
|
OUnit2.assert_equal 10_000 (List.length l');
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
|
|
@ -630,7 +630,7 @@ module Make(P : PARAM) = struct
|
||||||
|> Fut2.map (List.fold_left (+) 0)
|
|> Fut2.map (List.fold_left (+) 0)
|
||||||
in
|
in
|
||||||
let expected = List.fold_left (fun acc x -> acc + 10 * x) 0 l in
|
let expected = List.fold_left (fun acc x -> acc + 10 * x) 0 l in
|
||||||
OUnit.assert_equal expected (Fut2.get l')
|
OUnit2.assert_equal expected (Fut2.get l')
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
|
|
@ -641,7 +641,7 @@ module Make(P : PARAM) = struct
|
||||||
|> Fut2.sequence_l
|
|> Fut2.sequence_l
|
||||||
|> Fut2.map (List.fold_left (+) 0)
|
|> Fut2.map (List.fold_left (+) 0)
|
||||||
in
|
in
|
||||||
OUnit.assert_raises Exit (fun () -> Fut2.get l')
|
OUnit2.assert_raises Exit (fun () -> Fut2.get l')
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
|
|
@ -652,9 +652,9 @@ module Make(P : PARAM) = struct
|
||||||
(fun x-> Fut2.make (fun () -> Thread.yield(); fib (x mod 20)))
|
(fun x-> Fut2.make (fun () -> Thread.yield(); fib (x mod 20)))
|
||||||
|> Fut2.(map_l (fun x->x>|= fun x->x+1))
|
|> Fut2.(map_l (fun x->x>|= fun x->x+1))
|
||||||
in
|
in
|
||||||
OUnit.assert_bool "not done" (Fut2.state l = Waiting);
|
OUnit2.assert_bool "not done" (Fut2.state l = Waiting);
|
||||||
let l' = Fut2.get l in
|
let l' = Fut2.get l in
|
||||||
OUnit.assert_equal 10_000 (List.length l');
|
OUnit2.assert_equal 10_000 (List.length l');
|
||||||
*)
|
*)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -690,7 +690,7 @@ module Make(P : PARAM) = struct
|
||||||
in
|
in
|
||||||
List.iter Fut.get l;
|
List.iter Fut.get l;
|
||||||
let stop = Unix.gettimeofday () in
|
let stop = Unix.gettimeofday () in
|
||||||
OUnit.assert_bool "some_parallelism" (stop -. start < float_of_int n *. pause);
|
OUnit2.assert_bool "some_parallelism" (stop -. start < float_of_int n *. pause);
|
||||||
*)
|
*)
|
||||||
|
|
||||||
(*$R
|
(*$R
|
||||||
|
|
@ -701,7 +701,7 @@ module Make(P : PARAM) = struct
|
||||||
in
|
in
|
||||||
List.iter Fut2.get l;
|
List.iter Fut2.get l;
|
||||||
let stop = Unix.gettimeofday () in
|
let stop = Unix.gettimeofday () in
|
||||||
OUnit.assert_bool "some_parallelism" (stop -. start < float_of_int n *. pause);
|
OUnit2.assert_bool "some_parallelism" (stop -. start < float_of_int n *. pause);
|
||||||
*)
|
*)
|
||||||
|
|
||||||
module Infix = struct
|
module Infix = struct
|
||||||
|
|
|
||||||
|
|
@ -168,9 +168,9 @@ let every ?delay timer d ~f =
|
||||||
raise ExitEvery
|
raise ExitEvery
|
||||||
));
|
));
|
||||||
CCSemaphore.acquire 1 sem; (* wait *)
|
CCSemaphore.acquire 1 sem; (* wait *)
|
||||||
OUnit.assert_equal ~printer:CCInt.to_string 6 (CCLock.get res);
|
OUnit2.assert_equal ~printer:CCInt.to_string 6 (CCLock.get res);
|
||||||
OUnit.assert_bool "delay >= 0.5" (!stop -. start >= 0.49999);
|
OUnit2.assert_bool "delay >= 0.5" (!stop -. start >= 0.49999);
|
||||||
OUnit.assert_bool "delay < 2." (!stop -. start < 2.);
|
OUnit2.assert_bool "delay < 2." (!stop -. start < 2.);
|
||||||
*)
|
*)
|
||||||
(* NOTE: could be tighter bounds, but travis' mac OS seems to be dog slow. *)
|
(* NOTE: could be tighter bounds, but travis' mac OS seems to be dog slow. *)
|
||||||
|
|
||||||
|
|
@ -201,5 +201,5 @@ let stop timer =
|
||||||
after timer 0.1
|
after timer 0.1
|
||||||
~f:(fun () -> CCLock.update n (fun x -> x * 4));
|
~f:(fun () -> CCLock.update n (fun x -> x * 4));
|
||||||
Thread.delay 0.6 ;
|
Thread.delay 0.6 ;
|
||||||
OUnit.assert_equal ~printer:Q.Print.int 6 (CCLock.get res);
|
OUnit2.assert_equal ~printer:Q.Print.int 6 (CCLock.get res);
|
||||||
*)
|
*)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue