[Python-ideas] PEP 485: A Function for testing approximate equality

Steven D'Aprano steve at pearwood.info
Thu Jan 29 14:34:00 CET 2015


On Mon, Jan 26, 2015 at 05:10:44PM -0800, Chris Barker wrote:

> That being said .. if if we want to say the primary use case is testing
> that's fine with me -- just please not buried in unittest.TestCase
> somewhere.

Apart from doctest, which I think is completely inappropriate, where 
else would you put this for testing?

For testing, I think it needs to be a TestCase.assert* method. Otherwise 
you have people writing 

    self.assertTrue(close_enough(a, b))

I know this because that's exactly how my assertApproxEqual test 
assertion started. I'd write tests like that, they would fail, and I'd 
have no idea why. Fast forward past a few code iterations, and I had an 
assertion method which give me some useful diagnostics when it failed, 
e.g.:

AssertionError:   20.666666666666668 != 20.66666667
  values differ by more than tol=0 and rel=1e-12
  -> absolute error = 3.33333360913457e-09
  -> relative error = 1.612903358998517e-10




-- 
Steve


More information about the Python-ideas mailing list