Test macros: use defensive parentheses and std::fabs() for SG_CHECK_EQUAL_EP*
Some of the modules where I previously removed duplicate private definitions of these macros had these features, and since they seem wise to me, I'm applying them to the canonical SG_CHECK_EQUAL_EP() and SG_CHECK_EQUAL_EP2() macros defined in simgear/misc/test_macros.hxx.
This commit is contained in:
parent
e655d41817
commit
6b16f96c8a
@ -2,7 +2,7 @@
|
|||||||
#ifndef SG_MISC_TEST_MACROS_HXX
|
#ifndef SG_MISC_TEST_MACROS_HXX
|
||||||
#define SG_MISC_TEST_MACROS_HXX
|
#define SG_MISC_TEST_MACROS_HXX
|
||||||
|
|
||||||
#include <cmath> // for fabs()
|
#include <cmath> // for std::fabs()
|
||||||
|
|
||||||
#define SG_CHECK_EQUAL(a, b) \
|
#define SG_CHECK_EQUAL(a, b) \
|
||||||
if ((a) != (b)) { \
|
if ((a) != (b)) { \
|
||||||
@ -20,7 +20,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define SG_CHECK_EQUAL_EP(a, b) \
|
#define SG_CHECK_EQUAL_EP(a, b) \
|
||||||
if (fabs(a - b) > SG_EPSILON) { \
|
if (std::fabs((a) - (b)) > SG_EPSILON) { \
|
||||||
std::cerr << "failed with epsilon:" << #a << " != " << #b << std::endl; \
|
std::cerr << "failed with epsilon:" << #a << " != " << #b << std::endl; \
|
||||||
std::cerr << "\tgot:'" << a << "'" << std::endl; \
|
std::cerr << "\tgot:'" << a << "'" << std::endl; \
|
||||||
std::cerr << "\tat:" << __FILE__ << ":" << __LINE__ << std::endl; \
|
std::cerr << "\tat:" << __FILE__ << ":" << __LINE__ << std::endl; \
|
||||||
@ -28,7 +28,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define SG_CHECK_EQUAL_EP2(a, b, ep) \
|
#define SG_CHECK_EQUAL_EP2(a, b, ep) \
|
||||||
if (fabs(a - b) > ep) { \
|
if (std::fabs((a) - (b)) > ep) { \
|
||||||
std::cerr << "failed with epsilon:" << #a << " != " << #b << std::endl; \
|
std::cerr << "failed with epsilon:" << #a << " != " << #b << std::endl; \
|
||||||
std::cerr << "\tgot:'" << a << "'" << std::endl; \
|
std::cerr << "\tgot:'" << a << "'" << std::endl; \
|
||||||
std::cerr << "\tat:" << __FILE__ << ":" << __LINE__ << std::endl; \
|
std::cerr << "\tat:" << __FILE__ << ":" << __LINE__ << std::endl; \
|
||||||
|
Loading…
Reference in New Issue
Block a user