@@ -659,23 +659,218 @@ def test_types_quantile() -> None:
659
659
df .quantile (np .array ([0.25 , 0.75 ]))
660
660
661
661
662
- @pytest .mark .parametrize ("lower" , [None , 5 , pd .Series ([3 , 4 ])])
663
- @pytest .mark .parametrize ("upper" , [None , 15 , pd .Series ([12 , 13 ])])
664
- @pytest .mark .parametrize ("axis" , [None , 0 , "index" ])
665
- def test_types_clip (lower , upper , axis ) -> None :
666
- def is_none_or_numeric (val : Any ) -> bool :
667
- return val is None or isinstance (val , int | float )
668
-
662
+ def test_dataframe_clip () -> None :
663
+ """Test different clipping combinations for dataframe."""
669
664
df = pd .DataFrame (data = {"col1" : [20 , 12 ], "col2" : [3 , 14 ]})
670
- uses_array = not (is_none_or_numeric (lower ) and is_none_or_numeric (upper ))
671
- if uses_array and axis is None :
672
- with pytest .raises (ValueError ):
673
- df .clip (lower = lower , upper = upper , axis = axis )
674
- else :
675
- check (
676
- assert_type (df .clip (lower = lower , upper = upper , axis = axis ), pd .DataFrame ),
677
- pd .DataFrame ,
678
- )
665
+ if TYPE_CHECKING_INVALID_USAGE :
666
+ df .clip (lower = pd .Series ([4 , 5 ]), upper = None , axis = None ) # type: ignore[call-overload] # pyright: ignore[reportCallIssue, reportArgumentType]
667
+ df .clip (lower = None , upper = pd .Series ([4 , 5 ]), axis = None ) # type: ignore[call-overload] # pyright: ignore[reportCallIssue, reportArgumentType]
668
+ df .clip (lower = pd .Series ([1 , 2 ]), upper = pd .Series ([4 , 5 ]), axis = None ) # type: ignore[call-overload] # pyright: ignore[reportCallIssue, reportArgumentType]
669
+ df .copy ().clip (lower = pd .Series ([1 , 2 ]), upper = None , axis = None , inplace = True ) # type: ignore[call-overload] # pyright: ignore[reportCallIssue, reportArgumentType]
670
+ df .copy ().clip (lower = None , upper = pd .Series ([1 , 2 ]), axis = None , inplace = True ) # type: ignore[call-overload] # pyright: ignore[reportCallIssue, reportArgumentType]
671
+ df .copy ().clip (lower = pd .Series ([4 , 5 ]), upper = pd .Series ([1 , 2 ]), axis = None , inplace = True ) # type: ignore[call-overload] # pyright: ignore[reportCallIssue, reportArgumentType]
672
+
673
+ check (
674
+ assert_type (df .clip (lower = None , upper = None , axis = None ), pd .DataFrame ),
675
+ pd .DataFrame ,
676
+ )
677
+ check (
678
+ assert_type (df .clip (lower = 5 , upper = None , axis = None ), pd .DataFrame ), pd .DataFrame
679
+ )
680
+ check (
681
+ assert_type (df .clip (lower = None , upper = 15 , axis = None ), pd .DataFrame ),
682
+ pd .DataFrame ,
683
+ )
684
+ check (
685
+ assert_type (
686
+ df .clip (lower = None , upper = None , axis = None , inplace = True ), pd .DataFrame
687
+ ),
688
+ pd .DataFrame ,
689
+ )
690
+ check (
691
+ assert_type (df .clip (lower = 5 , upper = None , axis = None , inplace = True ), None ),
692
+ type (None ),
693
+ )
694
+ check (
695
+ assert_type (df .clip (lower = None , upper = 15 , axis = None , inplace = True ), None ),
696
+ type (None ),
697
+ )
698
+
699
+ check (
700
+ assert_type (df .clip (lower = None , upper = None , axis = 0 ), pd .DataFrame ), pd .DataFrame
701
+ )
702
+ check (assert_type (df .clip (lower = 5 , upper = None , axis = 0 ), pd .DataFrame ), pd .DataFrame )
703
+ check (
704
+ assert_type (df .clip (lower = None , upper = 15 , axis = 0 ), pd .DataFrame ), pd .DataFrame
705
+ )
706
+ check (
707
+ assert_type (df .clip (lower = pd .Series ([1 , 2 ]), upper = None , axis = 0 ), pd .DataFrame ),
708
+ pd .DataFrame ,
709
+ )
710
+ check (
711
+ assert_type (df .clip (lower = None , upper = pd .Series ([1 , 2 ]), axis = 0 ), pd .DataFrame ),
712
+ pd .DataFrame ,
713
+ )
714
+ check (
715
+ assert_type (
716
+ df .clip (lower = None , upper = None , axis = "index" , inplace = True ), pd .DataFrame
717
+ ),
718
+ pd .DataFrame ,
719
+ )
720
+ check (
721
+ assert_type (df .clip (lower = 5 , upper = None , axis = "index" , inplace = True ), None ),
722
+ type (None ),
723
+ )
724
+ check (
725
+ assert_type (df .clip (lower = None , upper = 15 , axis = "index" , inplace = True ), None ),
726
+ type (None ),
727
+ )
728
+ check (
729
+ assert_type (
730
+ df .clip (lower = pd .Series ([1 , 2 ]), upper = None , axis = "index" , inplace = True ),
731
+ None ,
732
+ ),
733
+ type (None ),
734
+ )
735
+ check (
736
+ assert_type (
737
+ df .clip (lower = None , upper = pd .Series ([1 , 2 ]), axis = "index" , inplace = True ),
738
+ None ,
739
+ ),
740
+ type (None ),
741
+ )
742
+ check (
743
+ assert_type (df .clip (lower = None , upper = None , axis = "index" ), pd .DataFrame ),
744
+ pd .DataFrame ,
745
+ )
746
+ check (
747
+ assert_type (df .clip (lower = 5 , upper = None , axis = "index" ), pd .DataFrame ),
748
+ pd .DataFrame ,
749
+ )
750
+ check (
751
+ assert_type (df .clip (lower = None , upper = 15 , axis = "index" ), pd .DataFrame ),
752
+ pd .DataFrame ,
753
+ )
754
+ check (
755
+ assert_type (
756
+ df .clip (lower = pd .Series ([1 , 2 ]), upper = None , axis = "index" ), pd .DataFrame
757
+ ),
758
+ pd .DataFrame ,
759
+ )
760
+ check (
761
+ assert_type (
762
+ df .clip (lower = None , upper = pd .Series ([1 , 2 ]), axis = "index" ), pd .DataFrame
763
+ ),
764
+ pd .DataFrame ,
765
+ )
766
+ check (
767
+ assert_type (
768
+ df .clip (lower = None , upper = None , axis = 0 , inplace = True ), pd .DataFrame
769
+ ),
770
+ pd .DataFrame ,
771
+ )
772
+ check (
773
+ assert_type (df .clip (lower = 5 , upper = None , axis = 0 , inplace = True ), None ),
774
+ type (None ),
775
+ )
776
+ check (
777
+ assert_type (df .clip (lower = None , upper = 15 , axis = 0 , inplace = True ), None ),
778
+ type (None ),
779
+ )
780
+
781
+ # without lower
782
+ check (assert_type (df .clip (upper = None , axis = None ), pd .DataFrame ), pd .DataFrame )
783
+ check (assert_type (df .clip (upper = 15 , axis = None ), pd .DataFrame ), pd .DataFrame )
784
+ check (
785
+ assert_type (df .clip (upper = None , axis = None , inplace = True ), pd .DataFrame ),
786
+ pd .DataFrame ,
787
+ )
788
+ check (assert_type (df .clip (upper = 15 , axis = None , inplace = True ), None ), type (None ))
789
+
790
+ check (assert_type (df .clip (upper = None , axis = 0 ), pd .DataFrame ), pd .DataFrame )
791
+ check (assert_type (df .clip (upper = 15 , axis = 0 ), pd .DataFrame ), pd .DataFrame )
792
+ check (
793
+ assert_type (df .clip (upper = pd .Series ([1 , 2 ]), axis = 0 ), pd .DataFrame ),
794
+ pd .DataFrame ,
795
+ )
796
+ check (
797
+ assert_type (df .clip (upper = None , axis = "index" , inplace = True ), pd .DataFrame ),
798
+ pd .DataFrame ,
799
+ )
800
+ check (
801
+ assert_type (df .clip (upper = 15 , axis = "index" , inplace = True ), None ),
802
+ type (None ),
803
+ )
804
+ check (
805
+ assert_type (df .clip (upper = pd .Series ([1 , 2 ]), axis = "index" , inplace = True ), None ),
806
+ type (None ),
807
+ )
808
+ check (assert_type (df .clip (upper = None , axis = "index" ), pd .DataFrame ), pd .DataFrame )
809
+ check (assert_type (df .clip (upper = 15 , axis = "index" ), pd .DataFrame ), pd .DataFrame )
810
+ check (
811
+ assert_type (df .clip (upper = pd .Series ([1 , 2 ]), axis = "index" ), pd .DataFrame ),
812
+ pd .DataFrame ,
813
+ )
814
+ check (
815
+ assert_type (df .clip (upper = None , axis = 0 , inplace = True ), pd .DataFrame ),
816
+ pd .DataFrame ,
817
+ )
818
+ check (assert_type (df .clip (upper = 15 , axis = 0 , inplace = True ), None ), type (None ))
819
+
820
+ # without upper
821
+ check (
822
+ assert_type (df .clip (lower = None , axis = None ), pd .DataFrame ),
823
+ pd .DataFrame ,
824
+ )
825
+ check (assert_type (df .clip (lower = 5 , axis = None ), pd .DataFrame ), pd .DataFrame )
826
+ check (
827
+ assert_type (df .clip (lower = None , axis = None , inplace = True ), pd .DataFrame ),
828
+ pd .DataFrame ,
829
+ )
830
+ check (
831
+ assert_type (df .clip (lower = 5 , axis = None , inplace = True ), None ),
832
+ type (None ),
833
+ )
834
+ check (
835
+ assert_type (df .clip (lower = None , axis = None , inplace = True ), pd .DataFrame ),
836
+ pd .DataFrame ,
837
+ )
838
+
839
+ check (assert_type (df .clip (lower = None , axis = 0 ), pd .DataFrame ), pd .DataFrame )
840
+ check (assert_type (df .clip (lower = 5 , axis = 0 ), pd .DataFrame ), pd .DataFrame )
841
+ check (
842
+ assert_type (df .clip (lower = pd .Series ([1 , 2 ]), axis = 0 ), pd .DataFrame ),
843
+ pd .DataFrame ,
844
+ )
845
+ check (
846
+ assert_type (df .clip (lower = None , axis = "index" , inplace = True ), pd .DataFrame ),
847
+ pd .DataFrame ,
848
+ )
849
+ check (
850
+ assert_type (df .clip (lower = 5 , axis = "index" , inplace = True ), None ),
851
+ type (None ),
852
+ )
853
+ check (
854
+ assert_type (df .clip (lower = pd .Series ([1 , 2 ]), axis = "index" , inplace = True ), None ),
855
+ type (None ),
856
+ )
857
+ check (
858
+ assert_type (df .clip (lower = None , axis = "index" ), pd .DataFrame ),
859
+ pd .DataFrame ,
860
+ )
861
+ check (
862
+ assert_type (df .clip (lower = 5 , axis = "index" ), pd .DataFrame ),
863
+ pd .DataFrame ,
864
+ )
865
+ check (
866
+ assert_type (df .clip (lower = pd .Series ([1 , 2 ]), axis = "index" ), pd .DataFrame ),
867
+ pd .DataFrame ,
868
+ )
869
+ check (
870
+ assert_type (df .clip (lower = None , axis = 0 , inplace = True ), pd .DataFrame ),
871
+ pd .DataFrame ,
872
+ )
873
+ check (assert_type (df .clip (lower = 5 , axis = 0 , inplace = True ), None ), type (None ))
679
874
680
875
681
876
def test_types_abs () -> None :
0 commit comments