import java.util.LinkedList;
import java.util.List;
import org.junit.Test;
import org.overture.codegen.runtime.traces.PermuteArray;
public class PermuteArrayTest
{
public List<int[]> consPermutations(int n)
{
PermuteArray p = new PermuteArray(n);
List<int[]> intArrays = new LinkedList<int[]>();
while (p.hasNext())
{
int[] next = p.next();
intArrays.add(next.clone());
}
return intArrays;
}
@Test
public void permutateArray1()
{
List<int[]> intArrays = consPermutations(1);
PermutorTest.assertNoOfPermutations(1, intArrays);
PermutorTest.assertArrayContained(new int[] { 0 }, intArrays);
}
@Test
public void permutateArray2()
{
List<int[]> intArrays = consPermutations(2);
PermutorTest.assertNoOfPermutations(2, intArrays);
PermutorTest.assertArrayContained(new int[] { 0, 1 }, intArrays);
PermutorTest.assertArrayContained(new int[] { 1, 0 }, intArrays);
}
@Test
public void permutateArray3()
{
List<int[]> intArrays = consPermutations(3);
PermutorTest.assertNoOfPermutations(6, intArrays);
PermutorTest.assertArrayContained(new int[] { 0, 1, 2 }, intArrays);
PermutorTest.assertArrayContained(new int[] { 0, 2, 1 }, intArrays);
PermutorTest.assertArrayContained(new int[] { 1, 0, 2 }, intArrays);
PermutorTest.assertArrayContained(new int[] { 1, 2, 0 }, intArrays);
PermutorTest.assertArrayContained(new int[] { 2, 0, 1 }, intArrays);
PermutorTest.assertArrayContained(new int[] { 2, 1, 0 }, intArrays);
}
}