A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later (C++11 support is in v2.x branch, and C++03 on the Catch1.x branch)
Go to file
Pfiffikus 00af677577 Approx rework: default scale == 0, epsilon applies to Approx::value
Also adds check to Approx::epsilon that the new epsilon has a valid
(ie one between 0 and 1)

Based on
http://realtimecollisiondetection.net/blog/?p=89
https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
https://en.wikipedia.org/wiki/Approximation_error#Formal_Definition

The given epsilon should refer to the target value, otherwise
the result would be unexpected, e.g. 101.02 == Approx(100).epsilon(0.01)
is true.
The default scale should be invisible, thus,
e.g. 101.01 == Approx(100).epsilon(0.01) gets false.
Finally even 101.000001 == Approx(100).epsilon(0.01) is false
2017-10-31 15:43:42 +01:00
.github Added "How to test changes in PR" section to documentation 2017-06-26 16:54:14 +01:00
contrib added PARSE_CATCH_TESTS_ADD_TO_CONFIGURE_DEPENDS option 2017-10-31 14:21:20 +01:00
docs dev build 6 2017-10-31 15:17:21 +01:00
include Approx rework: default scale == 0, epsilon applies to Approx::value 2017-10-31 15:43:42 +01:00
projects Make Approx::margin inclusive 2017-10-31 14:49:00 +01:00
scripts Change ToC script to use <br> instead of trailing spaces 2017-10-13 11:17:38 +02:00
single_include dev build 6 2017-10-31 15:17:21 +01:00
test_package dev build 6 2017-10-31 15:17:21 +01:00
third_party embedded v1.0-develop.2 of Clara, which addresses / prefixed options, which should impact non-windows platforms 2017-10-21 09:16:38 +02:00
.gitattributes Git Attributes, with control for line-endings 2013-10-18 07:53:05 +01:00
.gitignore Ignore .vs folder 2017-02-21 08:52:08 +00:00
.travis.yml Disable build broken by travis changes 2017-07-29 08:44:40 +02:00
appveyor.yml Merge branch 'master' into dev-modernize 2017-06-05 17:19:42 +02:00
catch-hand-icon.png Updated artwork 2017-03-01 16:47:04 +00:00
catch-icon-tiny.png Updated artwork 2017-03-01 16:47:04 +00:00
catch-logo-small.png Resized main logo again 2017-03-01 17:00:33 +00:00
catch.pc.in Fix-up pkg-config provided include path 2017-10-17 17:04:37 +02:00
CMakeLists.txt dev build 6 2017-10-31 15:17:21 +01:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2017-08-17 07:45:50 +01:00
conanfile.py dev build 6 2017-10-31 15:17:21 +01:00
LICENSE.txt Renamed licence file, license should now be detected by github 2017-03-20 08:59:25 +01:00
README.md dev build 6 2017-10-31 15:17:21 +01:00

catch logo

Github Releases Build Status Build status

The latest version of the single header can be downloaded directly using this link

What's the Catch?

Catch stands for C++ Automated Test Cases in Headers and is a multi-paradigm test framework for C++. which also supports Objective-C and, maybe, C. It is primarily distributed as a single header file, although certain extensions may require additional headers.

How to use it

This documentation comprises these three parts:

More