Commit | Line | Data |
---|---|---|
958f7268 SK |
1 | module Array = ArrayLabels |
2 | ||
3 | let () = | |
4 | let (module T : Tree.S) = | |
5 | match Sys.argv.(1) with | |
6 | | "balanced" -> (module Tree_balanced_red_black : Tree.S) | |
7 | | "unbalanced" -> (module Tree_unbalanced_vanilla : Tree.S) | |
8 | | other -> | |
9 | failwith ("Expected: \"balanced\" | \"unbalanced\". Got: " ^ other) | |
10 | in | |
11 | ||
12 | let t = T.empty in | |
13 | let t = T.set t ~k:"k1" ~v:"v1" in | |
14 | let t = T.set t ~k:"k2" ~v:"v2" in | |
15 | assert (T.member t ~k:"k1"); | |
16 | assert (T.member t ~k:"k2"); | |
17 | assert (Some "v1" = T.get t ~k:"k1"); | |
18 | assert (Some "v2" = T.get t ~k:"k2"); | |
19 | Sys.argv | |
20 | |> Array.sub ~pos:2 ~len:((Array.length Sys.argv) - 2) | |
21 | |> Array.fold_left ~init:T.empty ~f:(fun t k -> T.set t ~k ~v:()) | |
22 | |> T.to_dot ~k_to_string:(fun x -> x) | |
23 | |> print_endline |