public RestrictedRealDatatype(final Datatype<? extends Number> datatype, final OWLRealInterval interval) { _datatype = datatype; _empty = new EmptyRestrictedDatatype<>(datatype); _intervals = Collections.singletonList(interval); _finite = interval.isFinite(); _enumerable = interval.isPoint() || interval.getType().equals(OWLRealInterval.LineType.INTEGER_ONLY); }
public RestrictedRealDatatype(final Datatype<? extends Number> datatype, final OWLRealInterval interval) { _datatype = datatype; _empty = new EmptyRestrictedDatatype<>(datatype); _intervals = Collections.singletonList(interval); _finite = interval.isFinite(); _enumerable = interval.isPoint() || interval.getType().equals(OWLRealInterval.LineType.INTEGER_ONLY); }
if (!i.isPoint() && !i.getType().equals(OWLRealInterval.LineType.INTEGER_ONLY))
if (!i.isPoint() && !i.getType().equals(OWLRealInterval.LineType.INTEGER_ONLY))
public Iterator<Number> valueIterator() if (isPoint()) return Collections.singletonList(getUpper()).iterator(); else
/** * Verify that a continuous interval with equal bounds is a point. */ @Test public void isPointTrueCon() { final OWLRealInterval a = new OWLRealInterval(BigDecimal.valueOf(0.1d)); assertTrue(a.isPoint()); final OWLRealInterval b = interval(0.1, 0.1, true, true, LineType.CONTINUOUS); assertTrue(b.isPoint()); assertEquals(a, b); }
public Iterator<Number> valueIterator() if (isPoint()) return Collections.singletonList(getUpper()).iterator(); else
/** * Verify that an integer only interval with unequal bounds is not a point. */ @Test public void isPointFalseOnly() { final OWLRealInterval a = interval(1, 2, true, true, LineType.INTEGER_ONLY); assertFalse(a.isPoint()); }
/** * Verify that a continuous interval with unequal bounds is not a point. */ @Test public void isPointFalseCon() { final OWLRealInterval a = interval(0.1, 0.2, true, true, LineType.CONTINUOUS); assertFalse(a.isPoint()); }
@Test public void unboundContainsAll() { final OWLRealInterval interval = new OWLRealInterval(null, null, false, false, LineType.CONTINUOUS); 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 two continuous intervals overlapping just on an inclusive bound intersect to a point. */ @Test public void intersectionPointCon() { final OWLRealInterval a = interval(null, 2.1, false, true, LineType.CONTINUOUS); final OWLRealInterval b = interval(2.1, null, true, false, LineType.CONTINUOUS); final OWLRealInterval expected = new OWLRealInterval(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)); }
/** * Verify that two integer intervals overlapping just on an inclusive bound intersect to a point. */ @Test public void intersectionPointOnly() { final OWLRealInterval a = interval(null, 2, false, true, LineType.INTEGER_ONLY); final OWLRealInterval b = interval(2, null, true, false, LineType.INTEGER_ONLY); final OWLRealInterval expected = new OWLRealInterval(Integer.valueOf(2)); 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(Integer.valueOf(2))); assertTrue(b.intersection(a).contains(Integer.valueOf(2))); assertEquals(IntervalRelations.OVERLAPS, a.compare(b)); assertEquals(IntervalRelations.OVERLAPPED_BY, b.compare(a)); }