summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@baturin.org>2015-04-23 05:29:31 +0600
committerDaniil Baturin <daniil@baturin.org>2015-04-23 05:29:31 +0600
commitccab6d041c7ca307486bb344dd2a4e669e9bb9fe (patch)
tree2c2409dec310ef02af2847badc891d1acc1a30bb /test
parent3b2b0d009ba7962da8b12c62f119fa4b1178e858 (diff)
downloadvyconf-ccab6d041c7ca307486bb344dd2a4e669e9bb9fe.tar.gz
vyconf-ccab6d041c7ca307486bb344dd2a4e669e9bb9fe.zip
Make insert require all but the last elements in the path to exist in the tree.
Making it linear time at cost of knowing the data for all path elements was probably a bad idea.
Diffstat (limited to 'test')
-rw-r--r--test/vyconf_tree_test.ml45
1 files changed, 24 insertions, 21 deletions
diff --git a/test/vyconf_tree_test.ml b/test/vyconf_tree_test.ml
index 26d350b..edafb78 100644
--- a/test/vyconf_tree_test.ml
+++ b/test/vyconf_tree_test.ml
@@ -17,7 +17,7 @@ let test_make_node test_ctxt =
children list *)
let test_insert_immediate_child test_ctxt =
let node = make () "root" in
- let node' = insert node ["foo"] [()] in
+ let node' = insert node ["foo"] () in
assert_equal (children_of_node node')
[make () "foo"]
@@ -25,8 +25,8 @@ let test_insert_immediate_child test_ctxt =
end of the children list *)
let test_insert_multiple_children test_ctxt =
let node = make () "root" in
- let node' = insert node ["foo"] [()] in
- let node'' = insert node' ["bar"] [()] in
+ let node' = insert node ["foo"] () in
+ let node'' = insert node' ["bar"] () in
assert_equal (children_of_node node'')
[make () "bar"; make () "foo"]
@@ -34,39 +34,41 @@ let test_insert_multiple_children test_ctxt =
two levels deep *)
let test_insert_multi_level test_ctxt =
let node = make () "root" in
- let node' = insert node ["foo"; "bar"] [(); ()] in
+ let node = insert node ["foo"] () in
+ let node = insert node ["foo"; "bar"] () in
let bar = make () "bar" in
let foo = make_full () "foo" [bar] in
let root = make_full () "root" [foo] in
- assert_equal root node'
+ assert_equal root node
(* Inserting duplicate child fails *)
let test_insert_duplicate_child test_ctxt =
let node = make () "root" in
- let node' = insert node ["foo"] [()] in
- assert_raises Duplicate_child (fun () -> insert node' ["foo"] [()])
+ let node = insert node ["foo"] () in
+ assert_raises Duplicate_child (fun () -> insert node ["foo"] ())
(* list_children correctly returns a list of children names *)
let test_list_children test_ctxt =
let node = make () "root" in
- let node' = insert node ["foo"] [()] in
- let node'' = insert node' ["bar"] [()] in
- assert_equal (list_children node'') ["bar"; "foo"]
+ let node = insert node ["foo"] () in
+ let node = insert node ["bar"] () in
+ assert_equal (list_children node) ["bar"; "foo"]
(* Deleting a child, well, deletes it *)
let test_delete_immediate_child test_ctxt =
let node = make () "root" in
- let node' = insert node ["foo"] [()] in
- let node'' = delete node' ["foo"] in
- assert_equal node node''
+ let node' = insert node ["foo"] () in
+ let node' = delete node' ["foo"] in
+ assert_equal node node'
(* Deleting a child at multi-level path works *)
let test_delete_multi_level test_ctxt =
let node = make () "root" in
- let node' = insert node ["foo"; "bar"] [(); ()] in
- let foo_node = insert node ["foo"] [()] in
- let node'' = delete node' ["foo"; "bar"] in
- assert_equal node'' foo_node
+ let node' = insert node ["foo"] () in
+ let node' = insert node' ["foo"; "bar"] () in
+ let foo_node = insert node ["foo"] () in
+ let node' = delete node' ["foo"; "bar"] in
+ assert_equal node' foo_node
(* Attempt to delete a node at non-existent path raises an exception *)
let test_delete_nonexistent test_ctxt =
@@ -76,14 +78,15 @@ let test_delete_nonexistent test_ctxt =
(* get_child works with immediate children *)
let test_get_immediate_child test_ctxt =
let node = make () "root" in
- let node' = insert node ["foo"] [()] in
+ let node' = insert node ["foo"] () in
assert_equal (name_of_node (get node' ["foo"])) "foo"
(* get_child works with multi-level paths *)
let test_get_child_multilevel test_ctxt =
let node = make () "root" in
- let node' = insert node ["foo"; "bar"] [(); ()] in
- assert_equal (name_of_node (get node' ["foo"; "bar"])) "bar"
+ let node = insert node ["foo"] () in
+ let node = insert node ["foo"; "bar"] () in
+ assert_equal (name_of_node (get node ["foo"; "bar"])) "bar"
(* get_child raises Nonexistent_path for non-existent paths *)
let test_get_child_nonexistent test_ctxt =
@@ -93,7 +96,7 @@ let test_get_child_nonexistent test_ctxt =
(* update works *)
let test_update test_ctxt =
let node = make 0 "root" in
- let node = insert node ["foo"] [1] in
+ let node = insert node ["foo"] 1 in
assert_equal (data_of_node (get (update node ["foo"] 9) ["foo"])) 9
let suite =