+package de.laktatnebel.libs.utillib.collection;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import org.junit.After;\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+\r
+/**\r
+* @author oleb\r
+ *\r
+ */\r
+public class ListCompTest {\r
+ \r
+ private static List<Integer> primzahlen = new ArrayList<Integer>();\r
+ private static List<Integer> fibonacci = new ArrayList<Integer>();\r
+ private static List<Integer> gleich = new ArrayList<Integer>();\r
+ private static List<Integer> negativ = new ArrayList<Integer>();\r
+\r
+ List<?> result = null;\r
+ Object[] resultExpected;\r
+ int expected;\r
+ \r
+ @Before\r
+ public void fillData() {\r
+ primzahlen.add(new Integer(19));\r
+ primzahlen.add(new Integer(2));\r
+ primzahlen.add(new Integer(5));\r
+ primzahlen.add(new Integer(11));\r
+ primzahlen.add(new Integer(23));\r
+ primzahlen.add(new Integer(13));\r
+ primzahlen.add(new Integer(3));\r
+ primzahlen.add(new Integer(7));\r
+ primzahlen.add(new Integer(17));\r
+\r
+ fibonacci.add(new Integer(1));\r
+ fibonacci.add(new Integer(21));\r
+ fibonacci.add(new Integer(2));\r
+ fibonacci.add(new Integer(55));\r
+ fibonacci.add(new Integer(5));\r
+ fibonacci.add(new Integer(1));\r
+ fibonacci.add(new Integer(8));\r
+ fibonacci.add(new Integer(34));\r
+ fibonacci.add(new Integer(13));\r
+ fibonacci.add(new Integer(3));\r
+ \r
+ gleich.add(new Integer(2));\r
+ gleich.add(new Integer(3));\r
+ gleich.add(new Integer(5));\r
+\r
+ negativ.add(new Integer(-1));\r
+ negativ.add(new Integer(-18));\r
+ negativ.add(new Integer(-12));\r
+ }\r
+\r
+ @After\r
+ public void killData() {\r
+ primzahlen.clear();\r
+ fibonacci.clear();\r
+ gleich.clear();\r
+ negativ.clear();\r
+ }\r
+ \r
+ @Test\r
+ public void testTeilmengeFirst1() {\r
+ \r
+ result = ListComp.compare(gleich, fibonacci, ListComp.TypeOfSet.IN_FIRST_ONLY);\r
+ expected = 0;\r
+ Assert.assertEquals("Erwartet: " + expected, expected, result.size());\r
+ \r
+ resultExpected = new Integer[]{};\r
+ assertArrayElements(resultExpected, result);\r
+ }\r
+ \r
+ @Test\r
+ public void testTeilmengeFirst2() {\r
+ \r
+ result = ListComp.compare(primzahlen, gleich, ListComp.TypeOfSet.IN_FIRST_ONLY);\r
+ expected = 6;\r
+ Assert.assertEquals("Erwartet: " + expected, expected, result.size());\r
+ \r
+ resultExpected = new Integer[]{7,11,17,19,23};\r
+ assertArrayElements(resultExpected, result);\r
+ }\r
+\r
+ @Test\r
+ public void testTeilmengeLast1() {\r
+ \r
+ result = ListComp.compare(gleich, fibonacci, ListComp.TypeOfSet.IN_LAST_ONLY);\r
+ expected = 7;\r
+ Assert.assertEquals("Erwartet: " + expected, expected, result.size());\r
+\r
+ resultExpected = new Integer[]{1,1,8,13,21,34,55};\r
+ assertArrayElements(resultExpected, result);\r
+ }\r
+ \r
+ @Test\r
+ public void testTeilmengeLast2() {\r
+ \r
+ result = ListComp.compare(primzahlen, gleich, ListComp.TypeOfSet.IN_LAST_ONLY);\r
+ expected = 0;\r
+ Assert.assertEquals("Erwartet: " + expected, expected, result.size());\r
+ \r
+ resultExpected = new Integer[]{};\r
+ assertArrayElements(resultExpected, result);\r
+ }\r
+ \r
+ @Test\r
+ public void testTeilmenge() {\r
+ \r
+ result = ListComp.compare(primzahlen, gleich, ListComp.TypeOfSet.IN_BOTH);\r
+ expected = 3;\r
+ Assert.assertEquals("Erwartet: " + expected, expected, result.size());\r
+ \r
+ resultExpected = new Integer[]{2,3,5};\r
+ assertArrayElements(resultExpected, result);\r
+ }\r
+ \r
+ @Test\r
+ public void testTeilmengeGleich1() {\r
+ \r
+ result = ListComp.compare(gleich, gleich, ListComp.TypeOfSet.IN_BOTH);\r
+ expected = 3;\r
+ Assert.assertEquals("Erwartet: " + expected, expected, result.size());\r
+\r
+ resultExpected = new Integer[]{2,3,5};\r
+ assertArrayElements(resultExpected, result);\r
+ }\r
+ \r
+ @Test\r
+ public void testTeilmengeGleich2() {\r
+ \r
+ result = ListComp.compare(gleich, gleich, ListComp.TypeOfSet.IN_LAST_ONLY);\r
+ expected = 0;\r
+ Assert.assertEquals("Erwartet: " + expected, expected, result.size());\r
+ \r
+ resultExpected = new Integer[]{};\r
+ assertArrayElements(resultExpected, result);\r
+ }\r
+ \r
+ @Test\r
+ public void testSchnittmengeFirst() {\r
+ \r
+ result = ListComp.compare(primzahlen, fibonacci, ListComp.TypeOfSet.IN_FIRST_ONLY);\r
+ expected = 5;\r
+ Assert.assertEquals("Erwartet: " + expected, expected, result.size());\r
+ \r
+ resultExpected = new Integer[]{7,11,17,19,23};\r
+ assertArrayElements(resultExpected, result);\r
+ }\r
+ \r
+ @Test\r
+ public void testSchnittmengeLast() {\r
+ \r
+ result = ListComp.compare(primzahlen, fibonacci, ListComp.TypeOfSet.IN_LAST_ONLY);\r
+ expected = 6;\r
+ Assert.assertEquals("Erwartet: " + expected, expected, result.size());\r
+ \r
+ resultExpected = new Integer[]{1,1,8,21,34,55};\r
+ assertArrayElements(resultExpected, result);\r
+ }\r
+ \r
+ @Test\r
+ public void testSchnittmenge() {\r
+ \r
+ result = ListComp.compare(primzahlen, fibonacci, ListComp.TypeOfSet.IN_BOTH);\r
+ expected = 4;\r
+ Assert.assertEquals("Erwartet: " + expected, expected, result.size());\r
+ \r
+ resultExpected = new Integer[]{2,3,5,13};\r
+ assertArrayElements(resultExpected, result);\r
+ }\r
+ \r
+ @Test\r
+ public void testKeineSchnittmengeFirst() {\r
+ \r
+ result = ListComp.compare(primzahlen, negativ, ListComp.TypeOfSet.IN_FIRST_ONLY);\r
+ expected = 9;\r
+ Assert.assertEquals("Erwartet: " + expected, expected, result.size());\r
+ \r
+ resultExpected = new Integer[]{2,3,5,7,11,13,17,19,23};\r
+ assertArrayElements(resultExpected, result);\r
+ }\r
+ \r
+ @Test\r
+ public void testKeineSchnittmengeLast() {\r
+ \r
+ result = ListComp.compare(primzahlen, negativ, ListComp.TypeOfSet.IN_LAST_ONLY);\r
+ expected = 3;\r
+ Assert.assertEquals("Erwartet: " + expected, expected, result.size());\r
+ \r
+ resultExpected = new Integer[]{-1,-12,-18};\r
+ assertArrayElements(resultExpected, result);\r
+ }\r
+ \r
+ @Test\r
+ public void testKeineSchnittmengeBoth() {\r
+ \r
+ result = ListComp.compare(primzahlen, negativ, ListComp.TypeOfSet.IN_BOTH);\r
+ expected = 0;\r
+ Assert.assertEquals("Erwartet: " + expected, expected, result.size());\r
+ \r
+ resultExpected = new Integer[]{};\r
+ assertArrayElements(resultExpected, result);\r
+ }\r
+\r
+ private void assertArrayElements(Object[] resultExpected, List<?> result) {\r
+ for (Object object : resultExpected) {\r
+ Assert.assertTrue(object + " sollte enthalten sein", result.contains(object));\r
+ }\r
+ }\r
+}\r