]> gitweb.factorcode.org Git - factor.git/blob - basis/math/combinatorics/combinatorics-tests.factor
ca6ec9cb53c02d0d5722d8bf70eae70bfd3cd4b9
[factor.git] / basis / math / combinatorics / combinatorics-tests.factor
1 USING: math.combinatorics math.combinatorics.private tools.test sequences ;
2 IN: math.combinatorics.tests
3
4 [ 1 ] [ 0 factorial ] unit-test
5 [ 1 ] [ 1 factorial ] unit-test
6 [ 3628800 ] [ 10 factorial ] unit-test
7
8 [ 1 ] [ 3 0 nPk ] unit-test
9 [ 6 ] [ 3 2 nPk ] unit-test
10 [ 6 ] [ 3 3 nPk ] unit-test
11 [ 0 ] [ 3 4 nPk ] unit-test
12 [ 311875200 ] [ 52 5 nPk ] unit-test
13 [ 672151459757865654763838640470031391460745878674027315200000000000 ] [ 52 47 nPk ] unit-test
14
15 [ 1 ] [ 3 0 nCk ] unit-test
16 [ 3 ] [ 3 2 nCk ] unit-test
17 [ 1 ] [ 3 3 nCk ] unit-test
18 [ 0 ] [ 3 4 nCk ] unit-test
19 [ 2598960 ] [ 52 5 nCk ] unit-test
20 [ 2598960 ] [ 52 47 nCk ] unit-test
21
22
23 [ { } ] [ 0 factoradic ] unit-test
24 [ { 1 0 } ] [ 1 factoradic ] unit-test
25 [ { 1 1 0 3 0 1 0 } ] [ 859 factoradic ] unit-test
26
27 [ { 0 1 2 3 } ] [ { 0 0 0 0 } >permutation ] unit-test
28 [ { 0 1 3 2 } ] [ { 0 0 1 0 } >permutation ] unit-test
29 [ { 1 2 0 6 3 5 4 } ] [ { 1 1 0 3 0 1 0 } >permutation ] unit-test
30
31 [ { 0 1 2 3 } ] [ 0 4 iota permutation-indices ] unit-test
32 [ { 0 1 3 2 } ] [ 1 4 iota permutation-indices ] unit-test
33 [ { 1 2 0 6 3 5 4 } ] [ 859 7 iota permutation-indices ] unit-test
34
35 [ { "a" "b" "c" "d" } ] [ 0 { "a" "b" "c" "d" } permutation ] unit-test
36 [ { "d" "c" "b" "a" } ] [ 23 { "a" "b" "c" "d" } permutation ] unit-test
37 [ { "d" "a" "b" "c" } ] [ 18 { "a" "b" "c" "d" } permutation ] unit-test
38
39 [ { { "a" "b" "c" } { "a" "c" "b" }
40     { "b" "a" "c" } { "b" "c" "a" }
41     { "c" "a" "b" } { "c" "b" "a" } } ] [ { "a" "b" "c" } all-permutations ] unit-test
42
43 [ { 0 1 2 } ] [ { "a" "b" "c" } inverse-permutation ] unit-test
44 [ { 2 1 0 } ] [ { "c" "b" "a" } inverse-permutation ] unit-test
45 [ { 3 0 2 1 } ] [ { 12 45 34 2 } inverse-permutation ] unit-test
46
47
48 [ 2598960 ] [ 52 iota 5 <combo> choose ] unit-test
49
50 [ 6 3 13 6 ] [ 7 4 28 next-values ] unit-test
51 [ 5 2 3 5 ] [ 6 3 13 next-values ] unit-test
52 [ 3 1 0 3 ] [ 5 2 3 next-values ] unit-test
53 [ 0 0 0 0 ] [ 3 1 0 next-values ] unit-test
54
55 [ 9 ] [ 0 5 iota 3 <combo> dual-index ] unit-test
56 [ 0 ] [ 9 5 iota 3 <combo> dual-index ] unit-test
57 [ 179 ] [ 72 10 iota 5 <combo> dual-index ] unit-test
58
59 [ { 5 3 2 1 } ] [ 7 4 <combo> 8 combinadic ] unit-test
60 [ { 4 3 2 1 0 } ] [ 10 iota 5 <combo> 0 combinadic ] unit-test
61 [ { 8 6 3 1 0 } ] [ 10 iota 5 <combo> 72 combinadic ] unit-test
62 [ { 9 8 7 6 5 } ] [ 10 iota 5 <combo> 251 combinadic ] unit-test
63
64 [ { 0 1 2 } ] [ 0 5 iota 3 <combo> combination-indices ] unit-test
65 [ { 2 3 4 } ] [ 9 5 iota 3 <combo> combination-indices ] unit-test
66
67 [ { "a" "b" "c" } ] [ 0 { "a" "b" "c" "d" "e" } 3 combination ] unit-test
68 [ { "c" "d" "e" } ] [ 9 { "a" "b" "c" "d" "e" } 3 combination ] unit-test
69
70 [ { { "a" "b" } { "a" "c" }
71     { "a" "d" } { "b" "c" }
72     { "b" "d" } { "c" "d" } } ] [ { "a" "b" "c" "d" } 2 all-combinations ] unit-test