1--TEST--
2BcMath\Number compare by operator
3--EXTENSIONS--
4bcmath
5--FILE--
6<?php
7
8$values2 = [
9    [99, 'int'],
10    ['99.9999', 'string'],
11    [new BcMath\Number('99.9999'), 'object'],
12    [100, 'int'],
13    ['100', 'string'],
14    ['100.0000', 'string'],
15    [new BcMath\Number(100), 'object'],
16    [new BcMath\Number('100.0000'), 'object'],
17    [101, 'int'],
18    ['100.00001', 'string'],
19    [new BcMath\Number('100.00001'), 'object'],
20];
21
22$value1 = new BcMath\Number('100.0000');
23
24foreach ($values2 as [$value2, $type2]) {
25    echo "========== with {$type2} {$value2} ==========\n";
26    echo "{$value1} >  {$value2}: " . ($value1 > $value2 ? 'true' : 'false') . "\n";
27    echo "{$value1} >= {$value2}: " . ($value1 >= $value2 ? 'true' : 'false') . "\n";
28    echo "{$value1} == {$value2}: " . ($value1 == $value2 ? 'true' : 'false') . "\n";
29    echo "{$value1} <= {$value2}: " . ($value1 <= $value2 ? 'true' : 'false') . "\n";
30    echo "{$value1} <  {$value2}: " . ($value1 < $value2 ? 'true' : 'false') . "\n";
31
32    echo "\ninversion\n";
33    echo "{$value2} >  {$value1}: " . ($value2 > $value1 ? 'true' : 'false') . "\n";
34    echo "{$value2} >= {$value1}: " . ($value2 >= $value1 ? 'true' : 'false') . "\n";
35    echo "{$value2} == {$value1}: " . ($value2 == $value1 ? 'true' : 'false') . "\n";
36    echo "{$value2} <= {$value1}: " . ($value2 <= $value1 ? 'true' : 'false') . "\n";
37    echo "{$value2} <  {$value1}: " . ($value2 < $value1 ? 'true' : 'false') . "\n";
38
39    echo "\n";
40}
41?>
42--EXPECT--
43========== with int 99 ==========
44100.0000 >  99: true
45100.0000 >= 99: true
46100.0000 == 99: false
47100.0000 <= 99: false
48100.0000 <  99: false
49
50inversion
5199 >  100.0000: false
5299 >= 100.0000: false
5399 == 100.0000: false
5499 <= 100.0000: true
5599 <  100.0000: true
56
57========== with string 99.9999 ==========
58100.0000 >  99.9999: true
59100.0000 >= 99.9999: true
60100.0000 == 99.9999: false
61100.0000 <= 99.9999: false
62100.0000 <  99.9999: false
63
64inversion
6599.9999 >  100.0000: false
6699.9999 >= 100.0000: false
6799.9999 == 100.0000: false
6899.9999 <= 100.0000: true
6999.9999 <  100.0000: true
70
71========== with object 99.9999 ==========
72100.0000 >  99.9999: true
73100.0000 >= 99.9999: true
74100.0000 == 99.9999: false
75100.0000 <= 99.9999: false
76100.0000 <  99.9999: false
77
78inversion
7999.9999 >  100.0000: false
8099.9999 >= 100.0000: false
8199.9999 == 100.0000: false
8299.9999 <= 100.0000: true
8399.9999 <  100.0000: true
84
85========== with int 100 ==========
86100.0000 >  100: false
87100.0000 >= 100: true
88100.0000 == 100: true
89100.0000 <= 100: true
90100.0000 <  100: false
91
92inversion
93100 >  100.0000: false
94100 >= 100.0000: true
95100 == 100.0000: true
96100 <= 100.0000: true
97100 <  100.0000: false
98
99========== with string 100 ==========
100100.0000 >  100: false
101100.0000 >= 100: true
102100.0000 == 100: true
103100.0000 <= 100: true
104100.0000 <  100: false
105
106inversion
107100 >  100.0000: false
108100 >= 100.0000: true
109100 == 100.0000: true
110100 <= 100.0000: true
111100 <  100.0000: false
112
113========== with string 100.0000 ==========
114100.0000 >  100.0000: false
115100.0000 >= 100.0000: true
116100.0000 == 100.0000: true
117100.0000 <= 100.0000: true
118100.0000 <  100.0000: false
119
120inversion
121100.0000 >  100.0000: false
122100.0000 >= 100.0000: true
123100.0000 == 100.0000: true
124100.0000 <= 100.0000: true
125100.0000 <  100.0000: false
126
127========== with object 100 ==========
128100.0000 >  100: false
129100.0000 >= 100: true
130100.0000 == 100: true
131100.0000 <= 100: true
132100.0000 <  100: false
133
134inversion
135100 >  100.0000: false
136100 >= 100.0000: true
137100 == 100.0000: true
138100 <= 100.0000: true
139100 <  100.0000: false
140
141========== with object 100.0000 ==========
142100.0000 >  100.0000: false
143100.0000 >= 100.0000: true
144100.0000 == 100.0000: true
145100.0000 <= 100.0000: true
146100.0000 <  100.0000: false
147
148inversion
149100.0000 >  100.0000: false
150100.0000 >= 100.0000: true
151100.0000 == 100.0000: true
152100.0000 <= 100.0000: true
153100.0000 <  100.0000: false
154
155========== with int 101 ==========
156100.0000 >  101: false
157100.0000 >= 101: false
158100.0000 == 101: false
159100.0000 <= 101: true
160100.0000 <  101: true
161
162inversion
163101 >  100.0000: true
164101 >= 100.0000: true
165101 == 100.0000: false
166101 <= 100.0000: false
167101 <  100.0000: false
168
169========== with string 100.00001 ==========
170100.0000 >  100.00001: false
171100.0000 >= 100.00001: false
172100.0000 == 100.00001: false
173100.0000 <= 100.00001: true
174100.0000 <  100.00001: true
175
176inversion
177100.00001 >  100.0000: true
178100.00001 >= 100.0000: true
179100.00001 == 100.0000: false
180100.00001 <= 100.0000: false
181100.00001 <  100.0000: false
182
183========== with object 100.00001 ==========
184100.0000 >  100.00001: false
185100.0000 >= 100.00001: false
186100.0000 == 100.00001: false
187100.0000 <= 100.00001: true
188100.0000 <  100.00001: true
189
190inversion
191100.00001 >  100.0000: true
192100.00001 >= 100.0000: true
193100.00001 == 100.0000: false
194100.00001 <= 100.0000: false
195100.00001 <  100.0000: false
196