diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index f39218a..6d060d1 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -79,8 +79,6 @@ run lightweight_test_test.cpp : : : off $(pedantic-errors) : lightweight_test_test_no_except ; run lightweight_test_test2.cpp : : : $(pedantic-errors) ; -run lightweight_test_with_test.cpp - : : : $(pedantic-errors) ; run lightweight_test_all_with_test.cpp : : : $(pedantic-errors) ; run lightweight_test_lt_le_test.cpp @@ -124,6 +122,10 @@ run-fail lightweight_test_ge_fail.cpp ; run lightweight_test_bool.cpp : : : $(pedantic-errors) ; +run lightweight_test_with_test.cpp + : : : $(pedantic-errors) ; +run-fail lightweight_test_with_fail.cpp ; + run is_same_test.cpp ; run typeinfo_test.cpp ; diff --git a/test/lightweight_test_with_fail.cpp b/test/lightweight_test_with_fail.cpp new file mode 100644 index 0000000..76ae0cb --- /dev/null +++ b/test/lightweight_test_with_fail.cpp @@ -0,0 +1,39 @@ +// Negative test for BOOST_TEST_WITH +// +// Copyright 2020 Bjorn Reese +// Copyright 2020 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt + +#include +#include + +template +struct with_tolerance +{ + with_tolerance( T tolerance ): tolerance( tolerance ) + { + } + + bool operator()( T lhs, T rhs ) const + { + return std::abs( lhs - rhs ) <= tolerance; + } + +private: + + T tolerance; +}; + +void test_tolerance_predicate() +{ + BOOST_TEST_WITH( 1.0, 1.0 - 1e-6, with_tolerance(1e-7) ); + BOOST_TEST_WITH( 1.0, 1.0 + 1e-6, with_tolerance(1e-7) ); +} + +int main() +{ + test_tolerance_predicate(); + return boost::report_errors() == 2; +}