@Test public void pushHead() { LinkedList alg = new LinkedList(); LinkedList.Element e0 = alg.pushHead(1); assertEquals(1,alg.size); checkList(alg); LinkedList.Element e1 = alg.pushHead(2); assertEquals(2,alg.size); assertTrue(e1 == alg.first); assertTrue(e0 == alg.last); checkList(alg); LinkedList.Element e2 = alg.pushHead(3); assertEquals(3,alg.size); assertTrue(e2 == alg.first); assertTrue(e0 == alg.last); checkList(alg); }
@Test public void getHead() { LinkedList alg = new LinkedList(); assertTrue(null==alg.getHead()); LinkedList.Element e = alg.pushHead(1); assertTrue(e==alg.getHead()); }
@Test public void removeHead() { LinkedList alg = new LinkedList(); alg.pushHead(1); assertTrue(alg.removeHead().equals(1)); assertEquals(0,alg.size); assertEquals(1,alg.available.size()); checkList(alg); alg.pushTail(1); alg.pushTail(2); assertTrue(alg.removeHead().equals(1)); assertEquals(1,alg.size); assertEquals(1,alg.available.size()); checkList(alg); }
@Test public void removeTail() { LinkedList alg = new LinkedList(); alg.pushHead(1); assertTrue(alg.removeTail().equals(1)); assertEquals(0,alg.size); assertEquals(1,alg.available.size()); checkList(alg); alg.pushTail(1); alg.pushTail(2); assertTrue(alg.removeTail().equals(2)); assertEquals(1,alg.size); assertEquals(1,alg.available.size()); checkList(alg); }
@Test public void find() { LinkedList alg = new LinkedList(); assertTrue(null==alg.find(1)); LinkedList.Element e1 = alg.pushHead(1); assertTrue(null==alg.find(4)); assertTrue(e1==alg.find(e1.object)); LinkedList.Element e2 = alg.pushHead(2); assertTrue(null==alg.find(4)); assertTrue(e2==alg.find(e2.object)); assertTrue(e1==alg.find(e1.object)); }
@Test public void isEmpty() { LinkedList alg = new LinkedList(); assertTrue(alg.isEmpty()); alg.pushHead(1); assertFalse(alg.isEmpty()); alg.reset(); assertTrue(alg.isEmpty()); }
@Test public void getTail() { LinkedList alg = new LinkedList(); assertTrue(null==alg.getHead()); LinkedList.Element e = alg.pushHead(1); assertTrue(e == alg.getTail()); e = alg.pushTail(2); assertTrue(e == alg.getTail()); }
@Test public void remove() { LinkedList alg = new LinkedList(); LinkedList.Element e0,e1,e2; e0 = alg.pushTail(1); alg.remove(e0); assertEquals(0,alg.size); assertEquals(1,alg.available.size()); checkList(alg); e0 = alg.pushTail(1); e1 = alg.pushTail(2); alg.remove(e1); assertTrue(e0==alg.first); assertEquals(1,alg.size); assertEquals(1,alg.available.size()); checkList(alg); e1 = alg.pushTail(2); alg.remove(e0); assertTrue(e1==alg.first); assertEquals(1,alg.size); assertEquals(1,alg.available.size()); checkList(alg); e0 = alg.pushHead(1); e2 = alg.pushTail(3); alg.remove(e1); assertTrue(e0==alg.first); assertEquals(2,alg.size); assertEquals(1,alg.available.size()); checkList(alg); }
@Test public void insertBefore() { LinkedList alg = new LinkedList(); LinkedList.Element e0 = alg.pushHead(1); LinkedList.Element e1 = alg.insertBefore(e0, 2); assertTrue(e0.previous==e1); assertTrue(e1.next==e0); assertEquals(2,alg.size); checkList(alg); LinkedList.Element e2 = alg.insertBefore(e1, 2); assertTrue(e1.previous==e2); assertTrue(e2.next==e1); assertTrue(e2 == alg.first); assertEquals(3,alg.size); checkList(alg); }
@Test public void insertAfter() { LinkedList alg = new LinkedList(); LinkedList.Element e0 = alg.pushHead(1); LinkedList.Element e1 = alg.insertAfter(e0, 2); assertTrue(e0.next==e1); assertTrue(e1.previous==e0); assertEquals(2,alg.size); checkList(alg); LinkedList.Element e2 = alg.insertAfter(e1, 2); assertTrue(e1.next==e2); assertTrue(e2.previous==e1); assertTrue(e2 == alg.last); assertEquals(3,alg.size); checkList(alg); }