@Test public void beforeAfterAreCalled() { MyCollection c = createCollection(); c.add(0); c.remove(0); assertTrue(c.isEmpty()); assertEquals(1, c.getBeforeItemAddedCallsNumber()); assertEquals(1, c.getBeforeItemRemovedCallsNumber()); c.verifyBeforeAfter(); }
@Test(expected = IllegalStateException.class) public void removeFailureDoesntAffectBeforeAfter() { MyCollection c = createThrowingOnRemoveCollection(); c.add(0); c.addListener(createThrowingListener()); try { c.remove(0); } finally { c.verifyBeforeAfter(); c.verifyLastSuccess(false); c.assertContentEquals(0); } }
@Test(expected = UnsupportedOperationException.class) public void beforeAfterOnRemoveArentAffectedByListenerExceptions() { MyCollection c = createCollection(); c.add(0); c.addListener(createThrowingListener()); try { c.remove(0); } finally { c.verifyBeforeAfter(); c.verifyLastSuccess(true); assertTrue(c.isEmpty()); } }
@Test(expected = IllegalStateException.class) public void addFailureDoesntAffectBeforeAfter() { MyCollection c = createThrowingOnAddCollection(); c.addListener(createThrowingListener()); try { c.add(0); } finally { c.verifyBeforeAfter(); c.verifyLastSuccess(false); assertTrue(c.isEmpty()); } }
@Test(expected = UnsupportedOperationException.class) public void beforeAfterOnAddArentAffectedByListenerExceptions() { MyCollection c = createCollection(); c.addListener(createThrowingListener()); try { c.add(0); } finally { c.verifyBeforeAfter(); c.verifyLastSuccess(true); c.assertContentEquals(0); } }
/** * 对数组的绝对值由大到小排序,返回调整后元素对于的原始下标 * * @param data 待排序数组 * @return 原始下标 */ public static int[] sort(TIntFloatHashMap data) { return MyCollection.sort(data); }