@@ -659,23 +659,218 @@ def test_types_quantile() -> None:
659659 df .quantile (np .array ([0.25 , 0.75 ]))
660660
661661
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."""
669664 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 ))
679874
680875
681876def test_types_abs () -> None :
0 commit comments