Math.clz32.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. load("test-common.js");
  2. try {
  3. assert(Math.clz32.length === 1);
  4. assert(Math.clz32(0) === 32);
  5. assert(Math.clz32(1) === 31);
  6. assert(Math.clz32(2) === 30);
  7. assert(Math.clz32(3) === 30);
  8. assert(Math.clz32(4) === 29);
  9. assert(Math.clz32(5) === 29);
  10. assert(Math.clz32(-1) === 0);
  11. assert(Math.clz32(-10) === 0);
  12. assert(Math.clz32(-100) === 0);
  13. assert(Math.clz32(-1000) === 0);
  14. assert(Math.clz32(-0.123) === 32);
  15. assert(Math.clz32(0.123) === 32);
  16. assert(Math.clz32(1.23) === 31);
  17. assert(Math.clz32(12) === 28);
  18. assert(Math.clz32(123) === 25);
  19. assert(Math.clz32(1234) === 21);
  20. assert(Math.clz32(12345) === 18);
  21. assert(Math.clz32(123456) === 15);
  22. assert(Math.clz32(1234567) === 11);
  23. assert(Math.clz32(12345678) === 8);
  24. assert(Math.clz32(123456789) === 5);
  25. assert(Math.clz32(999999999) === 2);
  26. assert(Math.clz32(9999999999) === 1);
  27. assert(Math.clz32(99999999999) === 1);
  28. assert(Math.clz32(999999999999) === 0);
  29. assert(Math.clz32(9999999999999) === 1);
  30. assert(Math.clz32(99999999999999) === 3);
  31. assert(Math.clz32(999999999999999) === 0);
  32. assert(Math.clz32() === 32);
  33. assert(Math.clz32(NaN) === 32);
  34. assert(Math.clz32(Infinity) === 32);
  35. assert(Math.clz32(-Infinity) === 32);
  36. assert(Math.clz32(false) === 32);
  37. assert(Math.clz32(true) === 31);
  38. assert(Math.clz32(null) === 32);
  39. assert(Math.clz32(undefined) === 32);
  40. assert(Math.clz32([]) === 32);
  41. assert(Math.clz32({}) === 32);
  42. assert(Math.clz32("foo") === 32);
  43. console.log("PASS");
  44. } catch (e) {
  45. console.log("FAIL: " + e);
  46. }