Skip to content

Commit 4d8cd16

Browse files
committed
Merge pull request #5434 from jreback/test_fix
BUG/TST: bug in the test apparatus when dtypes are equal in a Series but the values are not equal
2 parents 371dde4 + de697ce commit 4d8cd16

File tree

2 files changed

+32
-5
lines changed

2 files changed

+32
-5
lines changed

pandas/src/testing.pyx

+4-3
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,10 @@ cpdef assert_almost_equal(a, b, bint check_less_precise=False):
8888
return True
8989
except:
9090
pass
91-
else:
92-
for i in xrange(na):
93-
assert_almost_equal(a[i], b[i], check_less_precise)
91+
92+
for i in xrange(na):
93+
assert_almost_equal(a[i], b[i], check_less_precise)
94+
9495
return True
9596
elif isiterable(b):
9697
assert False, (

pandas/tests/test_testing.py

+28-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
import nose
77
import numpy as np
88
import sys
9-
9+
from pandas import Series
1010
from pandas.util.testing import (
11-
assert_almost_equal, assertRaisesRegexp, raise_with_traceback
11+
assert_almost_equal, assertRaisesRegexp, raise_with_traceback, assert_series_equal
1212
)
1313

1414
# let's get meta.
@@ -127,3 +127,29 @@ def test_raise_with_traceback(self):
127127
e = LookupError("error_text")
128128
_, _, traceback = sys.exc_info()
129129
raise_with_traceback(e, traceback)
130+
131+
class TestAssertSeriesEqual(unittest.TestCase):
132+
_multiprocess_can_split_ = True
133+
134+
def _assert_equal(self, x, y, **kwargs):
135+
assert_series_equal(x,y,**kwargs)
136+
assert_series_equal(y,x,**kwargs)
137+
138+
def _assert_not_equal(self, a, b, **kwargs):
139+
self.assertRaises(AssertionError, assert_series_equal, a, b, **kwargs)
140+
self.assertRaises(AssertionError, assert_series_equal, b, a, **kwargs)
141+
142+
def test_equal(self):
143+
self._assert_equal(Series(range(3)),Series(range(3)))
144+
self._assert_equal(Series(list('abc')),Series(list('abc')))
145+
146+
def test_not_equal(self):
147+
self._assert_not_equal(Series(range(3)),Series(range(3))+1)
148+
self._assert_not_equal(Series(list('abc')),Series(list('xyz')))
149+
self._assert_not_equal(Series(range(3)),Series(range(4)))
150+
self._assert_not_equal(Series(range(3)),Series(range(3),dtype='float64'))
151+
self._assert_not_equal(Series(range(3)),Series(range(3),index=[1,2,4]))
152+
153+
# ATM meta data is not checked in assert_series_equal
154+
# self._assert_not_equal(Series(range(3)),Series(range(3),name='foo'),check_names=True)
155+

0 commit comments

Comments
 (0)