void () { assertEquals(empty(), empty().subtract(point(10))); assertEquals(point(10), point(10).subtract(empty())); assertEquals(point(10), point(10).subtract(point(11))); assertEquals(empty(), point(10).subtract(point(10))); assertEquals(point(10), point(10).subtract(range(15, 20))); assertEquals(point(10), point(10).subtract(range(-10, -5))); assertTrue(point(10).subtract(range(10, 20)).isEmpty()); assertTrue(point(10).subtract(range(-10, 20)).isEmpty()); assertTrue(point(10).subtract(range(-10, 10)).isEmpty()); assertEquals("{0..20}", range(0, 20).subtract(range(30, Long.MAX_VALUE)).toString()); assertEquals("{0..19}", range(0, 20).subtract(range(20, Long.MAX_VALUE)).toString()); assertEquals("{0..18}", range(0, 20).subtract(range(19, Long.MAX_VALUE)).toString()); assertEquals("{0}", range(0, 20).subtract(range(1, Long.MAX_VALUE)).toString()); assertTrue(range(0, 20).subtract(range(0, Long.MAX_VALUE)).isEmpty()); assertEquals("{Long.MIN_VALUE}", all().subtract(range(Long.MIN_VALUE + 1, Long.MAX_VALUE)).toString()); assertEquals("{Long.MAX_VALUE}", all().subtract(range(Long.MIN_VALUE, Long.MAX_VALUE - 1)).toString()); assertTrue(all().subtract(range(Long.MIN_VALUE, Long.MAX_VALUE)).isEmpty()); assertEquals(JvmPsiRangeSetUtil.indexRange(), fromTypeStrict(PsiTypes.intType()).subtract(range(Long.MIN_VALUE, -1))); assertTrue(all().subtract(all()).isEmpty()); }