[PPL-devel] [GIT] ppl/ppl(floating_point): Added two tests.

Roberto Amadini r.amadini at virgilio.it
Thu Sep 24 17:28:26 CEST 2009


Module: ppl/ppl
Branch: floating_point
Commit: 03bfe62f2d733680f0151d2ba6a2aba297e3b7e6
URL:    http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=03bfe62f2d733680f0151d2ba6a2aba297e3b7e6

Author: Roberto Amadini <r.amadini at virgilio.it>
Date:   Thu Sep 24 17:26:01 2009 +0200

Added two tests.

---

 tests/Floating_Point_Expression/polyhedron1.cc |   34 +++++++++++++++--------
 1 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/tests/Floating_Point_Expression/polyhedron1.cc b/tests/Floating_Point_Expression/polyhedron1.cc
index 601c82b..4ab4144 100644
--- a/tests/Floating_Point_Expression/polyhedron1.cc
+++ b/tests/Floating_Point_Expression/polyhedron1.cc
@@ -117,7 +117,6 @@ test03() {
 }
 
 // tests ph.affine_image(A, (B + 2) / (-3), store)
-// FIXME: not passes at the moment.
 bool
 test04() {
   Variable A(0);
@@ -139,39 +138,50 @@ test04() {
   known_result.add_generator(point(-2*A, 3));
   print_constraints(known_result, "*** known_result ***");
 
-  bool ok = (ph == known_result);
+  bool ok = (ph.contains(known_result));
 
   return ok;
 }
-/*
+
+// tests ph.affine_image(B, (A - B + 2) / (-3), store)
 bool
 test05() {
   Variable A(0);
   Variable B(1);
-
+  FP_Interval_Abstract_Store store(2);
+  FP_Interval tmp(-2.5); //FIXME: Perturbation of inhomogeneous term in order
+  tmp.join_assign(6.5);  //to handle rounding errors.
+  store.set_interval(A, tmp);
+  store.set_interval(B, tmp);
   C_Polyhedron ph(2);
   ph.add_constraint(A >= 2);
   ph.add_constraint(A <= 3);
   ph.add_constraint(B >= 1);
   ph.add_constraint(2*A >= B);
+  FP_Linear_Form l(A);
+  l += tmp;
+  l -= B;
+  tmp = -1 / 3.0;
+  l *= tmp;
 
-  print_constraints(ph, "*** ph ***");
+  ph.affine_image(B, l, store);
+  print_constraints(ph,
+    "*** ph.affine_image(B, (A - B + 2) / (-3), store) ***");
 
-  ph.affine_image(B, A-B+2, -3);
+  ph.affine_image(B, l, store);
 
   C_Polyhedron known_result(2, EMPTY);
   known_result.add_generator(point(2*A));
   known_result.add_generator(point(2*A - B));
   known_result.add_generator(point(9*A + B, 3));
   known_result.add_generator(point(9*A - 4*B, 3));
+  print_constraints(known_result, "*** known_result ***");
 
-  bool ok = (ph == known_result);
-
-  print_generators(ph, "*** ph after ph.affine_image(B, A-B+2, -3) ***");
+  bool ok = (ph.contains(known_result));
 
   return ok;
 }
-
+/*
 bool
 test06() {
   Variable A(0);
@@ -277,9 +287,9 @@ test09() {
 BEGIN_MAIN
   DO_TEST(test01);
   DO_TEST(test02);
-  DO_TEST(test03); /*
+  DO_TEST(test03);
   DO_TEST(test04);
-  DO_TEST(test05);
+  DO_TEST(test05); /*
   DO_TEST(test06);
   DO_TEST(test07);
   DO_TEST(test08);




More information about the PPL-devel mailing list