]> gitweb.factorcode.org Git - factor.git/blob - basis/math/ratios/ratios-tests.factor
factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool!
[factor.git] / basis / math / ratios / ratios-tests.factor
1 USING: kernel math math.order math.parser math.ratios
2 math.functions tools.test ;
3 IN: math.ratios.tests
4
5 { 1 2 } [ 1/2 >fraction ] unit-test
6
7 { 1/2 } [ 1 >bignum 2 >bignum / ] unit-test
8 { t } [ 10 3 / ratio? ] unit-test
9 { f } [ 10 2 / ratio? ] unit-test
10 { 10 } [ 10 numerator ] unit-test
11 { 1 } [ 10 denominator ] unit-test
12 { 12 } [ -12 -13 / numerator ] unit-test
13 { 13 } [ -12 -13 / denominator ] unit-test
14 { 1 } [ -1 -1 / numerator ] unit-test
15 { 1 } [ -1 -1 / denominator ] unit-test
16
17 { -1 } [ 2 -2 / ] unit-test
18 { -1 } [ -2 2 / ] unit-test
19
20 { t } [ 1 3 / 1 3 / = ] unit-test
21
22 { -10 } [ -100 10 /i ] unit-test
23 { 10 } [ -100 -10 /i ] unit-test
24 { -10 } [ 100 -10 /i ] unit-test
25 { -10 } [ -100 >bignum 10 >bignum /i ] unit-test
26 { 10  } [ -100 >bignum -10 >bignum /i ] unit-test
27 { -10 } [ 100 >bignum -10 >bignum /i ] unit-test
28
29 { 3/2 } [ 1 1/2 + ] unit-test
30 { 3/2 } [ 1 >bignum 1/2 + ] unit-test
31 { -1/2 } [ 1/2 1 - ] unit-test
32 { -1/2 } [ 1/2 1 >bignum - ] unit-test
33 { 41/20 } [ 5/4 4/5 + ] unit-test
34
35 { 1 } [ 1/2 2 * ] unit-test
36 { 1/3 } [ 1/2 2/3 * ] unit-test
37
38 { 1 } [ 1/2 1/2 / ] unit-test
39 { 27/4 } [ 3/2 2/9 / ] unit-test
40
41 { t } [ 5768 476343 < ] unit-test
42 { t } [ 5768 476343 <= ] unit-test
43 { f } [ 5768 476343 > ] unit-test
44 { f } [ 5768 476343 >= ] unit-test
45 { t } [ 3434 >bignum 3434 >= ] unit-test
46 { t } [ 3434 3434 >bignum <= ] unit-test
47
48 { t } [ 1 1/3 > ] unit-test
49 { t } [ 2/3 3/4 <= ] unit-test
50 { f } [ -2/3 1/3 > ] unit-test
51
52 { t } [ 1000000000/999999 1000 > ] unit-test
53 { f } [ 100000 100000000000/999999 > ] unit-test
54 { t }
55 [ 1000000000000/999999999999 1000000000001/999999999998 < ]
56 unit-test
57
58 { -3 } [ -3 10 mod ] unit-test
59 { 7 } [ -3 10 rem ] unit-test
60 { 7 } [ -13 10 rem ] unit-test
61 { 0 } [ 37 37 rem ] unit-test
62
63 { -1 } [ -12.55 sgn ] unit-test
64 { 1 } [ 100000000000000000000000000000000 sgn ] unit-test
65 { 0 } [ 0.0 sgn ] unit-test
66
67 { 1/2 } [ 1/2 1 mod ] unit-test
68 { 1/3 } [ 10/3 3 mod ] unit-test
69 { -1/3 } [ -10/3 3 mod ] unit-test
70
71 { 4 1/2 } [ 3+1/2 3/4 /mod ] unit-test
72 { -4 -1/2 } [ -3-1/2 3/4 /mod ] unit-test
73 { 4 -1/2 } [ -3-1/2 -3/4 /mod ] unit-test
74 { -4 1/2 } [ 3+1/2 -3/4 /mod ] unit-test
75
76 { 5 } [ 5 floor ] unit-test
77 { -5 } [ -5 floor ] unit-test
78 { 6 } [ 6 truncate ] unit-test
79 { 3 } [ 10/3 floor ] unit-test
80 { -4 } [ -10/3 floor ] unit-test
81 { 4 } [ 10/3 ceiling ] unit-test
82 { -3 } [ -10/3 ceiling ] unit-test
83 { 3 } [ 10/3 truncate ] unit-test
84 { -3 } [ -10/3 truncate ] unit-test
85
86 { -1/2 } [ 1/2 1 - ] unit-test
87 { 3/2 } [ 1/2 1 + ] unit-test
88
89 { 1.0 } [ 0.5 1/2 + ] unit-test
90 { 1.0 } [ 1/2 0.5 + ] unit-test
91
92 { 1/134217728 } [ -1 -134217728 >fixnum / ] unit-test
93 { 134217728 } [ -134217728 >fixnum -1 / ] unit-test
94
95 { 5 }
96 [ "10/2" string>number ]
97 unit-test
98
99 { -5 }
100 [ "-10/2" string>number ]
101 unit-test
102
103 { f }
104 [ "10/-2" string>number ]
105 unit-test
106
107 { f }
108 [ "-10/-2" string>number ]
109 unit-test
110
111 { "33/100" }
112 [ "66/200" string>number number>string ]
113 unit-test
114
115 { 3 } [ "1+1/2" string>number 2 * ] unit-test
116 { -3 } [ "-1-1/2" string>number 2 * ] unit-test
117 { "2+1/7" } [ 1 7 / 2 + number>string ] unit-test
118 { "1/8" } [ 1 8 / number>string ] unit-test
119
120 { t } [ 2/3 dup number= ] unit-test
121 { t } [ 2/33333333333333333333333333333333 dup number= ] unit-test
122 { t } [ -2/3 dup number= ] unit-test
123 { t } [ -2/33333333333333333333333333333333 dup number= ] unit-test