<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/include/internal/catch_approx.h, branch v2.12.4</title>
<subtitle>Progmasoft Catch3: an independently maintained C++17 test framework with a parallel runner, property checks, snapshots and structured results.</subtitle>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/'/>
<entry>
<title>Directly set Approx's members in operator()</title>
<updated>2018-09-03T08:20:58+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2018-09-03T08:20:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ef9150fe6f3c4a3b5836aac1e0cfaaeeccd28d69'/>
<id>ef9150fe6f3c4a3b5836aac1e0cfaaeeccd28d69</id>
<content type='text'>
This avoids instantiating the member-setting function template
and checking the invariants in cases where we know the invariant
already holds.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This avoids instantiating the member-setting function template
and checking the invariants in cases where we know the invariant
already holds.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move Approx's validity checks out of line into cpp file</title>
<updated>2018-09-03T08:15:51+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2018-09-03T08:15:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=84fa76e9850c08e7d54533f1b9645f63c6b73001'/>
<id>84fa76e9850c08e7d54533f1b9645f63c6b73001</id>
<content type='text'>
This avoids having to include &lt;stdexcept&gt; in the main include path
and speeds up the compilation if Approx is used with multiple
different types.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This avoids having to include &lt;stdexcept&gt; in the main include path
and speeds up the compilation if Approx is used with multiple
different types.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add float/int literal for Approx</title>
<updated>2018-07-15T15:03:12+00:00</updated>
<author>
<name>Henry Schreiner</name>
</author>
<published>2018-05-21T13:42:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=283e2e6d41b181fd1c35cecd94c7b2f8e853d888'/>
<id>283e2e6d41b181fd1c35cecd94c7b2f8e853d888</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Introduced ReusableStringStream and removed all uses of std::ostringstream from the main path</title>
<updated>2017-11-07T18:01:10+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2017-11-07T18:01:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=56e107561362147dc13f63294a9a5b90b855697b'/>
<id>56e107561362147dc13f63294a9a5b90b855697b</id>
<content type='text'>
ReusableStringStream holds a std::ostringstream internally, but only exposes the ostream interface.
It caches a pool of ostringstreams in a vector which is currently global, but will be made thread-local.

Altogether this should enable both runtime and compile-time benefits. although more work is needed to realise the compile time opportunities.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ReusableStringStream holds a std::ostringstream internally, but only exposes the ostream interface.
It caches a pool of ostringstreams in a vector which is currently global, but will be made thread-local.

Altogether this should enable both runtime and compile-time benefits. although more work is needed to realise the compile time opportunities.
</pre>
</div>
</content>
</entry>
<entry>
<title>Approx cleanup: More tests, INFINITY handling, etc</title>
<updated>2017-11-01T06:30:11+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2017-11-01T06:30:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=22ac9d2184b3868cccfd635eb631d0eee1529121'/>
<id>22ac9d2184b3868cccfd635eb631d0eee1529121</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Approx rework: default scale == 0, epsilon applies to Approx::value</title>
<updated>2017-10-31T14:43:42+00:00</updated>
<author>
<name>Pfiffikus</name>
</author>
<published>2017-10-26T07:19:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=00af677577973758b3b35e1c94ab4142c45c3f67'/>
<id>00af677577973758b3b35e1c94ab4142c45c3f67</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>Make Approx::margin inclusive</title>
<updated>2017-10-31T13:49:00+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2017-10-30T14:25:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=11f716f28d6621d1e54cf13374f8b5dd1a7489f5'/>
<id>11f716f28d6621d1e54cf13374f8b5dd1a7489f5</id>
<content type='text'>
Fixes #952, related to #980
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #952, related to #980
</pre>
</div>
</content>
</entry>
<entry>
<title>enclosed more min/ max in parentheses to default MFC macros</title>
<updated>2017-10-13T12:46:39+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2017-10-12T15:00:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=2eb93f47f7523146b3a10a22034c3525fde92bbe'/>
<id>2eb93f47f7523146b3a10a22034c3525fde92bbe</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Changed all .hpp extensions to .h where there is now a corresponding .cpp</title>
<updated>2017-09-07T10:24:33+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2017-09-07T10:24:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=c5608f0202eb8ffd360e58db081fef248d675a6b'/>
<id>c5608f0202eb8ffd360e58db081fef248d675a6b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
