Skip to content

Commit

Permalink
TESTS: Reduce error for double precision math test
Browse files Browse the repository at this point in the history
If we want to properly test the computation is in double precision,
we should be using a much smaller error than the one used for the
single precision tests.
  • Loading branch information
criezy committed Apr 12, 2019
1 parent 322af3e commit 563520f
Showing 1 changed file with 18 additions and 17 deletions.
35 changes: 18 additions & 17 deletions test/common/math.h
Expand Up @@ -2,7 +2,8 @@

#include "common/math.h"

const float MAX_ERROR = 1e-7;
const float MAX_ERROR_FLT = 1e-7f;
const double MAX_ERROR_DBL = 1e-15;
class MathTestSuite : public CxxTest::TestSuite
{
public:
Expand All @@ -19,27 +20,27 @@ class MathTestSuite : public CxxTest::TestSuite

void test_rad2deg() {
//float verion
TS_ASSERT_DELTA(Common::rad2deg(0), 0, MAX_ERROR);
TS_ASSERT_DELTA(Common::rad2deg(M_PI), 180.0, 180.0 * MAX_ERROR);
TS_ASSERT_DELTA(Common::rad2deg(2.0 * M_PI), 360.0, 360.0 * MAX_ERROR);
TS_ASSERT_DELTA(Common::rad2deg(M_PI / 2.0), 90.0, 90.0 * MAX_ERROR);
TS_ASSERT_DELTA(Common::rad2deg(0), 0, MAX_ERROR_FLT);
TS_ASSERT_DELTA(Common::rad2deg(M_PI), 180.0, 180.0 * MAX_ERROR_FLT);
TS_ASSERT_DELTA(Common::rad2deg(2.0 * M_PI), 360.0, 360.0 * MAX_ERROR_FLT);
TS_ASSERT_DELTA(Common::rad2deg(M_PI / 2.0), 90.0, 90.0 * MAX_ERROR_FLT);
//double version
TS_ASSERT_DELTA(Common::rad2deg<double>(0), 0, MAX_ERROR);
TS_ASSERT_DELTA(Common::rad2deg<double>(M_PI), 180.0, 180.0 * MAX_ERROR);
TS_ASSERT_DELTA(Common::rad2deg<double>(2.0 * M_PI), 360.0, 360.0 * MAX_ERROR);
TS_ASSERT_DELTA(Common::rad2deg<double>(M_PI / 2.0), 90.0, 90.0 * MAX_ERROR);
TS_ASSERT_DELTA(Common::rad2deg<double>(0), 0, MAX_ERROR_DBL);
TS_ASSERT_DELTA(Common::rad2deg<double>(M_PI), 180.0, 180.0 * MAX_ERROR_DBL);
TS_ASSERT_DELTA(Common::rad2deg<double>(2.0 * M_PI), 360.0, 360.0 * MAX_ERROR_DBL);
TS_ASSERT_DELTA(Common::rad2deg<double>(M_PI / 2.0), 90.0, 90.0 * MAX_ERROR_DBL);
}

void test_deg2rad() {
//float verion
TS_ASSERT_DELTA(Common::deg2rad(0), 0, MAX_ERROR);
TS_ASSERT_DELTA(Common::deg2rad(180.0), M_PI, M_PI * MAX_ERROR);
TS_ASSERT_DELTA(Common::deg2rad(360.0), 2.0 * M_PI, 2.0 * M_PI * MAX_ERROR);
TS_ASSERT_DELTA(Common::deg2rad(90.0), M_PI / 2.0, M_PI / 2.0 * MAX_ERROR);
TS_ASSERT_DELTA(Common::deg2rad(0), 0, MAX_ERROR_FLT);
TS_ASSERT_DELTA(Common::deg2rad(180.0), M_PI, M_PI * MAX_ERROR_FLT);
TS_ASSERT_DELTA(Common::deg2rad(360.0), 2.0 * M_PI, 2.0 * M_PI * MAX_ERROR_FLT);
TS_ASSERT_DELTA(Common::deg2rad(90.0), M_PI / 2.0, M_PI / 2.0 * MAX_ERROR_FLT);
//double version
TS_ASSERT_DELTA(Common::deg2rad<double>(0), 0, MAX_ERROR);
TS_ASSERT_DELTA(Common::deg2rad<double>(180.0), M_PI, M_PI * MAX_ERROR);
TS_ASSERT_DELTA(Common::deg2rad<double>(360.0), 2.0 * M_PI, 2.0 * M_PI * MAX_ERROR);
TS_ASSERT_DELTA(Common::deg2rad<double>(90.0), M_PI / 2.0, M_PI / 2.0 * MAX_ERROR);
TS_ASSERT_DELTA(Common::deg2rad<double>(0), 0, MAX_ERROR_DBL);
TS_ASSERT_DELTA(Common::deg2rad<double>(180.0), M_PI, M_PI * MAX_ERROR_DBL);
TS_ASSERT_DELTA(Common::deg2rad<double>(360.0), 2.0 * M_PI, 2.0 * M_PI * MAX_ERROR_DBL);
TS_ASSERT_DELTA(Common::deg2rad<double>(90.0), M_PI / 2.0, M_PI / 2.0 * MAX_ERROR_DBL);
}
};

0 comments on commit 563520f

Please sign in to comment.