-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
REGR: check_flags not respected in assert_frame_equal #45565
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -1344,6 +1344,7 @@ def assert_frame_equal( | |
rtol=rtol, | ||
atol=atol, | ||
check_index=False, | ||
check_flags=check_flags, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. right. I think I am starting to get my head round this. This should be the flags check is already performed on the DataFrame. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yep you are correct. Passing in False is the way to go here |
||
) | ||
|
||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -323,9 +323,22 @@ def test_frame_equal_mixed_dtypes(frame_or_series, any_numeric_ea_dtype, indexer | |
tm.assert_equal(obj1, obj2, check_exact=True, check_dtype=False) | ||
|
||
|
||
def test_assert_series_equal_check_like_different_indexes(): | ||
def test_assert_frame_equal_check_like_different_indexes(): | ||
# GH#39739 | ||
df1 = DataFrame(index=pd.Index([], dtype="object")) | ||
df2 = DataFrame(index=pd.RangeIndex(start=0, stop=0, step=1)) | ||
with pytest.raises(AssertionError, match="DataFrame.index are different"): | ||
tm.assert_frame_equal(df1, df2, check_like=True) | ||
|
||
|
||
def test_assert_frame_equal_checking_allow_dups_flag(): | ||
# GH#45554 | ||
left = DataFrame([[1, 2], [3, 4]]) | ||
left.flags.allows_duplicate_labels = False | ||
|
||
right = DataFrame([[1, 2], [3, 4]]) | ||
right.flags.allows_duplicate_labels = True | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. do we also need to test for DataFrames with the same flags with check_flags=True/False. I find it odd (without investigation) that the reported issue was not picked up before. The flag is on the DataFrame so why not check that instead of on the Series? |
||
tm.assert_frame_equal(left, right, check_flags=False) | ||
|
||
with pytest.raises(AssertionError, match="allows_duplicate_labels"): | ||
tm.assert_frame_equal(left, right, check_flags=True) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
again. I don't understand fully since have not investigated but this issue is not actually a regression if the flag was not propagated before? As with
check_flags=True
I assume it did not raise if the flags were different.