From 431a683e8531d5cf2cc4f38364f63e07210b87de Mon Sep 17 00:00:00 2001 From: Snaipe Date: Wed, 11 Mar 2015 06:33:19 +0100 Subject: [PATCH] Added assert_float_not_equal, fixed bad comparison operator for floating-point equality --- include/criterion/assert.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/include/criterion/assert.h b/include/criterion/assert.h index d5f0759..da46b1f 100644 --- a/include/criterion/assert.h +++ b/include/criterion/assert.h @@ -101,9 +101,14 @@ enum criterion_assert_kind { // Floating-point asserts # define assert_float_equal(Actual, Expected, Epsilon, ...) \ - assert((Expected) - (Actual) < (Epsilon) && (Actual) - (Expected) < (Epsilon), "" __VA_ARGS__) + assert((Expected) - (Actual) <= (Epsilon) && (Actual) - (Expected) <= (Epsilon), "" __VA_ARGS__) # define expect_float_equal(Actual, Expected, Epsilon, ...) \ - expect((Expected) - (Actual) < (Epsilon) && (Actual) - (Expected) < (Epsilon), "" __VA_ARGS__) + expect((Expected) - (Actual) <= (Epsilon) && (Actual) - (Expected) <= (Epsilon), "" __VA_ARGS__) + +# define assert_float_not_equal(Actual, Expected, Epsilon, ...) \ + assert((Expected) - (Actual) > (Epsilon) || (Actual) - (Expected) > (Epsilon), "" __VA_ARGS__) +# define expect_float_not_equal(Actual, Expected, Epsilon, ...) \ + expect((Expected) - (Actual) > (Epsilon) || (Actual) - (Expected) > (Epsilon), "" __VA_ARGS__) // String asserts