[Numpy-discussion] test code for user defined types in numpy

Geoffrey Irving irving at naml.us
Tue Dec 20 21:24:44 EST 2011


Hello,

As a followup to the prior thread on bugs in user defined types in
numpy, I converted my rational number class from C++ to C and switched
to 32 bits to remove the need for unportable 128 bit numbers.  It
should be usable as a fairly thorough test case for user defined types
now.  It does rather more than a minimal test case would need to do,
but that isn't a problem unless you're concerned about code size.  Let
me know if any further changes are needed before it's suitable for
inclusion in numpy as a test case.  The repository is here:

    https://github.com/girving/rational

The tests run under either py.test or nose.

For completeness, my branch fixing all but one of the bugs I found in
numpy user defined types is here:

    https://github.com/girving/numpy/tree/fixuserloops

The remaining bug is that numpy incorrectly releases the GIL during
casts even though NPY_NEEDS_API is set.  The resulting crash goes away
if the line defining ACQUIRE_GIL is uncommented.  With the necessary
locks in place, all my tests pass with my branch of numpy.  I haven't
tracked this one down and fixed it yet, but it shouldn't be hard to do
so.

Geoffrey



More information about the NumPy-Discussion mailing list