[PPL-devel] [GIT] ppl/ppl(floating_point): Added test for Octagonal_Shape<T>:: refine_fp_interval_abstract_store.
Roberto Amadini
r.amadini at virgilio.it
Fri Sep 18 12:33:58 CEST 2009
Module: ppl/ppl
Branch: floating_point
Commit: 4a811294d3accd1cf5fbcc0470e8e70905c076dd
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=4a811294d3accd1cf5fbcc0470e8e70905c076dd
Author: Roberto Amadini <r.amadini at virgilio.it>
Date: Fri Sep 18 12:32:47 2009 +0200
Added test for Octagonal_Shape<T>::refine_fp_interval_abstract_store.
---
.../floatingpointexpr1.cc | 8 ++--
tests/Floating_Point_Expression/refinelf1.cc | 47 ++++++++++++++++++++
2 files changed, 51 insertions(+), 4 deletions(-)
diff --git a/tests/Floating_Point_Expression/floatingpointexpr1.cc b/tests/Floating_Point_Expression/floatingpointexpr1.cc
index 1553458..624f00f 100644
--- a/tests/Floating_Point_Expression/floatingpointexpr1.cc
+++ b/tests/Floating_Point_Expression/floatingpointexpr1.cc
@@ -60,16 +60,16 @@ typedef Opposite_Floating_Point_Expression<db_r_oc, IEEE754_Single> opp_fpeds;
typedef Opposite_Floating_Point_Expression<db_r_oc, IEEE754_Double> opp_fpedd;
typedef Floating_Point_Expression<fl_r_oc, IEEE754_Single>::FP_Interval_Abstract_Store sstr;
-typedef Constant_Floating_Point_Expression<db_r_oc, IEEE754_Single>::FP_Interval_Abstract_Store dstr;
+typedef Floating_Point_Expression<db_r_oc, IEEE754_Single>::FP_Interval_Abstract_Store dstr;
typedef Floating_Point_Expression<fl_r_oc, IEEE754_Single>::FP_Linear_Form_Abstract_Store lsstr;
-typedef Constant_Floating_Point_Expression<db_r_oc, IEEE754_Single>::FP_Linear_Form_Abstract_Store ldstr;
+typedef Floating_Point_Expression<db_r_oc, IEEE754_Single>::FP_Linear_Form_Abstract_Store ldstr;
typedef Floating_Point_Expression<fl_r_oc, IEEE754_Double>::FP_Interval_Abstract_Store sdtr;
-typedef Constant_Floating_Point_Expression<db_r_oc, IEEE754_Double>::FP_Interval_Abstract_Store ddtr;
+typedef Floating_Point_Expression<db_r_oc, IEEE754_Double>::FP_Interval_Abstract_Store ddtr;
typedef Floating_Point_Expression<fl_r_oc, IEEE754_Double>::FP_Linear_Form_Abstract_Store lsdtr;
-typedef Constant_Floating_Point_Expression<db_r_oc, IEEE754_Double>::FP_Linear_Form_Abstract_Store lddtr;
+typedef Floating_Point_Expression<db_r_oc, IEEE754_Double>::FP_Linear_Form_Abstract_Store lddtr;
namespace {
diff --git a/tests/Floating_Point_Expression/refinelf1.cc b/tests/Floating_Point_Expression/refinelf1.cc
index 8f25961..5d15285 100644
--- a/tests/Floating_Point_Expression/refinelf1.cc
+++ b/tests/Floating_Point_Expression/refinelf1.cc
@@ -23,6 +23,8 @@ site: http://www.cs.unipr.it/ppl/ . */
#include "ppl_test.hh"
+typedef Floating_Point_Expression<db_r_oc, IEEE754_Double>::FP_Interval_Abstract_Store ddtr;
+
namespace {
// tests trivial cases
@@ -403,6 +405,50 @@ test10() {
return ok;
}
+// tests Octagonal_Shape<T>::refine_fp_interval_abstract_store
+// FIXME: this test should be parametric according to the floating point
+// format of analyzer and analyzed.
+bool
+test11() {
+ Variable A(0);
+ Variable B(1);
+ ddtr store;
+ db_r_oc tmp(-2.5);
+ tmp.join_assign(3.5);
+ store[0] = tmp;
+ tmp.lower() = -4;
+ tmp.upper() = 4;
+ store[1] = tmp;
+ Octagonal_Shape<double> oc1(2);
+ oc1.add_constraint(A <= 2);
+ oc1.add_constraint(B <= 2);
+ oc1.add_constraint(A >= -3);
+ oc1.add_constraint(2*B >= -3);
+ oc1.refine_fp_interval_abstract_store(store);
+
+ nout << "*** store[0] ***" << endl
+ << store[0] << endl;
+
+ db_r_oc known_result1(-2.5);
+ known_result1.join_assign(2);
+ nout << "*** known_result1 ***" << endl
+ << known_result1 << endl;
+
+ bool ok1 = (store[0] == known_result1);
+
+ nout << "*** store[1] ***" << endl
+ << store[1] << endl;
+
+ db_r_oc known_result2(-1.5);
+ known_result2.join_assign(2);
+ nout << "*** known_result2 ***" << endl
+ << known_result2 << endl;
+
+ bool ok2 = (store[1] == known_result2);
+
+ return ok1 && ok2;
+}
+
} //namespace
BEGIN_MAIN
@@ -416,4 +462,5 @@ BEGIN_MAIN
DO_TEST(test08);
DO_TEST(test09);
DO_TEST(test10);
+ DO_TEST(test11);
END_MAIN
More information about the PPL-devel
mailing list