[PPL-devel] [GIT] ppl/ppl(master): Test test17() shows a bug in method Octagonal_Shape: :affine_image().
Enea Zaffanella
zaffanella at cs.unipr.it
Tue Mar 24 11:05:45 CET 2009
Module: ppl/ppl
Branch: master
Commit: 9d1163ad3ea3657d527ee26017c41a504f677f94
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=9d1163ad3ea3657d527ee26017c41a504f677f94
Author: Enea Zaffanella <zaffanella at cs.unipr.it>
Date: Tue Mar 24 11:01:04 2009 +0100
Test test17() shows a bug in method Octagonal_Shape::affine_image().
The bug is triggered when the affine image is of the form
var -> var + n
and the octagonal shape has constraints relating var with another
space dimension having index smaller than var.
---
tests/Octagonal_Shape/affineimage1.cc | 49 +++++++++++++++++++++++++++-----
1 files changed, 41 insertions(+), 8 deletions(-)
diff --git a/tests/Octagonal_Shape/affineimage1.cc b/tests/Octagonal_Shape/affineimage1.cc
index 6bdafa3..5f13405 100644
--- a/tests/Octagonal_Shape/affineimage1.cc
+++ b/tests/Octagonal_Shape/affineimage1.cc
@@ -448,18 +448,49 @@ test17() {
oct1.add_constraint(y >= 0);
oct1.add_constraint(y <= 2);
- print_constraints(oct1.minimized_constraints(), "*** oct1 ***");
+ print_constraints(oct1, "*** oct1 ***");
- TOctagonal_Shape oct2(oct1);
- print_constraints(oct2.minimized_constraints(), "*** oct1 ***");
+ oct1.affine_image(y, y + 6);
- oct2.affine_image(x, x + 1);
- print_constraints(oct2.minimized_constraints(), "*** oct1 ***");
+ TOctagonal_Shape known_result(2);
+ known_result.add_constraint(x >= 0);
+ known_result.add_constraint(x <= 2);
+ known_result.add_constraint(y >= 6);
+ known_result.add_constraint(y <= 8);
+
+ bool ok = (oct1 == known_result);
+
+ print_constraints(oct1, "*** oct1.affine_image(y, y + 6) ***");
+
+ return ok;
+}
+
+bool
+test18() {
+ Variable x(0);
+ Variable y(1);
+
+ TOctagonal_Shape oct1(2);
+ oct1.add_constraint(x >= 0);
+ oct1.add_constraint(x <= 2);
+ oct1.add_constraint(y >= 0);
+ oct1.add_constraint(y <= 2);
+
+ print_constraints(oct1, "*** oct1 ***");
- oct2.affine_image(y, y + 6);
- print_constraints(oct2.minimized_constraints(), "*** oct2 ***");
+ oct1.affine_image(y, -y + 6);
- return !oct2.is_empty();
+ TOctagonal_Shape known_result(2);
+ known_result.add_constraint(x >= 0);
+ known_result.add_constraint(x <= 2);
+ known_result.add_constraint(y >= 4);
+ known_result.add_constraint(y <= 6);
+
+ bool ok = (oct1 == known_result);
+
+ print_constraints(oct1, "*** oct1.affine_image(y, -y + 6) ***");
+
+ return ok;
}
} // namespace
@@ -481,4 +512,6 @@ BEGIN_MAIN
DO_TEST(test14);
DO_TEST(test15);
DO_TEST(test16);
+ DO_TEST(test17);
+ DO_TEST(test18);
END_MAIN
More information about the PPL-devel
mailing list