87de785d7300045fc114bf3b39bd5821d899fe3a
[swftools.git] / lib / as3 / ok / ops.as
1
2 package {
3     import flash.display.MovieClip
4     public class Main extends flash.display.MovieClip {
5         var count:int = 1;
6         var num:int = 28;
7         function assert(b:Boolean) {
8             if(b) {
9                 trace("ok "+count+"/"+num);
10             } else {
11                 trace("error "+count+"/"+num);
12             }
13             count = count + 1
14         }
15         function Main() {
16             /* operations not tested here:
17                * comparison is tested in compare.as
18                * 'as' and 'is' are tested in typecast.as and extends.as
19                * ++ and -- are tested in assignments.as
20                * 'in' is tested by in.as
21                * || and && are tested in boolvalue.as
22                * <op>= is tested in assignments.as
23                * typeof is tested in typeof.as
24             */
25
26             /* test unary minus */
27             assert(-(3) == -3);
28
29             /* test tenary operator */
30             assert((true?1:2) == 1);
31             true?assert(1):assert(0);
32             false?assert(0):assert(1);
33
34             /* test other operators */
35             trace("[arithmetric]");
36             assert(3*3==9);
37             assert(3/3==1);
38             assert(10%4==2);
39             assert(2+3==5);
40             assert(2-3==-1);
41
42             /* test not */
43             trace("[not]");
44             assert(!false);
45             
46             /* test strict equals/unequals */
47             trace("[strict equals]");
48             assert(3===3);
49             assert(3!==4);
50             assert(!(3===4));
51             assert(!(3!==3));
52
53             /* test bit operations */
54             trace("[bit operations]");
55             assert(!(0xaaaaaa & 0x555555))
56             assert((0xaa | 0x55) == 0xff);
57             assert((0xff ^ 0x55) == 0xaa);
58             assert((1 & ~1) == 0);
59             assert((1|~1)==~0);
60             
61             assert((1|2|4|8|16|32|64|128) == 0xff);
62            
63             /* test shift operations */
64             trace("[shift operations]");
65             assert((0xff<<8)==0xff00);
66             assert((0xff>>4)==0x0f);
67             assert((-1>>1)==-1);
68             assert((-1>>1)==-1);
69             assert((-1>>>1)>0);
70  
71             /* test void */
72             trace("[void]");
73             var v = void;
74             assert(String(v)=="undefined");
75             v = void 3;
76             assert(String(v)=="undefined");
77
78             /* test comma */
79             trace("[comma]");
80             assert( (1,2,3,4) == 4);
81             
82             trace("[exit]");
83         }
84     }
85 }
86