Std.unit.hx 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. // is
  2. var known:String = null;
  3. Std.is(known, String) == false;
  4. var unknown = null;
  5. Std.is(unknown, String) == false;
  6. Std.is(null, String) == false;
  7. Std.is("foo", null) == false;
  8. Std.is("", String) == true;
  9. Std.is(false, Bool) == true;
  10. Std.is(1, Int) == true;
  11. Std.is(1.5, Int) == false;
  12. Std.is(1.5, Float) == true;
  13. Std.is([], Array) == true;
  14. Std.is(cast unit.MyEnum.A, Array) == false;
  15. // instance
  16. #if !js
  17. Std.instance("", String) == "";
  18. #end
  19. var a = [];
  20. Std.instance(a, Array) == a;
  21. var parent:unit.MyClass.MyParent = new MyClass.MyChild1();
  22. Std.instance(parent, unit.MyClass.MyChild1) != null;
  23. Std.instance(null, Array) == null;
  24. Std.instance(null, String) == null;
  25. // string
  26. var cwts = new ClassWithToString();
  27. var cwtsc = new ClassWithToStringChild();
  28. var cwtsc2 = new ClassWithToStringChild2();
  29. Std.string(cwts) == "ClassWithToString.toString()";
  30. Std.string(cwtsc) == "ClassWithToString.toString()";
  31. Std.string(cwtsc2) == "ClassWithToStringChild2.toString()";
  32. Std.string(SomeEnum.NoArguments) == "NoArguments";
  33. Std.string(SomeEnum.OneArgument("foo")) == "OneArgument(foo)";
  34. Std.string(null) == "null";
  35. // int
  36. Std.int(-1.7) == -1;
  37. Std.int(-1.2) == -1;
  38. Std.int(1.7) == 1;
  39. Std.int(1.2) == 1;
  40. Std.int(-0.7) == 0;
  41. Std.int(-0.2) == 0;
  42. Std.int(0.7) == 0;
  43. Std.int(0.2) == 0;
  44. // parseInt
  45. Std.parseInt("0") == 0;
  46. Std.parseInt(" 5") == 5;
  47. Std.parseInt("0001") == 1;
  48. Std.parseInt("0010") == 10;
  49. Std.parseInt("100") == 100;
  50. Std.parseInt("-100") == -100;
  51. Std.parseInt("100x123") == 100;
  52. Std.parseInt("12foo13") == 12;
  53. Std.parseInt("") == null;
  54. Std.parseInt("abcd") == null;
  55. Std.parseInt("a10") == null;
  56. Std.parseInt(null) == null;
  57. Std.parseInt("0xFF") == 255;
  58. Std.parseInt("0x123") == 291;
  59. Std.parseInt("0XFF") == 255;
  60. Std.parseInt("0X123") == 291;
  61. Std.parseInt("0X01") == 1;
  62. Std.parseInt("0x01") == 1;
  63. // parseFloat
  64. Std.parseFloat("0") == 0.;
  65. Std.parseFloat(" 5.3") == 5.3;
  66. Std.parseFloat("0001") == 1.;
  67. Std.parseFloat("100.45") == 100.45;
  68. Std.parseFloat("-100.01") == -100.01;
  69. Std.parseFloat("100x123") == 100.;
  70. Math.isNaN(Std.parseFloat("")) == true;
  71. Math.isNaN(Std.parseFloat("abcd")) == true;
  72. Math.isNaN(Std.parseFloat("a10")) == true;
  73. Math.isNaN(Std.parseFloat(null)) == true;
  74. Std.parseFloat("5.3 ") == 5.3;
  75. Std.parseFloat("0.0") == 0.;
  76. Std.parseFloat("5.3 1") == 5.3;
  77. // random
  78. var x = Std.random(2);
  79. x in [0,1];
  80. Std.random(1) == 0;
  81. Std.random(0) == 0;
  82. Std.random(-100) == 0;