aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitySumAggregatorTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitySumAggregatorTest.java')
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitySumAggregatorTest.java79
1 files changed, 79 insertions, 0 deletions
diff --git a/subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitySumAggregatorTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitySumAggregatorTest.java
new file mode 100644
index 00000000..e252b097
--- /dev/null
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitySumAggregatorTest.java
@@ -0,0 +1,79 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.logic.term.uppercardinality;
7
8import org.hamcrest.MatcherAssert;
9import org.hamcrest.Matchers;
10import org.junit.jupiter.api.BeforeEach;
11import org.junit.jupiter.api.Test;
12import tools.refinery.logic.term.StatefulAggregate;
13
14import static org.hamcrest.MatcherAssert.assertThat;
15
16class UpperCardinalitySumAggregatorTest {
17 private StatefulAggregate<UpperCardinality, UpperCardinality> accumulator;
18
19 @BeforeEach
20 void beforeEach() {
21 accumulator = UpperCardinalitySumAggregator.INSTANCE.createEmptyAggregate();
22 }
23
24 @Test
25 void emptyAggregationTest() {
26 MatcherAssert.assertThat(accumulator.getResult(), Matchers.is(UpperCardinality.of(0)));
27 }
28
29 @Test
30 void singleBoundedTest() {
31 accumulator.add(UpperCardinality.of(3));
32 MatcherAssert.assertThat(accumulator.getResult(), Matchers.is(UpperCardinality.of(3)));
33 }
34
35 @Test
36 void multipleBoundedTest() {
37 accumulator.add(UpperCardinality.of(2));
38 accumulator.add(UpperCardinality.of(3));
39 MatcherAssert.assertThat(accumulator.getResult(), Matchers.is(UpperCardinality.of(5)));
40 }
41
42 @Test
43 void singleUnboundedTest() {
44 accumulator.add(UpperCardinalities.UNBOUNDED);
45 assertThat(accumulator.getResult(), Matchers.is(UpperCardinalities.UNBOUNDED));
46 }
47
48 @Test
49 void multipleUnboundedTest() {
50 accumulator.add(UpperCardinalities.UNBOUNDED);
51 accumulator.add(UpperCardinalities.UNBOUNDED);
52 assertThat(accumulator.getResult(), Matchers.is(UpperCardinalities.UNBOUNDED));
53 }
54
55 @Test
56 void removeBoundedTest() {
57 accumulator.add(UpperCardinality.of(2));
58 accumulator.add(UpperCardinality.of(3));
59 accumulator.remove(UpperCardinality.of(2));
60 MatcherAssert.assertThat(accumulator.getResult(), Matchers.is(UpperCardinality.of(3)));
61 }
62
63 @Test
64 void removeAllUnboundedTest() {
65 accumulator.add(UpperCardinalities.UNBOUNDED);
66 accumulator.add(UpperCardinality.of(3));
67 accumulator.remove(UpperCardinalities.UNBOUNDED);
68 MatcherAssert.assertThat(accumulator.getResult(), Matchers.is(UpperCardinality.of(3)));
69 }
70
71 @Test
72 void removeSomeUnboundedTest() {
73 accumulator.add(UpperCardinalities.UNBOUNDED);
74 accumulator.add(UpperCardinalities.UNBOUNDED);
75 accumulator.add(UpperCardinality.of(3));
76 accumulator.remove(UpperCardinalities.UNBOUNDED);
77 assertThat(accumulator.getResult(), Matchers.is(UpperCardinalities.UNBOUNDED));
78 }
79}