diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-12-20 18:55:51 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-12-20 18:55:51 +0000 |
| commit | 5fddf03f87abdbd55aa6d1c370fd0440ebb7e924 (patch) | |
| tree | 70e46d3029fbe73d257045afac56317c2a0f7624 /src/test/java | |
| parent | 96488b724e05f547cdee70beb4037ea361503606 (diff) | |
Check namespace can be depended on multiple times
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/typechecker/NamespaceDependencyLineariserTests.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/typechecker/NamespaceDependencyLineariserTests.java b/src/test/java/org/shedlang/compiler/typechecker/NamespaceDependencyLineariserTests.java index 0492ce5d..bf2e9816 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/NamespaceDependencyLineariserTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/NamespaceDependencyLineariserTests.java @@ -56,6 +56,27 @@ public class NamespaceDependencyLineariserTests { } @Test + public void namespaceCanBeDependedOnMultipleTimes() { + var namespaces = List.of( + namespaceNode("A", List.of("Z")), + namespaceNode("B", List.of("Z")), + namespaceNode("Z", List.of()), + namespaceNode("C", List.of("Z")), + namespaceNode("D", List.of("Z")) + ); + + var result = NamespaceDependencyLineariser.orderNamespaces(namespaces); + + assertThat(result, isSequence( + isNamespaceNode("Z"), + isNamespaceNode("A"), + isNamespaceNode("B"), + isNamespaceNode("C"), + isNamespaceNode("D") + )); + } + + @Test public void whenNamespaceDirectlyDependsOnItselfThenErrorIsThrown() { var namespaces = List.of( namespaceNode("A", List.of("A")) |
