Skip to content

Commit f75e781

Browse files
committed
TST: fix checking for less_precise in floats
1 parent 20ba83d commit f75e781

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

pandas/src/testing.pyx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,7 @@ cpdef assert_almost_equal(a, b, bint check_less_precise=False):
118118

119119
# deal with differing dtypes
120120
if check_less_precise:
121-
dtype_a = np.dtype(type(a))
122-
dtype_b = np.dtype(type(b))
123-
if dtype_a.kind == 'f' and dtype_b == 'f':
124-
decimal = 3
121+
decimal = 3
125122

126123
if np.isinf(a):
127124
assert np.isinf(b), "First object is inf, second isn't"
@@ -132,11 +129,11 @@ cpdef assert_almost_equal(a, b, bint check_less_precise=False):
132129
if abs(fa) < 1e-5:
133130
if not decimal_almost_equal(fa, fb, decimal):
134131
assert False, (
135-
'(very low values) expected %.5f but got %.5f' % (b, a)
132+
'(very low values) expected %.5f but got %.5f, with decimal %d' % (fb, fa, decimal)
136133
)
137134
else:
138135
if not decimal_almost_equal(1, fb / fa, decimal):
139-
assert False, 'expected %.5f but got %.5f' % (b, a)
136+
assert False, 'expected %.5f but got %.5f, with decimal %d' % (fb, fa, decimal)
140137

141138
else:
142139
assert a == b, "%r != %r" % (a, b)

pandas/tests/test_testing.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,25 @@ def test_not_equal(self):
154154
# ATM meta data is not checked in assert_series_equal
155155
# self._assert_not_equal(Series(range(3)),Series(range(3),name='foo'),check_names=True)
156156

157+
def test_less_precise(self):
158+
s1 = Series([0.12345],dtype='float64')
159+
s2 = Series([0.12346],dtype='float64')
160+
161+
self.assertRaises(AssertionError, assert_series_equal, s1, s2)
162+
self._assert_equal(s1,s2,check_less_precise=True)
163+
164+
s1 = Series([0.12345],dtype='float32')
165+
s2 = Series([0.12346],dtype='float32')
166+
167+
self.assertRaises(AssertionError, assert_series_equal, s1, s2)
168+
self._assert_equal(s1,s2,check_less_precise=True)
169+
170+
# even less than less precise
171+
s1 = Series([0.1235],dtype='float32')
172+
s2 = Series([0.1236],dtype='float32')
173+
174+
self.assertRaises(AssertionError, assert_series_equal, s1, s2)
175+
self.assertRaises(AssertionError, assert_series_equal, s1, s2, True)
157176

158177
class TestRNGContext(unittest.TestCase):
159178

0 commit comments

Comments
 (0)