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