1
2
3
4 package de.powerstat.validation.containers.test;
5
6
7 import static org.junit.jupiter.api.Assertions.assertAll;
8 import static org.junit.jupiter.api.Assertions.assertEquals;
9 import static org.junit.jupiter.api.Assertions.assertFalse;
10 import static org.junit.jupiter.api.Assertions.assertNotEquals;
11 import static org.junit.jupiter.api.Assertions.assertTrue;
12
13 import org.junit.jupiter.api.Test;
14
15 import de.powerstat.validation.containers.NTuple4;
16 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
17
18
19
20
21
22 @SuppressFBWarnings({"CE_CLASS_ENVY", "RV_NEGATING_RESULT_OF_COMPARETO", "SPP_USE_ZERO_WITH_COMPARATOR", "EC_NULL_ARG"})
23 final class NTuple4Tests
24 {
25
26
27
28 private static final String TEST_EQUALS = "testEquals";
29
30
31
32
33 private static final String TEST_COMPARE_TO = "testCompareTo";
34
35
36
37
38 private static final String TUPLE12_IS_EQUAL = "tuple12 is equal";
39
40
41
42
43 private static final String TUPLE13_IS_EQUAL = "tuple13 is equal";
44
45
46
47
48 private static final String JAVA_S5785 = "java:S5785";
49
50
51
52
53
54 NTuple4Tests()
55 {
56 super();
57 }
58
59
60
61
62
63 @Test
64 void testOfInt()
65 {
66 final NTuple4<Integer, Integer, Integer, Integer> tuple = NTuple4.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(815), Integer.valueOf(4));
67 assertAll("testGetValue",
68 () -> assertEquals(1, tuple.t1Value().intValue(), "t1 not as expected"),
69 () -> assertEquals(4711, tuple.t2Value().intValue(), "t2 not as expected"),
70 () -> assertEquals(815, tuple.t3Value().intValue(), "t3 not as expected"),
71 () -> assertEquals(4, tuple.t4Value().intValue(), "t4 not as expected")
72 );
73 }
74
75
76
77
78
79 @Test
80 void testHashCode()
81 {
82 final NTuple4<Integer, Integer, Integer, Integer> tuple1 = NTuple4.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(4711), Integer.valueOf(4));
83 final NTuple4<Integer, Integer, Integer, Integer> tuple2 = NTuple4.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(4711), Integer.valueOf(4));
84 final NTuple4<Integer, Integer, Integer, Integer> tuple3 = NTuple4.of(Integer.valueOf(2), Integer.valueOf(815), Integer.valueOf(815), Integer.valueOf(4));
85 assertAll("testHashCode",
86 () -> assertEquals(tuple1.hashCode(), tuple2.hashCode(), "hashCodes are not equal"),
87 () -> assertNotEquals(tuple1.hashCode(), tuple3.hashCode(), "hashCodes are equal")
88 );
89 }
90
91
92
93
94
95 @Test
96 @SuppressWarnings(JAVA_S5785)
97 void testEquals()
98 {
99 final NTuple4<Integer, Integer, Integer, Integer> tuple1 = NTuple4.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(4711), Integer.valueOf(4));
100 final NTuple4<Integer, Integer, Integer, Integer> tuple2 = NTuple4.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(4711), Integer.valueOf(4));
101 final NTuple4<Integer, Integer, Integer, Integer> tuple3 = NTuple4.of(Integer.valueOf(2), Integer.valueOf(815), Integer.valueOf(815), Integer.valueOf(4));
102 final NTuple4<Integer, Integer, Integer, Integer> tuple4 = NTuple4.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(4711), Integer.valueOf(4));
103 assertAll(NTuple4Tests.TEST_EQUALS,
104 () -> assertTrue(tuple1.equals(tuple1), "tuple11 is not equal"),
105 () -> assertTrue(tuple1.equals(tuple2), "tuple12 are not equal"),
106 () -> assertTrue(tuple2.equals(tuple1), "tuple21 are not equal"),
107 () -> assertTrue(tuple2.equals(tuple4), "tuple24 are not equal"),
108 () -> assertTrue(tuple1.equals(tuple4), "tuple14 are not equal"),
109 () -> assertFalse(tuple1.equals(tuple3), "tuple13 are equal"),
110 () -> assertFalse(tuple3.equals(tuple1), "tuple31 are equal"),
111 () -> assertFalse(tuple1.equals(null), "tuple10 is equal")
112 );
113 }
114
115
116
117
118
119 @Test
120 @SuppressWarnings(JAVA_S5785)
121 void testEquals2()
122 {
123 final NTuple4<Integer, Integer, Integer, Integer> tuple1 = NTuple4.of(Integer.valueOf(1), Integer.valueOf(1), Integer.valueOf(1), Integer.valueOf(1));
124 final NTuple4<Integer, Integer, Integer, Integer> tuple2 = NTuple4.of(Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(1), Integer.valueOf(1));
125 final NTuple4<Integer, Integer, Integer, Integer> tuple3 = NTuple4.of(Integer.valueOf(1), Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(1));
126 assertAll(NTuple4Tests.TEST_EQUALS,
127 () -> assertFalse(tuple1.equals(tuple2), NTuple4Tests.TUPLE12_IS_EQUAL),
128 () -> assertFalse(tuple1.equals(tuple3), NTuple4Tests.TUPLE13_IS_EQUAL)
129 );
130 }
131
132
133
134
135
136 @Test
137 void testToString()
138 {
139 final NTuple4<Integer, Integer, Integer, Integer> tuple1 = NTuple4.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(815), Integer.valueOf(4));
140 assertEquals("NTuple4[object1=1, object2=4711, object3=815, object4=4]", tuple1.toString(), "toString not equal");
141 }
142
143
144
145
146
147 @Test
148 @SuppressWarnings(JAVA_S5785)
149 void testCompareTo()
150 {
151 final NTuple4<Integer, Integer, Integer, Integer> tuple1 = NTuple4.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(4711), Integer.valueOf(4));
152 final NTuple4<Integer, Integer, Integer, Integer> tuple2 = NTuple4.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(4711), Integer.valueOf(4));
153 final NTuple4<Integer, Integer, Integer, Integer> tuple3 = NTuple4.of(Integer.valueOf(2), Integer.valueOf(815), Integer.valueOf(815), Integer.valueOf(4));
154 final NTuple4<Integer, Integer, Integer, Integer> tuple4 = NTuple4.of(Integer.valueOf(3), Integer.valueOf(20221127), Integer.valueOf(20221127), Integer.valueOf(4));
155 final NTuple4<Integer, Integer, Integer, Integer> tuple5 = NTuple4.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(4711), Integer.valueOf(4));
156 assertAll(NTuple4Tests.TEST_COMPARE_TO,
157 () -> assertTrue(tuple1.compareTo(tuple2) == -tuple2.compareTo(tuple1), "reflexive1"),
158 () -> assertTrue(tuple1.compareTo(tuple3) == -tuple3.compareTo(tuple1), "reflexive2"),
159 () -> assertTrue((tuple4.compareTo(tuple3) > 0) && (tuple3.compareTo(tuple1) > 0) && (tuple4.compareTo(tuple1) > 0), "transitive1"),
160 () -> assertTrue((tuple1.compareTo(tuple2) == 0) && (Math.abs(tuple1.compareTo(tuple5)) == Math.abs(tuple2.compareTo(tuple5))), "sgn1"),
161 () -> assertTrue((tuple1.compareTo(tuple2) == 0) && tuple1.equals(tuple2), "equals")
162 );
163 }
164
165
166
167
168
169 @Test
170 @SuppressWarnings(JAVA_S5785)
171 void testCompareTo2()
172 {
173 final NTuple4<Integer, Integer, Integer, Integer> tuple1 = NTuple4.of(Integer.valueOf(1), Integer.valueOf(1), Integer.valueOf(1), Integer.valueOf(1));
174 final NTuple4<Integer, Integer, Integer, Integer> tuple2 = NTuple4.of(Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(1), Integer.valueOf(1));
175 final NTuple4<Integer, Integer, Integer, Integer> tuple3 = NTuple4.of(Integer.valueOf(1), Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(1));
176 assertAll(NTuple4Tests.TEST_COMPARE_TO,
177 () -> assertTrue(tuple1.compareTo(tuple2) != 0, NTuple4Tests.TUPLE12_IS_EQUAL),
178 () -> assertTrue(tuple1.compareTo(tuple3) != 0, NTuple4Tests.TUPLE13_IS_EQUAL)
179 );
180 }
181
182 }