void () { assertEquals(empty(), empty().mod(all())); assertEquals(empty(), all().mod(empty())); assertEquals(empty(), point(1).mod(empty())); assertEquals(empty(), point(1).join(point(3)).mod(empty())); assertEquals(point(10), point(110).mod(point(100))); checkMod(range(10, 20), range(30, 40), "{10..20}"); checkMod(range(-10, 10), range(20, 30), "{-10..10}"); checkMod(point(0), range(-100, -50).join(range(20, 80)), "{0}"); checkMod(point(30), range(10, 40), "{0..30}"); checkMod(point(-30), range(-10, 40), "{-30..0}"); checkMod(point(Long.MIN_VALUE), range(-10, 40), "{-39..0}"); checkMod(range(-10, 40), point(Long.MIN_VALUE), "{-10..40}"); checkMod(range(-30, -20), point(23), "{-22..0}"); checkMod(point(10), range(30, 40), "{10}"); checkMod(range(-10, 40), point(Long.MIN_VALUE).join(point(70)), "{-10..40}"); checkMod(range(-10, 40), point(Long.MIN_VALUE).join(point(0)), "{-10..40}"); checkMod(point(10), point(Long.MIN_VALUE).join(point(0)), "{0, 10}"); checkMod(range(0, 10).join(range(30, 50)), range(-20, -10).join(range(15, 25)), "{0..24}"); checkMod(point(10), point(0), "{}"); checkMod(range(0, 10), point(0), "{}"); checkMod(range(Long.MIN_VALUE, Long.MIN_VALUE + 3), point(Long.MIN_VALUE), "{Long.MIN_VALUE+1..-9223372036854775805, 0}"); checkMod(range(Long.MAX_VALUE - 3, Long.MAX_VALUE), point(Long.MAX_VALUE), "{0..Long.MAX_VALUE-1}"); checkMod(range(0, 10).mul(point(4), INT32), point(10), "{0..8}: <0, 2, 4, 6, 8> mod 10"); checkMod(range(-1, 10).mul(point(4), INT32), point(10), "{-4..8}: <0, 2, 4, 6, 8> mod 10"); checkMod(range(-2, 10).mul(point(3), INT32).minus(point(1), INT32), point(6), "{-4..5}: <2> mod 3"); }