aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/store-query/src/test
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2023-06-18 14:12:20 +0200
committerLibravatar Kristóf Marussy <kristof@marussy.com>2023-06-18 14:12:20 +0200
commit2069579ce57dbaf04bff610f8151409e25bf114a (patch)
tree1f64df9abe0cdf3b5f87de44fcf1d4815fed970e /subprojects/store-query/src/test
parentfix: further Dnf tests and fixes (diff)
downloadrefinery-2069579ce57dbaf04bff610f8151409e25bf114a.tar.gz
refinery-2069579ce57dbaf04bff610f8151409e25bf114a.tar.zst
refinery-2069579ce57dbaf04bff610f8151409e25bf114a.zip
refactor: clean up Symbol constructor
Shorthad syntax for the most commonly used symbol types.
Diffstat (limited to 'subprojects/store-query/src/test')
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderLiteralEliminationTest.java2
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderVariableUnificationTest.java4
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfToDefinitionStringTest.java43
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/TopologicalSortTest.java2
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/VariableDirectionTest.java6
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToRawTest.java48
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToTest.java48
7 files changed, 34 insertions, 119 deletions
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderLiteralEliminationTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderLiteralEliminationTest.java
index 687b06db..e17496e3 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderLiteralEliminationTest.java
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderLiteralEliminationTest.java
@@ -25,7 +25,7 @@ import static tools.refinery.store.query.literal.Literals.not;
25import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; 25import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo;
26 26
27class DnfBuilderLiteralEliminationTest { 27class DnfBuilderLiteralEliminationTest {
28 private final Symbol<Boolean> friend = new Symbol<>("friend", 2, Boolean.class, false); 28 private final Symbol<Boolean> friend = Symbol.of("friend", 2);
29 private final SymbolView<Boolean> friendView = new KeyOnlyView<>(friend); 29 private final SymbolView<Boolean> friendView = new KeyOnlyView<>(friend);
30 private final NodeVariable p = Variable.of("p"); 30 private final NodeVariable p = Variable.of("p");
31 private final NodeVariable q = Variable.of("q"); 31 private final NodeVariable q = Variable.of("q");
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderVariableUnificationTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderVariableUnificationTest.java
index 4a85fe32..fc40c7b3 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderVariableUnificationTest.java
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderVariableUnificationTest.java
@@ -18,8 +18,8 @@ import static org.hamcrest.MatcherAssert.assertThat;
18import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; 18import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo;
19 19
20class DnfBuilderVariableUnificationTest { 20class DnfBuilderVariableUnificationTest {
21 private final Symbol<Boolean> friend = new Symbol<>("friend", 2, Boolean.class, false); 21 private final Symbol<Boolean> friend = Symbol.of("friend", 2);
22 private final Symbol<Boolean> children = new Symbol<>("children", 2, Boolean.class, false); 22 private final Symbol<Boolean> children = Symbol.of("children", 2);
23 private final SymbolView<Boolean> friendView = new KeyOnlyView<>(friend); 23 private final SymbolView<Boolean> friendView = new KeyOnlyView<>(friend);
24 private final SymbolView<Boolean> childrenView = new KeyOnlyView<>(children); 24 private final SymbolView<Boolean> childrenView = new KeyOnlyView<>(children);
25 25
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfToDefinitionStringTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfToDefinitionStringTest.java
index 63310a78..d75d7f17 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfToDefinitionStringTest.java
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfToDefinitionStringTest.java
@@ -6,8 +6,10 @@
6package tools.refinery.store.query.dnf; 6package tools.refinery.store.query.dnf;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.query.term.NodeVariable;
9import tools.refinery.store.query.term.ParameterDirection; 10import tools.refinery.store.query.term.ParameterDirection;
10import tools.refinery.store.query.term.Variable; 11import tools.refinery.store.query.term.Variable;
12import tools.refinery.store.query.view.AnySymbolView;
11import tools.refinery.store.query.view.KeyOnlyView; 13import tools.refinery.store.query.view.KeyOnlyView;
12import tools.refinery.store.representation.Symbol; 14import tools.refinery.store.representation.Symbol;
13 15
@@ -16,9 +18,15 @@ import static org.hamcrest.Matchers.is;
16import static tools.refinery.store.query.literal.Literals.not; 18import static tools.refinery.store.query.literal.Literals.not;
17 19
18class DnfToDefinitionStringTest { 20class DnfToDefinitionStringTest {
21 private static final Symbol<Boolean> person = Symbol.of("person", 1);
22 private static final Symbol<Boolean> friend = Symbol.of("friend", 2);
23 private static final AnySymbolView personView = new KeyOnlyView<>(person);
24 private static final AnySymbolView friendView = new KeyOnlyView<>(friend);
25 private static final NodeVariable p = Variable.of("p");
26 private static final NodeVariable q = Variable.of("q");
27
19 @Test 28 @Test
20 void noClausesTest() { 29 void noClausesTest() {
21 var p = Variable.of("p");
22 var dnf = Dnf.builder("Example").parameter(p).build(); 30 var dnf = Dnf.builder("Example").parameter(p).build();
23 31
24 assertThat(dnf.toDefinitionString(), is(""" 32 assertThat(dnf.toDefinitionString(), is("""
@@ -39,7 +47,6 @@ class DnfToDefinitionStringTest {
39 47
40 @Test 48 @Test
41 void emptyClauseTest() { 49 void emptyClauseTest() {
42 var p = Variable.of("p");
43 var dnf = Dnf.builder("Example").parameter(p, ParameterDirection.IN).clause().build(); 50 var dnf = Dnf.builder("Example").parameter(p, ParameterDirection.IN).clause().build();
44 51
45 assertThat(dnf.toDefinitionString(), is(""" 52 assertThat(dnf.toDefinitionString(), is("""
@@ -50,10 +57,6 @@ class DnfToDefinitionStringTest {
50 57
51 @Test 58 @Test
52 void relationViewPositiveTest() { 59 void relationViewPositiveTest() {
53 var p = Variable.of("p");
54 var q = Variable.of("q");
55 var friend = new Symbol<>("friend", 2, Boolean.class, false);
56 var friendView = new KeyOnlyView<>(friend);
57 var dnf = Dnf.builder("Example").parameter(p).clause(friendView.call(p, q)).build(); 60 var dnf = Dnf.builder("Example").parameter(p).clause(friendView.call(p, q)).build();
58 61
59 assertThat(dnf.toDefinitionString(), is(""" 62 assertThat(dnf.toDefinitionString(), is("""
@@ -64,10 +67,6 @@ class DnfToDefinitionStringTest {
64 67
65 @Test 68 @Test
66 void relationViewNegativeTest() { 69 void relationViewNegativeTest() {
67 var p = Variable.of("p");
68 var q = Variable.of("q");
69 var friend = new Symbol<>("friend", 2, Boolean.class, false);
70 var friendView = new KeyOnlyView<>(friend);
71 var dnf = Dnf.builder("Example") 70 var dnf = Dnf.builder("Example")
72 .parameter(p, ParameterDirection.IN) 71 .parameter(p, ParameterDirection.IN)
73 .clause(not(friendView.call(p, q))) 72 .clause(not(friendView.call(p, q)))
@@ -81,10 +80,6 @@ class DnfToDefinitionStringTest {
81 80
82 @Test 81 @Test
83 void relationViewTransitiveTest() { 82 void relationViewTransitiveTest() {
84 var p = Variable.of("p");
85 var q = Variable.of("q");
86 var friend = new Symbol<>("friend", 2, Boolean.class, false);
87 var friendView = new KeyOnlyView<>(friend);
88 var dnf = Dnf.builder("Example").parameter(p).clause(friendView.callTransitive(p, q)).build(); 83 var dnf = Dnf.builder("Example").parameter(p).clause(friendView.callTransitive(p, q)).build();
89 84
90 assertThat(dnf.toDefinitionString(), is(""" 85 assertThat(dnf.toDefinitionString(), is("""
@@ -95,10 +90,6 @@ class DnfToDefinitionStringTest {
95 90
96 @Test 91 @Test
97 void multipleParametersTest() { 92 void multipleParametersTest() {
98 var p = Variable.of("p");
99 var q = Variable.of("q");
100 var friend = new Symbol<>("friend", 2, Boolean.class, false);
101 var friendView = new KeyOnlyView<>(friend);
102 var dnf = Dnf.builder("Example").parameters(p, q).clause(friendView.call(p, q)).build(); 93 var dnf = Dnf.builder("Example").parameters(p, q).clause(friendView.call(p, q)).build();
103 94
104 assertThat(dnf.toDefinitionString(), is(""" 95 assertThat(dnf.toDefinitionString(), is("""
@@ -109,12 +100,6 @@ class DnfToDefinitionStringTest {
109 100
110 @Test 101 @Test
111 void multipleLiteralsTest() { 102 void multipleLiteralsTest() {
112 var p = Variable.of("p");
113 var q = Variable.of("q");
114 var person = new Symbol<>("person", 1, Boolean.class, false);
115 var personView = new KeyOnlyView<>(person);
116 var friend = new Symbol<>("friend", 2, Boolean.class, false);
117 var friendView = new KeyOnlyView<>(friend);
118 var dnf = Dnf.builder("Example") 103 var dnf = Dnf.builder("Example")
119 .parameter(p) 104 .parameter(p)
120 .clause( 105 .clause(
@@ -134,10 +119,6 @@ class DnfToDefinitionStringTest {
134 119
135 @Test 120 @Test
136 void multipleClausesTest() { 121 void multipleClausesTest() {
137 var p = Variable.of("p");
138 var q = Variable.of("q");
139 var friend = new Symbol<>("friend", 2, Boolean.class, false);
140 var friendView = new KeyOnlyView<>(friend);
141 var dnf = Dnf.builder("Example") 122 var dnf = Dnf.builder("Example")
142 .parameter(p) 123 .parameter(p)
143 .clause(friendView.call(p, q)) 124 .clause(friendView.call(p, q))
@@ -154,14 +135,8 @@ class DnfToDefinitionStringTest {
154 135
155 @Test 136 @Test
156 void dnfTest() { 137 void dnfTest() {
157 var p = Variable.of("p");
158 var q = Variable.of("q");
159 var r = Variable.of("r"); 138 var r = Variable.of("r");
160 var s = Variable.of("s"); 139 var s = Variable.of("s");
161 var person = new Symbol<>("person", 1, Boolean.class, false);
162 var personView = new KeyOnlyView<>(person);
163 var friend = new Symbol<>("friend", 2, Boolean.class, false);
164 var friendView = new KeyOnlyView<>(friend);
165 var called = Dnf.builder("Called").parameters(r, s).clause(friendView.call(r, s)).build(); 140 var called = Dnf.builder("Called").parameters(r, s).clause(friendView.call(r, s)).build();
166 var dnf = Dnf.builder("Example") 141 var dnf = Dnf.builder("Example")
167 .parameter(p) 142 .parameter(p)
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/TopologicalSortTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/TopologicalSortTest.java
index 6d53f184..e22dbb21 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/TopologicalSortTest.java
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/TopologicalSortTest.java
@@ -21,7 +21,7 @@ import static tools.refinery.store.query.literal.Literals.not;
21import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; 21import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo;
22 22
23class TopologicalSortTest { 23class TopologicalSortTest {
24 private static final Symbol<Boolean> friend = new Symbol<>("friend", 2, Boolean.class, false); 24 private static final Symbol<Boolean> friend = Symbol.of("friend", 2);
25 private static final AnySymbolView friendView = new KeyOnlyView<>(friend); 25 private static final AnySymbolView friendView = new KeyOnlyView<>(friend);
26 private static final Dnf example = Dnf.of("example", builder -> { 26 private static final Dnf example = Dnf.of("example", builder -> {
27 var a = builder.parameter("a", ParameterDirection.IN); 27 var a = builder.parameter("a", ParameterDirection.IN);
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/VariableDirectionTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/VariableDirectionTest.java
index 0a44664e..3608d09e 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/VariableDirectionTest.java
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/VariableDirectionTest.java
@@ -33,9 +33,9 @@ import static tools.refinery.store.query.literal.Literals.not;
33import static tools.refinery.store.query.term.int_.IntTerms.*; 33import static tools.refinery.store.query.term.int_.IntTerms.*;
34 34
35class VariableDirectionTest { 35class VariableDirectionTest {
36 private static final Symbol<Boolean> person = new Symbol<>("Person", 1, Boolean.class, false); 36 private static final Symbol<Boolean> person = Symbol.of("Person", 1);
37 private static final Symbol<Boolean> friend = new Symbol<>("friend", 2, Boolean.class, false); 37 private static final Symbol<Boolean> friend = Symbol.of("friend", 2);
38 private static final Symbol<Integer> age = new Symbol<>("age", 1, Integer.class, null); 38 private static final Symbol<Integer> age = Symbol.of("age", 1, Integer.class);
39 private static final AnySymbolView personView = new KeyOnlyView<>(person); 39 private static final AnySymbolView personView = new KeyOnlyView<>(person);
40 private static final AnySymbolView friendView = new KeyOnlyView<>(friend); 40 private static final AnySymbolView friendView = new KeyOnlyView<>(friend);
41 private static final AnySymbolView ageView = new FunctionView<>(age); 41 private static final AnySymbolView ageView = new FunctionView<>(age);
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToRawTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToRawTest.java
index 07a55ff3..d447e99c 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToRawTest.java
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToRawTest.java
@@ -8,8 +8,10 @@ package tools.refinery.store.query.tests;
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.query.dnf.Dnf; 9import tools.refinery.store.query.dnf.Dnf;
10import tools.refinery.store.query.dnf.SymbolicParameter; 10import tools.refinery.store.query.dnf.SymbolicParameter;
11import tools.refinery.store.query.term.NodeVariable;
11import tools.refinery.store.query.term.ParameterDirection; 12import tools.refinery.store.query.term.ParameterDirection;
12import tools.refinery.store.query.term.Variable; 13import tools.refinery.store.query.term.Variable;
14import tools.refinery.store.query.view.AnySymbolView;
13import tools.refinery.store.query.view.KeyOnlyView; 15import tools.refinery.store.query.view.KeyOnlyView;
14import tools.refinery.store.representation.Symbol; 16import tools.refinery.store.representation.Symbol;
15 17
@@ -22,13 +24,15 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
22import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; 24import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo;
23 25
24class StructurallyEqualToRawTest { 26class StructurallyEqualToRawTest {
27 private static final Symbol<Boolean> person = Symbol.of("Person", 1);
28 private static final Symbol<Boolean> friend = Symbol.of("friend", 2);
29 private static final AnySymbolView personView = new KeyOnlyView<>(person);
30 private static final AnySymbolView friendView = new KeyOnlyView<>(friend);
31 private static final NodeVariable p = Variable.of("p");
32 private static final NodeVariable q = Variable.of("q");
33
25 @Test 34 @Test
26 void flatEqualsTest() { 35 void flatEqualsTest() {
27 var p = Variable.of("p");
28 var q = Variable.of("q");
29 var person = new Symbol<>("Person", 1, Boolean.class, false);
30 var personView = new KeyOnlyView<>(person);
31
32 var actual = Dnf.builder("Actual").parameters(p).clause(personView.call(p)).build(); 36 var actual = Dnf.builder("Actual").parameters(p).clause(personView.call(p)).build();
33 37
34 assertThat(actual, structurallyEqualTo( 38 assertThat(actual, structurallyEqualTo(
@@ -39,11 +43,6 @@ class StructurallyEqualToRawTest {
39 43
40 @Test 44 @Test
41 void flatNotEqualsTest() { 45 void flatNotEqualsTest() {
42 var p = Variable.of("p");
43 var q = Variable.of("q");
44 var friend = new Symbol<>("friend", 2, Boolean.class, false);
45 var friendView = new KeyOnlyView<>(friend);
46
47 var actual = Dnf.builder("Actual").parameters(p).clause(friendView.call(p, q)).build(); 46 var actual = Dnf.builder("Actual").parameters(p).clause(friendView.call(p, q)).build();
48 47
49 var assertion = structurallyEqualTo( 48 var assertion = structurallyEqualTo(
@@ -55,11 +54,6 @@ class StructurallyEqualToRawTest {
55 54
56 @Test 55 @Test
57 void deepEqualsTest() { 56 void deepEqualsTest() {
58 var p = Variable.of("p");
59 var q = Variable.of("q");
60 var person = new Symbol<>("Person", 1, Boolean.class, false);
61 var personView = new KeyOnlyView<>(person);
62
63 var actual = Dnf.builder("Actual").parameters(q).clause( 57 var actual = Dnf.builder("Actual").parameters(q).clause(
64 Dnf.builder("Actual2").parameters(p).clause(personView.call(p)).build().call(q) 58 Dnf.builder("Actual2").parameters(p).clause(personView.call(p)).build().call(q)
65 ).build(); 59 ).build();
@@ -76,11 +70,6 @@ class StructurallyEqualToRawTest {
76 70
77 @Test 71 @Test
78 void deepNotEqualsTest() { 72 void deepNotEqualsTest() {
79 var p = Variable.of("p");
80 var q = Variable.of("q");
81 var friend = new Symbol<>("friend", 2, Boolean.class, false);
82 var friendView = new KeyOnlyView<>(friend);
83
84 var actual = Dnf.builder("Actual").parameter(q).clause( 73 var actual = Dnf.builder("Actual").parameter(q).clause(
85 Dnf.builder("Actual2").parameters(p).clause(friendView.call(p, q)).build().call(q) 74 Dnf.builder("Actual2").parameters(p).clause(friendView.call(p, q)).build().call(q)
86 ).build(); 75 ).build();
@@ -103,11 +92,6 @@ class StructurallyEqualToRawTest {
103 92
104 @Test 93 @Test
105 void parameterListLengthMismatchTest() { 94 void parameterListLengthMismatchTest() {
106 var p = Variable.of("p");
107 var q = Variable.of("q");
108 var friend = new Symbol<>("friend", 2, Boolean.class, false);
109 var friendView = new KeyOnlyView<>(friend);
110
111 var actual = Dnf.builder("Actual").parameters(p, q).clause( 95 var actual = Dnf.builder("Actual").parameters(p, q).clause(
112 friendView.call(p, q) 96 friendView.call(p, q)
113 ).build(); 97 ).build();
@@ -122,10 +106,6 @@ class StructurallyEqualToRawTest {
122 106
123 @Test 107 @Test
124 void parameterDirectionMismatchTest() { 108 void parameterDirectionMismatchTest() {
125 var p = Variable.of("p");
126 var person = new Symbol<>("Person", 1, Boolean.class, false);
127 var personView = new KeyOnlyView<>(person);
128
129 var actual = Dnf.builder("Actual").parameter(p, ParameterDirection.IN).clause( 109 var actual = Dnf.builder("Actual").parameter(p, ParameterDirection.IN).clause(
130 personView.call(p) 110 personView.call(p)
131 ).build(); 111 ).build();
@@ -140,11 +120,6 @@ class StructurallyEqualToRawTest {
140 120
141 @Test 121 @Test
142 void clauseCountMismatchTest() { 122 void clauseCountMismatchTest() {
143 var p = Variable.of("p");
144 var q = Variable.of("q");
145 var friend = new Symbol<>("friend", 2, Boolean.class, false);
146 var friendView = new KeyOnlyView<>(friend);
147
148 var actual = Dnf.builder("Actual").parameters(p, q).clause( 123 var actual = Dnf.builder("Actual").parameters(p, q).clause(
149 friendView.call(p, q) 124 friendView.call(p, q)
150 ).build(); 125 ).build();
@@ -165,11 +140,6 @@ class StructurallyEqualToRawTest {
165 140
166 @Test 141 @Test
167 void literalCountMismatchTest() { 142 void literalCountMismatchTest() {
168 var p = Variable.of("p");
169 var q = Variable.of("q");
170 var friend = new Symbol<>("friend", 2, Boolean.class, false);
171 var friendView = new KeyOnlyView<>(friend);
172
173 var actual = Dnf.builder("Actual").parameters(p, q).clause( 143 var actual = Dnf.builder("Actual").parameters(p, q).clause(
174 friendView.call(p, q) 144 friendView.call(p, q)
175 ).build(); 145 ).build();
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToTest.java
index e2983a3a..f716b805 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToTest.java
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToTest.java
@@ -7,8 +7,10 @@ package tools.refinery.store.query.tests;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.query.dnf.Dnf; 9import tools.refinery.store.query.dnf.Dnf;
10import tools.refinery.store.query.term.NodeVariable;
10import tools.refinery.store.query.term.ParameterDirection; 11import tools.refinery.store.query.term.ParameterDirection;
11import tools.refinery.store.query.term.Variable; 12import tools.refinery.store.query.term.Variable;
13import tools.refinery.store.query.view.AnySymbolView;
12import tools.refinery.store.query.view.KeyOnlyView; 14import tools.refinery.store.query.view.KeyOnlyView;
13import tools.refinery.store.representation.Symbol; 15import tools.refinery.store.representation.Symbol;
14 16
@@ -18,13 +20,15 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
18import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; 20import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo;
19 21
20class StructurallyEqualToTest { 22class StructurallyEqualToTest {
23 private static final Symbol<Boolean> person = Symbol.of("Person", 1);
24 private static final Symbol<Boolean> friend = Symbol.of("friend", 2);
25 private static final AnySymbolView personView = new KeyOnlyView<>(person);
26 private static final AnySymbolView friendView = new KeyOnlyView<>(friend);
27 private static final NodeVariable p = Variable.of("p");
28 private static final NodeVariable q = Variable.of("q");
29
21 @Test 30 @Test
22 void flatEqualsTest() { 31 void flatEqualsTest() {
23 var p = Variable.of("p");
24 var q = Variable.of("q");
25 var person = new Symbol<>("Person", 1, Boolean.class, false);
26 var personView = new KeyOnlyView<>(person);
27
28 var expected = Dnf.builder("Expected").parameters(q).clause(personView.call(q)).build(); 32 var expected = Dnf.builder("Expected").parameters(q).clause(personView.call(q)).build();
29 var actual = Dnf.builder("Actual").parameters(p).clause(personView.call(p)).build(); 33 var actual = Dnf.builder("Actual").parameters(p).clause(personView.call(p)).build();
30 34
@@ -33,11 +37,6 @@ class StructurallyEqualToTest {
33 37
34 @Test 38 @Test
35 void flatNotEqualsTest() { 39 void flatNotEqualsTest() {
36 var p = Variable.of("p");
37 var q = Variable.of("q");
38 var friend = new Symbol<>("friend", 2, Boolean.class, false);
39 var friendView = new KeyOnlyView<>(friend);
40
41 var expected = Dnf.builder("Expected").parameters(q).clause(friendView.call(q, q)).build(); 40 var expected = Dnf.builder("Expected").parameters(q).clause(friendView.call(q, q)).build();
42 var actual = Dnf.builder("Actual").parameters(p).clause(friendView.call(p, q)).build(); 41 var actual = Dnf.builder("Actual").parameters(p).clause(friendView.call(p, q)).build();
43 42
@@ -47,11 +46,6 @@ class StructurallyEqualToTest {
47 46
48 @Test 47 @Test
49 void deepEqualsTest() { 48 void deepEqualsTest() {
50 var p = Variable.of("p");
51 var q = Variable.of("q");
52 var person = new Symbol<>("Person", 1, Boolean.class, false);
53 var personView = new KeyOnlyView<>(person);
54
55 var expected = Dnf.builder("Expected").parameters(q).clause( 49 var expected = Dnf.builder("Expected").parameters(q).clause(
56 Dnf.builder("Expected2").parameters(p).clause(personView.call(p)).build().call(q) 50 Dnf.builder("Expected2").parameters(p).clause(personView.call(p)).build().call(q)
57 ).build(); 51 ).build();
@@ -64,11 +58,6 @@ class StructurallyEqualToTest {
64 58
65 @Test 59 @Test
66 void deepNotEqualsTest() { 60 void deepNotEqualsTest() {
67 var p = Variable.of("p");
68 var q = Variable.of("q");
69 var friend = new Symbol<>("friend", 2, Boolean.class, false);
70 var friendView = new KeyOnlyView<>(friend);
71
72 var expected = Dnf.builder("Expected").parameters(q).clause( 61 var expected = Dnf.builder("Expected").parameters(q).clause(
73 Dnf.builder("Expected2").parameters(p).clause(friendView.call(p, p)).build().call(q) 62 Dnf.builder("Expected2").parameters(p).clause(friendView.call(p, p)).build().call(q)
74 ).build(); 63 ).build();
@@ -83,11 +72,6 @@ class StructurallyEqualToTest {
83 72
84 @Test 73 @Test
85 void parameterListLengthMismatchTest() { 74 void parameterListLengthMismatchTest() {
86 var p = Variable.of("p");
87 var q = Variable.of("q");
88 var friend = new Symbol<>("friend", 2, Boolean.class, false);
89 var friendView = new KeyOnlyView<>(friend);
90
91 var expected = Dnf.builder("Expected").parameter(p).clause( 75 var expected = Dnf.builder("Expected").parameter(p).clause(
92 friendView.call(p, p) 76 friendView.call(p, p)
93 ).build(); 77 ).build();
@@ -101,10 +85,6 @@ class StructurallyEqualToTest {
101 85
102 @Test 86 @Test
103 void parameterDirectionMismatchTest() { 87 void parameterDirectionMismatchTest() {
104 var p = Variable.of("p");
105 var person = new Symbol<>("Person", 1, Boolean.class, false);
106 var personView = new KeyOnlyView<>(person);
107
108 var expected = Dnf.builder("Expected").parameter(p, ParameterDirection.OUT).clause( 88 var expected = Dnf.builder("Expected").parameter(p, ParameterDirection.OUT).clause(
109 personView.call(p) 89 personView.call(p)
110 ).build(); 90 ).build();
@@ -118,11 +98,6 @@ class StructurallyEqualToTest {
118 98
119 @Test 99 @Test
120 void clauseCountMismatchTest() { 100 void clauseCountMismatchTest() {
121 var p = Variable.of("p");
122 var q = Variable.of("q");
123 var friend = new Symbol<>("friend", 2, Boolean.class, false);
124 var friendView = new KeyOnlyView<>(friend);
125
126 var expected = Dnf.builder("Expected") 101 var expected = Dnf.builder("Expected")
127 .parameters(p, q) 102 .parameters(p, q)
128 .clause(friendView.call(p, q)) 103 .clause(friendView.call(p, q))
@@ -138,11 +113,6 @@ class StructurallyEqualToTest {
138 113
139 @Test 114 @Test
140 void literalCountMismatchTest() { 115 void literalCountMismatchTest() {
141 var p = Variable.of("p");
142 var q = Variable.of("q");
143 var friend = new Symbol<>("friend", 2, Boolean.class, false);
144 var friendView = new KeyOnlyView<>(friend);
145
146 var expected = Dnf.builder("Expected").parameters(p, q).clause( 116 var expected = Dnf.builder("Expected").parameters(p, q).clause(
147 friendView.call(p, q), 117 friendView.call(p, q),
148 friendView.call(q, p) 118 friendView.call(q, p)