[Numpy-discussion] using assertEqual in unittest to test two np.ndarray?
josef.pktd at gmail.com
josef.pktd at gmail.com
Fri Mar 20 17:03:40 EDT 2009
On Fri, Mar 20, 2009 at 4:49 PM, Pierre GM <pgmdevlist at gmail.com> wrote:
>
> On Mar 20, 2009, at 4:39 PM, Christopher Barker wrote:
>
>> Grissiom wrote:
>>> I know I should use array_equal to test two arrays
>>
>> Not answering your question, but I hadn't known about array_equal, so
>> when I saw this, I thought: great! I can get rid of a bunch of ugly
>> code
>> in my tests. However, it doesn't work as I would like for NaNs:
>
> Chris, have you tried assert_equal redefined in numpy.ma.testutils ?
> It was deisgned for masked arrays, but automatically deals with NaNs
> >>> from numpy.ma.testutils import assert_equal
> >>> a = np.array([1,2,np.nan,4])
> >>> assert_equal(a,a)
for testing purposes it is available in numpy testing:
from numpy.testing import assert_equal, assert_almost_equal, assert_array_equal
>>> a = np.array([ 1., 2., np.NaN, 4.])
>>> assert_array_equal(a,a)
does not raise AssertionError
>>> assert_array_equal(a,a+1)
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
assert_array_equal(a,a+1)
File "C:\Programs\Python25\lib\site-packages\numpy\testing\utils.py",
line 303, in assert_array_equal
verbose=verbose, header='Arrays are not equal')
File "C:\Programs\Python25\lib\site-packages\numpy\testing\utils.py",
line 295, in assert_array_compare
raise AssertionError(msg)
AssertionError:
Arrays are not equal
(mismatch 100.0%)
x: array([ 1., 2., NaN, 4.])
y: array([ 2., 3., NaN, 5.])
More information about the NumPy-Discussion
mailing list