From 5fddf03f87abdbd55aa6d1c370fd0440ebb7e924 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 20 Dec 2023 18:55:51 +0000 Subject: Check namespace can be depended on multiple times --- .../NamespaceDependencyLineariserTests.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/test/java') 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 @@ -55,6 +55,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( -- cgit v1.2.3