[GIT] ppl/ppl(master): Test test17() shows a bug in method Octagonal_Shape: :affine_image().

Module: ppl/ppl Branch: master Commit: 9d1163ad3ea3657d527ee26017c41a504f677f94 URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=9d1163ad3ea36...
Author: Enea Zaffanella zaffanella@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
participants (1)
-
Enea Zaffanella