From 2069579ce57dbaf04bff610f8151409e25bf114a Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Sun, 18 Jun 2023 14:12:20 +0200 Subject: refactor: clean up Symbol constructor Shorthad syntax for the most commonly used symbol types. --- .../dnf/DnfBuilderLiteralEliminationTest.java | 2 +- .../dnf/DnfBuilderVariableUnificationTest.java | 4 +- .../store/query/dnf/DnfToDefinitionStringTest.java | 43 ++++--------------- .../store/query/dnf/TopologicalSortTest.java | 2 +- .../store/query/dnf/VariableDirectionTest.java | 6 +-- .../query/tests/StructurallyEqualToRawTest.java | 48 ++++------------------ .../store/query/tests/StructurallyEqualToTest.java | 48 ++++------------------ 7 files changed, 34 insertions(+), 119 deletions(-) (limited to 'subprojects/store-query/src/test/java') 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; import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; class DnfBuilderLiteralEliminationTest { - private final Symbol friend = new Symbol<>("friend", 2, Boolean.class, false); + private final Symbol friend = Symbol.of("friend", 2); private final SymbolView friendView = new KeyOnlyView<>(friend); private final NodeVariable p = Variable.of("p"); 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; import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; class DnfBuilderVariableUnificationTest { - private final Symbol friend = new Symbol<>("friend", 2, Boolean.class, false); - private final Symbol children = new Symbol<>("children", 2, Boolean.class, false); + private final Symbol friend = Symbol.of("friend", 2); + private final Symbol children = Symbol.of("children", 2); private final SymbolView friendView = new KeyOnlyView<>(friend); private final SymbolView childrenView = new KeyOnlyView<>(children); 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 @@ package tools.refinery.store.query.dnf; import org.junit.jupiter.api.Test; +import tools.refinery.store.query.term.NodeVariable; import tools.refinery.store.query.term.ParameterDirection; import tools.refinery.store.query.term.Variable; +import tools.refinery.store.query.view.AnySymbolView; import tools.refinery.store.query.view.KeyOnlyView; import tools.refinery.store.representation.Symbol; @@ -16,9 +18,15 @@ import static org.hamcrest.Matchers.is; import static tools.refinery.store.query.literal.Literals.not; class DnfToDefinitionStringTest { + private static final Symbol person = Symbol.of("person", 1); + private static final Symbol friend = Symbol.of("friend", 2); + private static final AnySymbolView personView = new KeyOnlyView<>(person); + private static final AnySymbolView friendView = new KeyOnlyView<>(friend); + private static final NodeVariable p = Variable.of("p"); + private static final NodeVariable q = Variable.of("q"); + @Test void noClausesTest() { - var p = Variable.of("p"); var dnf = Dnf.builder("Example").parameter(p).build(); assertThat(dnf.toDefinitionString(), is(""" @@ -39,7 +47,6 @@ class DnfToDefinitionStringTest { @Test void emptyClauseTest() { - var p = Variable.of("p"); var dnf = Dnf.builder("Example").parameter(p, ParameterDirection.IN).clause().build(); assertThat(dnf.toDefinitionString(), is(""" @@ -50,10 +57,6 @@ class DnfToDefinitionStringTest { @Test void relationViewPositiveTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var friend = new Symbol<>("friend", 2, Boolean.class, false); - var friendView = new KeyOnlyView<>(friend); var dnf = Dnf.builder("Example").parameter(p).clause(friendView.call(p, q)).build(); assertThat(dnf.toDefinitionString(), is(""" @@ -64,10 +67,6 @@ class DnfToDefinitionStringTest { @Test void relationViewNegativeTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var friend = new Symbol<>("friend", 2, Boolean.class, false); - var friendView = new KeyOnlyView<>(friend); var dnf = Dnf.builder("Example") .parameter(p, ParameterDirection.IN) .clause(not(friendView.call(p, q))) @@ -81,10 +80,6 @@ class DnfToDefinitionStringTest { @Test void relationViewTransitiveTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var friend = new Symbol<>("friend", 2, Boolean.class, false); - var friendView = new KeyOnlyView<>(friend); var dnf = Dnf.builder("Example").parameter(p).clause(friendView.callTransitive(p, q)).build(); assertThat(dnf.toDefinitionString(), is(""" @@ -95,10 +90,6 @@ class DnfToDefinitionStringTest { @Test void multipleParametersTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var friend = new Symbol<>("friend", 2, Boolean.class, false); - var friendView = new KeyOnlyView<>(friend); var dnf = Dnf.builder("Example").parameters(p, q).clause(friendView.call(p, q)).build(); assertThat(dnf.toDefinitionString(), is(""" @@ -109,12 +100,6 @@ class DnfToDefinitionStringTest { @Test void multipleLiteralsTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var person = new Symbol<>("person", 1, Boolean.class, false); - var personView = new KeyOnlyView<>(person); - var friend = new Symbol<>("friend", 2, Boolean.class, false); - var friendView = new KeyOnlyView<>(friend); var dnf = Dnf.builder("Example") .parameter(p) .clause( @@ -134,10 +119,6 @@ class DnfToDefinitionStringTest { @Test void multipleClausesTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var friend = new Symbol<>("friend", 2, Boolean.class, false); - var friendView = new KeyOnlyView<>(friend); var dnf = Dnf.builder("Example") .parameter(p) .clause(friendView.call(p, q)) @@ -154,14 +135,8 @@ class DnfToDefinitionStringTest { @Test void dnfTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); var r = Variable.of("r"); var s = Variable.of("s"); - var person = new Symbol<>("person", 1, Boolean.class, false); - var personView = new KeyOnlyView<>(person); - var friend = new Symbol<>("friend", 2, Boolean.class, false); - var friendView = new KeyOnlyView<>(friend); var called = Dnf.builder("Called").parameters(r, s).clause(friendView.call(r, s)).build(); var dnf = Dnf.builder("Example") .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; import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; class TopologicalSortTest { - private static final Symbol friend = new Symbol<>("friend", 2, Boolean.class, false); + private static final Symbol friend = Symbol.of("friend", 2); private static final AnySymbolView friendView = new KeyOnlyView<>(friend); private static final Dnf example = Dnf.of("example", builder -> { 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; import static tools.refinery.store.query.term.int_.IntTerms.*; class VariableDirectionTest { - private static final Symbol person = new Symbol<>("Person", 1, Boolean.class, false); - private static final Symbol friend = new Symbol<>("friend", 2, Boolean.class, false); - private static final Symbol age = new Symbol<>("age", 1, Integer.class, null); + private static final Symbol person = Symbol.of("Person", 1); + private static final Symbol friend = Symbol.of("friend", 2); + private static final Symbol age = Symbol.of("age", 1, Integer.class); private static final AnySymbolView personView = new KeyOnlyView<>(person); private static final AnySymbolView friendView = new KeyOnlyView<>(friend); 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; import org.junit.jupiter.api.Test; import tools.refinery.store.query.dnf.Dnf; import tools.refinery.store.query.dnf.SymbolicParameter; +import tools.refinery.store.query.term.NodeVariable; import tools.refinery.store.query.term.ParameterDirection; import tools.refinery.store.query.term.Variable; +import tools.refinery.store.query.view.AnySymbolView; import tools.refinery.store.query.view.KeyOnlyView; import tools.refinery.store.representation.Symbol; @@ -22,13 +24,15 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; class StructurallyEqualToRawTest { + private static final Symbol person = Symbol.of("Person", 1); + private static final Symbol friend = Symbol.of("friend", 2); + private static final AnySymbolView personView = new KeyOnlyView<>(person); + private static final AnySymbolView friendView = new KeyOnlyView<>(friend); + private static final NodeVariable p = Variable.of("p"); + private static final NodeVariable q = Variable.of("q"); + @Test void flatEqualsTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var person = new Symbol<>("Person", 1, Boolean.class, false); - var personView = new KeyOnlyView<>(person); - var actual = Dnf.builder("Actual").parameters(p).clause(personView.call(p)).build(); assertThat(actual, structurallyEqualTo( @@ -39,11 +43,6 @@ class StructurallyEqualToRawTest { @Test void flatNotEqualsTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var friend = new Symbol<>("friend", 2, Boolean.class, false); - var friendView = new KeyOnlyView<>(friend); - var actual = Dnf.builder("Actual").parameters(p).clause(friendView.call(p, q)).build(); var assertion = structurallyEqualTo( @@ -55,11 +54,6 @@ class StructurallyEqualToRawTest { @Test void deepEqualsTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var person = new Symbol<>("Person", 1, Boolean.class, false); - var personView = new KeyOnlyView<>(person); - var actual = Dnf.builder("Actual").parameters(q).clause( Dnf.builder("Actual2").parameters(p).clause(personView.call(p)).build().call(q) ).build(); @@ -76,11 +70,6 @@ class StructurallyEqualToRawTest { @Test void deepNotEqualsTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var friend = new Symbol<>("friend", 2, Boolean.class, false); - var friendView = new KeyOnlyView<>(friend); - var actual = Dnf.builder("Actual").parameter(q).clause( Dnf.builder("Actual2").parameters(p).clause(friendView.call(p, q)).build().call(q) ).build(); @@ -103,11 +92,6 @@ class StructurallyEqualToRawTest { @Test void parameterListLengthMismatchTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var friend = new Symbol<>("friend", 2, Boolean.class, false); - var friendView = new KeyOnlyView<>(friend); - var actual = Dnf.builder("Actual").parameters(p, q).clause( friendView.call(p, q) ).build(); @@ -122,10 +106,6 @@ class StructurallyEqualToRawTest { @Test void parameterDirectionMismatchTest() { - var p = Variable.of("p"); - var person = new Symbol<>("Person", 1, Boolean.class, false); - var personView = new KeyOnlyView<>(person); - var actual = Dnf.builder("Actual").parameter(p, ParameterDirection.IN).clause( personView.call(p) ).build(); @@ -140,11 +120,6 @@ class StructurallyEqualToRawTest { @Test void clauseCountMismatchTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var friend = new Symbol<>("friend", 2, Boolean.class, false); - var friendView = new KeyOnlyView<>(friend); - var actual = Dnf.builder("Actual").parameters(p, q).clause( friendView.call(p, q) ).build(); @@ -165,11 +140,6 @@ class StructurallyEqualToRawTest { @Test void literalCountMismatchTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var friend = new Symbol<>("friend", 2, Boolean.class, false); - var friendView = new KeyOnlyView<>(friend); - var actual = Dnf.builder("Actual").parameters(p, q).clause( friendView.call(p, q) ).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; import org.junit.jupiter.api.Test; import tools.refinery.store.query.dnf.Dnf; +import tools.refinery.store.query.term.NodeVariable; import tools.refinery.store.query.term.ParameterDirection; import tools.refinery.store.query.term.Variable; +import tools.refinery.store.query.view.AnySymbolView; import tools.refinery.store.query.view.KeyOnlyView; import tools.refinery.store.representation.Symbol; @@ -18,13 +20,15 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; class StructurallyEqualToTest { + private static final Symbol person = Symbol.of("Person", 1); + private static final Symbol friend = Symbol.of("friend", 2); + private static final AnySymbolView personView = new KeyOnlyView<>(person); + private static final AnySymbolView friendView = new KeyOnlyView<>(friend); + private static final NodeVariable p = Variable.of("p"); + private static final NodeVariable q = Variable.of("q"); + @Test void flatEqualsTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var person = new Symbol<>("Person", 1, Boolean.class, false); - var personView = new KeyOnlyView<>(person); - var expected = Dnf.builder("Expected").parameters(q).clause(personView.call(q)).build(); var actual = Dnf.builder("Actual").parameters(p).clause(personView.call(p)).build(); @@ -33,11 +37,6 @@ class StructurallyEqualToTest { @Test void flatNotEqualsTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var friend = new Symbol<>("friend", 2, Boolean.class, false); - var friendView = new KeyOnlyView<>(friend); - var expected = Dnf.builder("Expected").parameters(q).clause(friendView.call(q, q)).build(); var actual = Dnf.builder("Actual").parameters(p).clause(friendView.call(p, q)).build(); @@ -47,11 +46,6 @@ class StructurallyEqualToTest { @Test void deepEqualsTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var person = new Symbol<>("Person", 1, Boolean.class, false); - var personView = new KeyOnlyView<>(person); - var expected = Dnf.builder("Expected").parameters(q).clause( Dnf.builder("Expected2").parameters(p).clause(personView.call(p)).build().call(q) ).build(); @@ -64,11 +58,6 @@ class StructurallyEqualToTest { @Test void deepNotEqualsTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var friend = new Symbol<>("friend", 2, Boolean.class, false); - var friendView = new KeyOnlyView<>(friend); - var expected = Dnf.builder("Expected").parameters(q).clause( Dnf.builder("Expected2").parameters(p).clause(friendView.call(p, p)).build().call(q) ).build(); @@ -83,11 +72,6 @@ class StructurallyEqualToTest { @Test void parameterListLengthMismatchTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var friend = new Symbol<>("friend", 2, Boolean.class, false); - var friendView = new KeyOnlyView<>(friend); - var expected = Dnf.builder("Expected").parameter(p).clause( friendView.call(p, p) ).build(); @@ -101,10 +85,6 @@ class StructurallyEqualToTest { @Test void parameterDirectionMismatchTest() { - var p = Variable.of("p"); - var person = new Symbol<>("Person", 1, Boolean.class, false); - var personView = new KeyOnlyView<>(person); - var expected = Dnf.builder("Expected").parameter(p, ParameterDirection.OUT).clause( personView.call(p) ).build(); @@ -118,11 +98,6 @@ class StructurallyEqualToTest { @Test void clauseCountMismatchTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var friend = new Symbol<>("friend", 2, Boolean.class, false); - var friendView = new KeyOnlyView<>(friend); - var expected = Dnf.builder("Expected") .parameters(p, q) .clause(friendView.call(p, q)) @@ -138,11 +113,6 @@ class StructurallyEqualToTest { @Test void literalCountMismatchTest() { - var p = Variable.of("p"); - var q = Variable.of("q"); - var friend = new Symbol<>("friend", 2, Boolean.class, false); - var friendView = new KeyOnlyView<>(friend); - var expected = Dnf.builder("Expected").parameters(p, q).clause( friendView.call(p, q), friendView.call(q, p) -- cgit v1.2.3-54-g00ecf