@Test public void testItemsPermutate() { int[] indices = new int[] {1, 3, 5}; indicesList.addIndices(indices); report.clear(); ListChangeReport itemsReport = new ListChangeReport(items); // permutation on items // [0->8, 1->7, 2->6, 3->5, 4->4, 5->3, 6->2, 7->1, 8->0] items.sort(null); // itemsReport.prettyPrint(); int[] permutated = new int[] {3, 5, 7}; // LOG.info("sortedItems" + itemsReport.getLastChange()); // LOG.info("sorted: " + report.getLastChange()); // report.prettyPrint(); assertEquals(1, report.getEventCount()); assertEquals(1, getChangeCount(report.getLastChange(), ChangeType.REPLACED)); Change c = report.getLastChange(); c.reset(); c.next(); assertEquals("added size same", permutated.length, c.getAddedSize()); for (int i = 0; i < permutated.length; i++) { assertEquals("added at " + i, permutated[i], c.getAddedSubList().get(i)); } assertEquals("removed size same", indices.length, c.getRemovedSize()); for (int i = 0; i < indices.length; i++) { assertEquals("removed at" + i, indices[i], c.getRemoved().get(i)); } // LOG.info("" + indicesList); }
@Test public void testSimpleUpdate() { Change<String> change = new NonIterableChange.SimpleUpdateChange<String>(0, 1, list); assertTrue(change.next()); assertFalse(change.wasAdded()); assertFalse(change.wasRemoved()); assertFalse(change.wasReplaced()); assertTrue(change.wasUpdated()); assertFalse(change.wasPermutated()); assertEquals(0, change.getFrom()); assertEquals(1, change.getTo()); assertEquals(0, change.getAddedSize()); assertEquals(Arrays.asList(), change.getAddedSubList()); assertEquals(0, change.getRemovedSize()); assertEquals(Arrays.asList(), change.getRemoved()); assertNotNull(change.toString()); assertFalse(change.next()); }