Browse Source

UnitTest: added method expectWithinAbsoluteError for floating point comparisons.

tags/2021-05-28
Timur Doumler 9 years ago
parent
commit
b4e1e68869
1 changed files with 21 additions and 0 deletions
  1. +21
    -0
      modules/juce_core/unit_tests/juce_UnitTest.h

+ 21
- 0
modules/juce_core/unit_tests/juce_UnitTest.h View File

@@ -157,6 +157,27 @@ public:
expect (result, failureMessage); expect (result, failureMessage);
} }
/** Computes the difference between two values, and if it is larger than a
specified value, prints out a message containing the expected and actual
difference.
*/
template <class ValueType>
void expectWithinAbsoluteError (ValueType actual, ValueType expected, ValueType maxAbsoluteError, String failureMessage = String())
{
const ValueType diff = std::abs (actual - expected);
const bool result = diff <= maxAbsoluteError;
if (! result)
{
if (failureMessage.isNotEmpty())
failureMessage << " -- ";
failureMessage << "Expected value: " << expected << ", Actual value: " << actual << " Max absolute error: " << maxAbsoluteError << " Actual difference: " << diff;
}
expect (result, failureMessage);
}
//============================================================================== //==============================================================================
/** Checks that the result of an expression does not throw an exception. */ /** Checks that the result of an expression does not throw an exception. */
#define expectDoesNotThrow(expr) \ #define expectDoesNotThrow(expr) \


Loading…
Cancel
Save