remove math.blas.syntax and merge parsing words into math.blas.vectors/matrices
[factor/jcg.git] / basis / math / functions / functions-tests.factor
blobcf0ce5f0bb5642b7f72e84fa6022a50eca9f9473
1 USING: kernel math math.constants math.functions math.order
2 math.private math.libm tools.test ;
3 IN: math.functions.tests
5 [ t ] [ 4 4 .00000001 ~ ] unit-test
6 [ t ] [ 4.0000001 4.0000001 .000001 ~ ] unit-test
7 [ f ] [ -4.0000001 4.0000001 .00001 ~ ] unit-test
8 [ t ] [ -.0000000000001 0 .0000000001 ~ ] unit-test
10 ! Lets get the argument order correct, eh?
11 [ 0.0 ] [ 0.0 1.0 fatan2 ] unit-test
12 [ 0.25 ] [ 2.0 -2.0 fpow ] unit-test
14 [ 4.0 ] [ 16 sqrt ] unit-test
15 [ 2.0 ] [ 4.0 0.5 ^ ] unit-test
16 [ C{ 0.0 4.0 } ] [ -16 sqrt ] unit-test
18 [ 4 ] [ 2 2 ^ ] unit-test
19 [ 1/4 ] [ 2 -2 ^ ] unit-test
20 [ t ] [ 2 0.5 ^ 2 ^ 2 2.00001 between? ] unit-test
21 [ t ] [ e pi i* ^ real-part -1.0 = ] unit-test
22 [ t ] [ e pi i* ^ imaginary-part -0.00001 0.00001 between? ] unit-test
24 [ t ] [ 0 0 ^ fp-nan? ] unit-test
25 [ 1.0/0.0 ] [ 0 -2 ^ ] unit-test
26 [ t ] [ 0 0.0 ^ fp-nan? ] unit-test
27 [ 1.0/0.0 ] [ 0 -2.0 ^ ] unit-test
28 [ 0 ] [ 0 3.0 ^ ] unit-test
29 [ 0 ] [ 0 3 ^ ] unit-test
31 [ 0.0 ] [ 1 log ] unit-test
33 [ 1.0 ] [ 0 cosh ] unit-test
34 [ 0.0 ] [ 1 acosh ] unit-test
35             
36 [ 1.0 ] [ 0 cos ] unit-test
37 [ 0.0 ] [ 1 acos ] unit-test
38             
39 [ 0.0 ] [ 0 sinh ] unit-test
40 [ 0.0 ] [ 0 asinh ] unit-test
41             
42 [ 0.0 ] [ 0 sin ] unit-test
43 [ 0.0 ] [ 0 asin ] unit-test
45 [ t ] [ 10 atan real? ] unit-test
46 [ f ] [ 10 atanh real? ] unit-test
48 [ t ] [ 10 asin sin 10 1.e-10 ~ ] unit-test
49 [ t ] [ -1 sqrt neg dup acos cos 1.e-10 ~ ] unit-test
50 [ t ] [ -100 atan tan -100 1.e-10 ~ ] unit-test
51 [ t ] [ 10 asinh sinh 10 1.e-10 ~ ] unit-test
52 [ t ] [ 10 atanh tanh 10 1.e-10 ~ ] unit-test
53 [ t ] [ 0.5 atanh tanh 0.5 1.e-10 ~ ] unit-test
55 [ 100 ] [ 100 100 gcd nip ] unit-test
56 [ 100 ] [ 1000 100 gcd nip ] unit-test
57 [ 100 ] [ 100 1000 gcd nip ] unit-test
58 [ 4 ] [ 132 64 gcd nip ] unit-test
59 [ 4 ] [ -132 64 gcd nip ] unit-test
60 [ 4 ] [ -132 -64 gcd nip ] unit-test
61 [ 4 ] [ 132 -64 gcd nip ] unit-test
62 [ 4 ] [ -132 -64 gcd nip ] unit-test
64 [ 100 ] [ 100 >bignum 100 >bignum gcd nip ] unit-test
65 [ 100 ] [ 1000 >bignum 100 >bignum gcd nip ] unit-test
66 [ 100 ] [ 100 >bignum 1000 >bignum gcd nip ] unit-test
67 [ 4 ] [ 132 >bignum 64 >bignum gcd nip ] unit-test
68 [ 4 ] [ -132 >bignum 64 >bignum gcd nip ] unit-test
69 [ 4 ] [ -132 >bignum -64 >bignum gcd nip ] unit-test
70 [ 4 ] [ 132 >bignum -64 >bignum gcd nip ] unit-test
71 [ 4 ] [ -132 >bignum -64 >bignum gcd nip ] unit-test
73 [ 6 ] [
74     1326264299060955293181542400000006
75     1591517158873146351817850880000000
76     gcd nip
77 ] unit-test
79 [ 11 ] [
80     13262642990609552931815424
81     159151715887314635181785
82     gcd nip
83 ] unit-test
85 [ 3 ] [
86     13262642990609552931
87     1591517158873146351
88     gcd nip
89 ] unit-test
91 [ 26525285981219 ] [
92     132626429906095
93     159151715887314
94     gcd nip
95 ] unit-test
98 : verify-gcd ( a b -- ? )
99     2dup gcd
100     [ rot * swap rem ] dip = ; 
102 [ t ] [ 123 124 verify-gcd ] unit-test
103 [ t ] [ 50 120 verify-gcd ] unit-test
105 [ 3 ] [ 5 7 mod-inv ] unit-test
106 [ 78572682077 ] [ 234829342 342389423843 mod-inv ] unit-test
108 [ 2 10 mod-inv ] must-fail
110 [ t ] [ 0 0 ^ fp-nan? ] unit-test
111 [ 1 ] [ 10 0 ^ ] unit-test
112 [ 1/8 ] [ 1/2 3 ^ ] unit-test
113 [ 1/8 ] [ 2 -3 ^ ] unit-test
114 [ t ] [ 1 100 shift 2 100 ^ = ] unit-test
116 [ 1 ] [ 7/8 ceiling ] unit-test
117 [ 2 ] [ 3/2 ceiling ] unit-test
118 [ 0 ] [ -7/8 ceiling ] unit-test
119 [ -1 ] [ -3/2 ceiling ] unit-test
121 [ 4.0 ] [ 4.5 truncate ] unit-test
122 [ 4.0 ] [ 4.5 floor ] unit-test
123 [ 5.0 ] [ 4.5 ceiling ] unit-test
125 [ -4.0 ] [ -4.5 truncate ] unit-test
126 [ -5.0 ] [ -4.5 floor ] unit-test
127 [ -4.0 ] [ -4.5 ceiling ] unit-test
129 [ -4.0 ] [ -4.0 truncate ] unit-test
130 [ -4.0 ] [ -4.0 floor ] unit-test
131 [ -4.0 ] [ -4.0 ceiling ] unit-test
133 [ -5.0 ] [ -4.5 round ] unit-test
134 [ -4.0 ] [ -4.4 round ] unit-test
135 [ 5.0 ] [ 4.5 round ] unit-test
136 [ 4.0 ] [ 4.4 round ] unit-test
138 [ 6 59967 ] [ 3837888 factor-2s ] unit-test
139 [ 6 -59967 ] [ -3837888 factor-2s ] unit-test