[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