From 497f4970204881a1471a273dfec9fed2c6fe4f4e Mon Sep 17 00:00:00 2001 From: Jessica Moore Date: Mon, 26 Dec 2022 15:47:19 -0500 Subject: [PATCH 1/3] Fix #50234: Add test to verify isin returns consistent results for passed iterables --- pandas/tests/series/methods/test_isin.py | 25 ++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/pandas/tests/series/methods/test_isin.py b/pandas/tests/series/methods/test_isin.py index 92ebee9ffa7a5..a4af31d38ed64 100644 --- a/pandas/tests/series/methods/test_isin.py +++ b/pandas/tests/series/methods/test_isin.py @@ -234,3 +234,28 @@ def test_isin_filtering_with_mixed_object_types(data, is_in): expected = Series([True, False]) tm.assert_series_equal(result, expected) + + +@pytest.mark.parametrize( + "data,is_in,expected", + [ + ( + [1, 2, 3], + [1, 2], + [True, True, False], + ), + ( + [1.0, 2.0, 3.0], + [1, 2], + [True, True, False], + ), + ], +) +def test_isin_filtering_on_iterable(data, is_in, expected): + # GH 50234 + + ser = Series(data) + result = ser.isin(i for i in is_in) + expected_result = Series(expected) + + tm.assert_series_equal(result, expected_result) From 93224d202fb639cf413f40e7addc056cc91abdf7 Mon Sep 17 00:00:00 2001 From: Jessica Moore Date: Tue, 27 Dec 2022 06:13:09 -0500 Subject: [PATCH 2/3] Reduce redundancy in test params --- pandas/tests/series/methods/test_isin.py | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/pandas/tests/series/methods/test_isin.py b/pandas/tests/series/methods/test_isin.py index a4af31d38ed64..bb4c99ad8acbd 100644 --- a/pandas/tests/series/methods/test_isin.py +++ b/pandas/tests/series/methods/test_isin.py @@ -237,25 +237,14 @@ def test_isin_filtering_with_mixed_object_types(data, is_in): @pytest.mark.parametrize( - "data,is_in,expected", - [ - ( - [1, 2, 3], - [1, 2], - [True, True, False], - ), - ( - [1.0, 2.0, 3.0], - [1, 2], - [True, True, False], - ), - ], + "data", + [([1, 2, 3]), ([1.0, 2.0, 3.0])], ) -def test_isin_filtering_on_iterable(data, is_in, expected): +def test_isin_filtering_on_iterable(data): # GH 50234 ser = Series(data) - result = ser.isin(i for i in is_in) - expected_result = Series(expected) + result = ser.isin(i for i in [1, 2]) + expected_result = Series([True, True, False]) tm.assert_series_equal(result, expected_result) From b78db5db63e271293a0378033dc2cf78c4e30ece Mon Sep 17 00:00:00 2001 From: Jessica Moore Date: Tue, 27 Dec 2022 14:19:11 -0500 Subject: [PATCH 3/3] Reparameterize test --- pandas/tests/series/methods/test_isin.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/pandas/tests/series/methods/test_isin.py b/pandas/tests/series/methods/test_isin.py index bb4c99ad8acbd..3e4857b7abf38 100644 --- a/pandas/tests/series/methods/test_isin.py +++ b/pandas/tests/series/methods/test_isin.py @@ -236,15 +236,13 @@ def test_isin_filtering_with_mixed_object_types(data, is_in): tm.assert_series_equal(result, expected) -@pytest.mark.parametrize( - "data", - [([1, 2, 3]), ([1.0, 2.0, 3.0])], -) -def test_isin_filtering_on_iterable(data): +@pytest.mark.parametrize("data", [[1, 2, 3], [1.0, 2.0, 3.0]]) +@pytest.mark.parametrize("isin", [[1, 2], [1.0, 2.0]]) +def test_isin_filtering_on_iterable(data, isin): # GH 50234 ser = Series(data) - result = ser.isin(i for i in [1, 2]) + result = ser.isin(i for i in isin) expected_result = Series([True, True, False]) tm.assert_series_equal(result, expected_result)