Site Search:

CircularSolutionFourTest.java


import static org.junit.Assert.*;

import org.junit.Test;

public class CircularSolutionFourTest {

    @Test
    public void test() {
        MyNode head = createLinkedList(new int[] {1, 2, 3, 4, 5, 6});
        CircularSolutionFour.printResult(head);
        head = CircularSolutionFour.reverse(head);
        CircularSolutionFour.printResult(head);
        MyNode current = head;
        assertEquals(1, current.value);
        current = current.next;
        assertEquals(6, current.value);
        current = current.next;
        assertEquals(5, current.value);
        current = current.next;
        assertEquals(4, current.value);
        current = current.next;
        assertEquals(3, current.value);
        current = current.next;
        assertEquals(2, current.value);
        current = current.next;
        assertEquals(1, current.value);
        current = current.next;
        assertEquals(6, current.value);
    }
    
    @Test
    public void test1() {
        MyNode head = createLinkedList(new int[] {1});
        CircularSolutionFour.printResult(head);
        head = CircularSolutionFour.reverse(head);
        CircularSolutionFour.printResult(head);
        MyNode current = head;
        assertEquals(1, current.value);
        current = current.next;
        assertEquals(head, current);
    }
    
    @Test
    public void testNull() {
        MyNode head = new MyNode(0, null);
        CircularSolutionFour.printResult(head);
        head = CircularSolutionFour.reverse(head);
        CircularSolutionFour.printResult(head);
        MyNode current = head;
        assertEquals(0, current.value);
        assertEquals(null, current.next);
        
        CircularSolutionFour.printResult(null);
        head = CircularSolutionFour.reverse(null);
        CircularSolutionFour.printResult(null);
        assertEquals(null, head);
    }
    
    public static MyNode createLinkedList(int[] values) {
        
        MyNode head = new MyNode(values[0], null);
        MyNode current = head;
        for(int i = 1; i < values.length; i++) {
            current.next = new MyNode(values[i], null);
            current = current.next;
        }
        current.next = head;
        return head;
    }

}