@Test public void testMultiple() { RegionFactory<Euclidean1D> factory = new RegionFactory<Euclidean1D>(); IntervalsSet set = (IntervalsSet) factory.intersection( factory.union( factory.difference(new IntervalsSet(1.0, 6.0), new IntervalsSet(3.0, 5.0)), new IntervalsSet(9.0, Double.POSITIVE_INFINITY)), new IntervalsSet(Double.NEGATIVE_INFINITY, 11.0)); Assert.assertEquals(5.0, set.getSize(), 1.0e-10); Assert.assertEquals(5.9, ((Vector1D) set.getBarycenter()).getX(), 1.0e-10); Assert.assertEquals(Region.Location.OUTSIDE, set.checkPoint(new Vector1D(0.0))); Assert.assertEquals(Region.Location.OUTSIDE, set.checkPoint(new Vector1D(4.0))); Assert.assertEquals(Region.Location.OUTSIDE, set.checkPoint(new Vector1D(8.0))); Assert.assertEquals(Region.Location.OUTSIDE, set.checkPoint(new Vector1D(12.0))); Assert.assertEquals(Region.Location.INSIDE, set.checkPoint(new Vector1D(1.2))); Assert.assertEquals(Region.Location.INSIDE, set.checkPoint(new Vector1D(5.9))); Assert.assertEquals(Region.Location.INSIDE, set.checkPoint(new Vector1D(9.01))); Assert.assertEquals(Region.Location.BOUNDARY, set.checkPoint(new Vector1D(5.0))); Assert.assertEquals(Region.Location.BOUNDARY, set.checkPoint(new Vector1D(11.0))); Assert.assertEquals(1.0, set.getInf(), 1.0e-10); Assert.assertEquals(11.0, set.getSup(), 1.0e-10); List<Interval> list = set.asList(); Assert.assertEquals(3, list.size()); Assert.assertEquals(1.0, list.get(0).getLower(), 1.0e-10); Assert.assertEquals(3.0, list.get(0).getUpper(), 1.0e-10); Assert.assertEquals(5.0, list.get(1).getLower(), 1.0e-10); Assert.assertEquals(6.0, list.get(1).getUpper(), 1.0e-10); Assert.assertEquals(9.0, list.get(2).getLower(), 1.0e-10); Assert.assertEquals(11.0, list.get(2).getUpper(), 1.0e-10); }
@Test public void testInterval() { IntervalsSet set = new IntervalsSet(2.3, 5.7); Assert.assertEquals(3.4, set.getSize(), 1.0e-10); Assert.assertEquals(4.0, ((Vector1D) set.getBarycenter()).getX(), 1.0e-10); Assert.assertEquals(Region.Location.BOUNDARY, set.checkPoint(new Vector1D(2.3))); Assert.assertEquals(Region.Location.BOUNDARY, set.checkPoint(new Vector1D(5.7))); Assert.assertEquals(Region.Location.OUTSIDE, set.checkPoint(new Vector1D(1.2))); Assert.assertEquals(Region.Location.OUTSIDE, set.checkPoint(new Vector1D(8.7))); Assert.assertEquals(Region.Location.INSIDE, set.checkPoint(new Vector1D(3.0))); Assert.assertEquals(2.3, set.getInf(), 1.0e-10); Assert.assertEquals(5.7, set.getSup(), 1.0e-10); }
@Test public void testSinglePoint() { IntervalsSet set = new IntervalsSet(1.0, 1.0); Assert.assertEquals(0.0, set.getSize(), Precision.SAFE_MIN); Assert.assertEquals(1.0, ((Vector1D) set.getBarycenter()).getX(), Precision.EPSILON); }