[PPL-devel] [GIT] ppl/ppl(floating_point): Added another test.
Roberto Amadini
r.amadini at virgilio.it
Sat Sep 26 17:49:46 CEST 2009
Module: ppl/ppl
Branch: floating_point
Commit: d002a27f5e250e877bcf5e353cedd1f7b3682883
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=d002a27f5e250e877bcf5e353cedd1f7b3682883
Author: Roberto Amadini <r.amadini at virgilio.it>
Date: Sat Sep 26 17:48:18 2009 +0200
Added another test.
---
tests/Floating_Point_Expression/polyhedron2.cc | 43 +++++++++++++++++++++--
1 files changed, 39 insertions(+), 4 deletions(-)
diff --git a/tests/Floating_Point_Expression/polyhedron2.cc b/tests/Floating_Point_Expression/polyhedron2.cc
index 8dedc6f..06e88ae 100644
--- a/tests/Floating_Point_Expression/polyhedron2.cc
+++ b/tests/Floating_Point_Expression/polyhedron2.cc
@@ -111,8 +111,6 @@ test04() {
store.set_interval(B, tmp0);
FP_Interval tmp(tmp0);
tmp = 2;
- //tmp.lower() = 2;
- //tmp.upper() = 2;
tmp /= FP_Interval(3);
FP_Linear_Form la(A);
FP_Linear_Form lb(B);
@@ -154,11 +152,48 @@ test04() {
}
-// tests (2/3)*B - 0.5 >= (1/3)*A
+// tests (2/3)*B + [-0.5, 0.5] >= (1/3)*A
+// FIXME: Not pass at the moment.
bool
test05() {
+ Variable A(0);
+ Variable B(1);
+ FP_Interval tmp0(-1);
+ tmp0.join_assign(1);
+ FP_Interval_Abstract_Store store(2);
+ store.set_interval(A, tmp0);
+ store.set_interval(B, tmp0);
+ FP_Interval tmp(1);
+ tmp /= FP_Interval(3);
+ FP_Linear_Form la(A);
+ la *= tmp;
+ FP_Linear_Form lb(B);
+ tmp += tmp;
+ lb *= tmp;
+ tmp.lower() = -0.5;
+ tmp.upper() = 0.5;
+ lb += tmp;
+
+ C_Polyhedron ph(2);
+ ph.refine_with_linear_form_inequality(la, lb, store);
+ print_constraints(ph, "*** ph ***");
+
+ C_Polyhedron known_result1(2);
+ known_result1.add_constraint(2*A <= 4*B + 1);
+ print_constraints(known_result1, "*** known_result1 ***");
+
+ bool ok1 = ph.contains(known_result1);
- return true;
+ ph.refine_fp_interval_abstract_store(store);
+ nout << "*** FP_Interval_Abstract_Store ***" << endl;
+
+ nout << "A = " << store.get_interval(A) << endl;
+ bool ok2 = tmp0.contains(store.get_interval(A));
+
+ nout << "B = " << store.get_interval(B) << endl;
+ bool ok3 = tmp0.contains(store.get_interval(B));
+
+ return ok1 && ok2 && ok3;
}
} // namespace
More information about the PPL-devel
mailing list