@@ -1889,26 +1889,14 @@ def test_operators_timedelta64(self):
1889
1889
assert_series_equal (result ,expected )
1890
1890
self .assert_ (result .dtype == 'm8[ns]' )
1891
1891
1892
- result = df ['A' ] + datetime (2001 ,1 ,1 )
1893
- expected = Series ([timedelta (days = 26663 + i ) for i in range (3 )])
1894
- assert_series_equal (result ,expected )
1895
- self .assert_ (result .dtype == 'm8[ns]' )
1896
-
1897
1892
d = datetime (2001 ,1 ,1 ,3 ,4 )
1898
1893
resulta = df ['A' ] - d
1899
1894
self .assert_ (resulta .dtype == 'm8[ns]' )
1900
1895
1901
- resultb = df ['A' ] + d
1902
- self .assert_ (resultb .dtype == 'm8[ns]' )
1903
-
1904
1896
# roundtrip
1905
1897
resultb = resulta + d
1906
1898
assert_series_equal (df ['A' ],resultb )
1907
1899
1908
- # timedelta on lhs
1909
- result = resultb + d
1910
- self .assert_ (result .dtype == 'm8[ns]' )
1911
-
1912
1900
# timedeltas on rhs
1913
1901
td = timedelta (days = 1 )
1914
1902
resulta = df ['A' ] + td
@@ -1931,6 +1919,42 @@ def test_operators_timedelta64(self):
1931
1919
self .assert_ (result .dtype == 'm8[ns]' )
1932
1920
assert_series_equal (result ,expected )
1933
1921
1922
+ def test_operators_datetimelike (self ):
1923
+
1924
+ ### timedelta64 ###
1925
+ td1 = Series ([timedelta (minutes = 5 ,seconds = 3 )]* 3 )
1926
+ td2 = timedelta (minutes = 5 ,seconds = 4 )
1927
+ for op in ['__mul__' ,'__floordiv__' ,'__truediv__' ,'__div__' ,'__pow__' ]:
1928
+ op = getattr (td1 ,op ,None )
1929
+ if op is not None :
1930
+ self .assertRaises (TypeError , op , td2 )
1931
+ td1 + td2
1932
+ td1 - td2
1933
+
1934
+ ### datetime64 ###
1935
+ dt1 = Series ([Timestamp ('20111230' ),Timestamp ('20120101' ),Timestamp ('20120103' )])
1936
+ dt2 = Series ([Timestamp ('20111231' ),Timestamp ('20120102' ),Timestamp ('20120104' )])
1937
+ for op in ['__add__' ,'__mul__' ,'__floordiv__' ,'__truediv__' ,'__div__' ,'__pow__' ]:
1938
+ op = getattr (dt1 ,op ,None )
1939
+ if op is not None :
1940
+ self .assertRaises (TypeError , op , dt2 )
1941
+ dt1 - dt2
1942
+
1943
+ ### datetime64 with timetimedelta ###
1944
+ for op in ['__mul__' ,'__floordiv__' ,'__truediv__' ,'__div__' ,'__pow__' ]:
1945
+ op = getattr (dt1 ,op ,None )
1946
+ if op is not None :
1947
+ self .assertRaises (TypeError , op , td1 )
1948
+ dt1 + td1
1949
+ dt1 - td1
1950
+
1951
+ ### timetimedelta with datetime64 ###
1952
+ for op in ['__mul__' ,'__floordiv__' ,'__truediv__' ,'__div__' ,'__pow__' ]:
1953
+ op = getattr (td1 ,op ,None )
1954
+ if op is not None :
1955
+ self .assertRaises (TypeError , op , dt1 )
1956
+ td1 + dt1
1957
+ td1 - dt1
1934
1958
1935
1959
def test_timedelta64_functions (self ):
1936
1960
0 commit comments