@@ -75,6 +75,37 @@ def test_timestamp_subtraction(self):
75
75
with self .assertRaisesRegex (TypeError , expected_error_message ):
76
76
1 - kdf ["a" ]
77
77
78
+ def test_arithmetic_op_exceptions (self ):
79
+ kser = self .ks_start_date
80
+ py_datetime = self .pd_start_date .dt .to_pydatetime ()
81
+ datetime_index = ks .Index (self .pd_start_date )
82
+
83
+ for other in [1 , 0.1 , kser , datetime_index , py_datetime ]:
84
+ expected_err_msg = "addition can not be applied to date times."
85
+ self .assertRaisesRegex (TypeError , expected_err_msg , lambda : kser + other )
86
+ self .assertRaisesRegex (TypeError , expected_err_msg , lambda : other + kser )
87
+
88
+ expected_err_msg = "multiplication can not be applied to date times."
89
+ self .assertRaisesRegex (TypeError , expected_err_msg , lambda : kser * other )
90
+ self .assertRaisesRegex (TypeError , expected_err_msg , lambda : other * kser )
91
+
92
+ expected_err_msg = "division can not be applied to date times."
93
+ self .assertRaisesRegex (TypeError , expected_err_msg , lambda : kser / other )
94
+ self .assertRaisesRegex (TypeError , expected_err_msg , lambda : other / kser )
95
+ self .assertRaisesRegex (TypeError , expected_err_msg , lambda : kser // other )
96
+ self .assertRaisesRegex (TypeError , expected_err_msg , lambda : other // kser )
97
+
98
+ expected_err_msg = "modulo can not be applied to date times."
99
+ self .assertRaisesRegex (TypeError , expected_err_msg , lambda : kser % other )
100
+ self .assertRaisesRegex (TypeError , expected_err_msg , lambda : other % kser )
101
+
102
+ ks .set_option ("compute.ops_on_diff_frames" , True )
103
+ for other in [1 , 0.1 , py_datetime ]:
104
+ expected_err_msg = "datetime subtraction can only be applied to datetime series."
105
+ self .assertRaisesRegex (TypeError , expected_err_msg , lambda : kser - other )
106
+
107
+ self .assertRaises (NotImplementedError , lambda : py_datetime - kser )
108
+
78
109
def test_date_subtraction (self ):
79
110
pdf = self .pdf1
80
111
kdf = ks .from_pandas (pdf )
0 commit comments