Skip to content

Commit 135f3d5

Browse files
committed
syncted tests.toml and regnerated test cases.
1 parent 6865784 commit 135f3d5

File tree

2 files changed

+73
-4
lines changed

2 files changed

+73
-4
lines changed

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

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1-
# This is an auto-generated file. Regular comments will be removed when this
2-
# file is regenerated. Regenerating will not touch any manually added keys,
3-
# so comments can be added in a "comment" key.
1+
# This is an auto-generated file.
2+
#
3+
# Regenerating this file via `configlet sync` will:
4+
# - Recreate every `description` key/value pair
5+
# - Recreate every `reimplements` key/value pair, where they exist in problem-specifications
6+
# - Remove any `include = true` key/value pair (an omitted `include` key implies inclusion)
7+
# - Preserve any other key/value pair
8+
#
9+
# As user-added comments (using the # character) will be removed when this file
10+
# is regenerated, comments can be added via a `comment` key.
411

512
[8df3fa26-811a-4165-9286-ff9ac0850d19]
613
description = "Empty tree"
@@ -19,3 +26,12 @@ description = "Reject inconsistent traversals of same length"
1926

2027
[d86a3d72-76a9-43b5-9d3a-e64cb1216035]
2128
description = "Reject traversals with repeated items"
29+
30+
[af31ae02-7e5b-4452-a990-bccb3fca9148]
31+
description = "A degenerate binary tree"
32+
33+
[ee54463d-a719-4aae-ade4-190d30ce7320]
34+
description = "Another degenerate binary tree"
35+
36+
[87123c08-c155-4486-90a4-e2f75b0f3e8f]
37+
description = "Tree with many more items"

exercises/practice/satellite/satellite_test.py

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# These tests are auto-generated with test data from:
22
# https://github.com/exercism/problem-specifications/tree/main/exercises/satellite/canonical-data.json
3-
# File last updated on 2023-07-19
3+
# File last updated on 2025-12-30
44

55
import unittest
66

@@ -67,3 +67,56 @@ def test_reject_traversals_with_repeated_items(self):
6767
tree_from_traversals(preorder, inorder)
6868
self.assertEqual(type(err.exception), ValueError)
6969
self.assertEqual(err.exception.args[0], "traversals must contain unique items")
70+
71+
def test_a_degenerate_binary_tree(self):
72+
preorder = ["a", "b", "c", "d"]
73+
inorder = ["d", "c", "b", "a"]
74+
75+
expected = {
76+
"v": "a",
77+
"l": {
78+
"v": "b",
79+
"l": {"v": "c", "l": {"v": "d", "l": {}, "r": {}}, "r": {}},
80+
"r": {},
81+
},
82+
"r": {},
83+
}
84+
self.assertEqual(tree_from_traversals(preorder, inorder), expected)
85+
86+
def test_another_degenerate_binary_tree(self):
87+
preorder = ["a", "b", "c", "d"]
88+
inorder = ["a", "b", "c", "d"]
89+
90+
expected = {
91+
"v": "a",
92+
"l": {},
93+
"r": {
94+
"v": "b",
95+
"l": {},
96+
"r": {"v": "c", "l": {}, "r": {"v": "d", "l": {}, "r": {}}},
97+
},
98+
}
99+
self.assertEqual(tree_from_traversals(preorder, inorder), expected)
100+
101+
def test_tree_with_many_more_items(self):
102+
preorder = ["a", "b", "d", "g", "h", "c", "e", "f", "i"]
103+
inorder = ["g", "d", "h", "b", "a", "e", "c", "i", "f"]
104+
105+
expected = {
106+
"v": "a",
107+
"l": {
108+
"v": "b",
109+
"l": {
110+
"v": "d",
111+
"l": {"v": "g", "l": {}, "r": {}},
112+
"r": {"v": "h", "l": {}, "r": {}},
113+
},
114+
"r": {},
115+
},
116+
"r": {
117+
"v": "c",
118+
"l": {"v": "e", "l": {}, "r": {}},
119+
"r": {"v": "f", "l": {"v": "i", "l": {}, "r": {}}, "r": {}},
120+
},
121+
}
122+
self.assertEqual(tree_from_traversals(preorder, inorder), expected)

0 commit comments

Comments
 (0)