
    Mh                         S SK rS SKrS SKJrJrJrJr  S SK	J
r  \R                  S 5       rS rS rS rS rS rS	 rS
 rS rS rS rS rg)    N)	DataFrameSeriesarray
date_rangec                  &    [        / SQ/ SQS.5      $ )z
base dataframe for testing
         )         )ab)r        \/var/www/html/env/lib/python3.13/site-packages/pandas/tests/series/methods/test_case_when.pydfr      s    
 99566r   c                     SnUS-  n[         R                  " [        US9   U S   R                  SS9  SSS5        g! , (       d  f       g= f)z-
Raise ValueError if caselist is not a list.
z(The caselist argument should be a list; zinstead got.+matchr   r   caselistN)pytestraises	TypeError	case_whenr   msgs     r   %test_case_when_caselist_is_not_a_listr       sB     5C?C	y	,
32& 
-	,	,s	   =
Ac                     SnUS-  n[         R                  " [        US9   U S   R                  / 5        SSS5        g! , (       d  f       g= f)z.
Raise ValueError if no caselist is provided.
z(provide at least one boolean condition, z!with a corresponding replacement.r   r   N)r   r   
ValueErrorr   r   s     r   test_case_when_no_caselistr#      s@     5C..C	z	-
3" 
.	-	-s	   ?
Ac                     SnUS-  n[         R                  " [        US9   U S   R                  U S   R	                  S5      SU R
                  R                  S5      4/5        SSS5        g! , (       d  f       g= f)z,
Raise ValueError if no of caselist is odd.
zArgument 0 must have length 2; z2a condition and replacement; instead got length 3.r   r   r	   N)r   r   r"   r   eqr   gtr   s     r   test_case_when_odd_caselistr'   )   sb     ,C??C	z	-
3BsGJJqM1bddggaj9:; 
.	-	-s   AA..
A<c                     Sn[         R                  " [        US9   U S   R                  U S   R	                  S5      SS/4/5        SSS5        g! , (       d  f       g= f)z%
Raise Error from within Series.mask
z,Failed to apply condition0 and replacement0.r   r   r	   r
   N)r   r   r"   r   r%   r   s     r   $test_case_when_raise_error_from_maskr)   4   sM     9C	z	-
3BsGJJqMAq6234 
.	-	-s   ,A
Ac                 J   [        [        R                  [        R                  [        R                  /5      R                  U R                  R                  S5      S4/5      n[        S[        R                  [        R                  /5      n[        R                  " X5        g)z$
Test output on a single condition.
r	   Nr   npnanr   r   r%   tmassert_series_equalr   resultexpecteds      r   test_case_when_single_conditionr3   =   sf     RVVRVVRVV,-77"$$''!*a8IJFq"&&"&&)*H6,r   c                 J   [        [        R                  [        R                  [        R                  /5      R                  U R                  R                  S5      S4[        / SQ5      S4/5      n[        SS[        R                  /5      n[        R                  " X5        g)z:
Test output when booleans are derived from a computation
r	   )FTFr
   Nr+   r0   s      r   "test_case_when_multiple_conditionsr5   F   ss     RVVRVVRVV,-77
$$''!*a6"67;<F q!RVVn%H6,r   c                 X   [        [        R                  [        R                  [        R                  /5      R                  / SQS4U S   R	                  S5      U S   R                  S5      -  / SQ4/5      n[        SS[        R                  /5      n[        R                  " X5        g)	z(
Test output when replacement is a list
TFFr	   r   r   r   r   r
   N)r   r,   r-   r   r&   r%   r.   r/   r0   s      r   3test_case_when_multiple_conditions_replacement_listr8   Q   s     RVVRVVRVV,-77
	"RWZZ]RWZZ]%BI$NOF q!RVVn%H6,r   c           	      f   [        [        R                  [        R                  [        R                  /5      R                  / SQS4U S   R	                  S5      U S   R                  S5      -  [        / SQSS94/5      n[        SS	[        R                  /S
S9n[        R                  " X5        g)z5
Test output when replacement has an extension dtype
r7   r	   r   r   r   r   Int64)dtyper
   Float64N)	r   r,   r-   r   r&   r%   pd_arrayr.   r/   r0   s      r   >test_case_when_multiple_conditions_replacement_extension_dtyper>   \   s     RVVRVVRVV,-77!1%WZZ]RWZZ]*HYg,NO	
F q!RVVnI6H6,r   c                    [        [        R                  [        R                  [        R                  /5      R                  [        R                  " / SQ5      S4U S   R                  S5      U S   R                  S5      -  [        / SQ5      4/5      n[        SS[        R                  /5      n[        R                  " X5        g)	z*
Test output when replacement is a Series
r7   r	   r   r   r   r   r
   N)	r   r,   r-   r   r   r&   r%   r.   r/   r0   s      r   5test_case_when_multiple_conditions_replacement_seriesr@   j   s     RVVRVVRVV,-77XX*+Q/WZZ]RWZZ]*F9,=>	
F q!RVVn%H6,r   c                     [         R                  R                  SS9n [        SSS9n[	        U R                  SS9U/ SQS	9n[        S
UR                  SS9R                  UR                  R                  S5      UR                  4/5      nUR                  R                  UR                  R                  S5      UR                  5      R                  UR                  R                  S5      S
5      n[        R                  " X45        g)z(
Test output if index is not RangeIndex
{   )seedz1/1/2000   )periods)rD   r   )size)ABCD)indexcolumnsr   rG   )rK   namer   N)r,   randomdefault_rngr   r   standard_normalr   rK   r   rG   r&   rH   maskwherer.   r/   )rngdatesr   r1   r2   s        r   test_case_when_non_range_indexrU   x   s     ))

S

)Cz1-E	(?S
B ARXXC0::RTTWWQZ<N;OPFttyyRTT*00Q?H6,r   c                     [         R                  " SSS5      n [        U 5      nUR                  S S 4S S 4/S9n[         R                  " X S	:  U S	:  /S
 S /5      n[
        R                  " U[        U5      5        g)z
Test output on a callable
g      g      @r   c                     U S:  $ Nr   r   r   s    r   <lambda>)test_case_when_callable.<locals>.<lambda>   s    Qr   c                     U * $ Nr   rY   s    r   rZ   r[      s    B3r   c                     U S:  $ rX   r   rY   s    r   rZ   r[      s    ar   c                     U $ r]   r   rY   s    r   rZ   r[      s    Br   r   r   c                     U * $ r]   r   xs    r   rZ   r[      s    A2r   c                     U $ r]   r   ra   s    r   rZ   r[      s    r   N)r,   linspacer   r   	piecewiser.   r/   )rb   serr1   r2   s       r   test_case_when_callablerg      s    
 	D#q!A
)C]]//
  F ||AAqAv{0KLH66(#34r   )numpyr,   r   pandasr   r   r   r=   r   pandas._testing_testingr.   fixturer   r    r#   r'   r)   r3   r5   r8   r>   r@   rU   rg   r   r   r   <module>rm      si        7 7'<5------5r   