public RestrictedRealDatatype(final Datatype<? extends Number> datatype, final IntegerInterval ints, final ContinuousRealInterval decimals, final ContinuousRealInterval rationals) { _datatype = datatype; _empty = new EmptyRestrictedDatatype<>(datatype); _intIntervals = ints == null ? Collections.<IntegerInterval> emptyList() : Collections.singletonList(ints); _decimalIntervals = decimals == null ? Collections.<ContinuousRealInterval> emptyList() : Collections.singletonList(decimals); _rationalIntervals = rationals == null ? Collections.<ContinuousRealInterval> emptyList() : Collections.singletonList(rationals); _finite = (ints == null ? true : ints.isFinite()) && (decimals == null ? true : decimals.isPoint()) && (rationals == null ? true : rationals.isPoint()); _enumerable = _finite || decimals == null && rationals == null; }
public Iterator<Number> valueIterator() { if (isPoint()) return Collections.singletonList(getUpper()).iterator(); else throw new IllegalStateException(); } }
public RestrictedRealDatatype(final Datatype<? extends Number> datatype, final IntegerInterval ints, final ContinuousRealInterval decimals, final ContinuousRealInterval rationals) { _datatype = datatype; _empty = new EmptyRestrictedDatatype<>(datatype); _intIntervals = ints == null ? Collections.<IntegerInterval> emptyList() : Collections.singletonList(ints); _decimalIntervals = decimals == null ? Collections.<ContinuousRealInterval> emptyList() : Collections.singletonList(decimals); _rationalIntervals = rationals == null ? Collections.<ContinuousRealInterval> emptyList() : Collections.singletonList(rationals); _finite = (ints == null ? true : ints.isFinite()) && (decimals == null ? true : decimals.isPoint()) && (rationals == null ? true : rationals.isPoint()); _enumerable = _finite || decimals == null && rationals == null; }
public Iterator<Number> valueIterator() { if (isPoint()) return Collections.singletonList(getUpper()).iterator(); else throw new IllegalStateException(); } }
if (allEnumerable) for (final ContinuousRealInterval i : l) if (!i.isPoint())
if (allEnumerable) for (final ContinuousRealInterval i : l) if (!i.isPoint())
/** * Verify that a interval with equal bounds is a point. */ @Test public void isPointTrue() { final ContinuousRealInterval a = new ContinuousRealInterval(BigDecimal.valueOf(0.1d)); assertTrue(a.isPoint()); final ContinuousRealInterval b = interval(0.1, 0.1, true, true); assertTrue(b.isPoint()); assertEquals(a, b); }
/** * Verify that a interval with unequal bounds is not a point. */ @Test public void isPointFalse() { final ContinuousRealInterval a = interval(0.1, 0.2, true, true); assertFalse(a.isPoint()); }
@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 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)); }