File tree Expand file tree Collapse file tree 2 files changed +84
-0
lines changed
exercises/practice/satellite Expand file tree Collapse file tree 2 files changed +84
-0
lines changed Original file line number Diff line number Diff line change @@ -19,3 +19,12 @@ description = "Reject inconsistent traversals of same length"
1919
2020[d86a3d72-76a9-43b5-9d3a-e64cb1216035 ]
2121description = " Reject traversals with repeated items"
22+
23+ [af31ae02-7e5b-4452-a990-bccb3fca9148 ]
24+ description = " A degenerate binary tree"
25+
26+ [ee54463d-a719-4aae-ade4-190d30ce7320 ]
27+ description = " Another degenerate binary tree"
28+
29+ [87123c08-c155-4486-90a4-e2f75b0f3e8f ]
30+ description = " Tree with many more items"
Original file line number Diff line number Diff line change @@ -72,3 +72,78 @@ fn test_reject_traversals_with_repeated_items() {
7272 assert err.msg () == 'traversals must contain unique items'
7373 }
7474}
75+
76+ fn test_a_degenerate_binary_tree () {
77+ preorder := 'abcd'
78+ inorder := 'dcba'
79+ expected := fn () Tree {
80+ return Node{
81+ left: Node{
82+ left: Node{
83+ left: Node{
84+ value: `d`
85+ }
86+ value: `c`
87+ }
88+ value: `b`
89+ }
90+ value: `a`
91+ }
92+ }
93+ assert tree_from_traversals (preorder, inorder)! == expected ()
94+ }
95+
96+ fn test_another_degenerate_binary_tree () {
97+ preorder := 'abcd'
98+ inorder := 'abcd'
99+ expected := fn () Tree {
100+ return Node{
101+ right: Node{
102+ right: Node{
103+ right: Node{
104+ value: `d`
105+ }
106+ value: `c`
107+ }
108+ value: `b`
109+ }
110+ value: `a`
111+ }
112+ }
113+ assert tree_from_traversals (preorder, inorder)! == expected ()
114+ }
115+
116+ fn test_tree_with_many_more_items () {
117+ preorder := 'abdghcefi'
118+ inorder := 'gdhbaecif'
119+ expected := fn () Tree {
120+ return Node{
121+ left: Node{
122+ left: Node{
123+ left: Node{
124+ value: `g`
125+ }
126+ right: Node{
127+ value: `h`
128+ }
129+ value: `d`
130+ }
131+ value: `b`
132+ }
133+ right: Node{
134+ left: Node{
135+ value: `e`
136+ }
137+ right: Node{
138+ left: Node{
139+ value: `i`
140+ }
141+ value: `f`
142+ }
143+ value: `c`
144+ }
145+ value: `a`
146+ }
147+ }
148+ assert tree_from_traversals (preorder, inorder)! == expected ()
149+ }
You can’t perform that action at this time.
0 commit comments