aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/store/src/test/java
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2024-03-07 22:10:42 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2024-04-07 14:55:46 +0200
commit16a9b534adec2c53b50f92a43c1623918b1c59c0 (patch)
tree690b299a2ca31e302ddad219a7aa94bcf86d5d0b /subprojects/store/src/test/java
parentfix(frontend): * operator highlighting (diff)
downloadrefinery-16a9b534adec2c53b50f92a43c1623918b1c59c0.tar.gz
refinery-16a9b534adec2c53b50f92a43c1623918b1c59c0.tar.zst
refinery-16a9b534adec2c53b50f92a43c1623918b1c59c0.zip
refactor: move terms and DNF into logic subproject
Diffstat (limited to 'subprojects/store/src/test/java')
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalTest.java128
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalsTest.java28
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/EmptyCardinalityIntervalTest.java20
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteCardinalityIntervalTest.java28
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinalityTest.java18
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalitiesTest.java30
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalityTest.java117
7 files changed, 0 insertions, 369 deletions
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalTest.java b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalTest.java
deleted file mode 100644
index 6a66fa84..00000000
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalTest.java
+++ /dev/null
@@ -1,128 +0,0 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.representation.cardinality;
7
8import org.junit.jupiter.params.ParameterizedTest;
9import org.junit.jupiter.params.provider.Arguments;
10import org.junit.jupiter.params.provider.MethodSource;
11import tools.refinery.store.representation.cardinality.CardinalityInterval;
12
13import java.util.stream.Stream;
14
15import static org.hamcrest.MatcherAssert.assertThat;
16import static org.hamcrest.Matchers.equalTo;
17import static tools.refinery.store.representation.cardinality.CardinalityIntervals.*;
18
19class CardinalityIntervalTest {
20 @ParameterizedTest(name = "min({0}, {1}) == {2}")
21 @MethodSource
22 void minTest(CardinalityInterval a, CardinalityInterval b, CardinalityInterval expected) {
23 assertThat(a.min(b), equalTo(expected));
24 }
25
26 static Stream<Arguments> minTest() {
27 return Stream.of(
28 Arguments.of(atMost(1), atMost(1), atMost(1)),
29 Arguments.of(atMost(1), between(2, 3), atMost(1)),
30 Arguments.of(atMost(1), atLeast(2), atMost(1)),
31 Arguments.of(atMost(1), ERROR, ERROR),
32 Arguments.of(atLeast(1), atLeast(2), atLeast(1)),
33 Arguments.of(atLeast(1), ERROR, ERROR),
34 Arguments.of(ERROR, atLeast(2), ERROR),
35 Arguments.of(ERROR, ERROR, ERROR)
36 );
37 }
38
39 @ParameterizedTest(name = "max({0}, {1}) == {2}")
40 @MethodSource
41 void maxTest(CardinalityInterval a, CardinalityInterval b, CardinalityInterval expected) {
42 assertThat(a.max(b), equalTo(expected));
43 }
44
45 static Stream<Arguments> maxTest() {
46 return Stream.of(
47 Arguments.of(atMost(1), atMost(1), atMost(1)),
48 Arguments.of(atMost(1), between(2, 3), between(2, 3)),
49 Arguments.of(atMost(1), atLeast(2), atLeast(2)),
50 Arguments.of(atMost(1), ERROR, ERROR),
51 Arguments.of(atLeast(1), atLeast(2), atLeast(2)),
52 Arguments.of(atLeast(1), ERROR, ERROR),
53 Arguments.of(ERROR, atLeast(2), ERROR),
54 Arguments.of(ERROR, ERROR, ERROR)
55 );
56 }
57
58 @ParameterizedTest(name = "{0} + {1} == {2}")
59 @MethodSource
60 void addTest(CardinalityInterval a, CardinalityInterval b, CardinalityInterval expected) {
61 assertThat(a.add(b), equalTo(expected));
62 }
63
64 static Stream<Arguments> addTest() {
65 return Stream.of(
66 Arguments.of(atMost(1), atMost(1), atMost(2)),
67 Arguments.of(atMost(1), between(2, 3), between(2, 4)),
68 Arguments.of(atMost(1), atLeast(2), atLeast(2)),
69 Arguments.of(atMost(1), ERROR, ERROR),
70 Arguments.of(atLeast(1), atLeast(2), atLeast(3)),
71 Arguments.of(atLeast(1), ERROR, ERROR),
72 Arguments.of(ERROR, atLeast(2), ERROR),
73 Arguments.of(ERROR, ERROR, ERROR)
74 );
75 }
76
77 @ParameterizedTest(name = "{0} * {1} == {2}")
78 @MethodSource
79 void multiplyTest(CardinalityInterval a, CardinalityInterval b, CardinalityInterval expected) {
80 assertThat(a.multiply(b), equalTo(expected));
81 }
82
83 static Stream<Arguments> multiplyTest() {
84 return Stream.of(
85 Arguments.of(between(2, 3), between(4, 5), between(8, 15)),
86 Arguments.of(atLeast(2), between(4, 5), atLeast(8)),
87 Arguments.of(between(2, 3), atLeast(4), atLeast(8)),
88 Arguments.of(between(2, 3), ERROR, ERROR),
89 Arguments.of(ERROR, between(4, 5), ERROR),
90 Arguments.of(ERROR, ERROR, ERROR)
91 );
92 }
93
94 @ParameterizedTest(name = "{0} /\\ {1} == {2}")
95 @MethodSource
96 void meetTest(CardinalityInterval a, CardinalityInterval b, CardinalityInterval expected) {
97 assertThat(a.meet(b), equalTo(expected));
98 }
99
100 static Stream<Arguments> meetTest() {
101 return Stream.of(
102 Arguments.of(atMost(1), atMost(2), atMost(1)),
103 Arguments.of(atMost(2), between(1, 3), between(1, 2)),
104 Arguments.of(atMost(1), between(1, 3), exactly(1)),
105 Arguments.of(atMost(1), between(2, 3), ERROR),
106 Arguments.of(atMost(1), ERROR, ERROR),
107 Arguments.of(ERROR, atMost(1), ERROR),
108 Arguments.of(ERROR, ERROR, ERROR)
109 );
110 }
111
112 @ParameterizedTest(name = "{0} \\/ {1} == {2}")
113 @MethodSource
114 void joinTest(CardinalityInterval a, CardinalityInterval b, CardinalityInterval expected) {
115 assertThat(a.join(b), equalTo(expected));
116 }
117
118 static Stream<Arguments> joinTest() {
119 return Stream.of(
120 Arguments.of(atMost(1), atMost(2), atMost(2)),
121 Arguments.of(atMost(2), between(1, 3), atMost(3)),
122 Arguments.of(atMost(1), between(2, 3), atMost(3)),
123 Arguments.of(atMost(1), ERROR, atMost(1)),
124 Arguments.of(ERROR, atMost(1), atMost(1)),
125 Arguments.of(ERROR, ERROR, ERROR)
126 );
127 }
128}
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalsTest.java b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalsTest.java
deleted file mode 100644
index 9fe76159..00000000
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalsTest.java
+++ /dev/null
@@ -1,28 +0,0 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.representation.cardinality;
7
8import org.junit.jupiter.api.Test;
9import tools.refinery.store.representation.cardinality.CardinalityIntervals;
10import tools.refinery.store.representation.cardinality.UpperCardinalities;
11
12import static org.hamcrest.MatcherAssert.assertThat;
13import static org.hamcrest.Matchers.*;
14
15class CardinalityIntervalsTest {
16 @Test
17 void betweenEmptyTest() {
18 var interval = CardinalityIntervals.between(2, 1);
19 assertThat(interval.isEmpty(), equalTo(true));
20 }
21
22 @Test
23 void betweenNegativeUpperBoundTest() {
24 var interval = CardinalityIntervals.between(0, -1);
25 assertThat(interval.upperBound(), equalTo(UpperCardinalities.UNBOUNDED));
26 assertThat(interval.isEmpty(), equalTo(false));
27 }
28}
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/EmptyCardinalityIntervalTest.java b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/EmptyCardinalityIntervalTest.java
deleted file mode 100644
index 24a788a8..00000000
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/EmptyCardinalityIntervalTest.java
+++ /dev/null
@@ -1,20 +0,0 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.representation.cardinality;
7
8import org.junit.jupiter.api.Test;
9import tools.refinery.store.representation.cardinality.CardinalityIntervals;
10
11import static org.hamcrest.MatcherAssert.assertThat;
12import static org.hamcrest.Matchers.lessThan;
13
14class EmptyCardinalityIntervalTest {
15 @Test
16 void inconsistentBoundsTest() {
17 assertThat(CardinalityIntervals.ERROR.upperBound().compareToInt(CardinalityIntervals.ERROR.lowerBound()),
18 lessThan(0));
19 }
20}
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteCardinalityIntervalTest.java b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteCardinalityIntervalTest.java
deleted file mode 100644
index 6cf56fae..00000000
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteCardinalityIntervalTest.java
+++ /dev/null
@@ -1,28 +0,0 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.representation.cardinality;
7
8import org.junit.jupiter.api.Test;
9import tools.refinery.store.representation.cardinality.NonEmptyCardinalityInterval;
10import tools.refinery.store.representation.cardinality.UpperCardinalities;
11import tools.refinery.store.representation.cardinality.UpperCardinality;
12
13import static org.junit.jupiter.api.Assertions.assertThrows;
14
15class FiniteCardinalityIntervalTest {
16 @Test
17 void invalidLowerBoundConstructorTest() {
18 assertThrows(IllegalArgumentException.class, () -> new NonEmptyCardinalityInterval(-1,
19 UpperCardinalities.UNBOUNDED));
20 }
21
22 @Test
23 void invalidUpperBoundConstructorTest() {
24 var upperCardinality = UpperCardinality.of(1);
25 assertThrows(IllegalArgumentException.class, () -> new NonEmptyCardinalityInterval(2,
26 upperCardinality));
27 }
28}
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinalityTest.java b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinalityTest.java
deleted file mode 100644
index 7c641c47..00000000
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinalityTest.java
+++ /dev/null
@@ -1,18 +0,0 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.representation.cardinality;
7
8import org.junit.jupiter.api.Test;
9import tools.refinery.store.representation.cardinality.FiniteUpperCardinality;
10
11import static org.junit.jupiter.api.Assertions.assertThrows;
12
13class FiniteUpperCardinalityTest {
14 @Test
15 void invalidConstructorTest() {
16 assertThrows(IllegalArgumentException.class, () -> new FiniteUpperCardinality(-1));
17 }
18}
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalitiesTest.java b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalitiesTest.java
deleted file mode 100644
index e403eec2..00000000
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalitiesTest.java
+++ /dev/null
@@ -1,30 +0,0 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.representation.cardinality;
7
8import org.junit.jupiter.api.Test;
9import org.junit.jupiter.params.ParameterizedTest;
10import org.junit.jupiter.params.provider.ValueSource;
11
12import static org.hamcrest.MatcherAssert.assertThat;
13import static org.hamcrest.Matchers.equalTo;
14import static org.hamcrest.Matchers.instanceOf;
15
16class UpperCardinalitiesTest {
17 @ParameterizedTest
18 @ValueSource(ints = {0, 1, 255, 256, 1000, Integer.MAX_VALUE})
19 void valueOfBoundedTest(int value) {
20 var upperCardinality = UpperCardinalities.atMost(value);
21 assertThat(upperCardinality, instanceOf(FiniteUpperCardinality.class));
22 assertThat(((FiniteUpperCardinality) upperCardinality).finiteUpperBound(), equalTo(value));
23 }
24
25 @Test
26 void valueOfUnboundedTest() {
27 var upperCardinality = UpperCardinalities.atMost(-1);
28 assertThat(upperCardinality, instanceOf(UnboundedUpperCardinality.class));
29 }
30}
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalityTest.java b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalityTest.java
deleted file mode 100644
index 10b4dd20..00000000
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalityTest.java
+++ /dev/null
@@ -1,117 +0,0 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.representation.cardinality;
7
8import org.junit.jupiter.params.ParameterizedTest;
9import org.junit.jupiter.params.provider.Arguments;
10import org.junit.jupiter.params.provider.MethodSource;
11import tools.refinery.store.representation.cardinality.UpperCardinalities;
12import tools.refinery.store.representation.cardinality.UpperCardinality;
13
14import java.util.stream.Stream;
15
16import static org.hamcrest.MatcherAssert.assertThat;
17import static org.hamcrest.Matchers.equalTo;
18
19class UpperCardinalityTest {
20 @ParameterizedTest(name = "min({0}, {1}) == {2}")
21 @MethodSource
22 void minTest(UpperCardinality a, UpperCardinality b, UpperCardinality expected) {
23 assertThat(a.min(b), equalTo(expected));
24 }
25
26 static Stream<Arguments> minTest() {
27 return Stream.of(
28 Arguments.of(UpperCardinality.of(0), UpperCardinality.of(0), UpperCardinality.of(0)),
29 Arguments.of(UpperCardinality.of(0), UpperCardinality.of(1), UpperCardinality.of(0)),
30 Arguments.of(UpperCardinality.of(1), UpperCardinality.of(0), UpperCardinality.of(0)),
31 Arguments.of(UpperCardinality.of(0), UpperCardinalities.UNBOUNDED, UpperCardinality.of(0)),
32 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinality.of(0), UpperCardinality.of(0)),
33 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED)
34 );
35 }
36
37 @ParameterizedTest(name = "max({0}, {1}) == {2}")
38 @MethodSource
39 void maxTest(UpperCardinality a, UpperCardinality b, UpperCardinality expected) {
40 assertThat(a.max(b), equalTo(expected));
41 }
42
43 static Stream<Arguments> maxTest() {
44 return Stream.of(
45 Arguments.of(UpperCardinality.of(0), UpperCardinality.of(0), UpperCardinality.of(0)),
46 Arguments.of(UpperCardinality.of(0), UpperCardinality.of(1), UpperCardinality.of(1)),
47 Arguments.of(UpperCardinality.of(1), UpperCardinality.of(0), UpperCardinality.of(1)),
48 Arguments.of(UpperCardinality.of(0), UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED),
49 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinality.of(0), UpperCardinalities.UNBOUNDED),
50 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED)
51 );
52 }
53
54 @ParameterizedTest(name = "{0} + {1} == {2}")
55 @MethodSource
56 void addTest(UpperCardinality a, UpperCardinality b, UpperCardinality expected) {
57 assertThat(a.add(b), equalTo(expected));
58 }
59
60 static Stream<Arguments> addTest() {
61 return Stream.of(
62 Arguments.of(UpperCardinality.of(2), UpperCardinality.of(3), UpperCardinality.of(5)),
63 Arguments.of(UpperCardinality.of(2), UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED),
64 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinality.of(2), UpperCardinalities.UNBOUNDED),
65 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED)
66 );
67 }
68
69 @ParameterizedTest(name = "{0} * {1} == {2}")
70 @MethodSource
71 void multiplyTest(UpperCardinality a, UpperCardinality b, UpperCardinality expected) {
72 assertThat(a.multiply(b), equalTo(expected));
73 }
74
75 static Stream<Arguments> multiplyTest() {
76 return Stream.of(
77 Arguments.of(UpperCardinality.of(2), UpperCardinality.of(3), UpperCardinality.of(6)),
78 Arguments.of(UpperCardinality.of(2), UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED),
79 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinality.of(2), UpperCardinalities.UNBOUNDED),
80 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED)
81 );
82 }
83
84 @ParameterizedTest(name = "{0}.compareTo({1}) == {2}")
85 @MethodSource
86 void compareToTest(UpperCardinality a, UpperCardinality b, int expected) {
87 assertThat(a.compareTo(b), equalTo(expected));
88 }
89
90 static Stream<Arguments> compareToTest() {
91 return Stream.of(
92 Arguments.of(UpperCardinality.of(0), UpperCardinality.of(0), 0),
93 Arguments.of(UpperCardinality.of(0), UpperCardinality.of(1), -1),
94 Arguments.of(UpperCardinality.of(1), UpperCardinality.of(0), 1),
95 Arguments.of(UpperCardinality.of(0), UpperCardinalities.UNBOUNDED, -1),
96 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinality.of(0), 1),
97 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED, 0)
98 );
99 }
100
101 @ParameterizedTest(name = "{0}.compareToInt({1}) == {2}")
102 @MethodSource
103 void compareToIntTest(UpperCardinality a, int b, int expected) {
104 assertThat(a.compareToInt(b), equalTo(expected));
105 }
106
107 static Stream<Arguments> compareToIntTest() {
108 return Stream.of(
109 Arguments.of(UpperCardinality.of(3), -1, 1),
110 Arguments.of(UpperCardinality.of(3), 2, 1),
111 Arguments.of(UpperCardinality.of(3), 3, 0),
112 Arguments.of(UpperCardinality.of(3), 4, -1),
113 Arguments.of(UpperCardinalities.UNBOUNDED, -1, 1),
114 Arguments.of(UpperCardinalities.UNBOUNDED, 3, 1)
115 );
116 }
117}