aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/language/src/test
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2024-01-31 02:00:09 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2024-01-31 18:45:13 +0100
commitc63126d2f1ce5f571c316b37e00fb43d2da7c7d3 (patch)
tree16e9dd04624565f7c9ccedd17749a9f264e89cb0 /subprojects/language/src/test
parentfix(build): avoid cyclic dependency (diff)
downloadrefinery-c63126d2f1ce5f571c316b37e00fb43d2da7c7d3.tar.gz
refinery-c63126d2f1ce5f571c316b37e00fb43d2da7c7d3.tar.zst
refinery-c63126d2f1ce5f571c316b37e00fb43d2da7c7d3.zip
refactor(language): module and node declarations
* New default file extension: .refinery (.problem is also supported). * Add module keyword for self-contained modules. * Rename indiv declarations to atom declaration. * Add node and multi declarations for explicitly declared nodes and multi-objects, respectively.
Diffstat (limited to 'subprojects/language/src/test')
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java2
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/formatting2/ProblemFormatterTest.java8
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java26
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java18
4 files changed, 28 insertions, 26 deletions
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java
index 72d57f54..17ae5fbb 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java
@@ -42,7 +42,7 @@ class ProblemParsingTest {
42 error invalidTaxStatus(Person p) <-> 42 error invalidTaxStatus(Person p) <->
43 taxStatus(p, CHILD), children(p, _q). 43 taxStatus(p, CHILD), children(p, _q).
44 44
45 indiv family. 45 atom family.
46 Family(family). 46 Family(family).
47 members(family, anne): true. 47 members(family, anne): true.
48 members(family, bob). 48 members(family, bob).
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/formatting2/ProblemFormatterTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/formatting2/ProblemFormatterTest.java
index f688d970..4a15f9de 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/formatting2/ProblemFormatterTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/formatting2/ProblemFormatterTest.java
@@ -183,8 +183,8 @@ class ProblemFormatterTest {
183 } 183 }
184 184
185 @Test 185 @Test
186 void individualDeclarationTest() { 186 void atomDeclarationTest() {
187 testFormatter(" indiv a , b . ", "indiv a, b.\n"); 187 testFormatter(" atom a , b . ", "atom a, b.\n");
188 } 188 }
189 189
190 @Test 190 @Test
@@ -194,7 +194,7 @@ class ProblemFormatterTest {
194 pred foo(node a). 194 pred foo(node a).
195 class Foo. 195 class Foo.
196 foo(n1, n2). 196 foo(n1, n2).
197 indiv i1. 197 atom i1.
198 !foo(i1, n1). 198 !foo(i1, n1).
199 pred bar(node a, node b). 199 pred bar(node a, node b).
200 pred quux(). 200 pred quux().
@@ -207,7 +207,7 @@ class ProblemFormatterTest {
207 class Foo. 207 class Foo.
208 208
209 foo(n1, n2). 209 foo(n1, n2).
210 indiv i1. 210 atom i1.
211 !foo(i1, n1). 211 !foo(i1, n1).
212 212
213 pred bar(node a, node b). 213 pred bar(node a, node b).
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java
index e76d2993..bc0320a6 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java
@@ -69,35 +69,35 @@ class NodeScopingTest {
69 } 69 }
70 70
71 @ParameterizedTest 71 @ParameterizedTest
72 @MethodSource("individualNodeReferenceSource") 72 @MethodSource("atomNodeReferenceSource")
73 void individualNodeInAssertionTest(String qualifiedNamePrefix, boolean namedProblem) { 73 void atomNodeInAssertionTest(String qualifiedNamePrefix, boolean namedProblem) {
74 var problem = parse(""" 74 var problem = parse("""
75 indiv a, b. 75 atom a, b.
76 pred predicate(node x, node y) <-> node(x). 76 pred predicate(node x, node y) <-> node(x).
77 predicate({PARAM}a, {PARAM}a). 77 predicate({PARAM}a, {PARAM}a).
78 ?predicate({PARAM}a, {PARAM}b). 78 ?predicate({PARAM}a, {PARAM}b).
79 """, qualifiedNamePrefix, namedProblem); 79 """, qualifiedNamePrefix, namedProblem);
80 assertThat(problem.getResourceErrors(), empty()); 80 assertThat(problem.getResourceErrors(), empty());
81 assertThat(problem.nodeNames(), empty()); 81 assertThat(problem.nodeNames(), empty());
82 assertThat(problem.assertion(0).arg(0).node(), equalTo(problem.individualNode("a"))); 82 assertThat(problem.assertion(0).arg(0).node(), equalTo(problem.atomNode("a")));
83 assertThat(problem.assertion(0).arg(1).node(), equalTo(problem.individualNode("a"))); 83 assertThat(problem.assertion(0).arg(1).node(), equalTo(problem.atomNode("a")));
84 assertThat(problem.assertion(1).arg(0).node(), equalTo(problem.individualNode("a"))); 84 assertThat(problem.assertion(1).arg(0).node(), equalTo(problem.atomNode("a")));
85 assertThat(problem.assertion(1).arg(1).node(), equalTo(problem.individualNode("b"))); 85 assertThat(problem.assertion(1).arg(1).node(), equalTo(problem.atomNode("b")));
86 } 86 }
87 87
88 @ParameterizedTest 88 @ParameterizedTest
89 @MethodSource("individualNodeReferenceSource") 89 @MethodSource("atomNodeReferenceSource")
90 void individualNodeInPredicateTest(String qualifiedNamePrefix, boolean namedProblem) { 90 void atomNodeInPredicateTest(String qualifiedNamePrefix, boolean namedProblem) {
91 var problem = parse(""" 91 var problem = parse("""
92 indiv b. 92 atom b.
93 pred predicate(node a) <-> node({PARAM}b). 93 pred predicate(node a) <-> node({PARAM}b).
94 """); 94 """, qualifiedNamePrefix, namedProblem);
95 assertThat(problem.getResourceErrors(), empty()); 95 assertThat(problem.getResourceErrors(), empty());
96 assertThat(problem.nodeNames(), empty()); 96 assertThat(problem.nodeNames(), empty());
97 assertThat(problem.pred("predicate").conj(0).lit(0).arg(0).node(), equalTo(problem.individualNode("b"))); 97 assertThat(problem.pred("predicate").conj(0).lit(0).arg(0).node(), equalTo(problem.atomNode("b")));
98 } 98 }
99 99
100 static Stream<Arguments> individualNodeReferenceSource() { 100 static Stream<Arguments> atomNodeReferenceSource() {
101 return Stream.of(Arguments.of("", false), Arguments.of("", true), Arguments.of("test::", true)); 101 return Stream.of(Arguments.of("", false), Arguments.of("", true), Arguments.of("test::", true));
102 } 102 }
103 103
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java
index 65675b6b..ad583f8e 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java
@@ -56,15 +56,16 @@ class ProblemSerializerTest {
56 var pred = createPred(); 56 var pred = createPred();
57 var node = ProblemFactory.eINSTANCE.createNode(); 57 var node = ProblemFactory.eINSTANCE.createNode();
58 node.setName("a"); 58 node.setName("a");
59 var individualDeclaration = ProblemFactory.eINSTANCE.createIndividualDeclaration(); 59 var atomDeclaration = ProblemFactory.eINSTANCE.createNodeDeclaration();
60 individualDeclaration.getNodes().add(node); 60 atomDeclaration.setKind(NodeKind.ATOM);
61 problem.getStatements().add(individualDeclaration); 61 atomDeclaration.getNodes().add(node);
62 problem.getStatements().add(atomDeclaration);
62 createAssertion(pred, node, value); 63 createAssertion(pred, node, value);
63 64
64 assertSerializedResult(""" 65 assertSerializedResult("""
65 pred foo(node p). 66 pred foo(node p).
66 67
67 indiv a. 68 atom a.
68 """ + serializedAssertion + "\n"); 69 """ + serializedAssertion + "\n");
69 } 70 }
70 71
@@ -79,15 +80,16 @@ class ProblemSerializerTest {
79 var pred = createPred(); 80 var pred = createPred();
80 var node = ProblemFactory.eINSTANCE.createNode(); 81 var node = ProblemFactory.eINSTANCE.createNode();
81 node.setName("a"); 82 node.setName("a");
82 var individualDeclaration = ProblemFactory.eINSTANCE.createIndividualDeclaration(); 83 var atomDeclaration = ProblemFactory.eINSTANCE.createNodeDeclaration();
83 individualDeclaration.getNodes().add(node); 84 atomDeclaration.setKind(NodeKind.ATOM);
84 problem.getStatements().add(individualDeclaration); 85 atomDeclaration.getNodes().add(node);
86 problem.getStatements().add(atomDeclaration);
85 createAssertion(pred, node, value, true); 87 createAssertion(pred, node, value, true);
86 88
87 assertSerializedResult(""" 89 assertSerializedResult("""
88 pred foo(node p). 90 pred foo(node p).
89 91
90 indiv a. 92 atom a.
91 default\040""" + serializedAssertion + "\n"); 93 default\040""" + serializedAssertion + "\n");
92 } 94 }
93 95