Browse Source

Merge pull request #2084 from Atry/patch-3

Test case for UInt.
Nicolas Cannasse 12 years ago
parent
commit
45847e6991
1 changed files with 97 additions and 0 deletions
  1. 97 0
      tests/unit/TestUInt.hx

+ 97 - 0
tests/unit/TestUInt.hx

@@ -0,0 +1,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);
+  }
+	
+}