if (i.contains(n))
if (i.contains(n))
if (i.contains(n))
/** * Verify that exclusive endpoints are not contained within the interval. */ @Test public void exclusiveEndpoints() { final ContinuousRealInterval interval = interval(-1.3, 2.5, false, false); assertFalse(interval.contains(BigDecimal.valueOf(-1.3d))); assertFalse(interval.contains(BigDecimal.valueOf(2.5d))); assertTrue(interval.contains(0)); }
/** * Verify that inclusive endpoints are contained within the interval. */ @Test public void inclusiveEndpoints() { final ContinuousRealInterval interval = interval(-1.3, 2.5, true, true); assertTrue(interval.contains(BigDecimal.valueOf(-1.3d))); assertTrue(interval.contains(BigDecimal.valueOf(2.5d))); assertTrue(interval.contains(0)); }
if (i.contains(n))
@Override public boolean contains(final Object value) { if (value instanceof XMLGregorianCalendar) { final XMLGregorianCalendar c = (XMLGregorianCalendar) value; if (isValidValue(c)) { final Number n = calendarToReal(c); /* * TODO: This could be made more efficient by looking at how * each contained check fails (e.g., if intervals is sorted by * boundaries and n is not contained, but less than upper, there * is no need to look further). */ for (final ContinuousRealInterval i : c.getTimezone() == DatatypeConstants.FIELD_UNDEFINED ? _nzIntervals : _wzIntervals) if (i.contains(n)) return true; return false; } else return false; } else return false; }
@Override public boolean contains(final Object value) { if (value instanceof XMLGregorianCalendar) { final XMLGregorianCalendar c = (XMLGregorianCalendar) value; if (isValidValue(c)) { final Number n = calendarToReal(c); /* * TODO: This could be made more efficient by looking at how * each contained check fails (e.g., if intervals is sorted by * boundaries and n is not contained, but less than upper, there * is no need to look further). */ for (final ContinuousRealInterval i : c.getTimezone() == DatatypeConstants.FIELD_UNDEFINED ? _nzIntervals : _wzIntervals) if (i.contains(n)) return true; return false; } else return false; } else return false; }
@Test public void unboundContainsAll() { final ContinuousRealInterval interval = new ContinuousRealInterval(null, null, false, false); assertFalse(interval.boundLower()); assertFalse(interval.boundUpper()); assertFalse(interval.isPoint()); assertTrue(interval.contains(-1)); assertTrue(interval.contains(0)); assertTrue(interval.contains(1)); assertTrue(interval.contains(BigDecimal.valueOf(-0.31d))); assertTrue(interval.contains(BigDecimal.valueOf(0.13d))); assertTrue(interval.contains(BigDecimal.valueOf(Long.MAX_VALUE).add(BigDecimal.valueOf(Long.MAX_VALUE)).add(BigDecimal.valueOf(0.123d)))); }
/** * Verify that the overlap of two intervals with inclusive bounds intersect correctly. */ @Test public void intersectionOverlap2() { final ContinuousRealInterval a = interval(null, 0.51, false, true); final ContinuousRealInterval b = interval(0.49, null, true, false); final ContinuousRealInterval expected = interval(0.49, 0.51, true, true); assertEquals(expected, a.intersection(b)); assertEquals(expected, b.intersection(a)); assertTrue(a.intersection(b).contains(BigDecimal.valueOf(0.50))); assertTrue(b.intersection(a).contains(BigDecimal.valueOf(0.50))); assertTrue(a.intersection(b).contains(BigDecimal.valueOf(0.49))); assertTrue(b.intersection(a).contains(BigDecimal.valueOf(0.49))); assertTrue(a.intersection(b).contains(BigDecimal.valueOf(0.51))); assertTrue(b.intersection(a).contains(BigDecimal.valueOf(0.51))); assertEquals(IntervalRelations.OVERLAPS, a.compare(b)); assertEquals(IntervalRelations.OVERLAPPED_BY, b.compare(a)); }
/** * Verify that the overlap of two intervals with exclusive bounds intersect correctly. */ @Test public void intersectionOverlap1() { final ContinuousRealInterval a = interval(null, 0.51, false, false); final ContinuousRealInterval b = interval(0.49, null, false, false); final ContinuousRealInterval expected = interval(0.49, 0.51, false, false); assertEquals(expected, a.intersection(b)); assertEquals(expected, b.intersection(a)); assertTrue(a.intersection(b).contains(BigDecimal.valueOf(0.50))); assertTrue(b.intersection(a).contains(BigDecimal.valueOf(0.50))); assertFalse(a.intersection(b).contains(BigDecimal.valueOf(0.49))); assertFalse(b.intersection(a).contains(BigDecimal.valueOf(0.49))); assertFalse(a.intersection(b).contains(BigDecimal.valueOf(0.51))); assertFalse(b.intersection(a).contains(BigDecimal.valueOf(0.51))); assertEquals(IntervalRelations.OVERLAPS, a.compare(b)); assertEquals(IntervalRelations.OVERLAPPED_BY, b.compare(a)); }
/** * Verify that two intervals overlapping just on an inclusive bound intersect to a point. */ @Test public void intersectionPoint() { final ContinuousRealInterval a = interval(null, 2.1, false, true); final ContinuousRealInterval b = interval(2.1, null, true, false); final ContinuousRealInterval expected = new ContinuousRealInterval(BigDecimal.valueOf(2.1d)); assertEquals(expected, a.intersection(b)); assertEquals(expected, b.intersection(a)); assertTrue(a.intersection(b).isPoint()); assertTrue(b.intersection(a).isPoint()); assertTrue(a.intersection(b).contains(BigDecimal.valueOf(2.1d))); assertTrue(b.intersection(a).contains(BigDecimal.valueOf(2.1d))); assertEquals(IntervalRelations.OVERLAPS, a.compare(b)); assertEquals(IntervalRelations.OVERLAPPED_BY, b.compare(a)); }