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

Guido van Rossum guido at python.org
Tue Jan 27 17:20:47 CET 2015

On Mon, Jan 26, 2015 at 10:35 PM, Chris Barker <chris.barker at noaa.gov>

> On Mon, Jan 26, 2015 at 9:30 PM, Chris Angelico <rosuav at gmail.com> wrote:
>> I would suggest that, as PEP author, you guide the conversation a bit
>> by asking specific questions that you want to answer in the PEP.
> I thought I did that, actually, in that email -- I guess I wasn't very
> clear.
> Here they are -- and please express not just your preference, but a clear
> statement about what would be acceptable or not acceptable.
> A) Which test do we use:
>   1) The asymmetric test
>   2) The "strong" test (minimum relative tolerance)
>   3) The "weak" test (maximum relative tolerance)

The problem with this question is that, while it's easy to come up with
examples where it may matter (e.g. 95 is within 5% of 100, but 100 is not
within %5 of 95), in practice the tolerance is more likely to be 1e-8, in
which case it doesn't matter.

> B) Do we provide a non-zero default for the absolute tolerance? If so what
> should the value be? Remember that this serves primarily to provide a check
> against zero.

It feels like absolute tolerance is a completely different test. And it is
a much simpler test for which w don't need a helper function -- it's just
abs(x) < tolerance.

When does a program need *both* absolute and relative tolerance in a single

> I think that's it for the technical decisions.
> I would also appreciate suggestions for paramater names --at least if we
> go with the asymetric test: "actual" and "expected" is a bit confusing -- I
> like "expected", but we need something better than "actual" for the
> don't-know-it's-right one.
> I also would really appreciate someone working out the details and
> contributing text for the inclusion of this in unittest.TestCase --
> unittest is really not my thing.
> I've pushed some changes to gitHub (sorry, forgot to push yesterday), and
> once the dust settles I'll incorporate as many of the suggestions in the
> PEP text as I can.

I still think this is better off as a recipe than as a helper function.

--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20150127/d42832c5/attachment.html>

More information about the Python-ideas mailing list