diff --git a/pandas/tests/tools/test_to_datetime.py b/pandas/tests/tools/test_to_datetime.py index 5f8e0b4f70ec4..1e05603f704a7 100644 --- a/pandas/tests/tools/test_to_datetime.py +++ b/pandas/tests/tools/test_to_datetime.py @@ -1066,6 +1066,33 @@ def test_convert_object_to_datetime_with_cache( ) tm.assert_series_equal(result_series, expected_series) + @pytest.mark.parametrize("cache", [True, False]) + @pytest.mark.parametrize( + ("input", "expected"), + ( + ( + Series([NaT] * 20 + [None] * 20, dtype="object"), # type: ignore[list-item] # noqa: E501 + Series([NaT] * 40, dtype="datetime64[ns]"), + ), + ( + Series([NaT] * 60 + [None] * 60, dtype="object"), # type: ignore[list-item] # noqa: E501 + Series([NaT] * 120, dtype="datetime64[ns]"), + ), + (Series([None] * 20), Series([NaT] * 20, dtype="datetime64[ns]")), + (Series([None] * 60), Series([NaT] * 60, dtype="datetime64[ns]")), + (Series([""] * 20), Series([NaT] * 20, dtype="datetime64[ns]")), + (Series([""] * 60), Series([NaT] * 60, dtype="datetime64[ns]")), + (Series([pd.NA] * 20), Series([NaT] * 20, dtype="datetime64[ns]")), + (Series([pd.NA] * 60), Series([NaT] * 60, dtype="datetime64[ns]")), + (Series([np.NaN] * 20), Series([NaT] * 20, dtype="datetime64[ns]")), + (Series([np.NaN] * 60), Series([NaT] * 60, dtype="datetime64[ns]")), + ), + ) + def test_to_datetime_converts_null_like_to_nat(self, cache, input, expected): + # GH35888 + result = to_datetime(input, cache=cache) + tm.assert_series_equal(result, expected) + @pytest.mark.parametrize( "date, format", [