예제 #1
0
 @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);
 }
예제 #2
0
  @Test
  public void testInfinite() {
    IntervalsSet set = new IntervalsSet(9.0, Double.POSITIVE_INFINITY);
    Assert.assertEquals(Region.Location.BOUNDARY, set.checkPoint(new Vector1D(9.0)));
    Assert.assertEquals(Region.Location.OUTSIDE, set.checkPoint(new Vector1D(8.4)));
    for (double e = 1.0; e <= 6.0; e += 1.0) {
      Assert.assertEquals(
          Region.Location.INSIDE, set.checkPoint(new Vector1D(FastMath.pow(10.0, e))));
    }
    Assert.assertTrue(Double.isInfinite(set.getSize()));
    Assert.assertEquals(9.0, set.getInf(), 1.0e-10);
    Assert.assertTrue(Double.isInfinite(set.getSup()));

    set = (IntervalsSet) new RegionFactory<Euclidean1D>().getComplement(set);
    Assert.assertEquals(9.0, set.getSup(), 1.0e-10);
    Assert.assertTrue(Double.isInfinite(set.getInf()));
  }
예제 #3
0
 @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);
 }
예제 #4
0
  @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);
  }