-
Notifications
You must be signed in to change notification settings - Fork 449
/
Copy pathAssertUtils.java
107 lines (94 loc) · 3.91 KB
/
AssertUtils.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import junit.framework.AssertionFailedError;
import org.junit.Assert;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import static org.junit.Assert.*;
public class AssertUtils {
public static void assertSameList(ListNode<Integer> expected, ListNode<Integer> result) {
ListNode<Integer> given = expected;
ListNode<Integer> transformed = result;
try {
while (expected != null) {
assertEquals(expected.data, result.data);
expected = expected.next;
result = result.next;
}
assertNull(result);
} catch (AssertionError e) {
StringBuilder errorMessage = new StringBuilder();
errorMessage.append("\nExpected: "+given.toString()+"\n");
if (transformed != null && transformed.data != null)
errorMessage.append("Actual: "+transformed.toString()+"\n");
else
errorMessage.append("Actual: null\n");
fail(errorMessage.toString());
}
}
public static void assertSameListPosting(PostingListNode<Integer> expected, PostingListNode<Integer> result) {
PostingListNode<Integer> given = expected;
PostingListNode<Integer> transformed = result;
try {
while (expected != null) {
Assert.assertEquals(expected.data, result.data);
expected = expected.next;
result = result.next;
}
assertNull(result);
} catch (AssertionFailedError e) {
StringBuilder errorMessage = new StringBuilder();
errorMessage.append("\nExpected: "+given.toString()+"\n");
if (transformed != null && transformed.data != null)
errorMessage.append("Actual: "+transformed.toString()+"\n");
else
errorMessage.append("Actual: null\n");
Assert.fail(errorMessage.toString());
}
}
public static void assertSameContentsInt(List<Integer> expected, List<Integer> result) {
try {
expected.forEach((expect) -> {
if (!result.contains(expect))
throw new AssertionError();
result.remove(expect);
});
assertEquals(0, result.size());
} catch (AssertionError e) {
StringBuilder errorMessage = new StringBuilder();
errorMessage.append("\nExpected: "+expected.toString());
errorMessage.append("\nActual: "+result.toString()+"\n");
fail(errorMessage.toString());
}
}
public static void assertSameContentsString(List<String> expected, List<String> result) {
try {
expected.forEach((expect) -> {
if (!result.contains(expect))
throw new AssertionError();
result.remove(expect);
});
assertEquals(0, result.size());
} catch (AssertionError e) {
StringBuilder errorMessage = new StringBuilder();
errorMessage.append("\nExpected: "+expected.toString());
errorMessage.append("\nActual: "+result.toString()+"\n");
fail(errorMessage.toString());
}
}
public static void assertListOfListsEqual(List<List<Integer>> expected, List<List<Integer>> result) {
for (List<Integer> list : result) {
if (!expected.stream().anyMatch(x -> hasSameValues(list,x)))
fail(list.toString()+" not inside result set.");
}
}
private static boolean hasSameValues(List<Integer> list1, List<Integer> list2) {
Set<Integer> set1 = new HashSet<>(list1);
Set<Integer> set2 = new HashSet<>(list2);
if (set1.size() != set2.size())
return false;
//LIST DOES NOT SUPPORT REMOVE ALL SO NEED TO CAST TO SET
set1.removeAll(set2);
return set1.isEmpty();
}
}