コード例 #1
0
 @Test
 public void testDeletingBackOrder() {
   final LongSkipList list = new LongSkipList();
   for (int i = 0; i < 1000; i++) {
     list.add(i);
   }
   for (int i = 999; i >= 0; i--) {
     Assert.assertTrue(list.remove(i));
     Assert.assertFalse(list.remove(i));
   }
   Assert.assertEquals(0, list.size());
 }
コード例 #2
0
 @Test
 public void testDeleting() {
   final LongSkipList list = new LongSkipList();
   for (int i = 0; i < 1000; i++) {
     list.add(i);
     list.add(i);
   }
   Assert.assertEquals(2000, list.size());
   for (int i = 0; i < 1000; i++) {
     Assert.assertTrue(list.remove(i));
   }
   Assert.assertEquals(1000, list.size());
   for (int i = 0; i < 1000; i++) {
     Assert.assertTrue(list.remove(i));
   }
   Assert.assertEquals(0, list.size());
 }
コード例 #3
0
 @Test
 public void testDeletingIteration() {
   final LongSkipList list = new LongSkipList();
   for (int i = 0; i < 1000; i += 2) {
     list.add(i);
     list.add(i);
   }
   for (int i = 1; i < 1000; i += 2) {
     list.add(i);
     list.add(i);
   }
   Assert.assertEquals(2000, list.size());
   LongSkipList.SkipListNode node = list.getMinimumNode();
   for (long i = 0; i < 1000; i++) {
     assert node != null;
     Assert.assertEquals(i, node.getKey());
     node = list.getNext(node);
     Assert.assertEquals(i, node.getKey());
     node = list.getNext(node);
   }
   Assert.assertNull(node);
   node = list.getMaximumNode();
   for (long i = 0; i < 1000; i++) {
     assert node != null;
     Assert.assertEquals(999 - i, node.getKey());
     node = list.getPrevious(node);
     Assert.assertEquals(999 - i, node.getKey());
     node = list.getPrevious(node);
   }
   Assert.assertNull(node);
   for (int i = 0; i < 1000; i++) {
     Assert.assertTrue(list.remove(i));
   }
   Assert.assertEquals(1000, list.size());
   node = list.getMinimumNode();
   for (long i = 0; i < 1000; i++) {
     assert node != null;
     Assert.assertEquals(i, node.getKey());
     node = list.getNext(node);
   }
   Assert.assertNull(node);
   node = list.getMaximumNode();
   for (long i = 0; i < 1000; i++) {
     assert node != null;
     Assert.assertEquals(999L - i, node.getKey());
     node = list.getPrevious(node);
   }
   Assert.assertNull(node);
 }
コード例 #4
0
 @Test
 public void testCount() {
   LongSkipList list = new LongSkipList();
   list.add(3);
   Assert.assertEquals(1, list.size());
   list.remove(3);
   Assert.assertEquals(0, list.size());
   list.add(2);
   list.add(4);
   list.add(5);
   list.add(6);
   list.add(7);
   list.add(8);
   list.add(9);
   list.add(10);
   list.add(11);
   list.add(12);
   Assert.assertEquals(10, list.size());
   list.remove(8);
   Assert.assertEquals(9, list.size());
   list.remove(4);
   Assert.assertEquals(8, list.size());
   list.remove(2);
   Assert.assertEquals(7, list.size());
   list.remove(10);
   Assert.assertEquals(6, list.size());
   list.remove(12);
   Assert.assertEquals(5, list.size());
   list.remove(6);
   Assert.assertEquals(4, list.size());
   list.remove(7);
   Assert.assertEquals(3, list.size());
   list.remove(5);
   Assert.assertEquals(2, list.size());
   list.remove(11);
   Assert.assertEquals(1, list.size());
   list.remove(9);
   Assert.assertEquals(0, list.size());
 }