restructure + lecutre 07
This commit is contained in:
96 files changed
+458
-4
No files matched your search
@@ -0,0 +1,39 @@
|
||||
(* This is a minimal test file. Your program must pass these tests in order
|
||||
to get any credit for your work.
|
||||
In utop:
|
||||
#directory "_build";;
|
||||
#load "kvtree.cmo";;
|
||||
#use "tests.ml";;
|
||||
run ();;
|
||||
*)
|
||||
module M = Kvtree.Make(Int);;
|
||||
|
||||
let t = M.of_list [(3, "three"); (2, "two"); (7, "seven"); (6, "six"); (8, "eight")]
|
||||
let l = [(2, "two"); (3, "three"); (6, "six"); (7, "seven"); (8, "eight")]
|
||||
let s =
|
||||
"^(3, three, ^(2, two, #, #), ^(7, seven, ^(6, six, #, #), ^(8, eight, #, #)))"
|
||||
|
||||
let t2 = M.of_list [(3, 'a')]
|
||||
let s2 = "^(3, a, #, #)"
|
||||
|
||||
let t3 = M.insert 2 'b' t2
|
||||
let s3 = "^(3, a, ^(2, b, #, #), #)"
|
||||
|
||||
let t4 = M.of_list [(3, "3"); (7, "7"); (5, "5"); (6, "6"); (8, "8"); (9, "9")]
|
||||
let s4 = "^(3, 3, #, ^(7, 7, ^(5, 5, #, ^(6, 6, #, #)), ^(8, 8, #, ^(9, 9, #, #))))"
|
||||
let t5 = M.delete 7 t4
|
||||
let s5a = "^(3, 3, #, ^(6, 6, ^(5, 5, #, #), ^(8, 8, #, ^(9, 9, #, #))))"
|
||||
let s5b = "^(3, 3, #, ^(8, 8, ^(5, 5, #, ^(6, 6, #, #)), ^(9, 9, #, #)))"
|
||||
|
||||
let run () =
|
||||
assert (M.size t = 5);
|
||||
assert (M.find 7 t = "seven");
|
||||
assert (M.find_opt 7 t = Some "seven");
|
||||
assert (M.to_list t = l);
|
||||
assert (M.to_string (fun (k, v) -> Printf.sprintf "%d, %s" k v) t = s);
|
||||
assert (M.to_string (fun (k, v) -> Printf.sprintf "%d, %c" k v) t2 = s2);
|
||||
assert (M.to_string (fun (k, v) -> Printf.sprintf "%d, %c" k v) t3 = s3);
|
||||
assert (M.to_string (fun (k, v) -> Printf.sprintf "%d, %s" k v) t4 = s4);
|
||||
assert (
|
||||
let s = M.to_string (fun (k, v) -> Printf.sprintf "%d, %s" k v) t5 in
|
||||
s = s5a || s = s5b)
|
||||
Reference in new issue
Block a user