Advertisement
Guest User

Untitled

a guest
Sep 3rd, 2015
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 16.09 KB | None | 0 0
  1. import java.util.NoSuchElementException;
  2.  
  3. import org.junit.Before;
  4. import org.junit.Test;
  5.  
  6. import static org.junit.Assert.assertArrayEquals;
  7. import static org.junit.Assert.assertEquals;
  8. import static org.junit.Assert.assertNotNull;
  9.  
  10. public class CircularLinkedListTestStudent {
  11.     private static final int TIMEOUT = 200;
  12.     private CircularDoublyLinkedList<Integer> list;
  13.  
  14.     @Before
  15.     public void setup() {
  16.         list = new CircularDoublyLinkedList<>();
  17.     }
  18.    
  19.     @Test(timeout = TIMEOUT)
  20.     public void testAddToFront() {
  21.         //if size == 0
  22.         list.addToFront(84); //linked list: 84
  23.         assertEquals(1, list.size());
  24.         LinkedListNode<Integer> node = list.getHead();
  25.         assertNotNull(node);
  26.         assertNotNull(node.getPrevious());
  27.         assertNotNull(node.getNext());
  28.         assertEquals((Integer) 84, node.getData());
  29.         assertEquals((Integer) 84, node.getPrevious().getData());
  30.         assertEquals((Integer) 84, node.getNext().getData());
  31.         //if size == 1
  32.         list.addToFront(12); //linked list: 12, 84
  33.         assertEquals(2, list.size());
  34.         node = list.getHead();
  35.         assertNotNull(node);
  36.         assertNotNull(node.getPrevious());
  37.         assertNotNull(node.getNext());
  38.         assertEquals((Integer) 12, node.getData());
  39.         assertEquals((Integer) 84, node.getPrevious().getData());
  40.         assertEquals((Integer) 84, node.getNext().getData());
  41.         assertEquals((Integer) 12, node.getPrevious().getNext().getData());
  42.         assertEquals((Integer) 12, node.getNext().getPrevious().getData());
  43.         //if size > 1
  44.         list.addToFront(95); //linked list: 95, 12, 84
  45.         assertEquals(3, list.size());
  46.         node = list.getHead();
  47.         assertNotNull(node);
  48.         assertNotNull(node.getPrevious());
  49.         assertNotNull(node.getNext());
  50.         assertEquals((Integer) 95, node.getData());
  51.         assertEquals((Integer) 84, node.getPrevious().getData());
  52.         assertEquals((Integer) 12, node.getNext().getData());
  53.         assertEquals((Integer) 95, node.getNext().getPrevious().getData());
  54.         assertEquals((Integer) 95, node.getPrevious().getNext().getData());
  55.     }
  56.    
  57.     @Test(timeout = TIMEOUT)
  58.     public void testAddToBack() {
  59.         //if size == 0
  60.         list.addToBack(84); //linked list: 84
  61.         assertEquals(1, list.size());
  62.         LinkedListNode<Integer> node = list.getHead();
  63.         assertNotNull(node);
  64.         assertNotNull(node.getPrevious());
  65.         assertNotNull(node.getNext());
  66.         assertEquals((Integer) 84, node.getData());
  67.         assertEquals((Integer) 84, node.getPrevious().getData());
  68.         assertEquals((Integer) 84, node.getNext().getData());
  69.         //if size == 1
  70.         list.addToBack(12); //linked list: 84, 12
  71.         assertEquals(2, list.size());
  72.         node = list.getHead();
  73.         assertNotNull(node);
  74.         assertNotNull(node.getPrevious());
  75.         assertNotNull(node.getNext());
  76.         assertEquals((Integer) 84, node.getData());
  77.         assertEquals((Integer) 12, node.getPrevious().getData());
  78.         assertEquals((Integer) 12, node.getNext().getData());
  79.         assertEquals((Integer) 84, node.getNext().getPrevious().getData());
  80.         assertEquals((Integer) 84, node.getNext().getNext().getData());
  81.         //if size >= 2
  82.         list.addToBack(95); //linked list: 84, 12, 95
  83.         assertEquals(3, list.size());
  84.         node = list.getHead();
  85.         assertNotNull(node);
  86.         assertNotNull(node.getPrevious());
  87.         assertNotNull(node.getNext());
  88.         assertEquals((Integer) 84, node.getData());
  89.         assertEquals((Integer) 95, node.getPrevious().getData());
  90.         assertEquals((Integer) 12, node.getNext().getData());
  91.         assertEquals((Integer) 95, node.getNext().getNext().getData());
  92.         list.addToBack(48); //linked list: 84, 12, 95, 48
  93.         assertEquals(4, list.size());
  94.         node = list.getHead();
  95.         assertNotNull(node);
  96.         assertNotNull(node.getPrevious());
  97.         assertNotNull(node.getNext());
  98.         assertEquals((Integer) 84, node.getData());
  99.         assertEquals((Integer) 48, node.getPrevious().getData());
  100.         assertEquals((Integer) 95, node.getPrevious().getPrevious().getData());
  101.         assertEquals((Integer) 48, node.getNext().getNext().getNext().getData());
  102.     }
  103.  
  104.     @Test(timeout = TIMEOUT)
  105.     public void testAddAtIndex() {
  106.         list.addAtIndex(0, 84);
  107.         list.addAtIndex(1, 23);
  108.         list.addAtIndex(1, 83);
  109.         list.addAtIndex(0, 96);
  110.         list.addAtIndex(4, 0);
  111.         list.addAtIndex(2, 1);
  112.        
  113.         assertEquals(6, list.size());
  114.  
  115.         LinkedListNode<Integer> node = list.getHead();
  116.         assertNotNull(node);
  117.         assertNotNull(node.getPrevious());
  118.         assertEquals((Integer) 96, node.getData());
  119.         assertEquals((Integer) 0, node.getPrevious().getData());
  120.         assertEquals((Integer) 84, node.getNext().getData());
  121.         node = node.getNext();
  122.         assertNotNull(node);
  123.         assertNotNull(node.getPrevious());
  124.         assertEquals((Integer) 84, node.getData());
  125.         assertEquals((Integer) 96, node.getPrevious().getData());
  126.         assertEquals((Integer) 1, node.getNext().getData());
  127.         node = node.getNext();
  128.         assertNotNull(node);
  129.         assertNotNull(node.getPrevious());
  130.         assertEquals((Integer) 1, node.getData());
  131.         assertEquals((Integer) 84, node.getPrevious().getData());
  132.         assertEquals((Integer) 83, node.getNext().getData());
  133.         node = node.getNext();
  134.         assertNotNull(node);
  135.         assertNotNull(node.getPrevious());
  136.         assertEquals((Integer) 83, node.getData());
  137.         assertEquals((Integer) 1, node.getPrevious().getData());
  138.         assertEquals((Integer) 23, node.getNext().getData());
  139.         node = node.getNext();
  140.         assertNotNull(node.getNext());
  141.         assertNotNull(node);
  142.         assertNotNull(node.getPrevious());
  143.         assertEquals((Integer) 23, node.getData());
  144.         assertEquals((Integer) 83, node.getPrevious().getData());
  145.         assertEquals((Integer) 0, node.getNext().getData());
  146.         node = node.getNext();
  147.         assertNotNull(node.getNext());
  148.         assertNotNull(node);
  149.         assertNotNull(node.getPrevious());
  150.         assertEquals((Integer) 0, node.getData());
  151.         assertEquals((Integer) 23, node.getPrevious().getData());
  152.         assertEquals((Integer) 96, node.getNext().getData());
  153.     }
  154.    
  155.     @Test(timeout = TIMEOUT)
  156.     public void testRemoveFront() {
  157.         //if size == 0
  158.         assertEquals(null, list.removeFromFront());
  159.         //if size == 1
  160.         list.addToFront(12);
  161.         LinkedListNode<Integer> node = list.getHead();
  162.         assertEquals((Integer) 12, list.removeFromFront());
  163.         assertEquals(0, list.size());
  164.         //if size > 1
  165.         list.addToFront(84);
  166.         list.addToBack(23);
  167.         list.addAtIndex(1, 83);
  168.         list.addToFront(96);
  169.         list.addAtIndex(3, 58);
  170.  
  171.         assertEquals(5, list.size());
  172.  
  173.         assertEquals((Integer) 96, list.removeFromFront());
  174.  
  175.         assertEquals(4, list.size());
  176.  
  177.         node = list.getHead();
  178.         assertNotNull(node);
  179.         assertNotNull(node.getPrevious());
  180.         assertEquals((Integer) 84, node.getData());
  181.         assertEquals((Integer) 23, node.getPrevious().getData());
  182.         node = node.getNext();
  183.         assertNotNull(node);
  184.         assertNotNull(node.getPrevious());
  185.         assertEquals((Integer) 83, node.getData());
  186.         node = node.getNext();
  187.         assertNotNull(node);
  188.         assertNotNull(node.getPrevious());
  189.         assertEquals((Integer) 58, node.getData());
  190.         node = node.getNext();
  191.         assertNotNull(node);
  192.         assertNotNull(node.getPrevious());
  193.         assertEquals((Integer) 23, node.getData());
  194.         assertNotNull(node.getNext());
  195.         assertEquals((Integer) 84, node.getNext().getData());
  196.     }
  197.    
  198.     @Test(timeout = TIMEOUT)
  199.     public void testRemoveBack() {
  200.         //if size == 0
  201.         assertEquals(null, list.removeFromBack());
  202.         //if size == 1
  203.         list.addToFront(12);
  204.         LinkedListNode<Integer> node = list.getHead();
  205.         assertEquals((Integer) 12, list.removeFromBack());
  206.         assertEquals(0, list.size());
  207.         //if size > 1
  208.         list.addToFront(84);
  209.         list.addToBack(23);
  210.         list.addAtIndex(1, 83);
  211.         list.addToFront(96);
  212.         list.addAtIndex(3, 58);
  213.         list.addToBack(100);
  214.  
  215.         assertEquals(6, list.size());
  216.        
  217.         node = list.getHead();
  218.         LinkedListNode<Integer> tail = node.getPrevious();
  219.  
  220.         assertEquals((Integer) 100, list.removeFromBack());
  221.         assertEquals((Integer) 23, node.getPrevious().getData());
  222.                
  223.         assertEquals(5, list.size());
  224.    
  225.         assertNotNull(node);
  226.         assertNotNull(node.getPrevious());
  227.         assertEquals((Integer) 96, node.getData());
  228.         assertEquals((Integer) 23, node.getPrevious().getData());
  229.         node = node.getNext();
  230.         assertNotNull(node);
  231.         assertNotNull(node.getPrevious());
  232.         assertEquals((Integer) 84, node.getData());
  233.         assertEquals((Integer) 96, node.getPrevious().getData());
  234.         node = node.getNext();
  235.         assertNotNull(node);
  236.         assertNotNull(node.getPrevious());
  237.         assertEquals((Integer) 83, node.getData());
  238.         node = node.getNext();
  239.         assertNotNull(node);
  240.         assertNotNull(node.getPrevious());
  241.         assertEquals((Integer) 58, node.getData());
  242.         node = node.getNext();
  243.         assertNotNull(node);
  244.         assertNotNull(node.getPrevious());
  245.         assertEquals((Integer) 23, node.getData());
  246.         assertNotNull(node.getNext());
  247.         assertEquals((Integer) 96, node.getNext().getData());
  248.     }
  249.  
  250.     @Test(timeout = TIMEOUT)
  251.     public void testRemoveAtIndex() {
  252.         list.addAtIndex(0, 84);
  253.         list.addAtIndex(1, 23);
  254.         list.addAtIndex(1, 83);
  255.         list.addAtIndex(0, 96);
  256.         list.addAtIndex(3, 58);
  257.  
  258.         assertEquals(5, list.size());
  259.         //remove from front of list
  260.         assertEquals((Integer) 96, list.removeAtIndex(0));
  261.         LinkedListNode<Integer> node = list.getHead();
  262.         assertEquals((Integer) 84, node.getData());
  263.         assertEquals((Integer) 23, node.getPrevious().getData());
  264.         assertEquals((Integer) 83, node.getNext().getData());
  265.         assertEquals(4, list.size());
  266.         //remove from end of list
  267.         assertEquals((Integer) 23, list.removeAtIndex(3));
  268.         node = list.getHead();
  269.         assertEquals((Integer) 84, node.getData());
  270.         assertEquals((Integer) 58, node.getPrevious().getData());
  271.         assertEquals((Integer) 84, node.getPrevious().getNext().getData());
  272.         assertEquals(3, list.size());
  273.         //remove from middle of list
  274.         assertEquals((Integer) 83, list.removeAtIndex(1));
  275.         node = list.getHead();
  276.         assertEquals((Integer) 84, node.getData());
  277.         assertEquals((Integer) 58, node.getNext().getData());
  278.         assertEquals((Integer) 84, node.getNext().getPrevious().getData());
  279.         assertEquals(2, list.size());
  280.     }
  281.  
  282.     @Test(timeout = TIMEOUT)
  283.     public void testGet() {
  284.         //if size == 1
  285.         list.addToFront(84);
  286.         assertEquals((Integer) 84, list.get(0));
  287.         //if size > 1
  288.         list.addToBack(23);
  289.         list.addAtIndex(1, 83);
  290.         list.addToFront(96);
  291.         list.addAtIndex(3, 58);
  292.  
  293.         assertEquals(5, list.size());
  294.         assertEquals((Integer) 96, list.get(0));
  295.         assertEquals((Integer) 84, list.get(1));
  296.         assertEquals((Integer) 83, list.get(2));
  297.         assertEquals((Integer) 58, list.get(3));
  298.         assertEquals((Integer) 23, list.get(4));
  299.     }
  300.  
  301.     @Test(timeout = TIMEOUT)
  302.     public void testArray() {
  303.         list.addToFront(84);
  304.         LinkedListNode<Integer> node = list.getHead();
  305.         assertEquals((Integer) 84, node.getData());
  306.        
  307.         list.addToBack(23);
  308.         list.addAtIndex(1, 83);
  309.         list.addToFront(96);
  310.         list.addAtIndex(3, 58);
  311.  
  312.         assertEquals(5, list.size());
  313.  
  314.         Integer[] expected = new Integer[] {96, 84, 83, 58, 23};
  315.         assertArrayEquals(expected, list.toArray());
  316.         node = list.getHead();
  317.         assertEquals((Integer) 96, node.getData());
  318.     }
  319.  
  320.     @Test(timeout = TIMEOUT)
  321.     public void testArrayEmpty() {
  322.         Integer[] expected = new Integer[] {};
  323.         assertArrayEquals(expected, list.toArray());
  324.     }
  325.    
  326.     @Test(timeout = TIMEOUT)
  327.     public void removeFirstOccurrence() {
  328.         list.addToFront(84);
  329.         list.addToBack(23);
  330.         list.addAtIndex(1, 83);
  331.         list.addToFront(96);
  332.         list.addAtIndex(3, 58);
  333.        
  334.         LinkedListNode<Integer> node = list.getHead();
  335.         assertEquals(0, list.removeFirstOccurrence(96));
  336.         node = list.getHead();
  337.         assertEquals((Integer)84, node.getData());
  338.         assertEquals(4, list.size());
  339.        
  340.         assertEquals(1, list.removeFirstOccurrence(83));
  341.         assertEquals(3, list.size());
  342.         assertEquals(2, list.removeFirstOccurrence(23));
  343.         assertEquals(2, list.size());    
  344.     }
  345.  
  346.     @Test(expected = NoSuchElementException.class, timeout = TIMEOUT)
  347.     public void testRemoveNotInList() {
  348.         list.addToFront(84);
  349.         list.addToBack(23);
  350.         list.addAtIndex(1, 83);
  351.         list.addToFront(96);
  352.         list.addAtIndex(3, 58);
  353.  
  354.         list.removeFirstOccurrence(42);
  355.     }
  356.    
  357.     @Test(timeout = TIMEOUT)
  358.     public void removeAllOccurrences() {
  359.         list.addToBack(1);
  360.         list.addToBack(1);
  361.         list.addToBack(20);
  362.         list.addToBack(1);
  363.         list.addToBack(21);
  364.         list.addToBack(1);
  365.         list.addToBack(22);
  366.         list.addToBack(1);
  367.         list.addToBack(23);
  368.         list.addToBack(1);
  369.  
  370.         assertEquals(10, list.size());    
  371.         LinkedListNode<Integer> node = list.getHead();
  372.         assertEquals((Integer) 1, node.getData());
  373.        
  374.         assertEquals(false, list.removeAllOccurrences(0));
  375.         assertEquals(10, list.size());
  376.        
  377.         assertEquals(true, list.removeAllOccurrences(1));
  378.         node = list.getHead();
  379.         assertEquals((Integer) 20, node.getData());
  380.         assertEquals((Integer) 21, node.getNext().getData());
  381.         assertEquals((Integer) 23, node.getPrevious().getData());
  382.         assertEquals(4, list.size());
  383.        
  384.     }
  385.    
  386.     @Test(timeout = TIMEOUT)
  387.     public void testConstructor() {
  388.         Integer[] initialValues = new Integer[] {38, 43, 29, 59, 83};
  389.  
  390.         list = new CircularDoublyLinkedList<>(initialValues);
  391.  
  392.         assertEquals(5, list.size());
  393.  
  394.         LinkedListNode<Integer> node = list.getHead();
  395.         assertNotNull(node);
  396.         assertNotNull(node.getPrevious());
  397.         assertEquals((Integer) 38, node.getData());
  398.         node = node.getNext();
  399.         assertNotNull(node);
  400.         assertNotNull(node.getPrevious());
  401.         assertEquals((Integer) 43, node.getData());
  402.         node = node.getNext();
  403.         assertNotNull(node);
  404.         assertNotNull(node.getPrevious());
  405.         assertEquals((Integer) 29, node.getData());
  406.         node = node.getNext();
  407.         assertNotNull(node);
  408.         assertNotNull(node.getPrevious());
  409.         assertEquals((Integer) 59, node.getData());
  410.         node = node.getNext();
  411.         assertNotNull(node);
  412.         assertNotNull(node.getPrevious());
  413.         assertEquals((Integer) 83, node.getData());
  414.         assertNotNull(node.getNext());
  415.     }
  416.    
  417.     @Test(timeout = TIMEOUT)
  418.     public void isEmpty() {
  419.         assertEquals(true, list.isEmpty());
  420.         list.addToFront(84);
  421.         assertEquals(false, list.isEmpty());
  422.     }
  423.    
  424.     @Test(timeout = TIMEOUT)
  425.     public void size() {
  426.         assertEquals(0, list.size());
  427.         list.addToFront(84);
  428.         assertEquals(1, list.size());
  429.     }
  430.    
  431.     @Test(timeout = TIMEOUT)
  432.     public void clear() {
  433.         list.clear();
  434.         assertEquals(0, list.size());
  435.         list.addToFront(84);
  436.         assertEquals(1, list.size());
  437.         list.clear();
  438.         assertEquals(0, list.size());
  439.        
  440.     }    
  441. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement