123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- 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( 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( 100 % 100, 0);
- eq( -100 % 100, 0);
- eq( 101.5 % 100, 1.5);
- eq( -101.5 % 100, -1.5);
- var x = 101.5;
- x %= 100;
- eq( x, 1.5);
- t(Math.isNaN(5.0 % 0.0));
- t(Math.isNaN(x %= 0.0));
- #if !macro
- //t(Math.isNaN(1 % 0));
- //t(Math.isNaN(0 % 0));
- //t(Math.isNaN(x %= 0));
- #end
- var x:Dynamic = [-101.5];
- x[0] %= 100;
- eq( x[0], -1.5);
- eq( true ? 1 : 6 * 5, 1);
- eq( false ? 1 : 6 * 5, 30);
- eq( (true ? 1 : 6) * 5, 5);
- eq( (false ? 1 : 6) * 5, 30);
-
- eq( 1 + (5 == 6 ? 4 : 1), 2 );
- eq( 1 + 1 == 3 ? 1 : 5, 5 );
-
- eq( -3 == 3 ? 0 : 1, 1 );
- t( !true ? true : true );
-
- var k = false;
- f(k = true ? false : true);
- f(k);
- f((k = true) ? false : true);
- t(k);
-
- t( true || false && false );
-
- var x = 1;
- eq( -x++, -1);
- eq( -x--, -2);
-
- eq( ("bla" + "x").indexOf("x"), 3);
-
- eq(5 * @foo 3 + 4, 19);
- eq(5 * @foo @bar 3 + @baz 4, 19);
- }
- }
|