From 4485b0359539b4dbfe9f236f719e36c822d9a24b Mon Sep 17 00:00:00 2001 From: Jürgen Knödlseder Date: Fri, 12 Aug 2016 23:24:20 +0200 Subject: [PATCH] Add GTestSuite::test_value() method with automatic precision computation --- ChangeLog | 3 ++- NEWS | 7 +++++-- README.md | 2 +- include/GTestSuite.hpp | 6 +++++- pyext/GTestSuite.i | 6 +++++- src/test/GTestSuite.cpp | 27 +++++++++++++++++++++++++++ 6 files changed, 45 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4a39df1..3b0171a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,9 @@ -2016-08-10 +2016-08-12 * Version 1.2.0 released ========================= + Add GTestSuite::test_value() method with automatic precision computation Add GSkyMap::is_empty() method (#1828) Add GApplication access by index operator (#1838) Add GApplication::pars() and GApplicationPar::current_value() methods (#1838) diff --git a/NEWS b/NEWS index e6184ff..c55f48b 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,6 @@ New Features and Important Changes in GammaLib 1.2.0 -10 August 2016 +12 August 2016 1. Introduction @@ -173,7 +173,10 @@ None 17. Test module --------------- -None +A GTestSuite::test_value() method for double precision values has been added +that automatically requires a relative precision of 1.0e-7. The default value +for "eps" has been removed from the former double precision test_value() +method. This should allow writing of more compact unit tests. 18. Multi-wavelength interface diff --git a/README.md b/README.md index 9ee3665..b04a9ad 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ GammaLib information ==================== -* Version: 1.2.0.dev1 (10 August 2016) +* Version: 1.2.0.dev1 (12 August 2016) * Author: Juergen Knoedlseder (jurgen.knodlseder@irap.omp.eu) [![Build Status](https://cta-jenkins.irap.omp.eu/buildStatus/icon?job=gammalib-integrate-os)](https://cta-jenkins.irap.omp.eu/job/gammalib-integrate-os/) diff --git a/include/GTestSuite.hpp b/include/GTestSuite.hpp index ab97d9f..21522e0 100644 --- a/include/GTestSuite.hpp +++ b/include/GTestSuite.hpp @@ -85,7 +85,11 @@ public: const std::string& message = ""); void test_value(const double& value, const double& expected, - const double& eps = 1.0e-7, + const std::string& name = "", + const std::string& message = ""); + void test_value(const double& value, + const double& expected, + const double& eps, const std::string& name = "", const std::string& message = ""); void test_value(const std::string& value, diff --git a/pyext/GTestSuite.i b/pyext/GTestSuite.i index b0fc148..f2506dd 100644 --- a/pyext/GTestSuite.i +++ b/pyext/GTestSuite.i @@ -250,7 +250,11 @@ public: const std::string& message = ""); void test_value(const double& value, const double& expected, - const double& eps = 1.0e-7, + const std::string& name = "", + const std::string& message = ""); + void test_value(const double& value, + const double& expected, + const double& eps, const std::string& name = "", const std::string& message = ""); void test_value(const std::string& value, diff --git a/src/test/GTestSuite.cpp b/src/test/GTestSuite.cpp index c24e2ad..58b6345 100644 --- a/src/test/GTestSuite.cpp +++ b/src/test/GTestSuite.cpp @@ -458,6 +458,33 @@ void GTestSuite::test_value(const int& value, * * @param[in] value Double precision value to test. * @param[in] expected Expected double precision value. + * @param[in] name Test case name. + * @param[in] message Test case message. + * + * Test if the @p value is equal to the @p expected value within a relative + * precision of 1.0e-7. + ***************************************************************************/ +void GTestSuite::test_value(const double& value, + const double& expected, + const std::string& name, + const std::string& message) +{ + // Compute precision + double eps = (expected != 0.0) ? 1.0e-7 * expected : 1.0e-7; + + // Test double precision value + test_value(value, expected, eps, name, message); + + // Return + return; +} + + +/***********************************************************************//** + * @brief Test a double precision value + * + * @param[in] value Double precision value to test. + * @param[in] expected Expected double precision value. * @param[in] eps Precision of the test. * @param[in] name Test case name. * @param[in] message Test case message. -- libgit2 0.21.4