Package ai.domain.interval

Examples of ai.domain.interval.IntervalValue


public class BoxesDomainWideningTests {
  private NonRelationalDomain<Interval> prepareBox(IntervalValue... data) {
    int idx = 0;
    NonRelationalDomain<Interval> res = NonRelationalDomain.getInitialValue();
    for(int i=data.length-1; i>=0; i--) {
      IntervalValue val = data[i];
      res = res.addNewVariable(new DummyVariable("TestVariable " + idx, idx++), new Interval(val), false);
    }
    return res;
  }
View Full Code Here


    return result;
  }
 
  @Test
  public void testOneDimensionNoThresholds01() {
    IntegerBoxes left = oneDimensionalBox(new IntervalValue(1, 2), new IntervalValue(4, 5));
    IntegerBoxes right = oneDimensionalBox(new IntervalValue(4, 6));
    IntegerBoxes wid = BoxesWideningOperator.computeWidening(left, right);
    org.junit.Assert.assertEquals(oneDimensionalBox(new IntervalValue(1, 2), new IntervalValue(4, Double.POSITIVE_INFINITY)), wid);
  }
View Full Code Here

    org.junit.Assert.assertEquals(oneDimensionalBox(new IntervalValue(1, 2), new IntervalValue(4, Double.POSITIVE_INFINITY)), wid);
  }

  @Test
  public void testOneDimensionNoThresholds02() {
    IntegerBoxes left = oneDimensionalBox(new IntervalValue(1, 2), new IntervalValue(4, 5));
    IntegerBoxes right = oneDimensionalBox(new IntervalValue(4, 6), new IntervalValue(-2, -1));
    IntegerBoxes wid = BoxesWideningOperator.computeWidening(left, right);
    org.junit.Assert.assertEquals(oneDimensionalBox(new IntervalValue(Double.NEGATIVE_INFINITY, 2), new IntervalValue(4, Double.POSITIVE_INFINITY)), wid);
  }
View Full Code Here

    org.junit.Assert.assertEquals(oneDimensionalBox(new IntervalValue(Double.NEGATIVE_INFINITY, 2), new IntervalValue(4, Double.POSITIVE_INFINITY)), wid);
  }

  @Test
  public void testOneDimensionWithThresholds01() {
    IntegerBoxes left = oneDimensionalBox(new IntervalValue(1, 2));
    IntegerBoxes right = oneDimensionalBox(new IntervalValue(4, 6));
    IntegerBoxes wid = BoxesWideningOperator.computeWidening(left, right, Arrays.asList(new Double(-2), new Double(8), new Double(120)));
    org.junit.Assert.assertEquals(oneDimensionalBox(new IntervalValue(1, 7)), wid);
  }
View Full Code Here

    org.junit.Assert.assertEquals(oneDimensionalBox(new IntervalValue(1, 7)), wid);
  }

  @Test
  public void testTwoDimension01() {
    IntegerBoxes left = getSingleBoxAndVerify(new IntervalValue(0, 1), new IntervalValue(0, 1)).join(
        getSingleBoxAndVerify(new IntervalValue(3, 4), new IntervalValue(3, 4)));
    IntegerBoxes right = getSingleBoxAndVerify(new IntervalValue(0, 2), new IntervalValue(0, 2));
    IntegerBoxes wid = BoxesWideningOperator.computeWidening(left, right);
    org.junit.Assert.assertEquals(
        getSingleBoxAndVerify(new IntervalValue(0, 1), new IntervalValue(0, Double.POSITIVE_INFINITY)).join(
        getSingleBoxAndVerify(new IntervalValue(2,2), new IntervalValue(0,2))).join(
        getSingleBoxAndVerify(new IntervalValue(3,4), new IntervalValue(3,4))), wid);
  }
View Full Code Here

        getSingleBoxAndVerify(new IntervalValue(3,4), new IntervalValue(3,4))), wid);
  }

  @Test
  public void testTwoDimensionWithThresholds01() {
    IntegerBoxes left = getSingleBoxAndVerify(new IntervalValue(0, 1), new IntervalValue(0, 1)).join(
        getSingleBoxAndVerify(new IntervalValue(3, 4), new IntervalValue(3, 4)));
    IntegerBoxes right = getSingleBoxAndVerify(new IntervalValue(0, 2), new IntervalValue(0, 2));
    IntegerBoxes wid = BoxesWideningOperator.computeWidening(left, right, Arrays.asList(new Double(7)));
    org.junit.Assert.assertEquals(
        getSingleBoxAndVerify(new IntervalValue(0, 1), new IntervalValue(0, 6)).join(
        getSingleBoxAndVerify(new IntervalValue(2,2), new IntervalValue(0,2))).join(
        getSingleBoxAndVerify(new IntervalValue(3,4), new IntervalValue(3,4))), wid);
  }
View Full Code Here

        getSingleBoxAndVerify(new IntervalValue(3,4), new IntervalValue(3,4))), wid);
  }

  @Test
  public void testTwoDimensionWithThresholds02() {
    IntegerBoxes left = getSingleBoxAndVerify(new IntervalValue(0,10), new IntervalValue(0, 1));
    IntegerBoxes right = IntegerBoxesHelper.join(
        getSingleBoxAndVerify(new IntervalValue(0,2), new IntervalValue(0, 5)),
        getSingleBoxAndVerify(new IntervalValue(3,6), new IntervalValue(0, 1)),
        getSingleBoxAndVerify(new IntervalValue(7,8), new IntervalValue(0,2)),
        getSingleBoxAndVerify(new IntervalValue(9,10), new IntervalValue(0,1)));
    final ArrayList<Variable> variables = left.getVariables();
    IntegerBoxes wid = BoxesWideningOperator.computeWidening(left, right,
        new WideningStepThresholds() {
          @Override
          public Set<Double> getThresholds(Variable var) {
            List<Double> thresholds;
            if (var == variables.get(0))
              thresholds = Arrays.asList(2.0, 4.0, 6.0, 8.0, 10.0);
            else
              thresholds = Arrays.asList(5.0);
            return new HashSet<Double>(thresholds);
          }
        });
    IntegerBoxes result = IntegerBoxesHelper.join(
        getSingleBoxAndVerify(new IntervalValue(0,2), new IntervalValue(0, Double.POSITIVE_INFINITY)),
        getSingleBoxAndVerify(new IntervalValue(3,3), new IntervalValue(0, 4)),
        getSingleBoxAndVerify(new IntervalValue(4,5), new IntervalValue(0,1)),
        getSingleBoxAndVerify(new IntervalValue(6,9), new IntervalValue(0,4)),
        getSingleBoxAndVerify(new IntervalValue(9,10), new IntervalValue(0,1))
        );
    org.junit.Assert.assertEquals(result, wid);
  }
View Full Code Here

  }

  @Test
  public void testStrange0() {
    IntegerBoxes left = getSingleBoxAndVerify(
        new IntervalValue(1, Double.POSITIVE_INFINITY),
        new IntervalValue(2, Double.POSITIVE_INFINITY),
        new IntervalValue(2, Double.POSITIVE_INFINITY),
        new IntervalValue(2, 2),
        new IntervalValue(-1, -1)
        );
    IntegerBoxes right = IntegerBoxesHelper.join(
        getSingleBoxAndVerify(
            new IntervalValue(1, Double.POSITIVE_INFINITY),
            new IntervalValue(2, Double.POSITIVE_INFINITY),
            new IntervalValue(2, Double.POSITIVE_INFINITY),
            new IntervalValue(2, 2),
            new IntervalValue(-1, -1),
            new IntervalValue(1, 1)
            ),
        getSingleBoxAndVerify(
        new IntervalValue(1, Double.POSITIVE_INFINITY),
        new IntervalValue(2, Double.POSITIVE_INFINITY),
        new IntervalValue(2, Double.POSITIVE_INFINITY),
        new IntervalValue(2, 2),
        new IntervalValue(-1, -1)
        ),
        getSingleBoxAndVerify(
            new IntervalValue(2, Double.POSITIVE_INFINITY),
            new IntervalValue(2, Double.POSITIVE_INFINITY),
            new IntervalValue(2, Double.POSITIVE_INFINITY),
            new IntervalValue(2, 2),
            new IntervalValue(-0.0, -0.0)
            )
        );

    IntegerBoxes result = left.widen(right);
    org.junit.Assert.assertTrue(left.leq(result));
View Full Code Here

TOP

Related Classes of ai.domain.interval.IntervalValue

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.