diff options
author | 2024-03-07 22:10:42 +0100 | |
---|---|---|
committer | 2024-04-07 14:55:46 +0200 | |
commit | 16a9b534adec2c53b50f92a43c1623918b1c59c0 (patch) | |
tree | 690b299a2ca31e302ddad219a7aa94bcf86d5d0b /subprojects/store/src/test/java | |
parent | fix(frontend): * operator highlighting (diff) | |
download | refinery-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')
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 | */ | ||
6 | package tools.refinery.store.representation.cardinality; | ||
7 | |||
8 | import org.junit.jupiter.params.ParameterizedTest; | ||
9 | import org.junit.jupiter.params.provider.Arguments; | ||
10 | import org.junit.jupiter.params.provider.MethodSource; | ||
11 | import tools.refinery.store.representation.cardinality.CardinalityInterval; | ||
12 | |||
13 | import java.util.stream.Stream; | ||
14 | |||
15 | import static org.hamcrest.MatcherAssert.assertThat; | ||
16 | import static org.hamcrest.Matchers.equalTo; | ||
17 | import static tools.refinery.store.representation.cardinality.CardinalityIntervals.*; | ||
18 | |||
19 | class 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 | */ | ||
6 | package tools.refinery.store.representation.cardinality; | ||
7 | |||
8 | import org.junit.jupiter.api.Test; | ||
9 | import tools.refinery.store.representation.cardinality.CardinalityIntervals; | ||
10 | import tools.refinery.store.representation.cardinality.UpperCardinalities; | ||
11 | |||
12 | import static org.hamcrest.MatcherAssert.assertThat; | ||
13 | import static org.hamcrest.Matchers.*; | ||
14 | |||
15 | class 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 | */ | ||
6 | package tools.refinery.store.representation.cardinality; | ||
7 | |||
8 | import org.junit.jupiter.api.Test; | ||
9 | import tools.refinery.store.representation.cardinality.CardinalityIntervals; | ||
10 | |||
11 | import static org.hamcrest.MatcherAssert.assertThat; | ||
12 | import static org.hamcrest.Matchers.lessThan; | ||
13 | |||
14 | class 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 | */ | ||
6 | package tools.refinery.store.representation.cardinality; | ||
7 | |||
8 | import org.junit.jupiter.api.Test; | ||
9 | import tools.refinery.store.representation.cardinality.NonEmptyCardinalityInterval; | ||
10 | import tools.refinery.store.representation.cardinality.UpperCardinalities; | ||
11 | import tools.refinery.store.representation.cardinality.UpperCardinality; | ||
12 | |||
13 | import static org.junit.jupiter.api.Assertions.assertThrows; | ||
14 | |||
15 | class 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 | */ | ||
6 | package tools.refinery.store.representation.cardinality; | ||
7 | |||
8 | import org.junit.jupiter.api.Test; | ||
9 | import tools.refinery.store.representation.cardinality.FiniteUpperCardinality; | ||
10 | |||
11 | import static org.junit.jupiter.api.Assertions.assertThrows; | ||
12 | |||
13 | class 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 | */ | ||
6 | package tools.refinery.store.representation.cardinality; | ||
7 | |||
8 | import org.junit.jupiter.api.Test; | ||
9 | import org.junit.jupiter.params.ParameterizedTest; | ||
10 | import org.junit.jupiter.params.provider.ValueSource; | ||
11 | |||
12 | import static org.hamcrest.MatcherAssert.assertThat; | ||
13 | import static org.hamcrest.Matchers.equalTo; | ||
14 | import static org.hamcrest.Matchers.instanceOf; | ||
15 | |||
16 | class 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 | */ | ||
6 | package tools.refinery.store.representation.cardinality; | ||
7 | |||
8 | import org.junit.jupiter.params.ParameterizedTest; | ||
9 | import org.junit.jupiter.params.provider.Arguments; | ||
10 | import org.junit.jupiter.params.provider.MethodSource; | ||
11 | import tools.refinery.store.representation.cardinality.UpperCardinalities; | ||
12 | import tools.refinery.store.representation.cardinality.UpperCardinality; | ||
13 | |||
14 | import java.util.stream.Stream; | ||
15 | |||
16 | import static org.hamcrest.MatcherAssert.assertThat; | ||
17 | import static org.hamcrest.Matchers.equalTo; | ||
18 | |||
19 | class 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 | } | ||