@@ -815,11 +815,8 @@ def test_types_element_wise_arithmetic() -> None:
815
815
check (assert_type (s - s2 , pd .Series ), pd .Series , np .integer )
816
816
check (assert_type (s .sub (s2 , fill_value = 0 ), "pd.Series[int]" ), pd .Series , np .integer )
817
817
818
- # TODO these two below should type pd.Series[int]
819
- # check(assert_type(s * s2, "pd.Series[int]"), pd.Series, np.integer )
820
- check (assert_type (s * s2 , pd .Series ), pd .Series , np .integer )
821
- # check(assert_type(s.mul(s2, fill_value=0), "pd.Series[int]"), pd.Series, np.integer)
822
- check (assert_type (s .mul (s2 , fill_value = 0 ), pd .Series ), pd .Series , np .integer )
818
+ check (assert_type (s * s2 , "pd.Series[int]" ), pd .Series , np .integer )
819
+ check (assert_type (s .mul (s2 , fill_value = 0 ), "pd.Series[int]" ), pd .Series , np .integer )
823
820
824
821
# TODO these two below should type pd.Series[float]
825
822
# check(assert_type(s / s2, "pd.Series[float]"), pd.Series, np.float64)
@@ -839,18 +836,34 @@ def test_types_element_wise_arithmetic() -> None:
839
836
840
837
check (assert_type (divmod (s , s2 ), tuple ["pd.Series[int]" , "pd.Series[int]" ]), tuple )
841
838
839
+ s2_float = s2 .astype (float )
840
+ check (assert_type (s + s2_float , "pd.Series[float]" ), pd .Series , np .floating )
841
+ check (
842
+ assert_type (s .add (s2_float , fill_value = 0 ), "pd.Series[float]" ),
843
+ pd .Series ,
844
+ np .floating ,
845
+ )
846
+
847
+ check (assert_type (s * s2_float , "pd.Series[float]" ), pd .Series , np .floating )
848
+ check (assert_type (s2_float * s , "pd.Series[float]" ), pd .Series , np .floating )
849
+ check (assert_type (s .mul (s2_float , fill_value = 0 ), pd .Series ), pd .Series , np .floating )
850
+ check (assert_type (s2_float .mul (s , fill_value = 0 ), pd .Series ), pd .Series , np .floating )
851
+
842
852
843
853
def test_types_scalar_arithmetic () -> None :
854
+ # TODO: assert_type
844
855
s = pd .Series ([0 , 1 , - 10 ])
845
856
846
857
check (assert_type (s + 1 , "pd.Series[int]" ), pd .Series , np .integer )
858
+ check (assert_type (1 + s , "pd.Series[int]" ), pd .Series , np .integer )
847
859
check (assert_type (s .add (1 , fill_value = 0 ), "pd.Series[int]" ), pd .Series , np .integer )
848
860
849
861
res_sub : pd .Series = s - 1
850
862
res_sub2 : pd .Series = s .sub (1 , fill_value = 0 )
851
863
852
- res_mul : pd .Series = s * 2
853
- res_mul2 : pd .Series = s .mul (2 , fill_value = 0 )
864
+ check (assert_type (s * 2 , "pd.Series[int]" ), pd .Series , np .integer )
865
+ check (assert_type (2 * s , pd .Series ), pd .Series , np .integer )
866
+ check (assert_type (s .mul (2 , fill_value = 0 ), "pd.Series[int]" ), pd .Series , np .integer )
854
867
855
868
res_div : pd .Series = s / 2
856
869
res_div2 : pd .Series = s .div (2 , fill_value = 0 )
@@ -866,13 +879,95 @@ def test_types_scalar_arithmetic() -> None:
866
879
res_pow2 : pd .Series = s ** 0.213
867
880
res_pow3 : pd .Series = s .pow (0.5 )
868
881
882
+ check (assert_type (s + 1.0 , "pd.Series[float]" ), pd .Series , np .floating )
883
+ check (assert_type (1.0 + s , pd .Series ), pd .Series , np .floating )
884
+ check (
885
+ assert_type (s .add (1.0 , fill_value = 0 ), "pd.Series[float]" ),
886
+ pd .Series ,
887
+ np .floating ,
888
+ )
889
+
890
+ check (assert_type (s - 1.0 , pd .Series ), pd .Series , np .floating )
891
+ check (assert_type (1.0 - s , pd .Series ), pd .Series , np .floating )
892
+ # check(
893
+ # assert_type(s.sub(1.0, fill_value=0), pd.Series),
894
+ # pd.Series,
895
+ # np.floating
896
+ # )
897
+
898
+ check (assert_type (s * 2.0 , "pd.Series[float]" ), pd .Series , np .floating )
899
+ check (assert_type (2.0 * s , pd .Series ), pd .Series , np .floating )
900
+ check (assert_type (s .mul (2.0 , fill_value = 0 ), pd .Series ), pd .Series , np .floating )
901
+
869
902
870
903
def test_types_complex_arithmetic () -> None :
871
- """Test adding complex number to pd.Series[float] GH 103."""
904
+ """Test arithmetic of complex numbers GH 103, GH 1098."""
905
+ # TODO: assert_type should always be "pd.Series[complex]"
872
906
c = 1 + 1j
873
- s = pd .Series ([1.0 , 2.0 , 3.0 ])
874
- x = s + c
875
- y = s - c
907
+ s_int = pd .Series ([1 , 2 , 3 ])
908
+ check (assert_type (s_int + c , "pd.Series[complex]" ), pd .Series , complex )
909
+ check (assert_type (s_int - c , pd .Series ), pd .Series , complex )
910
+ check (assert_type (s_int * c , "pd.Series[complex]" ), pd .Series , complex )
911
+ check (assert_type (s_int / c , pd .Series ), pd .Series , complex )
912
+ check (assert_type (s_int .add (c ), "pd.Series[complex]" ), pd .Series , complex )
913
+ # check(assert_type(s_int.sub(c), pd.Series), pd.Series, complex)
914
+ check (assert_type (s_int .mul (c ), pd .Series ), pd .Series , complex )
915
+ # check(assert_type(s_int.div(c), pd.Series), pd.Series, complex)
916
+ check (assert_type (c + s_int , pd .Series ), pd .Series , complex )
917
+ check (assert_type (c - s_int , pd .Series ), pd .Series , complex )
918
+ check (assert_type (c * s_int , pd .Series ), pd .Series , complex )
919
+ check (assert_type (c / s_int , pd .Series ), pd .Series , complex )
920
+
921
+ s_float = s_int .astype (float )
922
+ check (assert_type (s_float + c , "pd.Series[complex]" ), pd .Series , complex )
923
+ check (assert_type (s_float - c , pd .Series ), pd .Series , complex )
924
+ check (assert_type (s_float * c , "pd.Series[complex]" ), pd .Series , complex )
925
+ check (assert_type (s_float / c , pd .Series ), pd .Series , complex )
926
+ check (assert_type (s_float .add (c ), "pd.Series[complex]" ), pd .Series , complex )
927
+ # check(assert_type(s_float.sub(c), pd.Series), pd.Series, complex)
928
+ check (assert_type (s_float .mul (c ), pd .Series ), pd .Series , complex )
929
+ # check(assert_type(s_float.div(c), pd.Series), pd.Series, complex)
930
+ check (assert_type (c + s_float , pd .Series ), pd .Series , complex )
931
+ check (assert_type (c - s_float , pd .Series ), pd .Series , complex )
932
+ check (assert_type (c * s_float , pd .Series ), pd .Series , complex )
933
+ check (assert_type (c / s_float , pd .Series ), pd .Series , complex )
934
+
935
+ s_comp = s_int + c
936
+ check (assert_type (s_comp + c , "pd.Series[complex]" ), pd .Series , complex )
937
+ check (assert_type (s_comp - c , pd .Series ), pd .Series , complex )
938
+ check (assert_type (s_comp * c , "pd.Series[complex]" ), pd .Series , complex )
939
+ check (assert_type (s_comp / c , pd .Series ), pd .Series , complex )
940
+ check (assert_type (s_comp .add (c ), "pd.Series[complex]" ), pd .Series , complex )
941
+ check (assert_type (s_comp .sub (c ), "pd.Series[complex]" ), pd .Series , complex )
942
+ check (assert_type (s_comp .mul (c ), pd .Series ), pd .Series , complex )
943
+ # check(assert_type(s_comp.div(c), pd.Series), pd.Series, complex)
944
+ check (assert_type (c + s_comp , "pd.Series[complex]" ), pd .Series , complex )
945
+ check (assert_type (c - s_comp , pd .Series ), pd .Series , complex )
946
+ check (assert_type (c * s_comp , pd .Series ), pd .Series , complex )
947
+ check (assert_type (c / s_comp , pd .Series ), pd .Series , complex )
948
+
949
+ check (assert_type (s_int + s_comp , "pd.Series[complex]" ), pd .Series , complex )
950
+ check (assert_type (s_int - s_comp , pd .Series ), pd .Series , complex )
951
+ check (assert_type (s_int * s_comp , "pd.Series[complex]" ), pd .Series , complex )
952
+ check (assert_type (s_int / s_comp , pd .Series ), pd .Series , complex )
953
+ check (assert_type (s_comp + s_int , "pd.Series[complex]" ), pd .Series , complex )
954
+ check (assert_type (s_comp - s_int , pd .Series ), pd .Series , complex )
955
+ check (assert_type (s_comp * s_int , "pd.Series[complex]" ), pd .Series , complex )
956
+ check (assert_type (s_comp / s_int , pd .Series ), pd .Series , complex )
957
+ check (assert_type (s_float + s_comp , "pd.Series[complex]" ), pd .Series , complex )
958
+ check (assert_type (s_float - s_comp , pd .Series ), pd .Series , complex )
959
+ check (assert_type (s_float * s_comp , "pd.Series[complex]" ), pd .Series , complex )
960
+ check (assert_type (s_float / s_comp , pd .Series ), pd .Series , complex )
961
+ check (assert_type (s_comp + s_float , "pd.Series[complex]" ), pd .Series , complex )
962
+ check (assert_type (s_comp - s_float , pd .Series ), pd .Series , complex )
963
+ check (assert_type (s_comp * s_float , "pd.Series[complex]" ), pd .Series , complex )
964
+ check (assert_type (s_comp / s_float , pd .Series ), pd .Series , complex )
965
+
966
+ s2_comp = s_comp + c
967
+ check (assert_type (s2_comp + s_comp , "pd.Series[complex]" ), pd .Series , complex )
968
+ check (assert_type (s2_comp - s_comp , pd .Series ), pd .Series , complex )
969
+ check (assert_type (s2_comp * s_comp , "pd.Series[complex]" ), pd .Series , complex )
970
+ check (assert_type (s2_comp / s_comp , pd .Series ), pd .Series , complex )
876
971
877
972
878
973
def test_types_groupby () -> None :
@@ -1636,11 +1731,11 @@ def test_series_multiindex_getitem() -> None:
1636
1731
def test_series_mul () -> None :
1637
1732
s = pd .Series ([1 , 2 , 3 ])
1638
1733
sm = s * 4
1639
- check (assert_type (sm , pd .Series ), pd .Series )
1734
+ check (assert_type (sm , " pd.Series[int]" ), pd .Series , np . integer )
1640
1735
ss = s - 4
1641
1736
check (assert_type (ss , pd .Series ), pd .Series )
1642
1737
sm2 = s * s
1643
- check (assert_type (sm2 , pd .Series ), pd .Series )
1738
+ check (assert_type (sm2 , " pd.Series[int]" ), pd .Series , np . integer )
1644
1739
sp = s + 4
1645
1740
check (assert_type (sp , "pd.Series[int]" ), pd .Series , np .integer )
1646
1741
@@ -3796,6 +3891,7 @@ def test_path_div() -> None:
3796
3891
check (assert_type (folder / files , pd .Series ), pd .Series , Path )
3797
3892
3798
3893
folders = pd .Series ([folder , folder ])
3894
+ folders .__truediv__ (Path ("a.png" ))
3799
3895
check (assert_type (folders / Path ("a.png" ), pd .Series ), pd .Series , Path )
3800
3896
3801
3897
@@ -3892,6 +3988,7 @@ def foo(sf: pd.Series) -> None:
3892
3988
pass
3893
3989
3894
3990
foo (s )
3991
+ s .__add__ (pd .Series ([1 ]))
3895
3992
check (assert_type (s + pd .Series ([1 ]), pd .Series ), pd .Series )
3896
3993
3897
3994
0 commit comments