diff options
author | Kristóf Marussy <kristof@marussy.com> | 2023-06-18 14:12:20 +0200 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2023-06-18 14:12:20 +0200 |
commit | 2069579ce57dbaf04bff610f8151409e25bf114a (patch) | |
tree | 1f64df9abe0cdf3b5f87de44fcf1d4815fed970e /subprojects/store-query/src/test | |
parent | fix: further Dnf tests and fixes (diff) | |
download | refinery-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')
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; | |||
25 | import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; | 25 | import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; |
26 | 26 | ||
27 | class DnfBuilderLiteralEliminationTest { | 27 | class 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; | |||
18 | import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; | 18 | import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; |
19 | 19 | ||
20 | class DnfBuilderVariableUnificationTest { | 20 | class 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 @@ | |||
6 | package tools.refinery.store.query.dnf; | 6 | package tools.refinery.store.query.dnf; |
7 | 7 | ||
8 | import org.junit.jupiter.api.Test; | 8 | import org.junit.jupiter.api.Test; |
9 | import tools.refinery.store.query.term.NodeVariable; | ||
9 | import tools.refinery.store.query.term.ParameterDirection; | 10 | import tools.refinery.store.query.term.ParameterDirection; |
10 | import tools.refinery.store.query.term.Variable; | 11 | import tools.refinery.store.query.term.Variable; |
12 | import tools.refinery.store.query.view.AnySymbolView; | ||
11 | import tools.refinery.store.query.view.KeyOnlyView; | 13 | import tools.refinery.store.query.view.KeyOnlyView; |
12 | import tools.refinery.store.representation.Symbol; | 14 | import tools.refinery.store.representation.Symbol; |
13 | 15 | ||
@@ -16,9 +18,15 @@ import static org.hamcrest.Matchers.is; | |||
16 | import static tools.refinery.store.query.literal.Literals.not; | 18 | import static tools.refinery.store.query.literal.Literals.not; |
17 | 19 | ||
18 | class DnfToDefinitionStringTest { | 20 | class 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; | |||
21 | import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; | 21 | import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; |
22 | 22 | ||
23 | class TopologicalSortTest { | 23 | class 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; | |||
33 | import static tools.refinery.store.query.term.int_.IntTerms.*; | 33 | import static tools.refinery.store.query.term.int_.IntTerms.*; |
34 | 34 | ||
35 | class VariableDirectionTest { | 35 | class 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; | |||
8 | import org.junit.jupiter.api.Test; | 8 | import org.junit.jupiter.api.Test; |
9 | import tools.refinery.store.query.dnf.Dnf; | 9 | import tools.refinery.store.query.dnf.Dnf; |
10 | import tools.refinery.store.query.dnf.SymbolicParameter; | 10 | import tools.refinery.store.query.dnf.SymbolicParameter; |
11 | import tools.refinery.store.query.term.NodeVariable; | ||
11 | import tools.refinery.store.query.term.ParameterDirection; | 12 | import tools.refinery.store.query.term.ParameterDirection; |
12 | import tools.refinery.store.query.term.Variable; | 13 | import tools.refinery.store.query.term.Variable; |
14 | import tools.refinery.store.query.view.AnySymbolView; | ||
13 | import tools.refinery.store.query.view.KeyOnlyView; | 15 | import tools.refinery.store.query.view.KeyOnlyView; |
14 | import tools.refinery.store.representation.Symbol; | 16 | import tools.refinery.store.representation.Symbol; |
15 | 17 | ||
@@ -22,13 +24,15 @@ import static org.junit.jupiter.api.Assertions.assertThrows; | |||
22 | import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; | 24 | import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; |
23 | 25 | ||
24 | class StructurallyEqualToRawTest { | 26 | class 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 | ||
8 | import org.junit.jupiter.api.Test; | 8 | import org.junit.jupiter.api.Test; |
9 | import tools.refinery.store.query.dnf.Dnf; | 9 | import tools.refinery.store.query.dnf.Dnf; |
10 | import tools.refinery.store.query.term.NodeVariable; | ||
10 | import tools.refinery.store.query.term.ParameterDirection; | 11 | import tools.refinery.store.query.term.ParameterDirection; |
11 | import tools.refinery.store.query.term.Variable; | 12 | import tools.refinery.store.query.term.Variable; |
13 | import tools.refinery.store.query.view.AnySymbolView; | ||
12 | import tools.refinery.store.query.view.KeyOnlyView; | 14 | import tools.refinery.store.query.view.KeyOnlyView; |
13 | import tools.refinery.store.representation.Symbol; | 15 | import tools.refinery.store.representation.Symbol; |
14 | 16 | ||
@@ -18,13 +20,15 @@ import static org.junit.jupiter.api.Assertions.assertThrows; | |||
18 | import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; | 20 | import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; |
19 | 21 | ||
20 | class StructurallyEqualToTest { | 22 | class 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) |