Skip to content

Commit d24efd7

Browse files
jorisvandenbosschegouthambs
authored andcommitted
TST: add check_exact arg to assert_frame/series_equal
1 parent 3c460f0 commit d24efd7

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

pandas/io/tests/test_sql.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -560,11 +560,11 @@ def test_mixed_dtype_insert(self):
560560
s2 = Series(0.0,dtype=np.float32)
561561
df = DataFrame({'s1': s1, 's2': s2})
562562

563-
# write and read again
564-
df.to_sql("test_read_write", self.conn)
563+
# write and read again
564+
df.to_sql("test_read_write", self.conn, index=False)
565565
df2 = sql.read_table("test_read_write", self.conn)
566566

567-
tm.assert_equal(df['s1'].values, df2['s1'].values)
567+
tm.assert_frame_equal(df, df2, check_dtype=False, check_exact=True)
568568

569569

570570
class TestSQLAlchemy(_TestSQLAlchemy):

pandas/util/testing.py

+12-4
Original file line numberDiff line numberDiff line change
@@ -499,12 +499,18 @@ def is_sorted(seq):
499499
def assert_series_equal(left, right, check_dtype=True,
500500
check_index_type=False,
501501
check_series_type=False,
502-
check_less_precise=False):
502+
check_less_precise=False,
503+
check_exact=False):
503504
if check_series_type:
504505
assert_isinstance(left, type(right))
505506
if check_dtype:
506507
assert_attr_equal('dtype', left, right)
507-
assert_almost_equal(left.values, right.values, check_less_precise)
508+
if check_exact:
509+
if not np.array_equal(left.values, right.values):
510+
raise AssertionError('{0} is not equal to {1}.'.format(left.values,
511+
right.values))
512+
else:
513+
assert_almost_equal(left.values, right.values, check_less_precise)
508514
if check_less_precise:
509515
assert_almost_equal(
510516
left.index.values, right.index.values, check_less_precise)
@@ -522,7 +528,8 @@ def assert_frame_equal(left, right, check_dtype=True,
522528
check_frame_type=False,
523529
check_less_precise=False,
524530
check_names=True,
525-
by_blocks=False):
531+
by_blocks=False,
532+
check_exact=False):
526533
if check_frame_type:
527534
assert_isinstance(left, type(right))
528535
assert_isinstance(left, DataFrame)
@@ -555,7 +562,8 @@ def assert_frame_equal(left, right, check_dtype=True,
555562
assert_series_equal(lcol, rcol,
556563
check_dtype=check_dtype,
557564
check_index_type=check_index_type,
558-
check_less_precise=check_less_precise)
565+
check_less_precise=check_less_precise,
566+
check_exact=check_exact)
559567

560568
if check_index_type:
561569
assert_isinstance(left.index, type(right.index))

0 commit comments

Comments
 (0)