void () { assertTrue(empty().bitwiseOr(all(), INT64).isEmpty()); assertTrue(all().bitwiseOr(empty(), INT64).isEmpty()); assertEquals(all(), all().bitwiseOr(all(), INT64)); assertEquals("{Long.MIN_VALUE+1..Long.MAX_VALUE}: odd", all().bitwiseOr(point(1), INT64).toString()); assertEquals("{-9223372036854775746..Long.MAX_VALUE-1}: <62> mod 64", all().mul(point(64), INT64).minus(point(2), INT64).bitwiseOr(point(4), INT64).toString()); assertEquals("{-9223372036854775802..9223372036854775750}: <6> mod 64", all().mul(point(64), INT64).plus(point(2), INT64).bitwiseOr(point(4), INT64).toString()); checkBitwiseOr(point(0).join(point(2)), point(1), INT32, "{1, 3}"); checkBitwiseOr(point(1), point(2), INT32, "{3}"); checkBitwiseOr(range(0, 100), point(1), INT32, "{1..127}: odd"); checkBitwiseOr(range(0, 100), point(2), INT32, "{2..127}: <2, 3> mod 4"); checkBitwiseOr(range(0, 100), point(3), INT32, "{3..127}: <3> mod 4"); checkBitwiseOr(range(0, 100).bitwiseAnd(point(12)), range(0, 100).bitwiseAnd(point(24)), INT32, "{0..28}: divisible by 4"); checkBitwiseOr(range(0, 100).bitwiseAnd(point(4)), range(0, 100).bitwiseAnd(point(8)), INT32, "{0..12}: divisible by 4"); checkBitwiseOr(range(-100, 100).bitwiseAnd(point(4)), point(-256), INT64, "{-256, -252}"); checkBitwiseOr(range(-100, 100).bitwiseAnd(point(~0xF)), point(-244), INT64, "{-244..-4}: <12> mod 16"); checkBitwiseOr(range(-50, 50).bitwiseAnd(point(4)), range(-50, 50).bitwiseAnd(point(~0xFF)), INT64, "{Long.MIN_VALUE..9223372036854775748}: <0, 4> mod 64"); checkBitwiseOr(range(-50, 50).bitwiseAnd(point(~0xF)), range(-50, 50).bitwiseAnd(point(~0xF0)), INT64, "{Long.MIN_VALUE..Long.MAX_VALUE}"); checkBitwiseOr(range(-50, 50).bitwiseAnd(point(~0xF)), range(-50, 50).bitwiseAnd(point(~0xF1)), INT64, "{Long.MIN_VALUE..Long.MAX_VALUE}"); checkBitwiseOr(all().bitwiseAnd(point(4)), all().bitwiseAnd(point(8)), INT64, "{0..12}: divisible by 4"); checkBitwiseOr(range(0, 7), point(8), INT32, "{8..15}"); LongRangeSet set = point(0).bitwiseOr(point(1), INT32).join(point(0)); assertEquals("{0..3}", set.bitwiseOr(point(2), INT32).join(set).toString()); }