From a5d750a1229b2c23fcc89d51d5a2a5480c83be4b Mon Sep 17 00:00:00 2001 From: th3nn3ss Date: Wed, 20 Jul 2022 16:14:17 +0100 Subject: [PATCH 1/6] TST GH35465 Tests for repr of Series with dtype timedelta64 --- pandas/tests/series/test_repr.py | 72 ++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/pandas/tests/series/test_repr.py b/pandas/tests/series/test_repr.py index a12bc1df37269..56a588759101f 100644 --- a/pandas/tests/series/test_repr.py +++ b/pandas/tests/series/test_repr.py @@ -264,6 +264,78 @@ def test_different_null_objects(self): result = repr(ser) expected = "True 1\nNone 2\nNaN 3\nNaT 4\ndtype: int64" assert result == expected + + def test_dtype_timedelta64_ns(self): + # GH#35465 + series = Series([1000000, 200000, 3000000], dtype='timedelta64[ns]') + result = repr(series) + expected = ( + "0 0 days 00:00:00.001000\n" + "1 0 days 00:00:00.000200\n" + "2 0 days 00:00:00.003000\n" + "dtype: timedelta64[ns]" + ) + assert result == expected + + def test_dtype_timedelta64_s(self): + # GH#35465 + series = Series([1000000, 200000, 3000000], dtype='timedelta64[s]') + result = repr(series) + expected = ( + "0 0 days 00:00:00.001000\n" + "1 0 days 00:00:00.000200\n" + "2 0 days 00:00:00.003000\n" + "dtype: timedelta64[ns]" + ) + assert result == expected + + def test_dtype_timedelta64_ns_s(self): + # GH#35465 + series_ns = Series([1000000, 200000, 3000000], dtype='timedelta64[ns]') + series_s = Series([1000000, 200000, 3000000], dtype='timedelta64[s]') + expected = ( + "0 0 days 00:00:00.001000\n" + "1 0 days 00:00:00.000200\n" + "2 0 days 00:00:00.003000\n" + "dtype: timedelta64[ns]" + ) + assert repr(series_ns) == expected == repr(series_s) + + def test_dtype_timedelta64_ns_astype_int(self): + # GH#35465 + series = Series([1000000, 200000, 3000000], dtype='timedelta64[ns]').astype('int') + result = repr(series) + expected = ( + "0 1000000\n" + "1 200000\n" + "2 3000000\n" + "dtype: int64" + ) + assert result == expected + + def test_dtype_timedelta64_s_astype_int(self): + # GH#35465 + series = Series([1000000, 200000, 3000000], dtype='timedelta64[s]').astype('int') + result = repr(series) + expected = ( + "0 1000000\n" + "1 200000\n" + "2 3000000\n" + "dtype: int64" + ) + assert result == expected + + def test_dtype_timedelta64_ns_s_astype_int(self): + # GH#35465 + series_ns = Series([1000000, 200000, 3000000], dtype='timedelta64[ns]').astype('int') + series_s = Series([1000000, 200000, 3000000], dtype='timedelta64[s]').astype('int') + expected = ( + "0 1000000\n" + "1 200000\n" + "2 3000000\n" + "dtype: int64" + ) + assert repr(series_ns) == expected == repr(series_s) class TestCategoricalRepr: From dcf072d755483b6d441899c8dd7690304423196f Mon Sep 17 00:00:00 2001 From: th3nn3ss Date: Wed, 20 Jul 2022 16:34:43 +0100 Subject: [PATCH 2/6] pre commit test file --- pandas/tests/series/test_repr.py | 47 ++++++++++++++------------------ 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/pandas/tests/series/test_repr.py b/pandas/tests/series/test_repr.py index 56a588759101f..f765cc370e17c 100644 --- a/pandas/tests/series/test_repr.py +++ b/pandas/tests/series/test_repr.py @@ -264,10 +264,10 @@ def test_different_null_objects(self): result = repr(ser) expected = "True 1\nNone 2\nNaN 3\nNaT 4\ndtype: int64" assert result == expected - + def test_dtype_timedelta64_ns(self): # GH#35465 - series = Series([1000000, 200000, 3000000], dtype='timedelta64[ns]') + series = Series([1000000, 200000, 3000000], dtype="timedelta64[ns]") result = repr(series) expected = ( "0 0 days 00:00:00.001000\n" @@ -276,10 +276,10 @@ def test_dtype_timedelta64_ns(self): "dtype: timedelta64[ns]" ) assert result == expected - + def test_dtype_timedelta64_s(self): # GH#35465 - series = Series([1000000, 200000, 3000000], dtype='timedelta64[s]') + series = Series([1000000, 200000, 3000000], dtype="timedelta64[s]") result = repr(series) expected = ( "0 0 days 00:00:00.001000\n" @@ -291,8 +291,8 @@ def test_dtype_timedelta64_s(self): def test_dtype_timedelta64_ns_s(self): # GH#35465 - series_ns = Series([1000000, 200000, 3000000], dtype='timedelta64[ns]') - series_s = Series([1000000, 200000, 3000000], dtype='timedelta64[s]') + series_ns = Series([1000000, 200000, 3000000], dtype="timedelta64[ns]") + series_s = Series([1000000, 200000, 3000000], dtype="timedelta64[s]") expected = ( "0 0 days 00:00:00.001000\n" "1 0 days 00:00:00.000200\n" @@ -303,38 +303,31 @@ def test_dtype_timedelta64_ns_s(self): def test_dtype_timedelta64_ns_astype_int(self): # GH#35465 - series = Series([1000000, 200000, 3000000], dtype='timedelta64[ns]').astype('int') - result = repr(series) - expected = ( - "0 1000000\n" - "1 200000\n" - "2 3000000\n" - "dtype: int64" + series = Series([1000000, 200000, 3000000], dtype="timedelta64[ns]").astype( + "int" ) + result = repr(series) + expected = "0 1000000\n" "1 200000\n" "2 3000000\n" "dtype: int64" assert result == expected def test_dtype_timedelta64_s_astype_int(self): # GH#35465 - series = Series([1000000, 200000, 3000000], dtype='timedelta64[s]').astype('int') - result = repr(series) - expected = ( - "0 1000000\n" - "1 200000\n" - "2 3000000\n" - "dtype: int64" + series = Series([1000000, 200000, 3000000], dtype="timedelta64[s]").astype( + "int" ) + result = repr(series) + expected = "0 1000000\n" "1 200000\n" "2 3000000\n" "dtype: int64" assert result == expected def test_dtype_timedelta64_ns_s_astype_int(self): # GH#35465 - series_ns = Series([1000000, 200000, 3000000], dtype='timedelta64[ns]').astype('int') - series_s = Series([1000000, 200000, 3000000], dtype='timedelta64[s]').astype('int') - expected = ( - "0 1000000\n" - "1 200000\n" - "2 3000000\n" - "dtype: int64" + series_ns = Series([1000000, 200000, 3000000], dtype="timedelta64[ns]").astype( + "int" + ) + series_s = Series([1000000, 200000, 3000000], dtype="timedelta64[s]").astype( + "int" ) + expected = "0 1000000\n" "1 200000\n" "2 3000000\n" "dtype: int64" assert repr(series_ns) == expected == repr(series_s) From 842bec58a1431850784ae9c734f1a8df47f54384 Mon Sep 17 00:00:00 2001 From: th3nn3ss Date: Thu, 21 Jul 2022 04:14:55 +0100 Subject: [PATCH 3/6] TST GH35465 Tests for Series constructs with dtype timedelta64 --- pandas/tests/series/test_constructors.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pandas/tests/series/test_constructors.py b/pandas/tests/series/test_constructors.py index 4e4ee4fd12d5f..e7f35857519c9 100644 --- a/pandas/tests/series/test_constructors.py +++ b/pandas/tests/series/test_constructors.py @@ -1878,6 +1878,24 @@ def test_constructor_bool_dtype_missing_values(self): result = Series(index=[0], dtype="bool") expected = Series(True, index=[0], dtype="bool") tm.assert_series_equal(result, expected) + + def test_constructor_dtype_timedelta_alternative_construct(self): + # GH#35465 + result = Series([1000000, 200000, 3000000], dtype="timedelta64[ns]") + expected = Series(pd.to_timedelta([1000000, 200000, 3000000], unit="ns")) + tm.assert_series_equal(result, expected) + + def test_constructor_dtype_timedelta_ns_s(self): + # GH#35465 + result = Series([1000000, 200000, 3000000], dtype="timedelta64[ns]") + expected = Series([1000000, 200000, 3000000], dtype="timedelta64[s]") + tm.assert_series_equal(result, expected) + + def test_constructor_dtype_timedelta_ns_s_astype_int(self): + # GH#35465 + result = Series([1000000, 200000, 3000000], dtype="timedelta64[ns]").astype("int") + expected = Series([1000000, 200000, 3000000], dtype="timedelta64[s]").astype("int") + tm.assert_series_equal(result, expected) @pytest.mark.filterwarnings( "ignore:elementwise comparison failed:DeprecationWarning" From 2b34c4761b2b50d7efbeed0e484de29be31ca8ce Mon Sep 17 00:00:00 2001 From: th3nn3ss Date: Thu, 21 Jul 2022 04:21:49 +0100 Subject: [PATCH 4/6] restore pandas/tests/series/test_repr.py --- pandas/tests/series/test_repr.py | 65 -------------------------------- 1 file changed, 65 deletions(-) diff --git a/pandas/tests/series/test_repr.py b/pandas/tests/series/test_repr.py index f765cc370e17c..a12bc1df37269 100644 --- a/pandas/tests/series/test_repr.py +++ b/pandas/tests/series/test_repr.py @@ -265,71 +265,6 @@ def test_different_null_objects(self): expected = "True 1\nNone 2\nNaN 3\nNaT 4\ndtype: int64" assert result == expected - def test_dtype_timedelta64_ns(self): - # GH#35465 - series = Series([1000000, 200000, 3000000], dtype="timedelta64[ns]") - result = repr(series) - expected = ( - "0 0 days 00:00:00.001000\n" - "1 0 days 00:00:00.000200\n" - "2 0 days 00:00:00.003000\n" - "dtype: timedelta64[ns]" - ) - assert result == expected - - def test_dtype_timedelta64_s(self): - # GH#35465 - series = Series([1000000, 200000, 3000000], dtype="timedelta64[s]") - result = repr(series) - expected = ( - "0 0 days 00:00:00.001000\n" - "1 0 days 00:00:00.000200\n" - "2 0 days 00:00:00.003000\n" - "dtype: timedelta64[ns]" - ) - assert result == expected - - def test_dtype_timedelta64_ns_s(self): - # GH#35465 - series_ns = Series([1000000, 200000, 3000000], dtype="timedelta64[ns]") - series_s = Series([1000000, 200000, 3000000], dtype="timedelta64[s]") - expected = ( - "0 0 days 00:00:00.001000\n" - "1 0 days 00:00:00.000200\n" - "2 0 days 00:00:00.003000\n" - "dtype: timedelta64[ns]" - ) - assert repr(series_ns) == expected == repr(series_s) - - def test_dtype_timedelta64_ns_astype_int(self): - # GH#35465 - series = Series([1000000, 200000, 3000000], dtype="timedelta64[ns]").astype( - "int" - ) - result = repr(series) - expected = "0 1000000\n" "1 200000\n" "2 3000000\n" "dtype: int64" - assert result == expected - - def test_dtype_timedelta64_s_astype_int(self): - # GH#35465 - series = Series([1000000, 200000, 3000000], dtype="timedelta64[s]").astype( - "int" - ) - result = repr(series) - expected = "0 1000000\n" "1 200000\n" "2 3000000\n" "dtype: int64" - assert result == expected - - def test_dtype_timedelta64_ns_s_astype_int(self): - # GH#35465 - series_ns = Series([1000000, 200000, 3000000], dtype="timedelta64[ns]").astype( - "int" - ) - series_s = Series([1000000, 200000, 3000000], dtype="timedelta64[s]").astype( - "int" - ) - expected = "0 1000000\n" "1 200000\n" "2 3000000\n" "dtype: int64" - assert repr(series_ns) == expected == repr(series_s) - class TestCategoricalRepr: def test_categorical_repr_unicode(self): From 84462248e4d9023cdbd9f73d4416a253493a20f5 Mon Sep 17 00:00:00 2001 From: th3nn3ss Date: Thu, 21 Jul 2022 09:36:35 +0100 Subject: [PATCH 5/6] perform pre-commit --- pandas/tests/series/test_constructors.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pandas/tests/series/test_constructors.py b/pandas/tests/series/test_constructors.py index e7f35857519c9..362be4fc157b8 100644 --- a/pandas/tests/series/test_constructors.py +++ b/pandas/tests/series/test_constructors.py @@ -1878,7 +1878,7 @@ def test_constructor_bool_dtype_missing_values(self): result = Series(index=[0], dtype="bool") expected = Series(True, index=[0], dtype="bool") tm.assert_series_equal(result, expected) - + def test_constructor_dtype_timedelta_alternative_construct(self): # GH#35465 result = Series([1000000, 200000, 3000000], dtype="timedelta64[ns]") @@ -1893,8 +1893,12 @@ def test_constructor_dtype_timedelta_ns_s(self): def test_constructor_dtype_timedelta_ns_s_astype_int(self): # GH#35465 - result = Series([1000000, 200000, 3000000], dtype="timedelta64[ns]").astype("int") - expected = Series([1000000, 200000, 3000000], dtype="timedelta64[s]").astype("int") + result = Series([1000000, 200000, 3000000], dtype="timedelta64[ns]").astype( + "int" + ) + expected = Series([1000000, 200000, 3000000], dtype="timedelta64[s]").astype( + "int" + ) tm.assert_series_equal(result, expected) @pytest.mark.filterwarnings( From e6ed61c9049160732a7582fae514645b3847f185 Mon Sep 17 00:00:00 2001 From: th3nn3ss Date: Fri, 22 Jul 2022 18:49:18 +0100 Subject: [PATCH 6/6] use int64 for tests --- pandas/tests/series/test_constructors.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pandas/tests/series/test_constructors.py b/pandas/tests/series/test_constructors.py index 362be4fc157b8..de9a682acdfd6 100644 --- a/pandas/tests/series/test_constructors.py +++ b/pandas/tests/series/test_constructors.py @@ -1891,13 +1891,13 @@ def test_constructor_dtype_timedelta_ns_s(self): expected = Series([1000000, 200000, 3000000], dtype="timedelta64[s]") tm.assert_series_equal(result, expected) - def test_constructor_dtype_timedelta_ns_s_astype_int(self): + def test_constructor_dtype_timedelta_ns_s_astype_int64(self): # GH#35465 result = Series([1000000, 200000, 3000000], dtype="timedelta64[ns]").astype( - "int" + "int64" ) expected = Series([1000000, 200000, 3000000], dtype="timedelta64[s]").astype( - "int" + "int64" ) tm.assert_series_equal(result, expected)