forked from HaxeFoundation/haxe
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTestUInt.hx
97 lines (87 loc) · 2.08 KB
/
TestUInt.hx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package unit;
import haxe.unit.TestCase;
class TestUInt extends TestCase
{
function testFromFloat()
{
inline function floatToInt(float:Float):Int
{
return cast float;
}
inline function intToFloat(int:Int):Float
{
return int;
}
inline function floatToUInt(float:Float):UInt
{
return cast float;
}
inline function uintToInt(uint:UInt):Int
{
return uint;
}
inline function uintToFloat(uint:UInt):Float
{
return uint;
}
assertEquals(-536870912, floatToInt(-536870912.0));
assertEquals(-536870912, uintToInt(floatToUInt(-536870912.0)));
assertNotEquals(-536870912.0, uintToFloat(floatToUInt( -536870912.0)));
assertNotEquals(-536870911.0, floatToUInt(-536870912.0) + 1.0);
}
function assertNotEquals<T>( expected: T , actual: T, ?c : haxe.PosInfos ) : Void {
currentTest.done = true;
if (actual == expected){
currentTest.success = false;
currentTest.error = "expected not '" + expected + "' but was '" + actual + "'";
currentTest.posInfos = c;
throw currentTest;
}
}
function testMul()
{
var m:UInt = 0xE0000001;
assertEquals(3221225473, m * m);
var i:Int = m;
assertEquals(-536870911, i);
assertEquals(-1073741823, i * m);
assertEquals( -1073741823, i * i);
}
function testCompare()
{
var u0:UInt = 0xE0000001;
var u1:UInt = 123;
assertTrue(u0 > u1);
assertTrue(u0 >= u1);
assertFalse(u0 < u1);
assertFalse(u0 <= u1);
var i0:Int = u0;
var i1:Int = u1;
assertTrue(i0 < i1);
assertTrue(i0 <= i1);
assertFalse(i0 > i1);
assertFalse(i0 >= i1);
}
function testPostfixIncrement()
{
var m:UInt = 0xE0000001;
var m0:UInt = 0xE0000001;
var m1:UInt = 0xE0000002;
assertEquals(m0, m++);
assertEquals(m1, m);
}
function testPrefixIncrement()
{
var m:UInt = 0xE0000000;
var m1:UInt = 0xE0000001;
assertEquals(m1, ++m);
assertEquals(m1, m);
}
function testToInt()
{
var m:UInt = 0xE0000001;
var i:Int = m;
var f:Float = m;
assertTrue(i != f);
}
}