@@ -29,4 +29,35 @@ public void testAllInversions() {
29
29
int [] arr = {5 , 4 , 3 , 2 , 1 };
30
30
assertEquals (10 , CountingInversions .countInversions (arr ));
31
31
}
32
+
33
+ @ Test
34
+ public void testEmptyArray () {
35
+ int [] arr = {};
36
+ assertEquals (0 , CountingInversions .countInversions (arr ));
37
+ }
38
+
39
+ @ Test
40
+ public void testArrayWithDuplicates () {
41
+ int [] arr = {1 , 3 , 2 , 3 , 1 };
42
+ // Inversions: (3,2), (3,1), (3,1), (2,1)
43
+ assertEquals (4 , CountingInversions .countInversions (arr ));
44
+ }
45
+
46
+ @ Test
47
+ public void testLargeArray () {
48
+ int n = 1000 ;
49
+ int [] arr = new int [n ];
50
+ for (int i = 0 ; i < n ; i ++) {
51
+ arr [i ] = n - i ; // descending order -> max inversions = n*(n-1)/2
52
+ }
53
+ int expected = n * (n - 1 ) / 2 ;
54
+ assertEquals (expected , CountingInversions .countInversions (arr ));
55
+ }
56
+
57
+ @ Test
58
+ public void testArrayWithAllSameElements () {
59
+ int [] arr = {7 , 7 , 7 , 7 };
60
+ // No inversions since all elements are equal
61
+ assertEquals (0 , CountingInversions .countInversions (arr ));
62
+ }
32
63
}
0 commit comments