|
@@ -1,37 +1,64 @@
|
|
|
package unit;
|
|
|
|
|
|
class TestOps extends Test {
|
|
|
-
|
|
|
+
|
|
|
public function testOps()
|
|
|
{
|
|
|
eq(1 + 2 + "", "3");
|
|
|
eq((1 + 2) + "", "3");
|
|
|
eq(1 + (2 + ""), "12");
|
|
|
-
|
|
|
+
|
|
|
eq(4 - 3 + "", "1");
|
|
|
eq((4 - 3) + "", "1");
|
|
|
//eq(4 - (3 + ""), "1");
|
|
|
-
|
|
|
+
|
|
|
eq(4 | 3 & 1, 1);
|
|
|
eq((4 | 3) & 1, 1);
|
|
|
eq(4 | (3 & 1), 5);
|
|
|
-
|
|
|
+
|
|
|
eq(4 & 3 | 1, 1);
|
|
|
eq((4 & 3) | 1, 1);
|
|
|
eq(4 & (3 | 1), 0);
|
|
|
-
|
|
|
+
|
|
|
eq( - 5 + 1, -4 );
|
|
|
eq( - (5 + 1), -6 );
|
|
|
-
|
|
|
- t( 3 == 7 >> 1 );
|
|
|
-
|
|
|
+
|
|
|
+ t( 5 << 2 == 20 );
|
|
|
+ t( (5 << 2) == 20 );
|
|
|
+ t( 20 == 5 << 2 );
|
|
|
+ t( 20 == (5 << 2) );
|
|
|
+
|
|
|
eq( 5 % 3 * 4, 8 );
|
|
|
eq( (5 % 3) * 4, 8 );
|
|
|
eq( 5 % (3 * 4), 5 );
|
|
|
-
|
|
|
+
|
|
|
eq( 20 / 2 / 2, 5 );
|
|
|
eq( (20 / 2) / 2, 5 );
|
|
|
eq( 20 / (2 / 2), 20 );
|
|
|
+
|
|
|
+ eq( 2 << 3 >> 1, 8 );
|
|
|
+ eq( (2 << 3) >> 1, 8 );
|
|
|
+ eq( 2 << (3 >> 1), 4 );
|
|
|
+
|
|
|
+ f( (1 & 0x8000) != 0 );
|
|
|
+ f( 1 & 0x8000 != 0 );
|
|
|
+ f( 0 != (1 & 0x8000) );
|
|
|
+ f( 0 != 1 & 0x8000 );
|
|
|
+
|
|
|
+ eq( 5 * 10 % 3, 5);
|
|
|
+ eq( 5 * (10 % 3), 5);
|
|
|
+ eq( (5 * 10) % 3, 2);
|
|
|
+
|
|
|
+ eq( 10 % 3 * 5, 5);
|
|
|
+ eq( (10 % 3) * 5, 5);
|
|
|
+ eq( 10 % (3 * 5), 10);
|
|
|
+
|
|
|
+ eq( true ? 1 : 6 * 5, 1);
|
|
|
+ eq( false ? 1 : 6 * 5, 30);
|
|
|
+ eq( (true ? 1 : 6) * 5, 5);
|
|
|
+ eq( (false ? 1 : 6) * 5, 30);
|
|
|
+
|
|
|
+ t( true || false && false );
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|