@Test(expected = NoSuchElementException.class) public void testRemoveFirstFromEmptyDeque() { Deque<Integer> deque = new Deque<Integer>(); int count = 10; for (int i = 0; i < count; i++) { deque.addFirst(10); } for (int i = 0; i < count; i++) { deque.removeFirst(); } deque.removeFirst(); // should throw exception }
@Test public void Deque_addFirst_removeFirst_AddsRemovesTwo() { deque.addFirst("firstString"); deque.addFirst("secondString"); assertFalse(deque.isEmpty()); assertEquals(deque.size(), 2); String returnedString = deque.removeFirst(); assertEquals(returnedString, "secondString"); assertFalse(deque.isEmpty()); assertEquals(deque.size(), 1); returnedString = deque.removeFirst(); assertEquals(returnedString, "firstString"); assertTrue(deque.isEmpty()); assertEquals(deque.size(), 0); }
@Test public void testIsEmpty() { Deque<String> deque = new Deque<String>(); assertTrue(deque.isEmpty()); deque.addFirst(new String("test first")); deque.addLast(new String("test last")); deque.addLast(new String("test last")); deque.addFirst(new String("test first")); deque.addLast(new String("test last")); assertFalse(deque.isEmpty()); deque.removeFirst(); deque.removeFirst(); deque.removeFirst(); deque.removeLast(); deque.removeLast(); assertTrue(deque.isEmpty()); }
@Test(expected = NoSuchElementException.class) public void Deque_addLast_removeFirst_throwsIfEmpty() { deque.addFirst("firstString"); deque.addFirst("secondString"); deque.removeLast(); deque.removeLast(); deque.removeFirst(); }
@Test public void testAdditionReverseOrdered() { Deque<Integer> deque = new Deque<Integer>(); for (int i = 0; i < 10; i++) { deque.addLast(i); } for (int i = 0; i < 10; i++) { assertEquals(deque.removeFirst(), new Integer(i)); } }
@Test public void testRemove() { Deque<String> deque = new Deque<String>(); deque.addFirst(new String("test")); deque.addFirst(new String("test first")); deque.addLast(new String("test last")); deque.removeLast(); deque.removeFirst(); assertTrue(deque.size() == 1); deque.removeLast(); assertTrue(deque.size() == 0); }
@Test(expected = NoSuchElementException.class) public void Deque_removeFirst_throwsIfEmpty() { deque.removeFirst(); }