[SciPy-Dev] Generator tests

Ralf Gommers ralf.gommers at googlemail.com
Sat Jul 14 10:17:58 EDT 2012


On Fri, Jul 13, 2012 at 11:57 AM, Pauli Virtanen <pav at iki.fi> wrote:

> Ralf Gommers <ralf.gommers <at> googlemail.com> writes:
> [clip]
> > in the test or code. Plus, it once again shows how
> > annoying generator tests are; can't see which method is
> > failing.
>
> Here's a recommendation for generator test:
>
> - No computation related to the features tested should be
>   done in the test_* generator function, but delegated to
>   a corresponding _check_* function (can be inside the
>   generator, to share namespace).
>
> - The generators should be used *solely* for loops over parameters.
>
> - These parameters should *not* be arrays.
>
>   If a parameter is "complicated", as in the case of ARPACK
>   tests, wrap it into a class with a descriptive __repr__ method.
>
> Like so:
>
> def test_foo():
>     x = [1, 2, 3]
>     z = 9
>
>     def check(a, b):
>         x = a + b + z
>         y = a - b + z
>         assert x == y + 2*b
>
>     for a in [1, 2, 3]:
>         for b in [4, 5, 6]:
>             yield check, a, b


That's good advice. The ARPACK tests are a lot easier to deal with due to
doing it like this. We should also add the above to
https://github.com/numpy/numpy/blob/master/doc/TESTS.rst.txt

Ralf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20120714/a7c6e243/attachment.html>


More information about the SciPy-Dev mailing list