11"""Test module for arithmetic operations on Series."""
22
3- from typing import cast
4-
53import numpy as np
64import pandas as pd
75from typing_extensions import assert_type
@@ -193,11 +191,12 @@ def test_element_wise_float_float() -> None:
193191
194192
195193def test_element_wise_int_unknown () -> None :
196- s = cast (pd .Series , pd .Series ([7 , - 5 , 10 ]))
194+ df = pd .DataFrame ({"a" : [7 , - 5 , 10 ]})
195+ s = df ["a" ]
197196 s2 = pd .Series ([0 , 1 , - 105 ])
198197
199198 check (assert_type (s + s2 , pd .Series ), pd .Series )
200- check (assert_type (s .add (s2 , fill_value = 0 ), " pd.Series[float]" ), pd .Series )
199+ check (assert_type (s .add (s2 , fill_value = 0 ), pd .Series ), pd .Series )
201200
202201 check (assert_type (s - s2 , pd .Series ), pd .Series )
203202 check (assert_type (s .sub (s2 , fill_value = 0 ), pd .Series ), pd .Series )
@@ -208,3 +207,75 @@ def test_element_wise_int_unknown() -> None:
208207 # GH1089 should be the following
209208 check (assert_type (s / s2 , "pd.Series[float]" ), pd .Series )
210209 check (assert_type (s .div (s2 , fill_value = 0 ), "pd.Series[float]" ), pd .Series )
210+
211+
212+ def test_element_wise_unknown_int () -> None :
213+ df = pd .DataFrame ({"a" : [7 , - 5 , 10 ]})
214+ s = pd .Series ([0 , 1 , - 105 ])
215+ s2 = df ["a" ]
216+
217+ check (assert_type (s + s2 , pd .Series ), pd .Series )
218+ check (assert_type (s .add (s2 , fill_value = 0 ), pd .Series ), pd .Series )
219+
220+ check (assert_type (s - s2 , pd .Series ), pd .Series )
221+ check (assert_type (s .sub (s2 , fill_value = 0 ), pd .Series ), pd .Series )
222+
223+ check (assert_type (s * s2 , pd .Series ), pd .Series )
224+ check (assert_type (s .mul (s2 , fill_value = 0 ), pd .Series ), pd .Series )
225+
226+ check (assert_type (s / s2 , "pd.Series[float]" ), pd .Series )
227+ check (assert_type (s .div (s2 , fill_value = 0 ), "pd.Series[float]" ), pd .Series )
228+
229+
230+ def test_element_wise_unknown_unknown () -> None :
231+ df = pd .DataFrame ({"a" : [7 , - 5 , 10 ]})
232+ s = df ["a" ]
233+ s2 = df ["a" ]
234+
235+ check (assert_type (s + s2 , pd .Series ), pd .Series )
236+ check (assert_type (s .add (s2 , fill_value = 0 ), pd .Series ), pd .Series )
237+
238+ check (assert_type (s - s2 , pd .Series ), pd .Series )
239+ check (assert_type (s .sub (s2 , fill_value = 0 ), pd .Series ), pd .Series )
240+
241+ check (assert_type (s * s2 , pd .Series ), pd .Series )
242+ check (assert_type (s .mul (s2 , fill_value = 0 ), pd .Series ), pd .Series )
243+
244+ check (assert_type (s / s2 , "pd.Series[float]" ), pd .Series )
245+ check (assert_type (s .div (s2 , fill_value = 0 ), "pd.Series[float]" ), pd .Series )
246+
247+
248+ def test_element_wise_float_unknown () -> None :
249+ df = pd .DataFrame ({"a" : [7 , - 5 , 10 ]})
250+ s = pd .Series ([1.3 , 2.5 , 4.5 ])
251+ s2 = df ["a" ]
252+
253+ check (assert_type (s + s2 , pd .Series ), pd .Series )
254+ check (assert_type (s .add (s2 , fill_value = 0 ), pd .Series ), pd .Series )
255+
256+ check (assert_type (s - s2 , pd .Series ), pd .Series )
257+ check (assert_type (s .sub (s2 , fill_value = 0 ), pd .Series ), pd .Series )
258+
259+ check (assert_type (s * s2 , pd .Series ), pd .Series )
260+ check (assert_type (s .mul (s2 , fill_value = 0 ), pd .Series ), pd .Series )
261+
262+ check (assert_type (s / s2 , "pd.Series[float]" ), pd .Series )
263+ check (assert_type (s .div (s2 , fill_value = 0 ), "pd.Series[float]" ), pd .Series )
264+
265+
266+ def test_element_wise_unknown_float () -> None :
267+ df = pd .DataFrame ({"a" : [7 , - 5 , 10 ]})
268+ s = df ["a" ]
269+ s2 = pd .Series ([1.3 , 2.5 , 4.5 ])
270+
271+ check (assert_type (s + s2 , pd .Series ), pd .Series )
272+ check (assert_type (s .add (s2 , fill_value = 0 ), pd .Series ), pd .Series )
273+
274+ check (assert_type (s - s2 , pd .Series ), pd .Series )
275+ check (assert_type (s .sub (s2 , fill_value = 0 ), pd .Series ), pd .Series )
276+
277+ check (assert_type (s * s2 , pd .Series ), pd .Series )
278+ check (assert_type (s .mul (s2 , fill_value = 0 ), pd .Series ), pd .Series )
279+
280+ check (assert_type (s / s2 , "pd.Series[float]" ), pd .Series )
281+ check (assert_type (s .div (s2 , fill_value = 0 ), "pd.Series[float]" ), pd .Series )
0 commit comments