1+ import org .junit .Test ;
2+
3+ import java .util .Arrays ;
4+ import java .util .List ;
5+
6+ import static org .junit .Assert .*;
7+
8+ public class GeneratePermutationsTest {
9+
10+ private List <List <Integer >> expected ;
11+ private List <Integer > A ;
12+
13+ @ Test
14+ public void permutations1 () throws Exception {
15+ expected = Arrays .asList (
16+ Arrays .asList (2 )
17+ );
18+ A = Arrays .asList (2 );
19+
20+ test (expected , A );
21+ }
22+
23+ @ Test
24+ public void permutations2 () throws Exception {
25+ expected = Arrays .asList (
26+ Arrays .asList (2 ,3 ),
27+ Arrays .asList (3 ,2 )
28+ );
29+ A = Arrays .asList (2 ,3 );
30+
31+ test (expected , A );
32+ }
33+
34+ @ Test
35+ public void permutations3 () throws Exception {
36+ expected = Arrays .asList (
37+ Arrays .asList (2 ,3 ,5 ),
38+ Arrays .asList (2 ,5 ,3 ),
39+
40+ Arrays .asList (3 ,2 ,5 ),
41+ Arrays .asList (3 ,5 ,2 ),
42+
43+ Arrays .asList (5 ,2 ,3 ),
44+ Arrays .asList (5 ,3 ,2 )
45+ );
46+ A = Arrays .asList (2 ,3 ,5 );
47+
48+ test (expected , A );
49+ }
50+
51+ @ Test
52+ public void permutations4 () throws Exception {
53+ expected = Arrays .asList (
54+ Arrays .asList (2 ,3 ,5 ,7 ),
55+ Arrays .asList (2 ,3 ,7 ,5 ),
56+ Arrays .asList (2 ,5 ,3 ,7 ),
57+ Arrays .asList (2 ,5 ,7 ,3 ),
58+ Arrays .asList (2 ,7 ,3 ,5 ),
59+ Arrays .asList (2 ,7 ,5 ,3 ),
60+
61+ Arrays .asList (3 ,2 ,5 ,7 ),
62+ Arrays .asList (3 ,2 ,7 ,5 ),
63+ Arrays .asList (3 ,5 ,2 ,7 ),
64+ Arrays .asList (3 ,5 ,7 ,2 ),
65+ Arrays .asList (3 ,7 ,2 ,5 ),
66+ Arrays .asList (3 ,7 ,5 ,2 ),
67+
68+ Arrays .asList (5 ,2 ,3 ,7 ),
69+ Arrays .asList (5 ,2 ,7 ,3 ),
70+ Arrays .asList (5 ,3 ,2 ,7 ),
71+ Arrays .asList (5 ,3 ,7 ,2 ),
72+ Arrays .asList (5 ,7 ,2 ,5 ),
73+ Arrays .asList (5 ,7 ,5 ,2 ),
74+
75+ Arrays .asList (7 ,2 ,5 ,3 ),
76+ Arrays .asList (7 ,2 ,3 ,5 ),
77+ Arrays .asList (7 ,3 ,2 ,7 ),
78+ Arrays .asList (7 ,3 ,7 ,2 ),
79+ Arrays .asList (7 ,5 ,3 ,2 ),
80+ Arrays .asList (7 ,5 ,2 ,3 )
81+ );
82+ A = Arrays .asList (2 ,3 ,5 ,7 );
83+
84+ test (expected , A );
85+ }
86+
87+ private void test (List <List <Integer >> expected , List <Integer > A ) {
88+ List <List <Integer >> result = GeneratePermutations .permutations (A );
89+ assertEquals (expected .size (), result .size ());
90+ expected .forEach (i -> {
91+ assertTrue (result .remove (i ));
92+ });
93+ }
94+
95+ }
0 commit comments