11#! /usr/bin/env bats
22load bats-extra
33
4+ # generated on 2026-06-28T23:19:01+00:00
45# local version: 2.0.0.0
56
67@test " Empty tree" {
7- # [[ $BATS_RUN_SKIPPED == "true" ]] || skip
8+ # [[ $BATS_RUN_SKIPPED == "true" ]] || skip
89 run bash satellite.sh " " " "
910 assert_success
10- [[ $output = " {}" ]]
11+ expectedJson=$( cat << END_JSON
12+ {}
13+ END_JSON
14+ )
15+ # compare without spaces
16+ [[ " ${output// [[:space:]]/ } " == " ${expectedJson// [[:space:]]/ } " ]]
1117}
1218
1319@test " Tree with one item" {
1420 [[ $BATS_RUN_SKIPPED == " true" ]] || skip
1521 run bash satellite.sh " a" " a"
1622 assert_success
17- expected=' {"v": "a", "l": {}, "r": {}}'
18- assert_output " $expected "
23+ expectedJson=$( cat << END_JSON
24+ {
25+ "v": "a",
26+ "l": {},
27+ "r": {}
28+ }
29+ END_JSON
30+ )
31+ # compare without spaces
32+ [[ " ${output// [[:space:]]/ } " == " ${expectedJson// [[:space:]]/ } " ]]
1933}
2034
2135@test " Tree with many items" {
2236 [[ $BATS_RUN_SKIPPED == " true" ]] || skip
2337 run bash satellite.sh " a i x f r" " i a f x r"
2438 assert_success
25-
2639 expectedJson=$( cat << END_JSON
27- {"v": "a",
28- "l": {"v": "i", "l": {}, "r": {}},
29- "r": {"v": "x",
30- "l": {"v": "f", "l": {}, "r": {}},
31- "r": {"v": "r", "l": {}, "r": {}}
40+ {
41+ "v": "a",
42+ "l": {
43+ "v": "i",
44+ "l": {},
45+ "r": {}
46+ },
47+ "r": {
48+ "v": "x",
49+ "l": {
50+ "v": "f",
51+ "l": {},
52+ "r": {}
53+ },
54+ "r": {
55+ "v": "r",
56+ "l": {},
57+ "r": {}
58+ }
3259 }
3360 }
3461END_JSON
@@ -47,18 +74,18 @@ END_JSON
4774
4875@test " Reject inconsistent traversals of same length" {
4976 [[ $BATS_RUN_SKIPPED == " true" ]] || skip
50- run bash satellite.sh " a b c " " x y z "
77+ run bash satellite.sh " x y z " " a b c "
5178 assert_failure
5279 shopt -s nocasematch
5380 assert_output " traversals must have the same elements"
5481}
5582
56- @test " Reject traversals with repeated elements " {
83+ @test " Reject traversals with repeated items " {
5784 [[ $BATS_RUN_SKIPPED == " true" ]] || skip
5885 run bash satellite.sh " a b a" " b a a"
5986 assert_failure
6087 shopt -s nocasematch
61- assert_output " traversals must contain unique elements "
88+ assert_output " traversals must contain unique items "
6289}
6390
6491@test " A degenerate binary tree" {
@@ -72,7 +99,11 @@ END_JSON
7299 "v": "b",
73100 "l": {
74101 "v": "c",
75- "l": { "v": "d", "l": {}, "r": {} },
102+ "l": {
103+ "v": "d",
104+ "l": {},
105+ "r": {}
106+ },
76107 "r": {}
77108 },
78109 "r": {}
@@ -99,7 +130,11 @@ END_JSON
99130 "r": {
100131 "v": "c",
101132 "l": {},
102- "r": { "v": "d", "l": {}, "r": {} }
133+ "r": {
134+ "v": "d",
135+ "l": {},
136+ "r": {}
137+ }
103138 }
104139 }
105140 }
@@ -120,17 +155,33 @@ END_JSON
120155 "v": "b",
121156 "l": {
122157 "v": "d",
123- "l": { "v": "g", "l": {}, "r": {} },
124- "r": { "v": "h", "l": {}, "r": {} }
158+ "l": {
159+ "v": "g",
160+ "l": {},
161+ "r": {}
162+ },
163+ "r": {
164+ "v": "h",
165+ "l": {},
166+ "r": {}
167+ }
125168 },
126169 "r": {}
127170 },
128171 "r": {
129172 "v": "c",
130- "l": { "v": "e", "l": {}, "r": {} },
173+ "l": {
174+ "v": "e",
175+ "l": {},
176+ "r": {}
177+ },
131178 "r": {
132179 "v": "f",
133- "l": { "v": "i", "l": {}, "r": {} },
180+ "l": {
181+ "v": "i",
182+ "l": {},
183+ "r": {}
184+ },
134185 "r": {}
135186 }
136187 }
0 commit comments