import org.junit.Test; import java.util.Arrays; import java.util.List; import static org.junit.Assert.assertEquals; public class NextPermutationTest { private List<Integer> expected; private List<Integer> input; @Test public void nextPermutation1() { expected = Arrays.asList(1, 2, 0, 3); input = Arrays.asList(1, 0, 3, 2); test(expected, input); } @Test public void nextPermutation2() { expected = Arrays.asList(); input = Arrays.asList(3, 2, 1, 0); test(expected, input); } @Test public void nextPermutation3() { expected = Arrays.asList(2, 1, 0); input = Arrays.asList(2, 0, 1); test(expected, input); } private void test(List<Integer> expected, List<Integer> input) { assertEquals(expected, NextPermutation.nextPermutation(input)); } }