[doctest] run with "--help" for options
===============================================================================
assertion_macros.cpp(0)
TEST CASE:  normal macros

assertion_macros.cpp(0) ERROR!
  CHECK( throw_if(true, std::runtime_error("whops!")) == 42 )
threw exception:
  whops!

assertion_macros.cpp(0) ERROR!
  CHECK( doctest::Approx(0.502) == 0.501 )
with expansion:
  CHECK( Approx( 0.502 ) == 0.501 )

===============================================================================
assertion_macros.cpp(0)
TEST CASE:  exceptions-related macros

assertion_macros.cpp(0) ERROR!
  CHECK_THROWS( throw_if(false, 0) )
didn't throw at all

assertion_macros.cpp(0) ERROR!
  CHECK_THROWS_AS( throw_if(true, 0), char )
threw a different exception:
  0

assertion_macros.cpp(0) ERROR!
  CHECK_THROWS_AS( throw_if(false, 0), int )
didn't throw at all

assertion_macros.cpp(0) ERROR!
  CHECK_NOTHROW( throw_if(true, 0) )
threw exception:
  0

===============================================================================
assertion_macros.cpp(0)
TEST CASE:  exceptions-related macros for std::exception

assertion_macros.cpp(0) ERROR!
  CHECK_THROWS( throw_if(false, 0) )
didn't throw at all

assertion_macros.cpp(0) ERROR!
  CHECK_THROWS_AS( throw_if(false, std::runtime_error("whops!")), std::exception )
didn't throw at all

assertion_macros.cpp(0) ERROR!
  CHECK_THROWS_AS( throw_if(true, std::runtime_error("whops!")), int )
threw a different exception:
  whops!

assertion_macros.cpp(0) FATAL ERROR!
  REQUIRE_NOTHROW( throw_if(true, std::runtime_error("whops!")) )
threw exception:
  whops!

===============================================================================
assertion_macros.cpp(0)
TEST CASE:  WARN level of asserts don't fail the test case

assertion_macros.cpp(0) WARNING!
  WARN( 0 )
with expansion:
  WARN( 0 )

assertion_macros.cpp(0) WARNING!
  WARN_FALSE( 1 )
with expansion:
  WARN_FALSE( 1 )

assertion_macros.cpp(0) WARNING!
  WARN_THROWS( throw_if(false, 0) )
didn't throw at all

assertion_macros.cpp(0) WARNING!
  WARN_THROWS_AS( throw_if(false, 0), bool )
didn't throw at all

assertion_macros.cpp(0) WARNING!
  WARN_THROWS_AS( throw_if(true, 0), bool )
threw a different exception:
  0

assertion_macros.cpp(0) WARNING!
  WARN_NOTHROW( throw_if(true, 0) )
threw exception:
  0

assertion_macros.cpp(0) WARNING!
  WARN_EQ( 1, 0 )
with expansion:
  WARN_EQ( 1, 0 )

assertion_macros.cpp(0) WARNING!
  WARN_UNARY( 0 )
with expansion:
  WARN_UNARY( 0 )

assertion_macros.cpp(0) WARNING!
  WARN_UNARY_FALSE( 1 )
with expansion:
  WARN_UNARY_FALSE( 1 )

assertion_macros.cpp(0) WARNING!
  FAST_WARN_EQ( 1, 0 )
with expansion:
  FAST_WARN_EQ( 1, 0 )

assertion_macros.cpp(0) WARNING!
  FAST_WARN_UNARY( 0 )
with expansion:
  FAST_WARN_UNARY( 0 )

assertion_macros.cpp(0) WARNING!
  FAST_WARN_UNARY_FALSE( 1 )
with expansion:
  FAST_WARN_UNARY_FALSE( 1 )

===============================================================================
assertion_macros.cpp(0)
TEST CASE:  CHECK level of asserts fail the test case but don't abort it

assertion_macros.cpp(0) ERROR!
  CHECK( 0 )
with expansion:
  CHECK( 0 )

assertion_macros.cpp(0) ERROR!
  CHECK_FALSE( 1 )
with expansion:
  CHECK_FALSE( 1 )

assertion_macros.cpp(0) ERROR!
  CHECK_THROWS( throw_if(false, 0) )
didn't throw at all

assertion_macros.cpp(0) ERROR!
  CHECK_THROWS_AS( throw_if(false, 0), bool )
didn't throw at all

assertion_macros.cpp(0) ERROR!
  CHECK_THROWS_AS( throw_if(true, 0), bool )
threw a different exception:
  0

assertion_macros.cpp(0) ERROR!
  CHECK_NOTHROW( throw_if(true, 0) )
threw exception:
  0

assertion_macros.cpp(0) ERROR!
  CHECK_EQ( 1, 0 )
with expansion:
  CHECK_EQ( 1, 0 )

assertion_macros.cpp(0) ERROR!
  CHECK_UNARY( 0 )
with expansion:
  CHECK_UNARY( 0 )

assertion_macros.cpp(0) ERROR!
  CHECK_UNARY_FALSE( 1 )
with expansion:
  CHECK_UNARY_FALSE( 1 )

assertion_macros.cpp(0) ERROR!
  FAST_CHECK_EQ( 1, 0 )
with expansion:
  FAST_CHECK_EQ( 1, 0 )

assertion_macros.cpp(0) ERROR!
  FAST_CHECK_UNARY( 0 )
with expansion:
  FAST_CHECK_UNARY( 0 )

assertion_macros.cpp(0) ERROR!
  FAST_CHECK_UNARY_FALSE( 1 )
with expansion:
  FAST_CHECK_UNARY_FALSE( 1 )

assertion_macros.cpp(0) MESSAGE!
  reached!

===============================================================================
assertion_macros.cpp(0)
TEST CASE:  REQUIRE level of asserts fail and abort the test case - 1

assertion_macros.cpp(0) FATAL ERROR!
  REQUIRE( 0 )
with expansion:
  REQUIRE( 0 )

===============================================================================
assertion_macros.cpp(0)
TEST CASE:  REQUIRE level of asserts fail and abort the test case - 2

assertion_macros.cpp(0) FATAL ERROR!
  REQUIRE_FALSE( 1 )
with expansion:
  REQUIRE_FALSE( 1 )

===============================================================================
assertion_macros.cpp(0)
TEST CASE:  REQUIRE level of asserts fail and abort the test case - 3

assertion_macros.cpp(0) FATAL ERROR!
  REQUIRE_THROWS( throw_if(false, 0) )
didn't throw at all

===============================================================================
assertion_macros.cpp(0)
TEST CASE:  REQUIRE level of asserts fail and abort the test case - 4

assertion_macros.cpp(0) FATAL ERROR!
  REQUIRE_THROWS_AS( throw_if(false, 0), bool )
didn't throw at all

===============================================================================
assertion_macros.cpp(0)
TEST CASE:  REQUIRE level of asserts fail and abort the test case - 5

assertion_macros.cpp(0) FATAL ERROR!
  REQUIRE_THROWS_AS( throw_if(true, 0), bool )
threw a different exception:
  0

===============================================================================
assertion_macros.cpp(0)
TEST CASE:  REQUIRE level of asserts fail and abort the test case - 6

assertion_macros.cpp(0) FATAL ERROR!
  REQUIRE_NOTHROW( throw_if(true, 0) )
threw exception:
  0

===============================================================================
assertion_macros.cpp(0)
TEST CASE:  REQUIRE level of asserts fail and abort the test case - 7

assertion_macros.cpp(0) FATAL ERROR!
  REQUIRE_EQ( 1, 0 )
with expansion:
  REQUIRE_EQ( 1, 0 )

===============================================================================
assertion_macros.cpp(0)
TEST CASE:  REQUIRE level of asserts fail and abort the test case - 8

assertion_macros.cpp(0) FATAL ERROR!
  REQUIRE_UNARY( 0 )
with expansion:
  REQUIRE_UNARY( 0 )

===============================================================================
assertion_macros.cpp(0)
TEST CASE:  REQUIRE level of asserts fail and abort the test case - 9

assertion_macros.cpp(0) FATAL ERROR!
  REQUIRE_UNARY_FALSE( 1 )
with expansion:
  REQUIRE_UNARY_FALSE( 1 )

===============================================================================
assertion_macros.cpp(0)
TEST CASE:  REQUIRE level of asserts fail and abort the test case - 10

assertion_macros.cpp(0) FATAL ERROR!
  FAST_REQUIRE_EQ( 1, 0 )
with expansion:
  FAST_REQUIRE_EQ( 1, 0 )

===============================================================================
assertion_macros.cpp(0)
TEST CASE:  REQUIRE level of asserts fail and abort the test case - 11

assertion_macros.cpp(0) FATAL ERROR!
  FAST_REQUIRE_UNARY( 0 )
with expansion:
  FAST_REQUIRE_UNARY( 0 )

===============================================================================
assertion_macros.cpp(0)
TEST CASE:  REQUIRE level of asserts fail and abort the test case - 12

assertion_macros.cpp(0) FATAL ERROR!
  FAST_REQUIRE_UNARY_FALSE( 1 )
with expansion:
  FAST_REQUIRE_UNARY_FALSE( 1 )

===============================================================================
[doctest] test cases:     20 |      4 passed |     16 failed | 
[doctest] assertions:     88 |     54 passed |     34 failed |
[doctest] Status: FAILURE!
Program code.
