|
Teuchos Package Browser (Single Doxygen Collection) Version of the Day
|
Utilities to make writing tests easier. More...
#include "Teuchos_ConfigDefs.hpp"#include "Teuchos_ScalarTraits.hpp"#include "Teuchos_TypeNameTraits.hpp"#include "Teuchos_FancyOStream.hpp"

Go to the source code of this file.
Classes | |
| class | Teuchos::RelErrSmallNumber< hasMachineParameters, Scalar > |
| More... | |
| class | Teuchos::RelErrSmallNumber< false, Scalar > |
| More... | |
| class | Teuchos::RelErrSmallNumber< true, Scalar > |
| More... | |
Namespaces | |
| namespace | Teuchos |
Defines | |
| #define | TEUCHOS_PASS_FAIL(RESULT) Teuchos::passfail_with_location((RESULT), __FILE__, __LINE__) |
| Macro that prints "passed" or "failed" and optionally prints the file name and line number as well. | |
| #define | TEUCHOS_ECHO(statement, out) |
| Echo a statement and then invoke it. | |
| #define | TEUCHOS_TEST_EQUALITY_CONST(v1, v2, out, success) |
| Test that an object is equal to a given constant. | |
| #define | TEUCHOS_TEST_ASSERT(v1, out, success) |
| Assert that a give object is true. | |
| #define | TEUCHOS_TEST_EQUALITY(v1, v2, out, success) |
| Test that two values are equal. | |
| #define | TEUCHOS_TEST_INEQUALITY_CONST(v1, v2, out, success) |
| Test that an object is not equal to a given constant. | |
| #define | TEUCHOS_TEST_INEQUALITY(v1, v2, out, success) |
| Test that two values are not equal. | |
| #define | TEUCHOS_TEST_FLOATING_EQUALITY(v1, v2, tol, out, success) |
| Test if two floating point values are equal to a given tolerance. | |
| #define | TEUCHOS_TEST_ITER_EQUALITY(iter1, iter2, out, success) |
| Test if two iterators are equal or not. | |
| #define | TEUCHOS_TEST_ARRAY_ELE_EQUALITY(a, i, val, printPass, out, success) |
| Test that an array element value is equal to a given constant. | |
| #define | TEUCHOS_TEST_ARRAY_ELE_INEQUALITY(a, i, val, printPass, out, success) |
| Test that an array element value is not equal to a given constant. | |
| #define | TEUCHOS_TEST_MATRIX_ELE_FLOATING_EQUALITY(a, i, j, val, tol, printPass, out, success) |
| Test if a floating-point array element value is equal to a given constant for a given tolerance. | |
| #define | TEUCHOS_TEST_MATRIX_ELE_EQUALITY(a, i, j, val, printPass, out, success) |
| Test if a matrix element value is equal to a given constant. | |
| #define | TEUCHOS_TEST_COMPARE(v1, comp, v2, out, success) |
| Compare two objects using an input comparion operator. | |
| #define | TEUCHOS_TEST_THROW(code, ExceptType, out, success) |
| Test that a chunk of code throws an expected exception. | |
| #define | TEUCHOS_TEST_NOTHROW(code, out, success) |
| Test that a chunk of code does not throw any exceptions. | |
Functions | |
| void | Teuchos::updateSuccess (const bool result, bool &success) |
| Update the success bool flag. | |
| const std::string | Teuchos::passfail (const bool result) |
| Return "passed" or "failed". | |
| TEUCHOS_LIB_DLL_EXPORT const std::string | Teuchos::passfail_with_location (const bool result, const std::string &file, const int lineNumber) |
| Helper function for TEUCHOS_PASS_FAIL(...). | |
| void | Teuchos::showTestFailureLocation (bool) |
| Set if TEUCHOS_PASS_FAIL(...) should print test failure location. | |
| bool | Teuchos::showTestFailureLocation () |
| Return if TEUCHOS_PASS_FAIL(...) should print test failure location. | |
| template<class Scalar > | |
| Scalar | Teuchos::defaultSmallNumber () |
| | |
| template<class Scalar > | |
| ScalarTraits< Scalar > ::magnitudeType | Teuchos::relErr (const Scalar &s1, const Scalar &s2) |
| Return relative error of two scalars. | |
| template<class Scalar > | |
| bool | Teuchos::testRelErr (const std::string &v1_name, const Scalar &v1, const std::string &v2_name, const Scalar &v2, const std::string &maxRelErr_error_name, const typename Teuchos::ScalarTraits< Scalar >::magnitudeType &maxRelErr_error, const std::string &maxRelErr_warning_name, const typename Teuchos::ScalarTraits< Scalar >::magnitudeType &maxRelErr_warning, const Ptr< std::ostream > &out) |
| Compute, check and optionally print the relative error in two scalars. | |
| template<class Array1 , class Array2 > | |
| bool | Teuchos::compareArrays (const Array1 &a1, const std::string &a1_name, const Array2 &a2, const std::string &a2_name, Teuchos::FancyOStream &out) |
| Compare if two array objects are the same or not. | |
| template<class Array1 , class Array2 , class ScalarMag > | |
| bool | Teuchos::compareFloatingArrays (const Array1 &a1, const std::string &a1_name, const Array2 &a2, const std::string &a2_name, const ScalarMag &tol, Teuchos::FancyOStream &out) |
| Compare if two array objects are the same or not up to a relative floating point precision. | |
Utilities to make writing tests easier.
Definition in file Teuchos_TestingHelpers.hpp.
| #define TEUCHOS_PASS_FAIL | ( | RESULT | ) | Teuchos::passfail_with_location((RESULT), __FILE__, __LINE__) |
Macro that prints "passed" or "failed" and optionally prints the file name and line number as well.
Only prints the file name and line number if Teuchos::showTestFailureLocation() == true.
Definition at line 217 of file Teuchos_TestingHelpers.hpp.
| #define TEUCHOS_ECHO | ( | statement, | |
| out | |||
| ) |
(out) << #statement ";\n"; \
statement;
Echo a statement and then invoke it.
This macro is not complicated so take a look for yourself!
Definition at line 227 of file Teuchos_TestingHelpers.hpp.
| #define TEUCHOS_TEST_EQUALITY_CONST | ( | v1, | |
| v2, | |||
| out, | |||
| success | |||
| ) |
{ \
(out) << #v1" = "<<Teuchos::toString(v1)<<" == "<<Teuchos::toString(v2)<<" : "; \
const bool l_result = (v1) == (v2); \
(out) << TEUCHOS_PASS_FAIL(l_result) << "\n"; \
if (!l_result) (success) = false; \
}
Test that an object is equal to a given constant.
This macro is not complicated so take a look for yourself!
Definition at line 237 of file Teuchos_TestingHelpers.hpp.
| #define TEUCHOS_TEST_ASSERT | ( | v1, | |
| out, | |||
| success | |||
| ) |
{ \
const bool l_result = v1; \
(out) << #v1" = "<<l_result<<" == true : "; \
(out) << TEUCHOS_PASS_FAIL(l_result) << "\n"; \
if (!l_result) (success) = false; \
}
Assert that a give object is true.
This macro is not complicated so take a look for yourself!
Definition at line 251 of file Teuchos_TestingHelpers.hpp.
| #define TEUCHOS_TEST_EQUALITY | ( | v1, | |
| v2, | |||
| out, | |||
| success | |||
| ) |
{ \
(out) << #v1" = "<<Teuchos::toString(v1)<<" == "#v2" = "<<Teuchos::toString(v2)<<" : "; \
const bool l_result = (v1) == (v2); \
if (!l_result) (success) = false; \
(out) << TEUCHOS_PASS_FAIL(l_result) << "\n"; \
}
Test that two values are equal.
This macro is not complicated so take a look for yourself!
Definition at line 265 of file Teuchos_TestingHelpers.hpp.
| #define TEUCHOS_TEST_INEQUALITY_CONST | ( | v1, | |
| v2, | |||
| out, | |||
| success | |||
| ) |
{ \
(out) << #v1" = "<<Teuchos::toString(v1)<<" != "<<Teuchos::toString(v2)<<" : "; \
const bool l_result = (v1) != (v2); \
(out) << TEUCHOS_PASS_FAIL(l_result) << "\n"; \
if (!l_result) (success) = false; \
}
Test that an object is not equal to a given constant.
This macro is not complicated so take a look for yourself!
Definition at line 280 of file Teuchos_TestingHelpers.hpp.
| #define TEUCHOS_TEST_INEQUALITY | ( | v1, | |
| v2, | |||
| out, | |||
| success | |||
| ) |
{ \
(out) << #v1" = "<<Teuchos::toString(v1)<<" != "#v2" = "<<Teuchos::toString(v2)<<" : "; \
const bool l_result = (v1) != (v2); \
if (!l_result) (success) = false; \
(out) << TEUCHOS_PASS_FAIL(l_result) << "\n"; \
}
Test that two values are not equal.
This macro is not complicated so take a look for yourself!
Definition at line 295 of file Teuchos_TestingHelpers.hpp.
| #define TEUCHOS_TEST_FLOATING_EQUALITY | ( | v1, | |
| v2, | |||
| tol, | |||
| out, | |||
| success | |||
| ) |
{ \
const bool l_result = Teuchos::testRelErr( \
#v1, v1, #v2, v2, "tol", tol, "tol", tol, Teuchos::outArg(out) ); \
if (!l_result) (success) = false; \
}
Test if two floating point values are equal to a given tolerance.
This macro is not complicated so take a look for yourself!
Definition at line 310 of file Teuchos_TestingHelpers.hpp.
| #define TEUCHOS_TEST_ITER_EQUALITY | ( | iter1, | |
| iter2, | |||
| out, | |||
| success | |||
| ) |
{ \
(out) << #iter1" == "#iter2" = : "; \
const bool l_result = (iter1) == (iter2); \
if (!l_result) (success) = false; \
(out) << TEUCHOS_PASS_FAIL(l_result) << "\n"; \
}
Test if two iterators are equal or not.
This macro does not try to print the iterators so it is more portable (in terms of types).
This macro is not complicated so take a look for yourself!
Definition at line 327 of file Teuchos_TestingHelpers.hpp.
| #define TEUCHOS_TEST_ARRAY_ELE_EQUALITY | ( | a, | |
| i, | |||
| val, | |||
| printPass, | |||
| out, | |||
| success | |||
| ) |
{ \
const bool l_result = ( (a)[i] == (val) ); \
if (!l_result) (success) = false; \
if (printPass || !(l_result)) { \
out << #a"["<<i<<"] = " << Teuchos::toString((a)[i]) << " == "#val" = " << Teuchos::toString(val) \
<< " : " << TEUCHOS_PASS_FAIL(l_result) << "\n"; \
} \
}
Test that an array element value is equal to a given constant.
This macro is not complicated so take a look for yourself!
Definition at line 342 of file Teuchos_TestingHelpers.hpp.
| #define TEUCHOS_TEST_ARRAY_ELE_INEQUALITY | ( | a, | |
| i, | |||
| val, | |||
| printPass, | |||
| out, | |||
| success | |||
| ) |
{ \
const bool l_result = ( (a)[i] != (val) ); \
if (!l_result) (success) = false; \
if (printPass || !(l_result)) { \
out << #a"["<<i<<"] = " << Teuchos::toString((a)[i]) << " != "#val" = " << Teuchos::toString(val) \
<< " : " << TEUCHOS_PASS_FAIL(l_result) << "\n"; \
} \
}
Test that an array element value is not equal to a given constant.
This macro is not complicated so take a look for yourself!
Definition at line 359 of file Teuchos_TestingHelpers.hpp.
| #define TEUCHOS_TEST_MATRIX_ELE_FLOATING_EQUALITY | ( | a, | |
| i, | |||
| j, | |||
| val, | |||
| tol, | |||
| printPass, | |||
| out, | |||
| success | |||
| ) |
{ \
std::ostringstream a_i_str; \
a_i_str <<#a<<"("<<i<<","<<j<<")"; \
const bool l_result = Teuchos::testRelErr( \
a_i_str.str(), (a)(i,j), #val, val, "tol", tol, "tol", tol, \
(printPass) ? Teuchos::outArg(out) : Teuchos::null ); \
if (!l_result) (success) = false; \
}
Test if a floating-point array element value is equal to a given constant for a given tolerance.
This macro is not complicated so take a look for yourself!
Definition at line 377 of file Teuchos_TestingHelpers.hpp.
| #define TEUCHOS_TEST_MATRIX_ELE_EQUALITY | ( | a, | |
| i, | |||
| j, | |||
| val, | |||
| printPass, | |||
| out, | |||
| success | |||
| ) |
{ \
const bool l_result = ( (a)(i,j) == (val) ); \
if (!l_result) (success) = false; \
if (printPass || !(l_result)) { \
out << #a"("<<i<<","<<j<<") = " << (a)(i,j) << " == "#val" = " << (val) \
<< " : " << TEUCHOS_PASS_FAIL(l_result) << "\n"; \
} \
}
Test if a matrix element value is equal to a given constant.
This macro is not complicated so take a look for yourself!
Definition at line 394 of file Teuchos_TestingHelpers.hpp.
| #define TEUCHOS_TEST_COMPARE | ( | v1, | |
| comp, | |||
| v2, | |||
| out, | |||
| success | |||
| ) |
{ \
out << #v1" = "<<(v1)<<" "#comp" "#v2" = "<<(v2)<<" : "; \
const bool l_result = (v1) comp (v2); \
if (!l_result) (success) = false; \
(out) << TEUCHOS_PASS_FAIL(l_result) << "\n"; \
}
Compare two objects using an input comparion operator.
This macro is not complicated so take a look for yourself!
Definition at line 411 of file Teuchos_TestingHelpers.hpp.
| #define TEUCHOS_TEST_THROW | ( | code, | |
| ExceptType, | |||
| out, | |||
| success | |||
| ) |
try { \ (out) << "Test that code {"#code";} throws " \ <<Teuchos::TypeNameTraits<ExceptType>::name()<<": "; \ code; \ (success) = false; \ (out) << "failed\n"; \ } \ catch (const ExceptType& except) { \ out << "passed\n"; \ out << "\nException message for expected exception:\n\n"; \ { \ Teuchos::OSTab l_tab(out); \ out << except.what() << "\n\n"; \ } \ }
Test that a chunk of code throws an expected exception.
This macro is not complicated so take a look for yourself!
Definition at line 426 of file Teuchos_TestingHelpers.hpp.
| #define TEUCHOS_TEST_NOTHROW | ( | code, | |
| out, | |||
| success | |||
| ) |
try { \ (out) << "Test that code {"#code";} does not throw : "; \ code; \ (out) << "passes\n"; \ } \ catch (...) { \ (success) = false; \ out << "failed\n"; \ }
Test that a chunk of code does not throw any exceptions.
This macro is not complicated so take a look for yourself!
Definition at line 450 of file Teuchos_TestingHelpers.hpp.
1.7.4