@Override public boolean hasNext() { if (enumIt.hasNext()) return true; if (valueIt == null) if (rangeIt.hasNext()) valueIt = rangeIt.next().valueIterator(); else return false; while (!valueIt.hasNext()) if (rangeIt.hasNext()) valueIt = rangeIt.next().valueIterator(); else return false; return true; }
@Override public boolean hasNext() { if (enumIt.hasNext()) return true; if (valueIt == null) if (rangeIt.hasNext()) valueIt = rangeIt.next().valueIterator(); else return false; while (!valueIt.hasNext()) if (rangeIt.hasNext()) valueIt = rangeIt.next().valueIterator(); else return false; return true; }
/** * Test ascending integer value enumeration for a bound interval * * @throws InvalidConstrainingFacetException */ @Test public void integerEnumeration1() throws InvalidConstrainingFacetException { RestrictedDatatype<Number> dr = new RestrictedRealDatatype(dt, IntegerInterval.allIntegers(), null, null); dr = dr.applyConstrainingFacet(MIN_INCLUSIVE.getName(), -250); dr = dr.applyConstrainingFacet(MAX_INCLUSIVE.getName(), 350); final Iterator<Number> it = dr.valueIterator(); for (int i = -250; i <= 350; i++) assertEquals(0, OWLRealUtils.compare(i, it.next())); }
/** * Same test as {@link #integerEnumeration2a()}, but with range constructed using union, not intersection * * @throws InvalidConstrainingFacetException */ @Test public void integerEnumeration2b() throws InvalidConstrainingFacetException { RestrictedDatatype<Number> dr = new RestrictedRealDatatype(dt, IntegerInterval.allIntegers(), null, null); dr = dr.applyConstrainingFacet(MIN_INCLUSIVE.getName(), -250); dr = dr.applyConstrainingFacet(MAX_EXCLUSIVE.getName(), -5); RestrictedDatatype<Number> b = new RestrictedRealDatatype(dt, IntegerInterval.allIntegers(), null, null); b = b.applyConstrainingFacet(MIN_EXCLUSIVE.getName(), -2); b = b.applyConstrainingFacet(MAX_INCLUSIVE.getName(), 350); dr = dr.union(b); final Iterator<Number> it = dr.valueIterator(); for (int i = -250; i <= 350; i++) { if ((i >= -5) && (i <= -2)) continue; assertEquals(0, OWLRealUtils.compare(i, it.next())); } }
/** * Test ascending integer value enumeration for two discontinuous intervals * * @throws InvalidConstrainingFacetException */ @Test public void integerEnumeration2a() throws InvalidConstrainingFacetException { RestrictedDatatype<Number> dr = new RestrictedRealDatatype(dt, IntegerInterval.allIntegers(), null, null); dr = dr.applyConstrainingFacet(MIN_INCLUSIVE.getName(), -250); dr = dr.applyConstrainingFacet(MAX_INCLUSIVE.getName(), 350); RestrictedDatatype<Number> neg = new RestrictedRealDatatype(dt, IntegerInterval.allIntegers(), null, null); neg = neg.applyConstrainingFacet(MIN_INCLUSIVE.getName(), -5); neg = neg.applyConstrainingFacet(MAX_INCLUSIVE.getName(), -2); dr = dr.intersect(neg, true); final Iterator<Number> it = dr.valueIterator(); for (int i = -250; i <= 350; i++) { if ((i >= -5) && (i <= -2)) continue; assertEquals(0, OWLRealUtils.compare(i, it.next())); } }
assertTrue(dr.isEnumerable()); final Iterator<Number> it = dr.valueIterator(); for (int i = -10; i <= 13; i++)