]> gitweb.factorcode.org Git - factor.git/blob - extra/math/factorials/factorials-tests.factor
factor: Move math.ranges => ranges.
[factor.git] / extra / math / factorials / factorials-tests.factor
1 USING: kernel math.factorials math.functions ranges sequences tools.test ;
2
3 { 1 } [ -1 factorial ] unit-test ! not necessarily correct
4 { 1 } [ 0 factorial ] unit-test
5 { 1 } [ 1 factorial ] unit-test
6 { 3628800 } [ 10 factorial ] unit-test
7
8 { { 1 1 2 6 24 120 720 5040 40320 362880 3628800 } } [
9     10 factorials
10 ] unit-test
11
12 {
13     {
14         1/0. 1/105 1/0. -1/15 1/0. 1/3 1/0. -1 1/0.
15         1 1 1 2 3 8 15 48 105 384 945 3840
16     }
17 } [ -10 10 [a..b] [ double-factorial ] map ] unit-test
18
19 { 1 } [ 10 10 factorial/ ] unit-test
20 { 720 } [ 10 7 factorial/ ] unit-test
21 { 604800 } [ 10 3 factorial/ ] unit-test
22 { 3628800 } [ 10 0 factorial/ ] unit-test
23 { 6 } [ 3 -3 factorial/ ] unit-test
24 { 1/6 } [ -3 3 factorial/ ] unit-test
25 { 1/720 } [ 7 10 factorial/ ] unit-test
26
27 { 17160 } [ 10 4 rising-factorial ] unit-test
28 { 1/57120 } [ 10 -4 rising-factorial ] unit-test
29 { 10 } [ 10 1 rising-factorial ] unit-test
30 { 0 } [ 10 0 rising-factorial ] unit-test
31
32 { 5040 } [ 10 4 falling-factorial ] unit-test
33 { 1/24024 } [ 10 -4 falling-factorial ] unit-test
34 { 10 } [ 10 1 falling-factorial ] unit-test
35 { 0 } [ 10 0 falling-factorial ] unit-test
36
37 { 7301694400 } [ 100 5 3 factorial-power ] unit-test
38 { 5814000000 } [ 100 5 5 factorial-power ] unit-test
39 { 4549262400 } [ 100 5 7 factorial-power ] unit-test
40 { 384000000 } [ 100 5 20 factorial-power ] unit-test
41 { 384000000 } [ 100 5 20 factorial-power ] unit-test
42 { 44262400 } [ 100 5 24 factorial-power ] unit-test
43 { 0 } [ 100 5 25 factorial-power ] unit-test
44 { 4760 } [ 20 3 3 factorial-power ] unit-test
45 { 1/17342 } [ 20 -3 3 factorial-power ] unit-test
46 { 1/2618 } [ 20 -3 -3 factorial-power ] unit-test
47 { 11960 } [ 20 3 -3 factorial-power ] unit-test
48 { t } [ 20 3 [ 1 factorial-power ] [ falling-factorial ] 2bi = ] unit-test
49 { t } [ 20 3 [ 0 factorial-power ] [ ^ ] 2bi = ] unit-test
50
51 { { 1 2 6 30 210 2310 } } [ 6 <iota> [ primorial ] map ] unit-test
52
53 { t } [
54     6 <iota>
55     [ [ double-factorial ] map ]
56     [ [ 2 multifactorial ] map ]
57     bi =
58 ] unit-test
59
60 { { 1 2 12 120 1680 30240 } }
61 [ 6 <iota> [ quadruple-factorial ] map ] unit-test
62
63 { { 1 1 2 12 288 } } [ 5 <iota> [ super-factorial ] map ] unit-test
64
65 { { 1 1 4 108 27648 } } [ 5 <iota> [ hyper-factorial ] map ] unit-test
66
67 { { 1 1 1 5 19 101 619 4421 35899 326981 } }
68 [ 10 <iota> [ alternating-factorial ] map ] unit-test
69
70 { { 1 1 2 9 262144 } } [ 5 <iota> [ exponential-factorial ] map ] unit-test
71
72 { V{ 2 3 5 7 23 719 5039 } }
73 [ 10,000 <iota> [ factorial-prime? ] filter ] unit-test
74
75 { V{ 3 5 7 29 31 211 2309 2311 } }
76 [ 10,000 <iota> [ primorial-prime? ] filter ] unit-test
77
78 { 10 } [ 3628800 reverse-factorial ] unit-test
79 { 12 } [ 479001600 reverse-factorial ] unit-test
80 { 3 } [ 6 reverse-factorial ] unit-test
81 { 1 } [ 1 reverse-factorial ] unit-test
82 { f } [ 18 reverse-factorial ] unit-test