15 #include <utl/Triple.h>
17 #include <boost/format.hpp>
18 #include <boost/tuple/tuple.hpp>
19 #include <boost/tuple/tuple_comparison.hpp>
20 #include <boost/tuple/tuple_io.hpp>
35 template<
class Predicate,
typename T>
38 Verify(
const Predicate& pred,
const T& lhs,
const T& rhs)
40 const bool test = pred(lhs, rhs);
42 std::cerr <<
"Failure: " << lhs <<
" not " << pred.Name() <<
' '
52 const bool test = pred(lhs, rhs);
54 std::cerr <<
"Failure: " << lhs <<
" not " << pred.
Name() <<
' '
55 << rhs <<
" diff: " <<
utl::Diff(lhs, rhs) << std::endl;
64 const bool test = pred(lhs, rhs);
66 std::cerr <<
"Failure: " << lhs <<
" not " << pred.
Name() <<
' '
67 << rhs <<
" diff: " <<
utl::Diff(lhs, rhs) << std::endl;
73 template<
class Predicate,
typename T>
74 inline bool Verify(
const T& lhs,
const T& rhs)
75 {
return Verify(Predicate(), lhs, rhs); }
79 template<
class Predicate,
typename T>
80 inline bool Verify(
const T& lhs,
const T& rhs,
const double eps)
81 {
return Verify(Predicate(eps), lhs, rhs); }
86 { std::cerr <<
"\nExpected failure: "; }
static boost::format Name()
boost::tuple< double, double, double > Triple
Coordinate triple for easy getting or setting of coordinates.
bool Verify(const Predicate &pred, const T &lhs, const T &rhs)
Test condition by evaluating a predicate and print on failure.
void Expected()
Print `Expected' for expected failures.
boost::format Name() const
utl::Triple Diff(const utl::Triple &lhs, const utl::Triple &rhs)
Predicate for approximate equality (for floating point)