1
2
3
4
5
6
7
8
9
10
11 package psiprobe.tokenizer;
12
13 import static org.junit.jupiter.api.Assertions.assertEquals;
14 import static org.junit.jupiter.api.Assertions.assertFalse;
15 import static org.junit.jupiter.api.Assertions.assertTrue;
16
17 import java.util.Arrays;
18 import java.util.List;
19
20 import org.junit.jupiter.api.Test;
21
22
23
24
25 class UniqueListTest {
26
27 @Test
28 void testAddUnique() {
29 UniqueList<Integer> list = new UniqueList<>();
30 assertTrue(list.add(3));
31 assertTrue(list.add(1));
32 assertTrue(list.add(2));
33 assertEquals(3, list.size());
34
35 assertEquals(1, (int) list.get(0));
36 assertEquals(2, (int) list.get(1));
37 assertEquals(3, (int) list.get(2));
38 }
39
40 @Test
41 void testAddDuplicateIgnored() {
42 UniqueList<Integer> list = new UniqueList<>();
43 assertTrue(list.add(5));
44 assertFalse(list.add(5));
45 assertEquals(1, list.size());
46 }
47
48 @Test
49 void testAddAtIndexIgnoresIndex() {
50 UniqueList<Integer> list = new UniqueList<>();
51 list.add(0, 3);
52 list.add(0, 1);
53 list.add(0, 2);
54 assertEquals(3, list.size());
55
56 assertEquals(1, (int) list.get(0));
57 assertEquals(2, (int) list.get(1));
58 assertEquals(3, (int) list.get(2));
59 }
60
61 @Test
62 void testAddAll() {
63 UniqueList<Integer> list = new UniqueList<>();
64 List<Integer> input = Arrays.asList(5, 3, 1, 3, 5);
65 list.addAll(input);
66 assertEquals(3, list.size());
67 assertEquals(1, (int) list.get(0));
68 assertEquals(3, (int) list.get(1));
69 assertEquals(5, (int) list.get(2));
70 }
71
72 @Test
73 void testAddAllWithSelf() {
74 UniqueList<Integer> list = new UniqueList<>();
75 list.add(1);
76 list.add(2);
77
78 assertFalse(list.addAll(list));
79 assertEquals(2, list.size());
80 }
81
82 @Test
83 void testAddToEmpty() {
84 UniqueList<String> list = new UniqueList<>();
85 assertTrue(list.add("hello"));
86 assertEquals(1, list.size());
87 assertEquals("hello", list.get(0));
88 }
89
90 @Test
91 void testAddBeyondEnd() {
92 UniqueList<Integer> list = new UniqueList<>();
93 list.add(1);
94 list.add(2);
95 list.add(10);
96 assertEquals(3, list.size());
97 assertEquals(10, (int) list.get(2));
98 }
99
100 @Test
101 void testSortedInsertion() {
102 UniqueList<String> list = new UniqueList<>();
103 list.add("charlie");
104 list.add("alpha");
105 list.add("beta");
106 assertEquals("alpha", list.get(0));
107 assertEquals("beta", list.get(1));
108 assertEquals("charlie", list.get(2));
109 }
110 }