Ë
    AúYjè  ã                   óÆ   — d dl Zd dlZd dlmZmZmZmZm	Z	 d dl
mZ ej                  d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)é    N)Ú	DataFrameÚSeriesÚarrayÚcolÚ
date_rangec                  ó&   — t        g d¢g d¢dœ«      S )z$
    base dataframe for testing
    ©é   é   é   )é   é   é   ©ÚaÚb)r   © ó    úu/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/pandas/tests/series/methods/test_case_when.pyÚdfr      s   € ô
 š9ª9Ñ5Ó6Ð6r   c                 óœ   — d}|dz  }t        j                  t        |¬«      5  | d   j                  d¬«       ddd«       y# 1 sw Y   yxY w)z5
    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"      sK   € ð 5€CØˆ?Ñ€CÜ	�‰”y¨Ô	,ñ 'Ø
ˆ3‰×Ñ 2ÐÔ&÷'÷ 'ñ 'ús   £AÁAc                 óš   — d}|dz  }t        j                  t        |¬«      5  | d   j                  g «       ddd«       y# 1 sw Y   yxY w)z6
    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%       sI   € ð 5€CØÐ.Ñ.€CÜ	�‰”z¨Ô	-ñ Ø
ˆ3‰×Ñ˜"Ô÷÷ ñ ús   £AÁA
c                 óø   — d}|dz  }t        j                  t        |¬«      5  | d   j                  | d   j	                  d«      d| j
                  j                  d«      fg«       ddd«       y# 1 sw Y   yxY w)z4
    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)   *   sk   € ð ,€CØÐ?Ñ?€Cä	�‰”z¨Ô	-ñ <Ø
ˆ3‰×Ñ˜B˜s™GŸJ™J q›M¨1¨b¯d©d¯g©g°a«jÐ9Ð:Ô;÷<÷ <ñ <ús   £AA0Á0A9c                 ó¾   — d}t        j                  t        |¬«      5  | d   j                  | d   j	                  d«      ddgfg«       ddd«       y# 1 sw Y   yxY w)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+   5   sV   € ð 9€CÜ	�‰”z¨Ô	-ñ 5Ø
ˆ3‰×Ñ˜B˜s™GŸJ™J q›M¨A¨q¨6Ð2Ð3Ô4÷5÷ 5ñ 5ús   ž,AÁAc                 óJ  — t        t        j                  t        j                  t        j                  g«      j                  | j                  j                  d«      dfg«      }t        dt        j                  t        j                  g«      }t        j                  ||«       y)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_conditionr5   >   sh   € ô ”R—V‘VœRŸV™V¤R§V¡VÐ,Ó-×7Ñ7¸"¿$¹$¿'¹'À!»*Àa¸Ð8IÓJ€FÜ�qœ"Ÿ&™&¤"§&¡&Ð)Ó*€HÜ×Ñ˜6 8Õ,r   c                 óJ  — t        t        j                  t        j                  t        j                  g«      j                  | j                  j                  d«      dft        g d¢«      dfg«      }t        ddt        j                  g«      }t        j                  ||«       y)zB
    Test output when booleans are derived from a computation
    r
   )FTFr   Nr-   r2   s      r   Ú"test_case_when_multiple_conditionsr7   G   su   € ô ”R—V‘VœRŸV™V¤R§V¡VÐ,Ó-×7Ñ7Ø
�$‰$�'‰'�!‹*�aˆœ6Ò"6Ó7¸Ð;Ð<ó€Fô �q˜!œRŸV™V�nÓ%€HÜ×Ñ˜6 8Õ,r   c                 óX  — t        t        j                  t        j                  t        j                  g«      j                  g d¢df| d   j	                  d«      | d   j                  d«      z  g d¢fg«      }t        ddt        j                  g«      }t        j                  ||«       y)	z0
    Test output when replacement is a list
    ©TFFr
   r   r   r   r	   r   N)r   r.   r/   r   r(   r'   r0   r1   r2   s      r   Ú3test_case_when_multiple_conditions_replacement_listr:   R   s�   € ô ”R—V‘VœRŸV™V¤R§V¡VÐ,Ó-×7Ñ7Ú
 Ð	" R¨¡W§Z¡Z°£]°R¸±W·Z±ZÀ³]Ñ%BÂIÐ$NÐOó€Fô �q˜!œRŸV™V�nÓ%€HÜ×Ñ˜6 8Õ,r   c                 ór  — t        t        j                  t        j                  t        j                  g«      j                  g d¢df| d   j	                  d«      | d   j                  d«      z  t        g d¢d¬«      fg«      }t        dd	t        j                  gd
¬«      }t        j                  ||«       y)z=
    Test output when replacement has an extension dtype
    r9   r
   r   r   r   r	   ÚInt64)Údtyper   ÚFloat64N)	r   r.   r/   r   r(   r'   Úpd_arrayr0   r1   r2   s      r   Ú>test_case_when_multiple_conditions_replacement_extension_dtyper@   ]   s�   € ô ”R—V‘VœRŸV™V¤R§V¡VÐ,Ó-×7Ñ7â! 1Ð%Ø�‰W�Z‰Z˜‹]˜R ™WŸZ™Z¨›]Ñ*¬H²YÀgÔ,NÐOð	
ó€Fô �q˜!œRŸV™V�n¨IÔ6€HÜ×Ñ˜6 8Õ,r   c                 ó�  — t        t        j                  t        j                  t        j                  g«      j                  t        j                  g d¢«      df| d   j                  d«      | d   j                  d«      z  t        g d¢«      fg«      }t        ddt        j                  g«      }t        j                  ||«       y)	z2
    Test output when replacement is a Series
    r9   r
   r   r   r   r	   r   N)	r   r.   r/   r   r   r(   r'   r0   r1   r2   s      r   Ú5test_case_when_multiple_conditions_replacement_seriesrB   k   s“   € ô ”R—V‘VœRŸV™V¤R§V¡VÐ,Ó-×7Ñ7ä�X‰XÒ*Ó+¨QÐ/Ø�‰W�Z‰Z˜‹]˜R ™WŸZ™Z¨›]Ñ*¬F²9Ó,=Ð>ð	
ó€Fô �q˜!œRŸV™V�nÓ%€HÜ×Ñ˜6 8Õ,r   c                  ó4  — t         j                  j                  d¬«      } t        dd¬«      }t	        | j                  d¬«      |g d¢¬	«      }t        d
|j                  d¬«      j                  |j                  j                  d«      |j                  fg«      }|j                  j                  |j                  j                  d«      |j                  «      j                  |j                  j                  d«      d
«      }t        j                  ||«       y)z0
    Test output if index is not RangeIndex
    é{   )Úseedz1/1/2000é   )Úperiods)rF   r   )Úsize)ÚAÚBÚCÚD)ÚindexÚcolumnsr   rI   )rM   Únamer   N)r.   ÚrandomÚdefault_rngr   r   Ústandard_normalr   rM   r   rI   r(   rJ   ÚmaskÚwherer0   r1   )ÚrngÚdatesr   r3   r4   s        r   Útest_case_when_non_range_indexrW   y   sË   € ô �)‰)×
Ñ
 SÐ
Ó
)€CÜ�z¨1Ô-€EÜ	Ø×Ñ ÐÓ(°Ò?Sô
€Bô �A˜RŸX™X¨CÔ0×:Ñ:¸R¿T¹T¿W¹WÀQ»ZÈÏÉÐ<NÐ;OÓP€FØ�t‰t�y‰y˜Ÿ™Ÿ™ › R§T¡TÓ*×0Ñ0°·±·±¸³¸QÓ?€HÜ×Ñ˜6 8Õ,r   c                  ó  — t        j                  ddd«      } t        | «      }|j                  d„ d„ fd„ d„ fg¬«      }t        j                  | | d	k  | d	k\  gd
„ d„ g«      }t        j                  |t        |«      «       y)z#
    Test output on a callable
    g      Àg      @r   c                 ó   — | dk  S ©Nr   r   ©r   s    r   ú<lambda>z)test_case_when_callable.<locals>.<lambda>�   s
   € ˜˜Q™€ r   c                 ó   — |  S ©Nr   r[   s    r   r\   z)test_case_when_callable.<locals>.<lambda>�   s   € ¨B¨3€ r   c                 ó   — | dk\  S rZ   r   r[   s    r   r\   z)test_case_when_callable.<locals>.<lambda>‘   s
   € ˜˜a™€ r   c                 ó   — | S r^   r   r[   s    r   r\   z)test_case_when_callable.<locals>.<lambda>‘   s   € ¨B€ r   r   r   c                 ó   — |  S r^   r   ©Úxs    r   r\   z)test_case_when_callable.<locals>.<lambda>”   s   € ¸A¸2€ r   c                 ó   — | S r^   r   rb   s    r   r\   z)test_case_when_callable.<locals>.<lambda>”   s   € È€ r   N)r.   Úlinspacer   r   Ú	piecewiser0   r1   )rc   Úserr3   r4   s       r   Útest_case_when_callablerh   ‡   s�   € ô
 	�‰�D˜#˜qÓ!€AÜ
�‹)€CØ�]‰]á¡Ð/Ù¡Ð/ð
ð ó €Fô �|‰|˜A  A¡ q¨A¡v˜±¹{Ð0KÓL€HÜ×Ñ˜6¤6¨(Ó#3Õ4r   c                 ó  — | j                  t        d«      j                  t        d«      dkD  dft        d«      dk  dfg«      ¬«      }| j                  t        g d¢| j                  ¬«      ¬«      }t        j                  ||«       y )Nr   r
   é
   r   ©Úout)r   rj   rj   ©rM   ©Úassignr   r   r   rM   r0   Úassert_frame_equalr2   s      r   Ú#test_case_when_expression_conditionrq   ˜   sm   € à�Y‰Yœ3˜s›8×-Ñ-´°C³¸1±¸bÐ/AÄCÈÃHÐPQÁMÐSTÐCUÐ.VÓWˆYÓX€FØ�y‰yœV¢K°r·x±xÔ@ˆyÓA€HÜ×Ñ˜& (Õ+r   c           	      ó*  — | j                  t        d«      j                  | d   dkD  t        d«      dz   f| d   dk  t        d«      dz   fg«      ¬«      }| j                  t        g d¢| j                  ¬«      ¬«      }t        j                  ||«       y )Nr   r
   éd   rk   )r   éf   ég   rm   rn   r2   s      r   Ú%test_case_when_expression_replacementrv   Ÿ   s†   € à�Y‰YÜ�‹H×ÑØ�‰g˜‰kœ3˜s›8 c™>Ð*¨R°©W¸©\¼3¸s»8Àa¹<Ð,HÐIó
ð ó €Fð
 �y‰yœV¢M¸¿¹ÔBˆyÓC€HÜ×Ñ˜& (Õ+r   c                  ó0  — t        ddgddgdœ«      } | j                  t        d«      j                  t        d«      j	                  d«      dfg«      ¬	«      }| j                  t        ddg| j                  ¬
«      ¬	«      }t        j                  ||«       y )NéA   é   ÚJasonÚAnna)ÚagerO   r|   rO   r
   ©Úelderlyrm   )	r   ro   r   r   r'   r   rM   r0   rp   r2   s      r   Ú#test_case_when_expression_in_assignr   ª   s}   € ä	˜B ˜8¨g°vÐ->Ñ?Ó	@€BØ�Y‰Yœs 5›z×3Ñ3´c¸&³k·n±nÀWÓ6MÈqÐ5QÐ4RÓSˆYÓT€FØ�y‰y¤¨¨B¨°r·x±xÔ!@ˆyÓA€HÜ×Ñ˜& (Õ+r   c                  óV  — t        g d¢g d¢dœ«      } d„ t        d«      dz   ft        d«      j                  d«      d	fg}| j                  t        d«      j	                  |¬
«      ¬«      }| j                  t        g d¢| j                  ¬«      ¬«      }t        j                  ||«       y )N)rz   ÚAmyÚBob)é*   rj   r   )rO   r|   c                 ó   — | dk  S )Nrj   r   )Úss    r   r\   z@test_case_when_expression_mixed_args_in_assign.<locals>.<lambda>¶   s
   € �1�r‘6€ r   r|   rs   rO   rz   r
   r   r}   )r
   rj   éi   rm   )	r   r   r'   ro   r   r   rM   r0   rp   ©r   r   r3   r4   s       r   Ú.test_case_when_expression_mixed_args_in_assignrˆ   ²   sŽ   € ä	Ò3ºKÑHÓ	I€Bá	œ3˜u›:¨Ñ+Ð,Ü	ˆV‹�‰˜Ó	  !Ð$ð€Hð �Y‰Yœs 5›z×3Ñ3¸XÐ3ÓFˆYÓG€FØ�y‰y¤ª¸B¿H¹HÔ!EˆyÓF€HÜ×Ñ˜& (Õ+r   c                  ó6  — t        g d¢g d¢dœ«      } t        d«      t        d«      z   dkD  dfg}| j                  t        d«      j                  |¬«      ¬	«      }| j                  t	        g d
¢| j
                  ¬«      ¬	«      }t        j                  ||«       y )N)éÿÿÿÿr
   r   )r   éþÿÿÿr
   r   r   r   r   éc   r   )Úflag)rŠ   r
   rŒ   rm   )r   r   ro   r   r   rM   r0   rp   r‡   s       r   Ú2test_case_when_expression_math_condition_in_assignrŽ   ¾   s}   € ä	šª*Ñ5Ó	6€BÜ�S“œC ›HÑ$ qÑ(¨"Ð-Ð.€HØ�Y‰YœC ›H×.Ñ.¸Ð.ÓAˆYÓB€FØ�y‰yœf¢[¸¿¹ÔAˆyÓB€HÜ×Ñ˜& (Õ+r   c                  ót  — t        dt        j                  ddgi«      } t        d«      j	                  «       dft        d«      dkD  dfg}| j                  t        d«      j                  |¬«      ¬«      }| j                  t        g d	¢| j                  t        ¬
«      ¬«      }t        j                  ||«       y )Nr|   ç      @g      4@Úmissingrj   Úadultr   )Úgroup)r‘   r�   r’   )rM   r=   )r   r.   r/   r   Úisnaro   r   r   rM   Úobjectr0   rp   r‡   s       r   Ú2test_case_when_expression_missing_values_in_assignr–   Ç   s    € ä	�EœBŸF™F C¨Ð.Ð/Ó	0€Bä	ˆU‹�‰Ó	˜IÐ&Ü	ˆU‹�b‰˜'Ð"ð€Hð �Y‰YœS ›Z×1Ñ1¸8Ð1ÓDˆYÓE€FØ�y‰yÜÒ.°b·h±hÄfÔMð ó €Hô ×Ñ˜& (Õ+r   ) Únumpyr.   r   Úpandasr   r   r   r?   r   r   Úpandas._testingÚ_testingr0   Úfixturer   r"   r%   r)   r+   r5   r7   r:   r@   rB   rW   rh   rq   rv   r   rˆ   rŽ   r–   r   r   r   ú<module>rœ      s‡   ðÛ Û ÷õ õ ð ‡�ñ7ó ð7ò'òò<ò5ò-ò-ò-ò-ò-ò-ò5ò",ò,ò,ò	,ò,ó,r   