modulo-basic.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. test("basic functionality", () => {
  2. expect(10 % 3).toBe(1);
  3. expect(10.5 % 2.5).toBe(0.5);
  4. expect(-0.99 % 0.99).toBe(-0);
  5. // Examples from MDN:
  6. // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators
  7. expect(12 % 5).toBe(2);
  8. expect(-1 % 2).toBe(-1);
  9. expect(1 % -2).toBe(1);
  10. expect(1 % 2).toBe(1);
  11. expect(2 % 3).toBe(2);
  12. expect(-4 % 2).toBe(-0);
  13. expect(5.5 % 2).toBe(1.5);
  14. expect(NaN % 2).toBeNaN();
  15. expect(2 % NaN).toBeNaN();
  16. expect(NaN % NaN).toBeNaN();
  17. expect(Infinity % 1).toBeNaN();
  18. expect(-Infinity % 1).toBeNaN();
  19. expect(1 % Infinity).toBe(1);
  20. expect(1 % -Infinity).toBe(1);
  21. expect(1 % 0).toBeNaN();
  22. expect(1 % -0).toBeNaN();
  23. expect(0 % 5).toBe(0);
  24. expect(-0 % 5).toBe(-0);
  25. // test262 examples
  26. expect(1 % null).toBeNaN();
  27. expect(null % 1).toBe(0);
  28. expect(true % null).toBeNaN();
  29. expect(null % true).toBe(0);
  30. expect("1" % null).toBeNaN();
  31. expect(null % "1").toBe(0);
  32. expect(null % undefined).toBeNaN();
  33. expect(undefined % null).toBeNaN();
  34. expect(undefined % undefined).toBeNaN();
  35. expect(null % null).toBeNaN();
  36. });