Number.isInteger.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. load("test-common.js");
  2. try {
  3. assert(Number.isInteger.length === 1);
  4. assert(Number.isInteger(0) === true);
  5. assert(Number.isInteger(42) === true);
  6. assert(Number.isInteger(-10000) === true);
  7. assert(Number.isInteger(5) === true);
  8. assert(Number.isInteger(5.0) === true);
  9. assert(Number.isInteger(5 + 1/10000000000000000) === true);
  10. // FIXME: values outside of i32's range should still return true
  11. // assert(Number.isInteger(+2147483647 + 1) === true);
  12. // assert(Number.isInteger(-2147483648 - 1) === true);
  13. // assert(Number.isInteger(99999999999999999999999999999999999) === true);
  14. assert(Number.isInteger(5 + 1/1000000000000000) === false);
  15. assert(Number.isInteger(1.23) === false);
  16. assert(Number.isInteger("") === false);
  17. assert(Number.isInteger("0") === false);
  18. assert(Number.isInteger("42") === false);
  19. assert(Number.isInteger(true) === false);
  20. assert(Number.isInteger(false) === false);
  21. assert(Number.isInteger(null) === false);
  22. assert(Number.isInteger([]) === false);
  23. assert(Number.isInteger(Infinity) === false);
  24. assert(Number.isInteger(-Infinity) === false);
  25. assert(Number.isInteger(NaN) === false);
  26. assert(Number.isInteger() === false);
  27. assert(Number.isInteger(undefined) === false);
  28. assert(Number.isInteger("foo") === false);
  29. assert(Number.isInteger({}) === false);
  30. assert(Number.isInteger([1, 2, 3]) === false);
  31. console.log("PASS");
  32. } catch (e) {
  33. console.log("FAIL: " + e.message);
  34. }