compare equal, the test will fail with the explanation given by *msg*, or
:const:`None`.
+ .. versionchanged:: 2.7
+ Objects that compare equal are automatically almost equal.
+
.. deprecated:: 2.7
:meth:`failUnlessAlmostEqual`.
compare equal, the test will fail with the explanation given by *msg*, or
:const:`None`.
+ .. versionchanged:: 2.7
+ Objects that compare equal automatically fail.
+
.. deprecated:: 2.7
:meth:`failIfAlmostEqual`.
differences. :meth:`assertDictContainsSubset` checks whether
all of the key/value pairs in *first* are found in *second*.
+ * :meth:`assertAlmostEqual` and :meth:`assertNotAlmostEqual` short-circuit
+ (automatically pass or fail without checking decimal places) if the objects
+ are equal.
+
* A new hook, :meth:`addTypeEqualityFunc` takes a type object and a
function. The :meth:`assertEqual` method will use the function
when both of the objects being compared are of the specified type.
self.assertRaises(self.failureException,
self.assertNotAlmostEqual, 0, .1+.1j, places=0)
+ self.assertAlmostEqual(float('inf'), float('inf'))
+ self.assertRaises(self.failureException, self.assertNotAlmostEqual,
+ float('inf'), float('inf'))
+
+
def test_assertRaises(self):
def _raise(e):
raise e
Note that decimal places (from zero) are usually not the same
as significant digits (measured from the most signficant digit).
+
+ If the two objects compare equal then they will automatically
+ compare almost equal.
"""
+ if first == second:
+ # shortcut for ite
+ return
if round(abs(second-first), places) != 0:
standardMsg = '%r != %r within %r places' % (first, second, places)
msg = self._formatMessage(msg, standardMsg)
Note that decimal places (from zero) are usually not the same
as significant digits (measured from the most signficant digit).
+
+ Objects that are equal automatically fail.
"""
- if round(abs(second-first), places) == 0:
+ if (first == second) or round(abs(second-first), places) == 0:
standardMsg = '%r == %r within %r places' % (first, second, places)
msg = self._formatMessage(msg, standardMsg)
raise self.failureException(msg)