Math.clz32.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. test("basic functionality", () => {
  2. expect(Math.clz32).toHaveLength(1);
  3. expect(Math.clz32(0)).toBe(32);
  4. expect(Math.clz32(1)).toBe(31);
  5. expect(Math.clz32(2)).toBe(30);
  6. expect(Math.clz32(3)).toBe(30);
  7. expect(Math.clz32(4)).toBe(29);
  8. expect(Math.clz32(5)).toBe(29);
  9. expect(Math.clz32(-1)).toBe(0);
  10. expect(Math.clz32(-10)).toBe(0);
  11. expect(Math.clz32(-100)).toBe(0);
  12. expect(Math.clz32(-1000)).toBe(0);
  13. expect(Math.clz32(-0.123)).toBe(32);
  14. expect(Math.clz32(0.123)).toBe(32);
  15. expect(Math.clz32(1.23)).toBe(31);
  16. expect(Math.clz32(12)).toBe(28);
  17. expect(Math.clz32(123)).toBe(25);
  18. expect(Math.clz32(1234)).toBe(21);
  19. expect(Math.clz32(12345)).toBe(18);
  20. expect(Math.clz32(123456)).toBe(15);
  21. expect(Math.clz32(1234567)).toBe(11);
  22. expect(Math.clz32(12345678)).toBe(8);
  23. expect(Math.clz32(123456789)).toBe(5);
  24. expect(Math.clz32(999999999)).toBe(2);
  25. expect(Math.clz32(9999999999)).toBe(1);
  26. expect(Math.clz32(99999999999)).toBe(1);
  27. expect(Math.clz32(999999999999)).toBe(0);
  28. expect(Math.clz32(9999999999999)).toBe(1);
  29. expect(Math.clz32(99999999999999)).toBe(3);
  30. expect(Math.clz32(999999999999999)).toBe(0);
  31. expect(Math.clz32()).toBe(32);
  32. expect(Math.clz32(NaN)).toBe(32);
  33. expect(Math.clz32(Infinity)).toBe(32);
  34. expect(Math.clz32(-Infinity)).toBe(32);
  35. expect(Math.clz32(false)).toBe(32);
  36. expect(Math.clz32(true)).toBe(31);
  37. expect(Math.clz32(null)).toBe(32);
  38. expect(Math.clz32(undefined)).toBe(32);
  39. expect(Math.clz32([])).toBe(32);
  40. expect(Math.clz32({})).toBe(32);
  41. expect(Math.clz32("foo")).toBe(32);
  42. });