Skip to content

Commit 7ba92be

Browse files
committed
Update satellites
This updates satellites with new tests from the problem specs.
1 parent 208b9f5 commit 7ba92be

2 files changed

Lines changed: 62 additions & 3 deletions

File tree

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/src/test/java/SatelliteTest.java

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
33

44
import java.util.List;
5+
56
import org.junit.jupiter.api.Disabled;
67
import org.junit.jupiter.api.DisplayName;
78
import org.junit.jupiter.api.Test;
@@ -86,4 +87,46 @@ public void rejectTraversalsWithRepeatedItems() {
8687
.isThrownBy(() -> satellite.treeFromTraversals(preorder, inorder))
8788
.withMessage("traversals must contain unique items");
8889
}
90+
91+
@Disabled("Remove to run test")
92+
@Test
93+
@DisplayName("A degenerate binary tree")
94+
public void degenerateBinaryTree() {
95+
List<Character> preorder = List.of('a', 'b', 'c', 'd');
96+
List<Character> inorder = List.of('d', 'c', 'b', 'a');
97+
98+
Tree tree = satellite.treeFromTraversals(preorder, inorder);
99+
100+
assertThat(tree.preorder()).containsExactlyElementsOf(preorder);
101+
assertThat(tree.inorder()).containsExactlyElementsOf(inorder);
102+
assertThat(tree.postorder()).containsExactly('d', 'c', 'b', 'a');
103+
}
104+
105+
@Disabled("Remove to run test")
106+
@Test
107+
@DisplayName("Another degenerate binary tree")
108+
public void anotherDegenerateBinaryTree() {
109+
List<Character> preorder = List.of('a', 'b', 'c', 'd');
110+
List<Character> inorder = List.of('a', 'b', 'c', 'd');
111+
112+
Tree tree = satellite.treeFromTraversals(preorder, inorder);
113+
114+
assertThat(tree.preorder()).containsExactlyElementsOf(preorder);
115+
assertThat(tree.inorder()).containsExactlyElementsOf(inorder);
116+
assertThat(tree.postorder()).containsExactly('d', 'c', 'b', 'a');
117+
}
118+
119+
@Disabled("Remove to run test")
120+
@Test
121+
@DisplayName("Tree with many more items")
122+
public void treeWithManyMoreItems() {
123+
List<Character> preorder = List.of('a', 'b', 'd', 'g', 'h', 'c', 'e', 'f', 'i');
124+
List<Character> inorder = List.of('g', 'd', 'h', 'b', 'a', 'e', 'c', 'i', 'f');
125+
126+
Tree tree = satellite.treeFromTraversals(preorder, inorder);
127+
128+
assertThat(tree.preorder()).containsExactlyElementsOf(preorder);
129+
assertThat(tree.inorder()).containsExactlyElementsOf(inorder);
130+
assertThat(tree.postorder()).containsExactly('g', 'h', 'd', 'b', 'e', 'i', 'f', 'c', 'a');
131+
}
89132
}

0 commit comments

Comments
 (0)