import static org.junit.Assert.*;
import org.junit.Test;
public class ExtendSolutionTwoTest {
@Test
public void test() {
MyNode head = createLinkedList(new int[] {1, 2, 3, 4, 5, 6});
ExtendSolutionTwo.printResult(head);
head = ExtendSolutionTwo.reverse(head);
ExtendSolutionTwo.printResult(head);
MyNode current = head;
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(null, current);
}
@Test
public void test1() {
MyNode head = createLinkedList(new int[] {1});
ExtendSolutionTwo.printResult(head);
head = ExtendSolutionTwo.reverse(head);
ExtendSolutionTwo.printResult(head);
MyNode current = head;
assertEquals(1, current.value);
current = current.next;
assertEquals(null, current);
}
@Test
public void testNull() {
MyNode head = new MyNode(0, null);
ExtendSolutionTwo.printResult(head);
head = ExtendSolutionTwo.reverse(head);
ExtendSolutionTwo.printResult(head);
MyNode current = head;
assertEquals(0, current.value);
assertEquals(null, current.next);
ExtendSolutionTwo.printResult(null);
head = ExtendSolutionTwo.reverse(null);
ExtendSolutionTwo.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;
}
return head;
}
}