Support of Arch Linux in `getdeps.py`
[hiphop-php.git] / hphp / test / quick / ops.php
blobfcf836b8e1563355ada6ce3b93c1d5ed6b35c0da
1 <?hh
2 <<__EntryPoint>> function main(): void {
3 print "\"Hello\" . \" world!\" --> "; print "Hello" . " world!"; print "\n";
4 print "\n";
6 print "1 + 1 --> "; print 1 + 1; print "\n";
7 print "1.5 + 1 --> "; print 1.5 + 1; print "\n";
8 print "1 + 1.5 --> "; print 1 + 1.5; print "\n";
9 print "1.5 + 1.0 --> "; print 1.5 + 1.0; print "\n";
10 //print "print array(1, 2) + array(3, 4) --> "; print array(1, 2) + array(3, 4);
11 // print "\n";
12 print "\"5.5\" + 5 --> "; print HH\Lib\Legacy_FIXME\cast_for_arithmetic("5.5") + 5; print "\n";
13 print "5 + \"5.5\" --> "; print 5 + HH\Lib\Legacy_FIXME\cast_for_arithmetic("5.5"); print "\n";
14 print "5.5 + \"5\" --> "; print 5.5 + HH\Lib\Legacy_FIXME\cast_for_arithmetic("5"); print "\n";
15 print "\"5.5\" + \"5\" --> "; print HH\Lib\Legacy_FIXME\cast_for_arithmetic("5.5") + HH\Lib\Legacy_FIXME\cast_for_arithmetic("5"); print "\n";
16 print "\n";
18 print "1 - 1 --> "; print 1 - 1; print "\n";
19 print "1.5 - 1 --> "; print 1.5 - 1; print "\n";
20 print "1 - 1.5 --> "; print 1 - 1.5; print "\n";
21 print "1.5 - 1.0 --> "; print 1.5 - 1.0; print "\n";
22 print "\"5.5\" - 5 --> "; print HH\Lib\Legacy_FIXME\cast_for_arithmetic("5.5") - 5; print "\n";
23 print "5 - \"5.5\" --> "; print 5 - HH\Lib\Legacy_FIXME\cast_for_arithmetic("5.5"); print "\n";
24 print "5.5 - \"5\" --> "; print 5.5 - HH\Lib\Legacy_FIXME\cast_for_arithmetic("5"); print "\n";
25 print "\"5.5\" - \"5\" --> "; print HH\Lib\Legacy_FIXME\cast_for_arithmetic("5.5") - HH\Lib\Legacy_FIXME\cast_for_arithmetic("5"); print "\n";
26 print "\n";
28 print "2 * 2 --> "; print 2 * 2; print "\n";
29 print "2.5 * 3 --> "; print 2.5 * 3; print "\n";
30 print "3 * 2.5 --> "; print 3 * 2.5; print "\n";
31 print "2.5 * 3.0 --> "; print 2.5 * 3.0; print "\n";
32 print "\"5.5\" * 5 --> "; print HH\Lib\Legacy_FIXME\cast_for_arithmetic("5.5") * 5; print "\n";
33 print "5 * \"5.5\" --> "; print 5 * HH\Lib\Legacy_FIXME\cast_for_arithmetic("5.5"); print "\n";
34 print "5.5 * \"5\" --> "; print 5.5 * HH\Lib\Legacy_FIXME\cast_for_arithmetic("5"); print "\n";
35 print "\"5.5\" * \"5\" --> "; print HH\Lib\Legacy_FIXME\cast_for_arithmetic("5.5") * HH\Lib\Legacy_FIXME\cast_for_arithmetic("5"); print "\n";
36 print "\n";
38 print "2 / 2 --> "; print 2 / 2; print "\n";
39 print "2.5 / 5 --> "; print 2.5 / 5; print "\n";
40 print "5 / 2.0 --> "; print 5 / 2.0; print "\n";
41 print "5.0 / 2.0 --> "; print 5.0 / 2.0; print "\n";
42 print "\"5.5\" / 5 --> "; print HH\Lib\Legacy_FIXME\cast_for_arithmetic("5.5") / 5; print "\n";
43 print "5 / \"5.5\" --> "; print 5 / HH\Lib\Legacy_FIXME\cast_for_arithmetic("5.5"); print "\n";
44 print "5.5 / \"5\" --> "; print 5.5 / HH\Lib\Legacy_FIXME\cast_for_arithmetic("5"); print "\n";
45 print "\"5.5\" / \"5\" --> "; print HH\Lib\Legacy_FIXME\cast_for_arithmetic("5.5") / HH\Lib\Legacy_FIXME\cast_for_arithmetic("5"); print "\n";
46 try {
47 print "1 / 0 --> "; print 1 / 0;
48 } catch (DivisionByZeroException $e) {
49 print "Division by zero\n";
51 try {
52 print "1.0 / 0 --> "; print 1.0 / 0;
53 } catch (DivisionByZeroException $e) {
54 print "Division by zero\n";
56 try {
57 print "1 / 0.0 --> "; print 1 / 0.0;
58 } catch (DivisionByZeroException $e) {
59 print "Division by zero\n";
61 try {
62 print "1.0 / 0.0 --> "; print 1.0 / 0.0;
63 } catch (DivisionByZeroException $e) {
64 print "Division by zero\n";
66 print "\n";
68 for ($i = -10; $i <= 10; $i++) {
69 print $i." % 4 --> ";
70 print $i % 4;
71 print "\n";
74 for ($i = -10; $i <= 10; $i++) {
75 print $i." % -4 --> ";
76 print $i % -4;
77 print "\n";
80 print "7 % 3 --> "; print 7 % 3; print "\n";
81 print "-7 % 3 --> "; print -7 % 3; print "\n";
82 print "7 % -3 --> "; print 7 % -3; print "\n";
83 print "-7 % -3 --> "; print -7 % -3; print "\n";
84 print "7 % -1 --> "; print 7 % -1; print "\n";
85 print "7 % 1 --> "; print 7 % 1; print "\n";
86 print "2147483647 % 2147483647 --> "; print 2147483647 % 2147483647; print "\n";
87 print "123 % 2147483647 --> "; print 123 % 2147483647; print "\n";
88 print "10 % -2147483648 --> "; print 10 % -2147483648; print "\n";
89 print "2 % 2 --> "; print 2 % 2; print "\n";
90 print "2.5 % 5 --> "; print 2.5 % 5; print "\n";
91 print "5 % 2.0 --> "; print 5 % 2.0; print "\n";
92 print "5.0 % 2.0 --> "; print 5.0 % 2.0; print "\n";
93 print "\"5.5\" % 5 --> "; print (int)("5.5") % 5; print "\n";
94 print "5 % \"5.5\" --> "; print 5 % (int)("5.5"); print "\n";
95 print "5.5 % \"5\" --> "; print 5.5 % (int)("5"); print "\n";
96 print "\"5.5\" % \"5\" --> "; print (int)("5.5") % (int)("5"); print "\n";
97 try {
98 print "1 % 0 --> "; print 1 % 0;
99 } catch (DivisionByZeroException $e) {
100 print "Mod by zero\n";
102 try {
103 print "1.0 % 0 --> "; print 1.0 % 0;
104 } catch (DivisionByZeroException $e) {
105 print "Mod by zero\n";
107 try {
108 print "1 % 0.0 --> "; print 1 % 0.0;
109 } catch (DivisionByZeroException $e) {
110 print "Mod by zero\n";
112 try {
113 print "1.0 % 0.0 --> "; print 1.0 % 0.0;
114 } catch (DivisionByZeroException $e) {
115 print "Mod by zero\n";
117 print "\n";
119 print "5 & 3 --> "; print 5 & 3; print "\n";
120 print "5.0 & 3.0 --> "; print (int)5.0 & (int)3.0; print "\n";
121 print "\n";
123 print "5 | 3 --> "; print 5 | 3; print "\n";
124 print "5.0 | 3.0 --> "; print (int)5.0 | (int)3.0; print "\n";
125 print "\n";
127 print "5 ^ 3 --> "; print 5 ^ 3; print "\n";
128 print "5.0 ^ 3.0 --> "; print (int)5.0 ^ (int)3.0; print "\n";
129 print "\n";
131 print "5 << 1 --> "; print 5 << 1; print "\n";
132 print "5 << 1.0 --> "; print 5 << (int)(1.0); print "\n";
133 print "5 << \"hi\" --> "; print 5 << (int)("hi"); print "\n";
134 print "\n";
136 print "5 >> 1 --> "; print 5 >> 1; print "\n";
137 print "5 >> 1.0 --> "; print 5 >> (int)(1.0); print "\n";
138 print "5 >> \"hi\" --> "; print 5 >> (int)("hi"); print "\n";
139 print "\n";
141 print "!0 --> "; print !0; print "\n";
142 print "!5 --> "; print !5; print "\n";
143 print "!false --> "; print !false; print "\n";
144 print "!\"hi\" --> "; print !"hi"; print "\n";
146 print "3 === 4 --> "; print 3 === 4; print "\n";
147 print "3 === 3 --> "; print 3 === 3; print "\n";
148 print "4 === 3 --> "; print 4 === 3; print "\n";
149 print "\"4\" === 3 --> "; print "4" === 3; print "\n";
150 print "\n";
152 print "3 !== 4 --> "; print 3 !== 4; print "\n";
153 print "3 !== 3 --> "; print 3 !== 3; print "\n";
154 print "4 !== 3 --> "; print 4 !== 3; print "\n";
155 print "\"4\" !== 3 --> "; print "4" !== 3; print "\n";
156 print "\n";
158 print "3 == 4 --> "; print 3 == 4; print "\n";
159 print "3 == 3 --> "; print 3 == 3; print "\n";
160 print "4 == 3 --> "; print 4 == 3; print "\n";
161 print "\"4\" == 3 --> "; print "4" == 3; print "\n";
162 print "\n";
164 print "3 != 4 --> "; print 3 != 4; print "\n";
165 print "3 != 3 --> "; print 3 != 3; print "\n";
166 print "4 != 3 --> "; print 4 != 3; print "\n";
167 print "\"4\" != 3 --> "; print "4" != 3; print "\n";
168 print "\n";
170 print "3 < 4 --> "; print 3 < 4; print "\n";
171 print "3 < 3 --> "; print 3 < 3; print "\n";
172 print "4 < 3 --> "; print 4 < 3; print "\n";
173 print "\"4\" < 3 --> "; print HH\Lib\Legacy_FIXME\lt("4", 3); print "\n";
174 print "\n";
176 print "3 <= 4 --> "; print 3 <= 4; print "\n";
177 print "3 <= 3 --> "; print 3 <= 3; print "\n";
178 print "4 <= 3 --> "; print 4 <= 3; print "\n";
179 print "\"4\" <= 3 --> "; print HH\Lib\Legacy_FIXME\lte("4", 3); print "\n";
180 print "\n";
182 if (true) {
183 print "true\n";
184 } else {
185 print "false\n";
188 if (true && false) {
189 print "true && false\n";
190 } else {
191 print "!(true && false)\n";
194 if (false || true) {
195 print "false || true\n";
196 } else {
197 print "!(false || true)\n";
200 print "3 && 4 --> "; print 3 && 4; print "\n";
201 print "3 && 3 --> "; print 3 && 3; print "\n";
202 print "4 && 3 --> "; print 4 && 3; print "\n";
203 print "\"4\" && 3 --> "; print "4" && 3; print "\n";
204 print "\n";
206 print "(string)42 --> "; print (string)42; print "\n";
207 print "(string)\"hi\" --> "; print (string)"hi"; print "\n";
208 print "\n";