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.NTuple3;
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 NTuple3Tests
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 JAVA_S5785 = "java:S5785";
39
40
41
42
43
44 NTuple3Tests()
45 {
46 super();
47 }
48
49
50
51
52
53 @Test
54 void testOfInt()
55 {
56 final NTuple3<Integer, Integer, Integer> tuple = NTuple3.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(815));
57 assertAll("testGetValue",
58 () -> assertEquals(1, tuple.t1Value().intValue(), "t1 not as expected"),
59 () -> assertEquals(4711, tuple.t2Value().intValue(), "t2 not as expected"),
60 () -> assertEquals(815, tuple.t3Value().intValue(), "t3 not as expected")
61 );
62 }
63
64
65
66
67
68 @Test
69 void testHashCode()
70 {
71 final NTuple3<Integer, Integer, Integer> tuple1 = NTuple3.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(4711));
72 final NTuple3<Integer, Integer, Integer> tuple2 = NTuple3.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(4711));
73 final NTuple3<Integer, Integer, Integer> tuple3 = NTuple3.of(Integer.valueOf(2), Integer.valueOf(815), Integer.valueOf(815));
74 assertAll("testHashCode",
75 () -> assertEquals(tuple1.hashCode(), tuple2.hashCode(), "hashCodes are not equal"),
76 () -> assertNotEquals(tuple1.hashCode(), tuple3.hashCode(), "hashCodes are equal")
77 );
78 }
79
80
81
82
83
84 @Test
85 @SuppressWarnings(JAVA_S5785)
86 void testEquals()
87 {
88 final NTuple3<Integer, Integer, Integer> tuple1 = NTuple3.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(4711));
89 final NTuple3<Integer, Integer, Integer> tuple2 = NTuple3.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(4711));
90 final NTuple3<Integer, Integer, Integer> tuple3 = NTuple3.of(Integer.valueOf(2), Integer.valueOf(815), Integer.valueOf(815));
91 final NTuple3<Integer, Integer, Integer> tuple4 = NTuple3.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(4711));
92 assertAll(NTuple3Tests.TEST_EQUALS,
93 () -> assertTrue(tuple1.equals(tuple1), "tuple11 is not equal"),
94 () -> assertTrue(tuple1.equals(tuple2), "tuple12 are not equal"),
95 () -> assertTrue(tuple2.equals(tuple1), "tuple21 are not equal"),
96 () -> assertTrue(tuple2.equals(tuple4), "tuple24 are not equal"),
97 () -> assertTrue(tuple1.equals(tuple4), "tuple14 are not equal"),
98 () -> assertFalse(tuple1.equals(tuple3), "tuple13 are equal"),
99 () -> assertFalse(tuple3.equals(tuple1), "tuple31 are equal"),
100 () -> assertFalse(tuple1.equals(null), "tuple10 is equal")
101 );
102 }
103
104
105
106
107
108 @Test
109 @SuppressWarnings(JAVA_S5785)
110 void testEquals2()
111 {
112 final NTuple3<Integer, Integer, Integer> tuple1 = NTuple3.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(1));
113 final NTuple3<Integer, Integer, Integer> tuple2 = NTuple3.of(Integer.valueOf(1), Integer.valueOf(1), Integer.valueOf(1));
114 assertAll(NTuple3Tests.TEST_EQUALS,
115 () -> assertFalse(tuple1.equals(tuple2), "tuple12 is equal")
116 );
117 }
118
119
120
121
122
123 @Test
124 void testToString()
125 {
126 final NTuple3<Integer, Integer, Integer> tuple1 = NTuple3.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(815));
127 assertEquals("NTuple3[object1=1, object2=4711, object3=815]", tuple1.toString(), "toString not equal");
128 }
129
130
131
132
133
134 @Test
135 @SuppressWarnings(JAVA_S5785)
136 void testCompareTo()
137 {
138 final NTuple3<Integer, Integer, Integer> tuple1 = NTuple3.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(4711));
139 final NTuple3<Integer, Integer, Integer> tuple2 = NTuple3.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(4711));
140 final NTuple3<Integer, Integer, Integer> tuple3 = NTuple3.of(Integer.valueOf(2), Integer.valueOf(815), Integer.valueOf(815));
141 final NTuple3<Integer, Integer, Integer> tuple4 = NTuple3.of(Integer.valueOf(3), Integer.valueOf(20221127), Integer.valueOf(20221127));
142 final NTuple3<Integer, Integer, Integer> tuple5 = NTuple3.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(4711));
143 assertAll(NTuple3Tests.TEST_COMPARE_TO,
144 () -> assertTrue(tuple1.compareTo(tuple2) == -tuple2.compareTo(tuple1), "reflexive1"),
145 () -> assertTrue(tuple1.compareTo(tuple3) == -tuple3.compareTo(tuple1), "reflexive2"),
146 () -> assertTrue((tuple4.compareTo(tuple3) > 0) && (tuple3.compareTo(tuple1) > 0) && (tuple4.compareTo(tuple1) > 0), "transitive1"),
147 () -> assertTrue((tuple1.compareTo(tuple2) == 0) && (Math.abs(tuple1.compareTo(tuple5)) == Math.abs(tuple2.compareTo(tuple5))), "sgn1"),
148 () -> assertTrue((tuple1.compareTo(tuple2) == 0) && tuple1.equals(tuple2), "equals")
149 );
150 }
151
152
153
154
155
156 @Test
157 @SuppressWarnings(JAVA_S5785)
158 void testCompareTo2()
159 {
160 final NTuple3<Integer, Integer, Integer> tuple1 = NTuple3.of(Integer.valueOf(1), Integer.valueOf(4711), Integer.valueOf(1));
161 final NTuple3<Integer, Integer, Integer> tuple2 = NTuple3.of(Integer.valueOf(1), Integer.valueOf(815), Integer.valueOf(1));
162 assertAll(NTuple3Tests.TEST_COMPARE_TO,
163 () -> assertTrue(tuple1.compareTo(tuple2) != 0, "tuple1 == tuple2")
164 );
165 }
166
167 }