mirror of
https://github.com/python/cpython.git
synced 2025-10-14 02:43:49 +00:00
Incorporate Skip's suggestion to use SciPy's validation test near
equality. Note, there is another flavor that compares to a given number of significant digits rather than decimal places. If there is a demand, that could be added at a later date.
This commit is contained in:
parent
3c736f1a41
commit
c7b076928c
2 changed files with 52 additions and 0 deletions
|
@ -501,6 +501,30 @@ report failures.
|
||||||
\var{second}.
|
\var{second}.
|
||||||
\end{methoddesc}
|
\end{methoddesc}
|
||||||
|
|
||||||
|
\begin{methoddesc}[TestCase]{assertAlmostEqual}{first, second\optional{,
|
||||||
|
places\optional{, msg}}}
|
||||||
|
\methodline{failUnlessAlmostEqual}{first, second\optional{,
|
||||||
|
places\optional{, msg}}}
|
||||||
|
Test that \var{first} and \var{second} are approximately equal
|
||||||
|
by computing the difference, rounding to the given number of \var{places},
|
||||||
|
and comparing to zero. Note that comparing a given number of decimal places
|
||||||
|
is not the same as comparing a given number of significant digits.
|
||||||
|
If the values do not compare equal, the test will fail with the explanation
|
||||||
|
given by \var{msg}, or \code{None}.
|
||||||
|
\end{methoddesc}
|
||||||
|
|
||||||
|
\begin{methoddesc}[TestCase]{assertNotAlmostEqual}{first, second\optional{,
|
||||||
|
places\optional{, msg}}}
|
||||||
|
\methodline{failIfAlmostEqual}{first, second\optional{,
|
||||||
|
places\optional{, msg}}}
|
||||||
|
Test that \var{first} and \var{second} are not approximately equal
|
||||||
|
by computing the difference, rounding to the given number of \var{places},
|
||||||
|
and comparing to zero. Note that comparing a given number of decimal places
|
||||||
|
is not the same as comparing a given number of significant digits.
|
||||||
|
If the values do not compare equal, the test will fail with the explanation
|
||||||
|
given by \var{msg}, or \code{None}.
|
||||||
|
\end{methoddesc}
|
||||||
|
|
||||||
\begin{methoddesc}[TestCase]{assertRaises}{exception, callable, \moreargs}
|
\begin{methoddesc}[TestCase]{assertRaises}{exception, callable, \moreargs}
|
||||||
\methodline{failUnlessRaises}{exception, callable, \moreargs}
|
\methodline{failUnlessRaises}{exception, callable, \moreargs}
|
||||||
Test that an exception is raised when \var{callable} is called with
|
Test that an exception is raised when \var{callable} is called with
|
||||||
|
|
|
@ -300,10 +300,38 @@ class TestCase:
|
||||||
raise self.failureException, \
|
raise self.failureException, \
|
||||||
(msg or '%s == %s' % (`first`, `second`))
|
(msg or '%s == %s' % (`first`, `second`))
|
||||||
|
|
||||||
|
def failUnlessAlmostEqual(self, first, second, places=7, msg=None):
|
||||||
|
"""Fail if the two objects are unequal as determined by their
|
||||||
|
difference rounded to the given number of decimal places
|
||||||
|
(default 7) and comparing to zero.
|
||||||
|
|
||||||
|
Note that decimal places (from zero) is usually not the same
|
||||||
|
as significant digits (measured from the most signficant digit).
|
||||||
|
"""
|
||||||
|
if round(second-first, places) != 0:
|
||||||
|
raise self.failureException, \
|
||||||
|
(msg or '%s != %s within %s places' % (`first`, `second`, `places` ))
|
||||||
|
|
||||||
|
def failIfAlmostEqual(self, first, second, places=7, msg=None):
|
||||||
|
"""Fail if the two objects are equal as determined by their
|
||||||
|
difference rounded to the given number of decimal places
|
||||||
|
(default 7) and comparing to zero.
|
||||||
|
|
||||||
|
Note that decimal places (from zero) is usually not the same
|
||||||
|
as significant digits (measured from the most signficant digit).
|
||||||
|
"""
|
||||||
|
if round(second-first, places) == 0:
|
||||||
|
raise self.failureException, \
|
||||||
|
(msg or '%s == %s within %s places' % (`first`, `second`, `places`))
|
||||||
|
|
||||||
assertEqual = assertEquals = failUnlessEqual
|
assertEqual = assertEquals = failUnlessEqual
|
||||||
|
|
||||||
assertNotEqual = assertNotEquals = failIfEqual
|
assertNotEqual = assertNotEquals = failIfEqual
|
||||||
|
|
||||||
|
assertAlmostEqual = assertAlmostEquals = failUnlessAlmostEqual
|
||||||
|
|
||||||
|
assertNotAlmostEqual = assertNotAlmostEquals = failIfAlmostEqual
|
||||||
|
|
||||||
assertRaises = failUnlessRaises
|
assertRaises = failUnlessRaises
|
||||||
|
|
||||||
assert_ = failUnless
|
assert_ = failUnless
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue