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