Skip to content

Commit 4622c51

Browse files
sync satellite (#285)
resolves #283
1 parent be5a8ce commit 4622c51

File tree

2 files changed

+84
-0
lines changed

2 files changed

+84
-0
lines changed

exercises/practice/satellite/.meta/tests.toml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,12 @@ description = "Reject inconsistent traversals of same length"
1919

2020
[d86a3d72-76a9-43b5-9d3a-e64cb1216035]
2121
description = "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"

exercises/practice/satellite/run_test.v

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff 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+
}

0 commit comments

Comments
 (0)