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
|
@ -501,6 +501,30 @@ report failures.
|
|||
\var{second}.
|
||||
\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}
|
||||
\methodline{failUnlessRaises}{exception, callable, \moreargs}
|
||||
Test that an exception is raised when \var{callable} is called with
|
||||
|
|
|
@ -300,10 +300,38 @@ class TestCase:
|
|||
raise self.failureException, \
|
||||
(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
|
||||
|
||||
assertNotEqual = assertNotEquals = failIfEqual
|
||||
|
||||
assertAlmostEqual = assertAlmostEquals = failUnlessAlmostEqual
|
||||
|
||||
assertNotAlmostEqual = assertNotAlmostEquals = failIfAlmostEqual
|
||||
|
||||
assertRaises = failUnlessRaises
|
||||
|
||||
assert_ = failUnless
|
||||
|
|
Loading…
Reference in New Issue