more tests

This commit is contained in:
Simon Cruanes 2015-09-19 12:41:02 +02:00
parent d60b3400fa
commit 359740a587

View file

@ -440,16 +440,30 @@ module Make(Key : KEY)
let add k v m = add_ ~id:Transient.empty k v ~h:(hash_ k) m let add k v m = add_ ~id:Transient.empty k v ~h:(hash_ k) m
let add_mut ~id k v m =
if Transient.frozen id then raise Transient.Frozen;
add_ ~id k v ~h:(hash_ k) m
(*$Q (*$Q
_listuniq (fun l -> \ _listuniq (fun l -> \
let m = List.fold_left (fun m (x,y) -> M.add x y m) M.empty l in \ let m = List.fold_left (fun m (x,y) -> M.add x y m) M.empty l in \
List.for_all (fun (x,y) -> M.get_exn x m = y) l) List.for_all (fun (x,y) -> M.get_exn x m = y) l)
*) *)
let add_mut ~id k v m =
if Transient.frozen id then raise Transient.Frozen;
add_ ~id k v ~h:(hash_ k) m
(*$R
let lsort = List.sort Pervasives.compare in
let m = M.of_list [1, 1; 2, 2] in
let id = Transient.create() in
let m' = M.add_mut ~id 3 3 m in
let m' = M.add_mut ~id 4 4 m' in
assert_equal [1, 1; 2, 2] (M.to_list m |> lsort);
assert_equal [1, 1; 2, 2; 3,3; 4,4] (M.to_list m' |> lsort);
Transient.freeze id;
assert_bool "must raise"
(try ignore(M.add_mut ~id 5 5 m'); false with Transient.Frozen -> true)
*)
exception LocalExit exception LocalExit
let is_empty_arr_ a = let is_empty_arr_ a =