/** * Tests the performance of {@link RangeSet} implementation. This test is not executed * in normal SIS build. We run this test only when the {@link RangeSet} implementation * changed, and we want to test the impact of that change on the performance. * * @throws InterruptedException if the test has been interrupted. */ @Performance public void stress() throws InterruptedException { final PrintWriter out = TestCase.out; final Random r = TestUtilities.createRandomNumberGenerator(); for (int p=0; p<10; p++) { final long start = System.nanoTime(); final RangeSet<Integer> set = RangeSet.create(Integer.class, true, false); for (int i=0; i<100000; i++) { final int lower = r.nextInt(1000000) - 500; final int upper = lower + r.nextInt(100) + 1; if (r.nextBoolean()) { set.add(lower, upper); } else { set.remove(lower, upper); } } out.print((System.nanoTime() - start) / (float) NANOS_PER_SECOND); out.print(" seconds for a size of "); out.println(set.size()); Thread.sleep(1000); } } }
Errors.Keys.IllegalArgumentValue_2, "object", range)); return remove(range.getMinValue(), range.getMaxValue());
Errors.Keys.IllegalArgumentValue_2, "object", range)); return remove(range.getMinValue(), range.getMaxValue());
public void testRemoveRangeOfIntegers() { final RangeSet<Integer> ranges = RangeSet.create(Integer.class, true, false); assertFalse("Remove on empty collection should return false.", ranges.remove(Integer.MIN_VALUE, Integer.MAX_VALUE)); assertTrue(ranges.add(-20, -10)); assertTrue(ranges.remove(-15, -5)); assertEquals("size", 1, ranges.size()); Range<Integer> r = ranges.first(); assertTrue(ranges.remove(-25, -15)); assertEquals("size", 1, ranges.size()); r = ranges.first(); assertTrue(ranges.remove(-17, -13)); assertEquals("size", 2, ranges.size()); r = ranges.getRange(0); assertTrue(ranges.remove(-21, -9)); assertTrue(ranges.isEmpty());
assertTrue(ranges.add( 15.3, 21.71)); assertEquals("size", 7, ranges.size()); assertTrue(ranges.remove(-21.0, -1.4)); assertEquals("size", 4, ranges.size()); Range<Double> r = ranges.first(); assertTrue(ranges.add( -2.4, 1.1 )); assertEquals("size", 7, ranges.size()); assertTrue(ranges.remove(0.7, 22.3)); assertEquals("size", 4, ranges.size()); r = ranges.first(); assertTrue(ranges.add(15.3, 21.71)); assertEquals("size", 7, ranges.size()); assertTrue(ranges.remove(-5.4, -3.9)); assertEquals("size", 8, ranges.size()); r = ranges.getRange(4); assertTrue(ranges.remove(-5.4, 3.1)); assertEquals("size", 6, ranges.size()); r = ranges.getRange(4); assertTrue(ranges.add( 1.9, 4.3)); assertEquals("size", 7, ranges.size()); assertTrue(ranges.remove(-7.1, 5.2)); assertEquals("size", 4, ranges.size()); r = ranges.getRange(2); assertTrue(ranges.add( 1.9, 4.3));