[PPL-devel] [GIT] ppl/ppl(floating_point): Added two simple tests.
Fabio Bossi
bossi at cs.unipr.it
Tue Jul 27 16:22:36 CEST 2010
Module: ppl/ppl
Branch: floating_point
Commit: c20b83014b3cfd30f4bbcce6882f62324083028f
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=c20b83014b3cfd30f4bbcce6882f62324083028f
Author: Fabio Bossi <bossi at cs.unipr.it>
Date: Tue Jul 27 16:13:24 2010 +0200
Added two simple tests.
---
tests/Concrete_Expression/linearize.cc | 43 ++++++++++++++++++++++++++++++++
1 files changed, 43 insertions(+), 0 deletions(-)
diff --git a/tests/Concrete_Expression/linearize.cc b/tests/Concrete_Expression/linearize.cc
index 14897c1..d382749 100644
--- a/tests/Concrete_Expression/linearize.cc
+++ b/tests/Concrete_Expression/linearize.cc
@@ -42,8 +42,51 @@ test01() {
return false;
}
+// Tests multiplication by zero.
+bool
+test02() {
+ FP_Interval_Abstract_Store store(2);
+ store.set_interval(Variable(0), FP_Interval(0));
+ store.set_interval(Variable(1), FP_Interval(10));
+ Floating_Point_Constant<C_Expr> con("5.5", 4);
+ Approximable_Reference<C_Expr> var0(0);
+ Approximable_Reference<C_Expr> var1(1);
+ Binary_Operator<C_Expr> dif(Binary_Operator<C_Expr>::SUB, &var1, &con);
+ Binary_Operator<C_Expr> mul(Binary_Operator<C_Expr>::MUL, &dif, &var0);
+ FP_Linear_Form result;
+ linearize(mul, store, FP_Linear_Form_Abstract_Store(), result);
+
+ FP_Linear_Form known_result(compute_absolute_error<FP_Interval>(ANALYZED_FP_FORMAT));
+
+ nout << "*** known_result ***" << endl
+ << known_result << endl;
+ bool ok = (result == known_result);
+
+ return ok;
+}
+
+// Tests linearization of variables in a given linear form abstract store.
+bool
+test03() {
+ FP_Linear_Form_Abstract_Store store;
+ Variable A(0);
+ FP_Linear_Form known_result = FP_Linear_Form(A);
+ store[0] = known_result;
+ Approximable_Reference<C_Expr> var(0);
+ FP_Linear_Form result;
+ linearize(var, FP_Interval_Abstract_Store(0), store, result);
+
+ nout << "*** known_result ***" << endl
+ << known_result << endl;
+ bool ok = (result == known_result);
+
+ return ok;
+}
+
} // namespace
BEGIN_MAIN
DO_TEST(test01);
+ DO_TEST(test02);
+ DO_TEST(test03);
END_MAIN
More information about the PPL-devel
mailing list