Browse Source

UnitTest: added new functions expectNotEquals, expectGreaterThan, expectLessThan, expectGreaterOrEquals, expectLessOrEquals.

tags/2021-05-28
Timur Doumler 9 years ago
parent
commit
920c19daab
1 changed files with 74 additions and 22 deletions
  1. +74
    -22
      modules/juce_core/unit_tests/juce_UnitTest.h

+ 74
- 22
modules/juce_core/unit_tests/juce_UnitTest.h View File

@@ -138,28 +138,70 @@ public:
*/
void expect (bool testResult, const String& failureMessage = String());
/** Compares two values, and if they don't match, prints out a message containing the
expected and actual result values.
//==============================================================================
/** Compares a value to an expected value.
If they are not equal, prints out a message containing the expected and actual values.
*/
template <class ValueType>
void expectEquals (ValueType actual, ValueType expected, String failureMessage = String())
{
const bool result = (actual == expected);
bool result = actual == expected;
expectResultAndPrint (actual, expected, result, "", failureMessage);
}
if (! result)
{
if (failureMessage.isNotEmpty())
failureMessage << " -- ";
/** Checks whether a value is not equal to a comparison value.
If this check fails, prints out a message containing the actual and comparison values.
*/
template <class ValueType>
void expectNotEquals (ValueType value, ValueType valueToCompareTo, String failureMessage = String())
{
bool result = value != valueToCompareTo;
expectResultAndPrint (value, valueToCompareTo, result, "unequal to", failureMessage);
}
failureMessage << "Expected value: " << expected << ", Actual value: " << actual;
}
/** Checks whether a value is greater than a comparison value.
If this check fails, prints out a message containing the actual and comparison values.
*/
template <class ValueType>
void expectGreaterThan (ValueType value, ValueType valueToCompareTo, String failureMessage = String())
{
bool result = value > valueToCompareTo;
expectResultAndPrint (value, valueToCompareTo, result, "greater than", failureMessage);
}
expect (result, failureMessage);
/** Checks whether a value is less than a comparison value.
If this check fails, prints out a message containing the actual and comparison values.
*/
template <class ValueType>
void expectLessThan (ValueType value, ValueType valueToCompareTo, String failureMessage = String())
{
bool result = value < valueToCompareTo;
expectResultAndPrint (value, valueToCompareTo, result, "less than", failureMessage);
}
/** Checks whether a value is greater or equal to a comparison value.
If this check fails, prints out a message containing the actual and comparison values.
*/
template <class ValueType>
void expectGreaterOrEqual (ValueType value, ValueType valueToCompareTo, String failureMessage = String())
{
bool result = value >= valueToCompareTo;
expectResultAndPrint (value, valueToCompareTo, result, "greater or equal to", failureMessage);
}
/** Checks whether a value is less or equal to a comparison value.
If this check fails, prints out a message containing the actual and comparison values.
*/
template <class ValueType>
void expectLessOrEqual (ValueType value, ValueType valueToCompareTo, String failureMessage = String())
{
bool result = value <= valueToCompareTo;
expectResultAndPrint (value, valueToCompareTo, result, "less or equal to", 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.
/** Computes the difference between a value and a comparison value, and if it is larger than a
specified maximum value, prints out a message containing the actual and comparison values
and the maximum allowed error.
*/
template <class ValueType>
void expectWithinAbsoluteError (ValueType actual, ValueType expected, ValueType maxAbsoluteError, String failureMessage = String())
@@ -167,15 +209,7 @@ public:
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);
expectResultAndPrint (actual, expected, result, " within " + String (maxAbsoluteError) + " of" , failureMessage);
}
//==============================================================================
@@ -242,6 +276,24 @@ public:
Random getRandom() const;
private:
//==============================================================================
template <class ValueType>
void expectResultAndPrint (ValueType value, ValueType valueToCompareTo, bool result,
String compDescription, String failureMessage)
{
if (! result)
{
if (failureMessage.isNotEmpty())
failureMessage << " -- ";
failureMessage << "Expected value" << (compDescription.isEmpty() ? "" : " ")
<< compDescription << ": " << valueToCompareTo
<< ", Actual value: " << value;
}
expect (result, failureMessage);
}
//==============================================================================
const String name;
UnitTestRunner* runner;


Loading…
Cancel
Save