void () { assertEquals("{}", modRange(0, 10, 100, 0).toString()); assertEquals("{0..10}", modRange(0, 10, 100, 1).toString()); assertEquals("{0}", modRange(0, 10, 50, 1).toString()); assertEquals("{0}", modRange(-5, 5, 50, 1).toString()); assertEquals("{}", modRange(3, 7, 50, 1).toString()); assertEquals("{-50..50}: divisible by 50", modRange(-52, 52, 50, 1).toString()); assertEquals("{Long.MIN_VALUE..Long.MAX_VALUE-1}: even", modRange(Long.MIN_VALUE, Long.MAX_VALUE, 8, 0b01010101).toString()); assertEquals("{-9223372036854775806..Long.MAX_VALUE-1}: <2> mod 4", modRange(Long.MIN_VALUE, Long.MAX_VALUE, 8, 0b01000100).toString()); assertEquals("{2..15}: <2, 5> mod 10", modRange(0, 20, 10, 0b100100).toString()); assertEquals("{0..100}", modRange(0, 100, 10, 0b1111111111).toString()); assertEquals("{9223372036854775803..Long.MAX_VALUE}", modRange(Long.MAX_VALUE-4, Long.MAX_VALUE, 8, 0xFE).toString()); }