diff --git a/exercises/practice/satellite/.meta/tests.toml b/exercises/practice/satellite/.meta/tests.toml index b32dc3b1..d0ed5b6a 100644 --- a/exercises/practice/satellite/.meta/tests.toml +++ b/exercises/practice/satellite/.meta/tests.toml @@ -26,3 +26,12 @@ description = "Reject inconsistent traversals of same length" [d86a3d72-76a9-43b5-9d3a-e64cb1216035] description = "Reject traversals with repeated items" + +[af31ae02-7e5b-4452-a990-bccb3fca9148] +description = "A degenerate binary tree" + +[ee54463d-a719-4aae-ade4-190d30ce7320] +description = "Another degenerate binary tree" + +[87123c08-c155-4486-90a4-e2f75b0f3e8f] +description = "Tree with many more items" diff --git a/exercises/practice/satellite/satellite-test.el b/exercises/practice/satellite/satellite-test.el index bfa19d13..d91f922b 100644 --- a/exercises/practice/satellite/satellite-test.el +++ b/exercises/practice/satellite/satellite-test.el @@ -48,5 +48,54 @@ (should-error (tree-from-traversals '("a" "b" "a") '("b" "a" "a")))) +(ert-deftest a-degenerate-binary-tree () + (should (equal '((:v . "a") + (:l . ((:v . "b") + (:l . ((:v . "c") + (:l . ((:v . "d") + (:l . nil) + (:r . nil))) + (:r . nil))) + (:r . nil))) + (:r . nil)) + (tree-from-traversals '("a" "b" "c" "d") '("d" "c" "b" "a"))))) + + +(ert-deftest another-degenerate-binary-tree () + (should (equal '((:v . "a") + (:l . nil) + (:r . ((:v . "b") + (:l . nil) + (:r . ((:v . "c") + (:l . nil) + (:r . ((:v . "d") + (:l . nil) + (:r . nil)))))))) + (tree-from-traversals '("a" "b" "c" "d") '("a" "b" "c" "d"))))) + + +(ert-deftest tree-with-many-more-items () + (should (equal '((:v . "a") + (:l . ((:v . "b") + (:l . ((:v . "d") + (:l . ((:v . "g") + (:l . nil) + (:r . nil))) + (:r . ((:v . "h") + (:l . nil) + (:r . nil))))) + (:r . nil))) + (:r . ((:v . "c") + (:l . ((:v . "e") + (:l . nil) + (:r . nil))) + (:r . ((:v . "f") + (:l . ((:v . "i") + (:l . nil) + (:r . nil))) + (:r . nil)))))) + (tree-from-traversals '("a" "b" "d" "g" "h" "c" "e" "f" "i") '("g" "d" "h" "b" "a" "e" "c" "i" "f"))))) + + (provide 'satellite-test) ;;; satellite-test.el ends here