1
PRINT 'Testing calculations';
9
ASSERT @A + (@B + 5) = 20;
10
ASSERT @A + @D = 1.250e1;
13
ASSERT @A - @C - (@B + 5) = -4;
14
ASSERT @A - @D = 75e-1;
16
ASSERT 5 * 1 * 2 = 10;
17
ASSERT @A * @C * 2 = 8e1;
18
ASSERT (@B * 3) * @D = 37.50;
20
ASSERT 5 / 1.0 / 2 = 2.5; -- Left to right priority
23
ASSERT @A / 4 = 2; -- Integer division
24
ASSERT @A / 4. = 2.5; -- Float division
25
ASSERT @A / 40e-1 = 2.5; -- Float division
26
ASSERT @A / 3 < @A / 3.0;
27
ASSERT (@A / 3.0) > (@A / 3);
28
ASSERT @A / 3.0 <> @A / 3;
37
ASSERT (0 = 0) = (1 = 1);
38
ASSERT 0 = (0 = 1) = 1; -- Right to left priority
39
ASSERT @A * @B = @B * @A;
40
ASSERT @C + (@A = @A) = @B;
44
ASSERT 'abc' ~= 'aBc';
47
ASSERT (0 = 1) <> (1 = 1);
48
ASSERT 1 <> (0 <> 1) <> 1; -- Right to left priority
49
ASSERT @C + (@A = @A) <> @C + (@A = @B);
50
ASSERT @C + (@A = @A) <> @C + (@A <> @A);
51
ASSERT 'abc' <> 'abC';
54
ASSERT @B < @A AND @A > @B;
59
ASSERT 0 < 3 AND 3 > 0;
60
ASSERT @C + @D < @A + @B
61
AND (@A) + (@B) - (@C) > (@D);
62
ASSERT -1 * @A * (@B + @C - @D) < 0;
64
ASSERT 'abc' >= 'abc';
65
ASSERT 'abc' >= 'aBc';
67
ASSERT @B > @A OR @A > @B;
71
ASSERT 0 < 3 OR 3 < 0;
72
ASSERT @C + @D > @A + @B
73
OR (@A) + (@B) - (@C) > (@D);
74
ASSERT 1 < 2 < 3; -- Left to right priority
75
ASSERT 1 > 2 < 3; -- Left to right priority
77
ASSERT 'abc' <= 'abc';
78
ASSERT 'abc' <= 'acc';
88
ASSERT NOT (@A + @B) = 0;
92
ASSERT NOT 'abc' = '';
101
ASSERT -1 * @A = -@A;
103
ASSERT 5 + 5 * 10 - 18 / 3 + 3 = 52;
104
ASSERT 10 * 10 * (3 * 10) / 1e3 = 3;
105
ASSERT (4 * 5) + 2 / 3 - (4 + 1) = 15;