[PPL-devel] [GIT] ppl/ppl(master): Restored a few tests commented out long time ago.

Enea Zaffanella zaffanella at cs.unipr.it
Tue Feb 14 12:00:35 CET 2012


Module: ppl/ppl
Branch: master
Commit: 2fcad61ebee93894f4c465da36f49db9a32d921e
URL:    http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=2fcad61ebee93894f4c465da36f49db9a32d921e

Author: Enea Zaffanella <zaffanella at cs.unipr.it>
Date:   Tue Feb 14 11:51:11 2012 +0100

Restored a few tests commented out long time ago.
Added a new test (synthesized from a Java test provided by Gianluca Amato)
showing a problem in the implementation of Box<ITV>::upper_bound_assign().

---

 tests/Box/upperbound1.cc |   92 +++++++++++++++++++---------------------------
 1 files changed, 38 insertions(+), 54 deletions(-)

diff --git a/tests/Box/upperbound1.cc b/tests/Box/upperbound1.cc
index 464436f..d011423 100644
--- a/tests/Box/upperbound1.cc
+++ b/tests/Box/upperbound1.cc
@@ -35,13 +35,10 @@ test01() {
   TBox box1(5);
   box1.add_constraint(x1 <= 5);
   box1.add_constraint(x2 <= -1);
-  box1.add_constraint(x1 -x2 <= 10);
 
   TBox box2(5);
-  box2.add_constraint(x1  <= 2);
+  box2.add_constraint(x1 <= 2);
   box2.add_constraint(x4 <= 7);
-  box2.add_constraint(x1 - x2 <= 20);
-  box2.add_constraint(x4 - x3 <= 3);
 
   print_constraints(box1, "*** box1 ***");
   print_constraints(box2, "*** box2 ***");
@@ -50,7 +47,6 @@ test01() {
 
   Rational_Box known_result(5);
   known_result.add_constraint(x1 <= 5);
-  known_result.add_constraint(x1 - x2 <= 20);
 
   bool ok = check_result(box1, known_result);
 
@@ -69,10 +65,8 @@ test02() {
   box1.add_constraint(-x <= -1);
   box1.add_constraint(y <= 3);
   box1.add_constraint(-y <= -1);
-  box1.add_constraint(x - y <= 1);
 
   TBox box2(3);
-  box2.add_constraint(y - x <= -1);
   box2.add_constraint(x <= 3);
   box2.add_constraint(-y <= 5);
 
@@ -84,10 +78,6 @@ test02() {
   Rational_Box known_result(3);
   known_result.add_constraint(x <= 4);
   known_result.add_constraint(y >= -5);
-  known_result.add_constraint(x >= -4);
-  known_result.add_constraint(y <= 3);
-  known_result.add_constraint(x - y <= 8);
-  known_result.add_constraint(y - x <= 2);
 
   bool ok = check_result(box1, known_result);
 
@@ -106,10 +96,8 @@ test03() {
   box1.add_constraint(-x <= -1);
   box1.add_constraint(y <= 3);
   box1.add_constraint(-y <= -1);
-  box1.add_constraint(x - y <= 1);
 
   TBox box2(2);
-  box2.add_constraint(y - x <= -1);
   box2.add_constraint(x <= 3);
   box2.add_constraint(x >= 5);
 
@@ -137,12 +125,11 @@ test04() {
   box1.add_constraint(A >= 1);
   box1.add_constraint(B <= 3);
   box1.add_constraint(-B <= -1);
-  box1.add_constraint(A - B <= 1);
 
   TBox box2(2);
-  box2.add_constraint(B - A <= -1);
-  box2.add_constraint(A <= 3);
+  box2.add_constraint(A <= 8);
   box2.add_constraint(-B <= 5);
+  box2.add_constraint(B <= 0);
 
   print_constraints(box1, "*** box1 ***");
   print_constraints(box2, "*** box2 ***");
@@ -150,12 +137,9 @@ test04() {
   box1.upper_bound_assign(box2);
 
   Rational_Box known_result(2);
-  known_result.add_constraint(A <= 4);
+  known_result.add_constraint(A <= 8);
   known_result.add_constraint(B >= -5);
-  known_result.add_constraint(A >= -4);
   known_result.add_constraint(B <= 3);
-  known_result.add_constraint(A - B <= 8);
-  known_result.add_constraint(B - A <= 2);
 
   bool ok = check_result(box1, known_result);
 
@@ -186,31 +170,6 @@ test05() {
 
 bool
 test06() {
-  Variable x(0);
-  Variable y(1);
-
-  TBox box1(2);
-  box1.add_constraint(x >= y);
-
-  TBox box2(3);
-
-  try {
-    // This is an invalid use of method
-    // Box::upper_bound_assign(box2): it is illegal
-    // to apply the method to two polyhedra of different dimensions.
-    box1.upper_bound_assign(box2);
-  }
-  catch (std::invalid_argument& e) {
-    nout << "std::invalid_argument: " << endl;
-    return true;
-  }
-  catch (...) {
-  }
-  return false;
-}
-
-bool
-test07() {
   Variable A(0);
 
   TBox box1(1);
@@ -236,7 +195,7 @@ test07() {
 }
 
 bool
-test08() {
+test07() {
   Variable x1(0);
 
   TBox box1(1);
@@ -252,16 +211,41 @@ test08() {
   return true;
 }
 
+bool
+test08() {
+  Variable A(0);
+  Variable B(1);
+
+  TBox box1(2, UNIVERSE);
+  box1.add_constraint(A == 0);
+  box1.add_constraint(B == 1);
+
+  TBox box2(box1);
+  box1.affine_image(B, Linear_Expression(4));
+
+  box2.add_constraint(A > 1);
+  box1.upper_bound_assign(box2);
+
+  TBox known_result(2, UNIVERSE);
+  known_result.add_constraint(A == 0);
+  known_result.add_constraint(B == 4);
+
+  bool ok = check_result(box1, known_result);
+
+  print_constraints(box1, "=== box1 ===");
+  print_constraints(box2, "=== known_result ===");
+  return ok;
+}
+
 } // namespace
 
 BEGIN_MAIN
-// CHECKME: why test from 1 to 7 are commented out?
-//   DO_TEST(test01);
-//   DO_TEST(test02);
-//   DO_TEST(test03);
-//   DO_TEST(test04);
-//   DO_TEST(test05);
-//   DO_TEST(test06);
-//   DO_TEST(test07);
+  DO_TEST(test01);
+  DO_TEST(test02);
+  DO_TEST(test03);
+  DO_TEST(test04);
+  DO_TEST(test05);
+  DO_TEST(test06);
+  DO_TEST(test07);
   DO_TEST(test08);
 END_MAIN




More information about the PPL-devel mailing list