[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