
Module: ppl/ppl Branch: master Commit: be7b34ac18794498bbe6316fd831942a369c9cc4 URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=be7b34ac18794...
Author: Enea Zaffanella zaffanella@cs.unipr.it Date: Thu Mar 4 17:57:23 2010 +0100
Encoded custom overflow conditions for digitalfilters1.cc tests 5 and 6.
---
tests/Floating_Point_Expression/digitalfilters1.cc | 18 +++++++++++++++--- tests/ppl_test.hh | 10 ++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/tests/Floating_Point_Expression/digitalfilters1.cc b/tests/Floating_Point_Expression/digitalfilters1.cc index aca0002..b5886ce 100644 --- a/tests/Floating_Point_Expression/digitalfilters1.cc +++ b/tests/Floating_Point_Expression/digitalfilters1.cc @@ -983,8 +983,20 @@ BEGIN_MAIN DO_TEST_F8(test01); DO_TEST_F8(test02); DO_TEST_F8(test03); - DO_TEST_F32A(test04); - DO_TEST_F64(test05); - DO_TEST_F64(test06); + DO_TEST_F32(test04); + +#define COND_float PPL_CPP_EQ(PPL_CPP_FP_FORMAT(ANALYZER_FP_FORMAT), 1) +#define COND_double PPL_CPP_EQ(PPL_CPP_FP_FORMAT(ANALYZER_FP_FORMAT), 2) +#define COND_float_or_double PPL_CPP_OR(COND_float, COND_double) +#define PPL_CUSTOM_COND_32 \ + PPL_CPP_AND(PPL_CPP_EQ(PPL_CPP_LOGBITS, 5), COND_float) +#define PPL_CUSTOM_COND_64 \ + PPL_CPP_AND(PPL_CPP_EQ(PPL_CPP_LOGBITS, 6), COND_float_or_double) +#define PPL_CUSTOM_COND \ + PPL_CPP_OR(COND_F64, PPL_CPP_OR(PPL_CUSTOM_COND_32, PPL_CUSTOM_COND_64)) + + COND_DO_TEST(PPL_CUSTOM_COND, test05); + COND_DO_TEST(PPL_CUSTOM_COND, test06); + DO_TEST_F64(test07); END_MAIN diff --git a/tests/ppl_test.hh b/tests/ppl_test.hh index 0bdcf87..525488d 100644 --- a/tests/ppl_test.hh +++ b/tests/ppl_test.hh @@ -314,6 +314,16 @@ catch (const std::exception& e) { \ #define DO_TEST_F8A_MAY_OVERFLOW_IF_INEXACT(test, shape) \ COND_DO_TEST_MAY_OVERFLOW_IF_INEXACT(COND_F8A, test, shape)
+// Encoding floating point formats. +#define PPL_CPP_FP_FORMAT_float 1 +#define PPL_CPP_FP_FORMAT_double 2 +#define PPL_CPP_FP_FORMAT_long_double 3 +#define PPL_CPP_FP_FORMAT_float_ieee754_single 4 +#define PPL_CPP_FP_FORMAT_float_ieee754_double 5 +#define PPL_CPP_FP_FORMAT_float_ieee754_quad 6 +#define PPL_CPP_FP_FORMAT_(format) PPL_CPP_FP_FORMAT_ ## format +#define PPL_CPP_FP_FORMAT(format) PPL_CPP_FP_FORMAT_(format) +
// Turn s into a string: PPL_TEST_STR(x + y) => "x + y". #define PPL_TEST_STR(s) #s