import org.junit.Test; public class CyclicRightShiftTest { private ListNode<Integer> expected; private ListNode<Integer> input; private int k; @Test public void shift1() { expected = LinkedListUtil.createLinkedList(1, 2, 3, 4, 5); input = LinkedListUtil.createLinkedList(1, 2, 3, 4, 5); k = 0; test(expected, input, k); } @Test public void shift2() { expected = LinkedListUtil.createLinkedList(1, 2, 3, 4, 5); input = LinkedListUtil.createLinkedList(2, 3, 4, 5, 1); k = 1; test(expected, input, k); } @Test public void shift3() { expected = LinkedListUtil.createLinkedList(1, 2, 3, 4, 5); input = LinkedListUtil.createLinkedList(3, 4, 5, 1, 2); k = 2; test(expected, input, k); } @Test public void shift4() { expected = LinkedListUtil.createLinkedList(1, 2); input = LinkedListUtil.createLinkedList(2, 1); k = 1; test(expected, input, k); } private void test(ListNode<Integer> expected, ListNode<Integer> input, int k) { LinkedListUtil.assertSameList(expected, CyclicRightShift.shift(k, input)); } }