TestUInt.hx 2.1 KB

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