ó
    ­œ‘hç# ã                   óø  • S SK J r   S SKrS SKrS SKrS SKJrJrJrJ	r	J
r
JrJr  S SKJr  S SKJr  S SKJr  \R(                  4S jr0 S\R(                  _S\R(                  _S	S _S
\R(                  _S\R(                  _S\R(                  _S\R(                  _S\R(                  _S\R(                  _S\R(                  _S\R(                  _S\R(                  _S\R(                  _SS _S\R(                  _S\R(                  _S\R(                  _S \R(                  \R(                  S \R(                  S.Er\R.                  R1                  S5      S 5       rS rS rS r\R.                  R;                  SSS /5      S! 5       r\R.                  R1                  S5      S" 5       rS# r S$ r!S% r"\R.                  R;                  S&S'/ S(Q\" / S)QS'S*94S'S+// S,Q\" / S)QS'S*9\	" / S-Q5      /4S'S.// S/Q\" / S)QS'S*9\" / S)QS'S*9/4/5      \R.                  R;                  S0SS /5      S1 5       5       r#S2 r$S3 r%S4 r&\R.                  R;                  SSS /5      \R.                  R;                  S5SS /5      \R.                  R;                  S6SS /5      S7 5       5       5       r'S8 r(S9 r)S: r*S; r+S< r,\R.                  R;                  S=S>/\" \-" S?5      5      S S@/SASB/SC.4\" \-" S?5      5      R]                  SD 5      SB/S SA/SC.4\" \-" SE5      5      S S@/SASB/SC.4/5      SF 5       r/SG r0SH r1SI r2\R.                  R;                  SJSSKS/4SSLSM/4SSLS/4SSKSM/4/5      SN 5       r3SO r4SP r5SQ r6\R.                  R;                  SSS /5      SR 5       r7\R.                  R;                  SSS /5      SS 5       r8ST r9SU r:SV r;\R.                  R;                  SWS\" \
Rx                  " \" / SXQSYSZ9/ S[Q/S'S+/S\9/ S)QS]S^94S \" \" / SXQSYSZ9/ S[Q/ S)QS_.5      4/5      S` 5       r=\R.                  R;                  SaS\R(                  \R|                  /5      Sb 5       r?\R€                  Sc 5       rA\R.                  R;                  SdSeSf/5      Sg 5       rB\R.                  R;                  SdSeSf/5      \R.                  R;                  S5S S/5      Sh 5       5       rC\R.                  R;                  SiS\
Rx                  " \	" Sj/S?-  Sk/S?-  -   SYSlSm9\	" / SnQSYSoSm9\	" SS/S?-  5      /5      / SpQ4S \
Rˆ                  " \" SjSk/S Sq9\" / SrQS Sq9\	" SS/5      // SsQS\9SBSBS?S?\R(                  \R(                  SASA\R(                  \R(                  S@S@/4S\
Rˆ                  " \" SjSk/S Sq9\" / SrQS Sq9\	" SS/5      // SsQS\9SBSBS?S?\R(                  \R(                  SASA\R(                  \R(                  S@S@/4/5      St 5       rESu rF\R.                  R;                  Sv/ SwQ/ SxQ/5      Sy 5       rGSz rHS{ rIS| rJS} rKS~ rL\R.                  R;                  S5S S/5      S 5       rM\R.                  R1                  S5      S€ 5       rN\R.                  R;                  S�\Rž                  / SXQ4\R                   / S[Q4/5      S‚ 5       rQSƒ rR\R.                  R;                  S„SS/5      S… 5       rSS† rTS‡ rUSˆ rVS‰ rWSŠ rX\R.                  R;                  S„SS/5      S„\YS5\Z4S‹ j5       r[\R.                  R;                  S„SS/5      S„\YS5\Z4SŒ j5       r\S� r]\R.                  R;                  S„SS/5      SŽ 5       r^S� r_S� r`S‘ ra\R.                  R;                  S’/ S“Q5      \R.                  R;                  SSS /5      S” 5       5       rb\R.                  R;                  S’S•S–/5      \R.                  R;                  SSS /5      S— 5       5       rc\R.                  R;                  S’/ S“Q5      \R.                  R;                  S˜S™Sš/5      \R.                  R;                  SSS /5      S› 5       5       5       rd\R.                  R;                  S’/ S“Q5      \R.                  R;                  S˜/ SœQ5      \R.                  R;                  SSS /5      S� 5       5       5       re\R.                  R;                  S’/ S“Q5      Sž 5       rf\R.                  R;                  SŸS'S+S'S+//5      \R.                  R;                  S S'S+S'S+//5      S¡ 5       5       rg\R.                  R;                  S0SS /5      \R.                  R;                  S S¢/S¢S.//5      S£ 5       5       rhg)¤é    )ÚdatetimeN)ÚCategoricalÚCategoricalIndexÚ	DataFrameÚIndexÚ
MultiIndexÚSeriesÚqcut)ÚSeriesGroupBy)Úget_groupby_method_argsc                 ó~   • S n[         R                  " [        XA5      US9nU R                  XSS9R	                  5       $ )zhReindex to a cartesian production for the groupers,
preserving the nature (Categorical) of each grouper
c                 óÌ   • [        U [        [        45      (       aH  U R                  n[        R                  " [
        R                  " [        U5      5      XR                  S9n U $ )N©Ú
categoriesÚordered)	Ú
isinstancer   r   r   Ú
from_codesÚnpÚarangeÚlenr   )Úar   s     ÚiC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\pandas/tests/groupby/test_categorical.pyÚfÚ)cartesian_product_for_groupers.<locals>.f   sK   € Ü�aÔ*¬KÐ8×9Ñ9ØŸ™ˆJÜ×&Ò&Ü—	’	œ#˜j›/Ó*°zÏ9É9ñˆAð ˆó    ©Únames©Ú
fill_value)r   Úfrom_productÚmapÚreindexÚ
sort_index)ÚresultÚargsr   r   r   Úindexs         r   Úcartesian_product_for_groupersr'      s9   € ò
ô ×#Ò#¤C¨£L¸Ñ>€EØ�>‰>˜%ˆ>Ð7×BÑBÓDÐDr   ÚallÚanyÚcountÚcorrwithÚfirstÚidxmaxÚidxminÚlastÚmaxÚmeanÚmedianÚminÚnthÚnuniqueÚprodÚquantileÚsem)ÚsizeÚskewÚstdÚsumÚvarz7ignore:invalid value encountered in cast:RuntimeWarningc                 óÆ   • [        U R                  S5      nS nU R                  USS9R                  R	                  U5      nUR
                  R                  S   S:X  d   eg )Né   c                 ó€   • U R                  5       U R                  5       U R                  5       U R                  5       S.$ )N©r3   r0   r*   r1   rA   )Úgroups    r   Ú	get_statsÚ2test_apply_use_categorical_name.<locals>.get_statsJ   s0   € à—9‘9“;Ø—9‘9“;Ø—[‘[“]Ø—J‘J“Lñ	
ð 	
r   F©Úobservedr   ÚC)r
   rG   ÚgroupbyÚDÚapplyr&   r   )ÚdfÚcatsrC   r$   s       r   Útest_apply_use_categorical_namerM   F   sX   € ä�—‘�a‹=€Dò
ð �Z‰Z˜ uˆZÐ-×/Ñ/×5Ñ5°iÓ@€FØ�<‰<×Ñ˜aÑ  CÓ'Ð'Ñ'r   c           	      ó  • [        / SQ/ SQSS9n[        / SQUS.5      n[        [        S5      SSS	9n[        S
SSS[        R
                  /0US9nUR                  SSS9R                  5       n[        R                  " XT5        [        / SQ/ SQSS9n[        / SQ/ SQSS9n[        Xg/ SQS.5      nUR                  SSS9n	[        / SQSSS	9n
[        S[        / SQU
S905      nU	R                  SS9n[        R                  " XT5        [        SS/SS/SS//SS/S9n[        UR                  5      US'   UR                  S/SS9nUR                  S  5      n[        R                  " X[S/   5        UR                  S5      nUR                  S!S/   n[        R                  " XT5        S" nS#n[        R                   " ["        US$9   UR%                  U5      nS S S 5        UR                  S!S/   R'                  5       n[)        SS/SS%9Ul        U (       a  S&O[,        nUS   R/                  U5      US'   [        R                  " XT5        [        S
/ S'Q05      n[0        R2                  " UR4                  / S(QS)9nS*n[        R                   " ["        US$9   UR4                  R                  USS9R                  [        5      nS S S 5        [        R6                  " XXS
   5        [        R6                  " UR4                  R                  USS9R                  S+ 5      US
   5        S,n[        R                   " ["        US$9   UR                  USS9R                  [        5      nS S S 5        US
/   n[        R                  " XT5        UR                  USS9nUR                  S- 5      n[        R                  " XXS
/   5        UR                  S. 5      nS/n[        R                   " ["        US$9   UR                  [8        5      nS S S 5        UR                  [        R:                  R<                  5      nUR                  S0 5      n[        R                  " UUS
/   SS19  [        R                  " WUS
/   SS19  [        R                  " UUS
/   5        [        R                  " UUS
/   5        [        R6                  " UR4                  R                  USS9R?                  [        R@                  5      US
   5        [        R                  " UR                  USS9R?                  [        R@                  5      U5        [        S
/ S2Q05      n[0        R2                  " UR4                  / S3QS)9nS*n[        R                   " ["        US$9   UR4                  R                  USS9R                  [        5      nS S S 5        [        R6                  " XXS
   5        [        R6                  " UR4                  R                  USS9R                  S4 5      US
   5        S,n[        R                   " ["        US$9   UR                  USS9R                  [        5      nS S S 5        US
/   n[        R                  " XT5        [        R                  " UR                  USS9R                  S5 5      US
/   5        [        S
/ S6Q05      n[0        R2                  " UR4                  / S7Q[        [        S5      5      S89nUR                  USS9R%                  [B        5      n[        URD                  RF                  URD                  RH                  S99n[        / S6QUS9nS
UR*                  l%        [        R6                  " XT5        / S:Qn[        RL                  RO                  S5      RQ                  S!SS;S<9n[         RR                  " UUSS99n[        [        RL                  RO                  S5      RU                  S=5      5      nUR                  USS9R                  5       nUR                  [        RV                  " U5      SS9R                  5       n[        UURF                  SS9n
URY                  U
5      n[        R                  " XT5        UR                  USS9nUR[                  5       nUR\                  R_                  5       n[        RV                  " U5      Ra                  U5      nURa                  U5      n[        US/ S:QS>9nUR                  USSS?9R[                  5       n[        R                  " UU5        [         RR                  " [        Rb                  " S5      Re                  S@5      USS99n[        U5      n[        Rf                  " URi                  SSA9R*                  Rk                  S!5      U5        [)        / SBQS-  5      n[        Rf                  " URi                  SSA9R*                  Rk                  S5      U5        g ! , (       d  f       GNG= f! , (       d  f       GNl= f! , (       d  f       GNÜ= f! , (       d  f       GNK= f! , (       d  f       GN¦= f! , (       d  f       GN= f)CN©	r   r   r   ÚbrP   rP   ÚcrQ   rQ   ©r   rP   rQ   ÚdTr   ©	é   rU   rU   é   rV   rV   é   r?   é   ©r   rP   ÚabcdrP   ©Únamer   r   rU   rV   r?   ©r&   FrE   ©r   r   rP   rP   ©r   rP   Úz©rQ   rS   rQ   rS   ©rQ   rS   Úy©rU   rV   rW   r?   ©ÚAÚBÚvaluesrf   rh   )rW   é   r   ©Únumeric_onlyzJohn P. Doez	Jane DoveÚ	person_idÚperson_name©Úcolumnsc                 ó   • U $ ©N© ©Úxs    r   Ú<lambda>Útest_basic.<locals>.<lambda>v   s   € ¡1r   r   c                 ó>   • U R                  S5      R                  S   $ )Nrm   r   )Údrop_duplicatesÚilocrs   s    r   r   Útest_basic.<locals>.f}   s   € Ø× Ñ  Ó/×4Ñ4°QÑ7Ð7r   ú7DataFrameGroupBy.apply operated on the grouping columns©Úmatch©r\   Ústr)rX   é   é   )r   é
   é   é   é(   )Úbinsúusing SeriesGroupBy.sumc                 ó.   • [         R                  " U 5      $ rq   ©r   r<   ©Úxss    r   ru   rv   •   ó   € ¼R¿VºVÀB¼Zr   zusing DataFrameGroupBy.sumc                 ó,   • [         R                  " U SS9$ ©Nr   ©Úaxis©r   r0   rŠ   s    r   ru   rv   Ÿ   s   € ¤b§f¢f¨R°aÒ&8r   c                 ó,   • [         R                  " U SS9$ rŽ   r‘   rŠ   s    r   ru   rv   ¢   s   € ¤r§v¢v¨b°qÒ'9r   zusing DataFrameGroupBy.maxc                 ó@   • [         R                  R                  U 5      $ rq   )r   ÚmaximumÚreducerŠ   s    r   ru   rv   ¨   s   € ¤r§z¡z×'8Ñ'8¸Ô'<r   )Úcheck_dtype)rX   r€   r�   éûÿÿÿ)iöÿÿÿr   r‚   rƒ   r„   r…   c                 ó.   • [         R                  " U 5      $ rq   r‰   rŠ   s    r   ru   rv   ½   rŒ   r   c                 ó.   • [         R                  " U 5      $ rq   r‰   rŠ   s    r   ru   rv   Ç   s   € ¼2¿6º6À"¼:r   )rU   r   r   r   ©r   rU   rV   rW   r?   )Úlabels©r   ©ÚfooÚbarÚbazÚquxéd   ©r9   ©r¢   r?   )r   r   ©ÚsortrF   é   ©Úfuture_stack©r*   r1   r;   r3   z25%z50%z75%r0   )6r   r   r   Úlistr   ÚnanrH   r1   ÚtmÚassert_frame_equalr	   r<   rm   Ú	transformrx   ry   Úassert_produces_warningÚFutureWarningrJ   Úcopyr   r&   ÚobjectÚastypeÚpdÚcutr   Úassert_series_equalr0   r”   r•   Úfilterr(   r   rh   r   r   r\   ÚrandomÚdefault_rngÚintegersr   Ústandard_normalÚasarrayr"   ÚdescribeÚcodesÚargsortÚtaker   ÚrepeatÚassert_index_equalÚstackÚget_level_values) Úusing_infer_stringrL   ÚdataÚ	exp_indexÚexpectedr$   Úcat1Úcat2rK   ÚgbÚexp_idxrt   Úgr   ÚmsgÚdtyperQ   ÚgbcÚresult2Úresult3Úresult4Úresult5Úlevelsr¿   ÚgroupedÚdesc_resultÚidxÚ
ord_labelsÚord_dataÚexp_catsÚexpcÚexps                                    r   Ú
test_basicrß   V   s›  € ÜÚ5Ú'Øñ€Dô
 Ò6¸TÑBÓC€Dä ¤ f£°CÀÑF€IÜ˜#  1 a¬¯©Ð0Ð1¸ÑC€HØ�\‰\˜#¨ˆ\Ð.×3Ñ3Ó5€FÜ×Ò˜&Ô+äÒ+ºÐQUÑV€DÜÒ+ºÐQUÑV€DÜ	˜²LÑAÓ	B€Bð 
�‰�C %ˆÐ	(€BÜš°SÀ$ÑG€GÜ˜(¤Fª9¸GÑ$DÐEÓF€HØ�V‰V ˆVÐ&€FÜ×Ò˜&Ô+ô 	Ø
ˆ]Ð	˜a Ð-°°=Ð/AÐBØ˜mÐ,ñ	€Aô # 1§=¡=Ó1€A€mÑà	�	‰	�;�-¨%ˆ	Ð0€AØ�[‰[™Ó%€FÜ×Ò˜& ] OÑ"4Ô5à×Ñ˜}Ó-€FØ�v‰v�q˜!�f‰~€HÜ×Ò˜&Ô+ò8ð D€CÜ	×	#Ò	#¤M¸Ó	=Ø—‘˜“ˆ÷ 
>à�v‰v�q˜!�f‰~×"Ñ"Ó$€HÜ˜A˜q˜6¨Ñ4€H„NÞ'‰E¬V€EØ& }Ñ5×<Ñ<¸UÓC€Hˆ]ÑÜ×Ò˜&Ô+ô 
�CšÐ%Ó	&€BÜ
�Šˆr�t‰tÒ-Ñ.€Aà
#€CÜ	×	#Ò	#¤M¸Ó	=à—‘—‘˜a¨%�Ð0×:Ñ:¼3Ó?ˆ÷ 
>ô ×Ò˜6 c¡7Ô+ä×ÒØ
�‰�‰�Q ˆÐ'×1Ñ1Ñ2GÓHÈ"ÈSÉ'ôð '€CÜ	×	#Ò	#¤M¸Ó	=à—‘˜A¨�Ð.×8Ñ8¼Ó=ˆ÷ 
>ð �3�%‰y€HÜ×Ò˜&Ô+à
�*‰*�Q ˆ*Ð
'€CØ�]‰]Ñ8Ó9€FÜ×Ò˜& c U¡)Ô,à�m‰mÑ9Ó:€GØ
&€CÜ	×	#Ò	#¤M¸Ó	=à—-‘-¤Ó$ˆ÷ 
>ð �m‰mœBŸJ™J×-Ñ-Ó.€GØ�m‰mÑ<Ó=€GÜ×Ò˜' 2 s e¡9¸%Ò@Ü×Ò˜' 2 s e¡9¸%Ò@Ü×Ò˜' 2 s e¡9Ô-Ü×Ò˜' 2 s e¡9Ô-ô ×Ò˜2Ÿ4™4Ÿ<™<¨°E˜<Ð:×AÑAÄ"Ç&Á&ÓIÈ2ÈcÉ7ÔSÜ×Ò˜"Ÿ*™* Q°˜*Ð7×>Ñ>¼r¿v¹vÓFÈÔKô 
�CšÐ)Ó	*€BÜ
�Šˆr�t‰tÒ2Ñ3€Aà
#€CÜ	×	#Ò	#¤M¸Ó	=à—‘—‘˜a¨%�Ð0×:Ñ:¼3Ó?ˆ÷ 
>ô ×Ò˜6 c¡7Ô+ä×ÒØ
�‰�‰�Q ˆÐ'×1Ñ1Ñ2GÓHÈ"ÈSÉ'ôð '€CÜ	×	#Ò	#¤M¸Ó	=à—‘˜A¨�Ð.×8Ñ8¼Ó=ˆ÷ 
>ð �3�%‰y€HÜ×Ò˜&Ô+ä×ÒØ
�
‰
�1˜uˆ
Ð%×/Ñ/Ñ0EÓFÈÈCÈ5É	ôô
 
�CšÐ&Ó	'€BÜ
�Šˆr�t‰t’_¬[¼¸f»Ó-FÑG€AØ�Z‰Z˜ EˆZÐ*×0Ñ0´Ó5€Fä  §¡×!4Ñ!4¸a¿h¹h×>NÑ>NÑO€IÜ’l¨)Ñ4€HØ€H‡N�NÔÜ×Ò˜6Ô,ò *€FÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸Ð-Ð=€Eä×!Ò! %¨¸Ñ>€Dä”R—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸hÓGÓH€Dà�\‰\˜$¨ˆ\Ð/×4Ñ4Ó6€Fà�|‰|œBŸJšJ tÓ,°uˆ|Ð=×BÑBÓD€HÜ˜v°$·/±/È4ÑP€GØ×Ñ Ó(€Hä×Ò˜&Ô+à�l‰l˜4¨%ˆlÐ0€GØ×"Ñ"Ó$€Kà
�*‰*×
Ñ
Ó
€CÜ—’˜DÓ!×&Ñ& sÓ+€JØ�y‰y˜‹~€HäØ˜DÒ-Iñ€Hð ×Ñ ¨u¸uÐÐE×NÑNÓP€HÜ×Ò˜+ xÔ0ô ×!Ò!¤"§)¢)¨A£,×"5Ñ"5°aÓ"8¸&È$ÑO€DÜ
˜4Ó
 €CÜ×ÒØ	×	Ñ	¨Ð	Ð	-×	3Ñ	3×	DÑ	DÀQÓ	GÈ#ôô ÒKÈaÑOÓ
P€CÜ×ÒØ	×	Ñ	¨Ð	Ð	-×	3Ñ	3×	DÑ	DÀQÓ	GÈ#õ÷o 
>Ö	=ú÷ 
>Ö	=ú÷ 
>Ö	=ú÷ 
>Ö	=ú÷& 
>Ö	=ú÷ 
>Ö	=úsH   ÇhÊ.h1Í
$iÏ;iÖ.i'Ù$i9è
h.è1
i é
ié
i$é'
i6é9
jc           
      ó.  • [        [        R                  " SSS5      [        [	        SS/5      [        S5      /S/S-  S/S-  -   [        S5      /S	S
/S9S9nUR                  S	/U S9n[        [        R                  " SSS5      [        [	        SS/5      [        S5      /S/S-  [        S5      /S	S
/S9S9nSn[        R                  " [        US9   UR                  S5      nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)NrV   é   r   rP   r‚   r   rX   rU   ÚIndex1ÚIndex2)rÖ   r¿   r   ©rÇ   r&   ©ÚlevelrF   é   z&you will need to pass a length-1 tupler|   )r   r   r   r   r   ÚrangerH   r­   r°   r±   Ú	get_groupr®   )rF   rK   rÎ   rÉ   rÏ   r$   s         r   Útest_level_get_grouprê   ý   s  € ä	Ü�YŠY�q˜"˜aÓ ÜÜ$ c¨3 ZÓ0´%¸³)Ð<Ø�3˜‘7˜a˜S 1™WÑ$¤e¨B£iÐ0Ø˜XÐ&ñ
ñ
€Bð 	�
‰
˜(˜¨hˆ
Ð7€Aô Ü�YŠY�q˜"˜aÓ ÜÜ$ c¨3 ZÓ0´%¸³(Ð;Ø�3˜‘7œE !›HÐ%Ø˜XÐ&ñ
ñ€Hð 3€CÜ	×	#Ò	#¤M¸Ó	=à—‘˜SÓ!ˆ÷ 
>ô ×Ò˜& (Õ+÷	 
>Õ	=ús   ÃDÄ
Dc                  ó¾  • [        S/S-  S/S-  -   / SQS-  [        R                  " S5      S.5      n [        U R                  / SQS	S
9U l        U R                  S5      S   R                  5       nUR                  SS	S9n/ SQn[        U/ SQS	S
9n/ SQ[        U5      /n[        R                  " USS/S9n[        S/S-  USS9n[        R                  " X5        g )Nrf   é   rg   )ÚhighÚmedÚlowr?   g      (@)rB   ÚdoseÚoutcomes)rï   rî   rí   Tr   rB   rð   r   )ræ   Úsort_remaining)rï   rî   rí   rï   rî   rí   )rf   rf   rf   rg   rg   rg   r   rV   r*   ©r&   r\   )r   r   r   r   rð   rH   Úvalue_countsr#   r   r   Úfrom_arraysr	   r­   r·   ©rK   r$   r&   rÉ   s       r   Ú(test_sorting_with_different_categoricalsr÷     sÝ   € ä	à�U˜Q‘Y # ¨¡Ñ*Ú*¨QÑ.ÜŸ	š	 $›ñ	
ó
€Bô ˜"Ÿ'™'Ò.DÈdÑS€B„Gà�Z‰Z˜Ó  Ñ(×5Ñ5Ó7€FØ×Ñ Q°tÐÐ<€FÚ8€EÜ˜Ò*@È$ÑO€EÚ+Ô-=¸eÓ-DÐE€EÜ×"Ò" 5°¸&Ð0AÑB€EÜ�q�c˜A‘g U°Ñ9€HÜ×Ò˜6Õ,r   r   TFc                 óŽ  • [        [        S5      U S9n[        [        S5      SS/U S9n[        R                  " [	        U5      5      n[        X!US.5      nUR                  SS	/S
S9n[        R                  " X!/SS	/S9n[        / SQUS/S9nUR                  S 5      n[        R                  " X‡5        UR                  5       n[        R                  " X‡5        Sn	[        R                  " [        U	S9   UR                  [        R                  5      nS S S 5        [        R                  " X‡5        [        R                  " X!/SS	/S9n[!        SUS9nSn	[        R                  " [        U	S9   UR                  S 5      nS S S 5        [        R"                  " X‡5        g ! , (       d  f       N“= f! , (       d  f       N6= f)NÚabcrœ   Úaaar   rP   r   )ÚmissingÚdenserh   rû   rü   TrE   r   )r   rU   ç       @rh   )r&   ro   c                 ó,   • [         R                  " U SS9$ rŽ   )r   r1   rs   s    r   ru   Útest_apply.<locals>.<lambda>A  s   € ¤R§W¢W¨Q°QÒ%7r   zusing DataFrameGroupBy.meanr|   rU   r]   r{   c                 ó   • g©NrU   rr   rs   s    r   ru   rÿ   R  s   € ¨r   )r   r«   r   r   r   r   rH   r   rõ   rJ   r­   r®   r1   r°   r±   Úaggr	   r·   )
r   rü   rû   rh   rK   r×   rÙ   rÉ   r$   rÏ   s
             r   Ú
test_applyr  1  sr  € ô œ˜U›¨WÑ5€Eô œ$˜u›+°3¸°*ÀgÑN€GÜ�YŠY”s˜5“zÓ"€FÜ	˜wÀ&ÑIÓ	J€BØ�j‰j˜) WÐ-¸ˆjÐ=€Gô ×
 Ò
  'Ð!1¸)ÀWÐ9MÑ
N€CÜš¨C¸(¸ÑD€Hà�]‰]Ñ7Ó8€FÜ×Ò˜&Ô+à�\‰\‹^€FÜ×Ò˜&Ô+à
'€CÜ	×	#Ò	#¤M¸Ó	=à—‘œRŸW™WÓ%ˆ÷ 
>ô ×Ò˜&Ô+ô ×
 Ò
  'Ð!1¸)ÀWÐ9MÑ
N€CÜ�a˜sÑ#€HØ
C€CÜ	×	#Ò	#¤M¸Ó	=Ø—‘™{Ó+ˆ÷ 
>ä×Ò˜6Õ,÷ 
>Õ	=ú÷ 
>Õ	=ús   Ã8 F%Å3F6Æ%
F3Æ6
Gc           	      óÞ  • U(       a3  U(       d,  U R                  [        R                  R                  SS95        [	        / SQ/ SQSS9n[	        / SQ/ SQSS9n[        X4/ S	QS
.5      nSS/S-  US'   UR                  / SQUS9n[        R                  " X4SS/S-  // SQS9n[        S[        / S	QUS905      R                  5       nUR                  5       n	U(       d  [        XƒUSS//[        S5      SS9n[        R                  " X˜5        UR                  SS/US9n[        R                  " X4/SS/S9n[        / S	Q/ SQS.US9nUR                  5       n	U(       d  [        XƒU/[        S5      SS9n[        R                  " X˜5        [	        / SQ/ SQSS9/ SQ/ SQS .n
[        U
5      nUR                  S!US9nUR!                  5       n	[#        [        S"5      S![        S#5      SS$9n[        S%S%/S&S'/S(.US9nU(       d/  [#        [        S#5      S![        S#5      SS$9nUR%                  U5      n[        R                  " X˜5        UR                  S!S)/US9nUR'                  S*5      n	[        / S+Q[	        / SQ/ SQSS9/ S,QS-.5      R)                  S!S)/5      nU(       d&  [        X…R*                  R,                  S.S//S!S)/5      n[        R                  " X˜5        S/ HP  nUu  nnUR/                  U5      n	XUR*                  U:H  UR0                  U:H  -     n[        R                  " X˜5        MR     / S0Q/ S1Q/ S2QS3.n
[        U
5      n[2        R4                  " US   [6        R8                  " SS4S55      5      nUUS6'   UR                  S6S7/S8US99nUR'                  S*5      n	UR                  S6S7/SUS99nUR'                  S*5      R;                  5       n[        R                  " X˜5        g ):NzTODO(infer_string)©Úreasonr^   r_   Tr   ra   rb   rd   re   rž   rŸ   rV   rG   )rf   rg   rG   rE   r   rh   r]   ÚABCr   r   rf   rg   )rž   rŸ   rž   rŸ   )rh   rG   ÚAB)r   rP   r   rP   ©r   rP   rQ   ©rU   rU   rV   rV   ©r‚   rƒ   r„   r…   )ÚcatÚintsÚvalr  Úabrù   )r\   r   r   g      ø?ç      4@r„   )r  r  r  r1   )ç      $@g      >@r  g      D@©rU   rV   rU   rV   )r  r  r  rU   ))r   rU   )rP   rV   )rP   rU   )r   rV   )r‚   r§   r?   r§   r?   rU   rU   ©r‚   rƒ   r„   r…   é2   é<   éF   )rS   rQ   Úer   r   rS   rQ   ©rž   rŸ   r    r‚   rW   rè   r    F©Úas_indexrF   )ÚapplymarkerÚpytestÚmarkÚxfailr   r   rH   r   rõ   r	   r#   r<   r'   r«   r­   r®   r1   r   r"   r  Ú	set_indexr  rh   ré   r  rµ   r¶   r   ÚlinspaceÚreset_index)ÚrequestrÆ   rF   rÊ   rË   rK   rÌ   rÈ   rÉ   r$   rS   Úgroups_single_keyr&   Úgroups_double_keyÚkeyrQ   Úir  ÚgroupsÚgroups2s                       r   Útest_observedr)  V  sÖ  € ö ¦(à×ÑœFŸK™K×-Ñ-Ð5IÐ-ÐJÔKäÒ+ºÐQUÑV€DÜÒ+ºÐQUÑV€DÜ	˜²LÑAÓ	B€BØ�eˆn˜qÑ €B€s�Gð 
�‰’O¨hˆÐ	7€BÜ×&Ò&Ø	�e˜U�^ aÑ'Ð(²ñ€Iô ˜(¤Fª<¸yÑ$IÐJÓK×VÑVÓX€HØ�V‰V‹X€FÞÜ1Ø˜T E¨5 >Ð2´D¸³KÈAñ
ˆô ×Ò˜&Ô+à	�‰�S˜#�J¨ˆÐ	2€BÜ×&Ò&¨ |¸CÀ¸:ÑF€IÜÚÒ&BÑCÈ9ñ€Hð �V‰V‹X€FÞÜ1Ø˜T�l¤D¨£J¸1ñ
ˆô ×Ò˜&Ô+ô Ú ª_Àdñ
ò Úñ	€Aô 
�1‹€Bð Ÿ
™
 5°8˜
Ð<ÐØ×#Ñ#Ó%€Fä ÜˆT‹
˜¬4°«;Àñ€Iô  3¨ *°d¸B°ZÑ@È	ÑR€HÞÜ Ü�‹K˜e´°U³ÀTñ
ˆð ×#Ñ# EÓ*ˆä×Ò˜&Ô+ð Ÿ
™
 E¨6 ?¸X˜
ÐFÐØ×"Ñ" 6Ó*€FÜâ+ÜÚ$²È$ñò !ñ	
ó÷ �i�˜�Ó ð ö Ü1Ø—v‘v—}‘} q¨! fÐ-°°v¨ó
ˆô ×Ò˜&Ô+ó 8ˆØ‰ˆˆ1Ø"×,Ñ,¨SÓ1ˆØ—v‘v ‘{ r§w¡w°!¡|Ñ4Ñ5ˆÜ
×Ò˜fÖ/ñ	 8ò &Ú+Ú2ñ	€Aô
 
�1‹€BÜ
�&Š&��E‘œBŸKšK¨¨2¨qÓ1Ó
2€CØ€B€w�KØ�Z‰Z˜ %Ð(°5À8ˆZÐL€FØ�Z‰Z˜Ó€Fà�j‰j˜' 5Ð)°DÀ8ˆjÐL€GØ�{‰{˜6Ó"×.Ñ.Ó0€HÜ×Ò˜&Õ+r   c                 óˆ  • / SQ/ SQ/ SQS.n[        U5      n[        R                  " US   / SQ5      nSUl        UR	                  US/U S	9n[
        R                  " U/ SQ/SS/S
9n[        / SQ/ SQS.US9nU (       d  [        XcR                  / SQ/SS/5      nUR                  S5      n[        R                  " Xv5        g )N)rW   rW   r?   rX   rd   )r‚   r¢   éÈ   é"   )ÚC1ÚC2ÚC3r-  )rU   rV   rW   rì   r  r.  rE   r   )ç      @r0  g      @g      @)r  g      Y@g      i@g      A@)r-  r/  r]   r1   )r   rµ   r¶   r\   rH   r   rõ   r'   rh   r  r­   r®   )rF   rS   rK   rh   r$  rÙ   rÉ   r$   s           r   Útest_observed_codes_remapr1  É  s»   € Ú¢<Ò7IÑJ€AÜ	�1‹€BÜ�VŠV�B�t‘HšlÓ+€FØ€F„KØŸ
™
 F¨D >¸H˜
ÐEÐä
×
 Ò
  &ª,Ð!7ÀÀt¸}Ñ
M€CÜÚ#Ò+EÑFÈcñ€Hö Ü1Ø—}‘}¢lÐ3°e¸T°]ó
ˆð ×"Ñ" 6Ó*€FÜ×Ò˜&Õ+r   c            
      óp  • [        [        R                  R                  S5      R	                  SSSS9[        R                  R                  S5      R	                  SSSS9[        R                  R                  S5      R	                  SSSS9SS.5      n U R
                  R                  [        5      R                  S5      U S	'   U R                  / S
QSS9nUR                  5       nUR                  R                  S   R                  5       U R
                  R                  5       :X  d   eUR                  R                  S   R                  5       U R                  R                  5       :X  d   eUR                  R                  S   R                  5       U R                  R                  5       :X  d   eg )NrV   r   éÿ   i0u  r£   é'  )r  Úint_idÚother_idrž   Úcategoryr  )r  r5  r6  TrE   rU   )r   r   r¹   rº   r»   r  r´   r   rH   r*   r&   rÖ   r5   r5  r6  )rK   r×   r$   s      r   Útest_observed_perfr8  Ý  sZ  € ô 
ä—9‘9×(Ñ(¨Ó+×4Ñ4°Q¸À%Ð4ÐHÜ—i‘i×+Ñ+¨AÓ.×7Ñ7¸¸3ÀUÐ7ÐKÜŸ	™	×-Ñ-¨aÓ0×9Ñ9¸!¸UÈÐ9ÐOØñ		
ó
€Bð —‘—‘œcÓ"×)Ñ)¨*Ó5€B€u�Ià�j‰jÒ6ÀˆjÐF€GØ�]‰]‹_€FØ�<‰<×Ñ˜qÑ!×)Ñ)Ó+¨r¯v©v¯~©~Ó/?Ó?Ð?Ð?Ø�<‰<×Ñ˜qÑ!×)Ñ)Ó+¨r¯y©y×/@Ñ/@Ó/BÓBÐBÐBØ�<‰<×Ñ˜qÑ!×)Ñ)Ó+¨r¯{©{×/BÑ/BÓ/DÓDÐDÑDr   c                 ó&  • [        / SQ/ SQS9n[        U/ SQS.5      nUR                  SU S9nUR                  nU (       a  [	        SS	/S
S9[	        S/S
S9S.nO![	        SS	/S
S9[	        / S
S9[	        S/S
S9S.n[
        R                  " XE5        g )N)r   rQ   r   r	  ©r   ©rU   rV   rW   ©r  Úvalsr  rE   r   rV   Úint64©rÐ   rU   )r   rQ   )r   r   rH   r'  r   r­   Úassert_dict_equal)rF   r  rK   rÎ   r$   rÉ   s         r   Útest_observed_groupsrA  ò  s˜   € ô ’o²/Ñ
B€CÜ	˜3ª	Ñ2Ó	3€BØ
�
‰
�5 8ˆ
Ð,€Aà�X‰X€FÞÜ  1˜v¨WÑ5¼EÀ1À#ÈWÑ<UÑV‰ô ˜˜1�v WÑ-Ü�r Ñ)Ü˜�s 'Ñ*ñ
ˆô ×Ò˜Õ*r   z,keys, expected_values, expected_index_levelsr   )r€   é	   r   r;  r~   rP   )	ri   r§   r   r   r   rB  r   r   r   ©r?   rX   rì   Úa2)	r€   r   r   r   rB  r   r   r   r   Útest_seriesc                 ó¬  • [        [        / SQ/ SQS9[        / SQ/ SQS9/ SQ/ SQS.5      R                  SS/5      nS	U ;  a  UR                  S	S
9nUR	                  U SS9nU(       a  US   nUR                  5       n[        U 5      S:X  a  UnO/ SQS/ SQ-  /n[        UUU S9n[        SU0US9n	U(       a  U	S   n	[        R                  " Xi5        g )N©rU   rU   rV   r;  r:  rC  )ri   r§   rB  )r   rD  rP   rQ   r   rD  rP   rn   FrE   rQ   rU   ©	r   r   r   rU   rU   rU   rV   rV   rV   rW   ©r   rU   rV   )r¿   r   r]   )
r   r   r  ÚdroprH   r<   r   r   r­   Úassert_equal)
ÚkeysÚexpected_valuesÚexpected_index_levelsrE  rK   rÌ   r$   r&   r¿   rÉ   s
             r   Útest_unobserved_in_indexrO    sÞ   € ô, 
äšY²9Ñ=Üši²IÑ>ÚÚñ		
ó
÷ �i��d�Óð ð �$ƒà�W‰W˜SˆWÐ!ˆà	�‰�D 5ˆÐ	)€BÞØ�‰WˆØ�V‰V‹X€Fä
ˆ4ƒy�Aƒ~Ø%‰â,¨a²)©mÐ<ˆÜØ!ØØñ
ˆô
 ˜#˜Ð/°uÑ=€HÞØ˜C‘=ˆÜ‡O‚O�FÕ%r   c                 ó*  • [        [        S[        R                  S// SQS9/ SQS.5      nUR	                  SU S9nUR
                  nU (       a  S[        SS	/S
S90nO [        SS	/S
S9[        / S
S9[        / S
S9S.n[        R                  " X45        g )Nr   )r   rP   rS   r:  r;  r<  r  rE   r   rV   r>  r?  )	r   r   r   r¬   rH   r'  r   r­   r@  )rF   rK   rÎ   r$   rÉ   s        r   Útest_observed_groups_with_nanrQ  =  s™   € ä	ä ¤R§V¡V¨SÐ1ºoÑNÚñ	
ó
€Bð 	�
‰
�5 8ˆ
Ð,€AØ�X‰X€FÞØœ  1˜v¨WÑ5Ð6‰ô ˜˜1�v WÑ-Ü�r Ñ)Ü�r Ñ)ñ
ˆô
 ×Ò˜Õ*r   c                  ó$  • [        S[        R                  [        R                  // SQS9n [        / SQ5      n[	        XS.5      nUR                  SSS9S	   R                  S
5      nUS	   R                  S
/   n[        R                  " X45        g )Nr   r	  r:  r;  )r  Úserr  FrE   rS  r   )
r   r   r¬   r	   r   rH   r4   ry   r­   r·   )r  rS  rK   r$   rÉ   s        r   Útest_observed_nthrT  R  sx   € ä
�sœBŸF™F¤B§F¡FÐ+ºÑ
H€CÜ
’Ó
€CÜ	˜3Ñ+Ó	,€Bà�Z‰Z˜¨ˆZÐ.¨uÑ5×9Ñ9¸!Ó<€FØ�%‰y�~‰~˜q˜cÑ"€HÜ×Ò˜6Õ,r   c                 óÊ  • [        [        R                  S[        R                  S// SQS9n[        / SQ5      n[	        XS.5      nUR                  SU S9R                  5       R                  5       nU (       a  [	        [        S// SQS9S/S.5      nO9[	        [        / SQ/ SQS9S[        R                  [        R                  /S.5      n[        R                  " XE5        g )	Nr   r	  r:  rd   )Ús1Ús2rV  rE   rV   )
r   r   r¬   r	   r   rH   r,   r!  r­   r®   )rF   rV  rW  rK   r$   rÉ   s         r   Ú#test_dataframe_categorical_with_nanrX  ]  s·   € ä	”b—f‘f˜c¤2§6¡6¨3Ð/ºOÑ	L€BÜ	’Ó	€BÜ	˜"Ñ'Ó	(€BØ�Z‰Z˜ xˆZÐ0×6Ñ6Ó8×DÑDÓF€FÞÜÜ ˜u²ÑAÈ!ÈÑMó
‰ô ä!¢/ºoÑNØœ"Ÿ&™&¤"§&¡&Ð)ñó
ˆô ×Ò˜&Õ+r   rF   r¦   c                 ó€  • [        / SQ/ SQU S9n[        / SQ5      n[        X4S.5      nUR                  SXS9S   R	                  S5      n[        UR
                  R                  S	S
9n[        UR                  5      nU(       d  SXwR                  5       '   [        X7:H  5      (       d  SU  SU SU SU 3n U5       eg )N)rS   r   rP   r   rS   rP   )r   rP   rû   rS   r   )Úlabelr  rZ  )rF   r¦   r  r,   r³   r?  rû   zDLabels and aggregation results not consistently sorted
for (ordered=z, observed=z, sort=z
)
Result:
)	r   r	   r   rH   Ú	aggregater&   ÚarrayÚisnar(   )	r   rF   r¦   rZ  r  rK   r$   ÚaggrrÏ   s	            r   Ú0test_dataframe_categorical_ordered_observed_sortr_  q  sÖ   € ô Ú&Ú-Øñ€Eô
 Ò/Ó
0€CÜ	˜UÑ/Ó	0€Bð �Z‰Z˜¨(ˆZÐ>¸uÑE×OÑOÐPWÓX€Fô �6—<‘<×%Ñ%¨XÑ6€EÜ�&—,‘,Ó€DÞØ%ˆ�Y‰Y‹[ÑÜˆu‰}×ÑðØ#˜9 K°¨z¸ÀÀð GØ�xð!ð 	ð
 	�cÓˆuð r   c                  óü  • [         R                  " SSS9n [        R                  R	                  S5      R                  SSSS9n[        R                  " XSS	9n[        [        R                  R	                  S5      R                  S
5      5      nUR                  USS9R                  5       nUR                  [        R                  " U5      SS9R                  5       nUR                  U 5      n[        UR                  UR                  SS9Ul        [         R"                  " XE5        UR                  USS9nUR%                  5       nUR&                  R)                  5       nUR+                  U5      n	UR+                  U5      n
U
R                  U	SS9R%                  5       n[         R"                  " Xu5        [         R,                  " UR                  UR                  5        [         R,                  " UR                  R/                  S5      UR                  R/                  S5      5        [        R                  " [        R0                  " S5      R3                  S5      U SS	9n[        U5      n[         R,                  " UR5                  SS9R                  R/                  S5      U5        [7        / SQS-  5      n[         R,                  " UR5                  SS9R                  R/                  S5      U5        g )Nz
2014-01-01r?   )ÚperiodsrV   r   r¢   r£   Trœ   r¤   FrE   r   r§   r¨   rª   rU   )rµ   Ú
date_ranger   r¹   rº   r»   r   r   r   r¼   rH   r1   r½   r"   r   r&   r­   r®   r¾   r¿   rÀ   rÁ   rÃ   rÅ   r   rÂ   rÄ   r   )rÖ   r¿   rL   rÇ   r$   rÉ   r×   rØ   rÙ   rÚ   rÛ   rÝ   rÞ   s                r   Útest_datetimerc  ”  sV  € ä�]Š]˜<°Ñ3€FÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸Ð-Ð=€Eä×!Ò! %¸Ñ>€Dä”R—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸hÓGÓH€DØ�\‰\˜$¨ˆ\Ð/×4Ñ4Ó6€Fà�|‰|œBŸJšJ tÓ,°uˆ|Ð=×BÑBÓD€HØ×Ñ Ó'€HÜ%Ø�‰ 8§>¡>¸4ñ€H„Nô ×Ò˜&Ô+à�l‰l˜4¨%ˆlÐ0€GØ×"Ñ"Ó$€Kà
�*‰*×
Ñ
Ó
€CØ—‘˜3“€JØ�y‰y˜‹~€HØ×Ñ 
°UÐÐ;×DÑDÓF€HÜ×Ò˜+Ô0Ü×Ò˜+×+Ñ+¨X¯^©^Ô<Ü×ÒØ×Ñ×*Ñ*¨1Ó-¨x¯~©~×/NÑ/NÈqÓ/Qôô
 ×!Ò!¤"§)¢)¨A£,×"5Ñ"5°aÓ"8¸&È$ÑO€DÜ
˜4Ó
 €CÜ×ÒØ	×	Ñ	¨Ð	Ð	-×	3Ñ	3×	DÑ	DÀQÓ	GÈ#ôô ÒKÈaÑOÓ
P€CÜ×ÒØ	×	Ñ	¨Ð	Ð	-×	3Ñ	3×	DÑ	DÀQÓ	GÈ#õr   c                  óˆ  • [         R                  R                  S5      n / SQnU R                  SSSS9n[        R
                  " X!SS9n[        [         R                  " [         R                  " S5      S5      R                  S	S5      [        S
5      S9nX4S'   UR                  S5      R                  SSS9R                  5       nU[        S
5         R                  UR                  SS9R                  5       n[        [        R
                  " / SQUSS9SS9Ul        ["        R$                  " XV5        UR                  SSS9R                  5       nU[        S
5         R                  UR                  SS9R                  5       n[        [        R
                  " / SQUSS9SS9Ul        ["        R$                  " XV5        g )NrV   r�   r   r?   rƒ   r£   Trœ   éÿÿÿÿrZ   rn   rL   Frå   rE   ©r   rU   rV   rW   r~   )r   r¹   rº   r»   r   r   r   rÂ   r   Úreshaper«   r  rH   r<   r¿   r   r&   r­   r®   )ÚsrÖ   r¿   rL   rK   r$   rÉ   s          r   Útest_categorical_indexri  ¿  st  € Ü
�	‰	×Ñ˜aÓ €AÚ)€FØ�J‰J�q˜! "ˆJÐ%€EÜ×!Ò! %¸Ñ>€DÜ	”2—9’9œRŸYšY r›]¨AÓ.×6Ñ6°r¸1Ó=ÄtÈFÃ|Ñ	T€BØ€v�Jð �\‰\˜&Ó!×)Ñ)°¸EÐ)ÐB×FÑFÓH€FØ”$�v“,Ñ×'Ñ'¨¯
©
¸UÐ'ÐC×GÑGÓI€HÜ%Ü×Òš|¨V¸TÑBÈñ€H„Nô ×Ò˜&Ô+ð �Z‰Z˜¨ˆZÐ/×3Ñ3Ó5€FØ”$�v“,Ñ×'Ñ'¨¯
©
¸UÐ'ÐC×GÑGÓI€HÜ%Ü×Òš|¨V¸TÑBÈñ€H„Nô ×Ò˜&Õ+r   c                  ó¶  • [        / SQ/ SQSS9n [        [        R                  R	                  S5      R                  S5      U S9nUR                  / SQS	-  5      R                  5       n[        R                  " UR                  SS
9R                  U 5        [        R                  " UR                  SS
9R                  R                  U R                  5        g )N)r¡   rž   r    rŸ   r�   Tr   rV   )rƒ   r?   rn   rd   rX   r¨   )r   r   r   r¹   rº   r¼   rH   r¾   r­   rÃ   rÄ   ro   Úassert_categorical_equalrh   )rL   rK   r$   s      r   Ú!test_describe_categorical_columnsrl  Ø  s¨   € äÚ$Ú/Øñ€Dô
 
”2—9‘9×(Ñ(¨Ó+×;Ñ;¸GÓDÈdÑ	S€BØ�Z‰Zš qÑ(Ó)×2Ñ2Ó4€Fä×Ò˜&Ÿ,™,°D˜,Ð9×AÑAÀ4ÔHÜ×ÒØ�‰ $ˆÐ'×/Ñ/×6Ñ6¸¿¹õr   c                  ó:  • [        [        S5      SS/S-  [        S5      S-  S.5      n U S   R                  S	5      U S'   U R	                  S
S/SS9S   R                  5       R                  5       nUR                  5       n[        SS/SSS9n[        R                  " UR                  U5        [        R                  " UR                  R                  UR                  5        US   US   -   n[        SS/[        SS/S
S9S9n[        R                   " X$5        g )Nr‚   rf   rg   rX   ÚXYXXYrV   )r   ÚmediumÚartistro  r7  rp  FrE   r   ©r   r\   rì   r?   ÚXÚYr~   r]   )r   rè   r«   r´   rH   r*   Úunstackr¾   r   r­   rÃ   ro   rk  rh   r	   r   r·   )rK   Úgcatr$   Úexp_columnsrÉ   s        r   Útest_unstack_categoricalrw  è  sÿ   € ä	Ü�B‹i C¨ :°¡>¼TÀ'»]ÈQÑ=NÑOó
€Bð �h‘<×&Ñ& zÓ2€B€x�Là�:‰:�x Ð*°Uˆ:Ð;¸CÑ@×FÑFÓH×PÑPÓR€DØ�]‰]‹_€Fä" C¨ :°uÀ8ÑL€KÜ×Ò˜&Ÿ.™.¨+Ô6Ü×Ò §¡× 5Ñ 5°{×7IÑ7IÔJà�#‰Y˜˜c™Ñ"€FÜ�q˜!�f¤E¨3°¨*¸8Ñ$DÑE€HÜ×Ò˜6Õ,r   c                  óh  • [        [        R                  [        R                  SSSSSSSS/
5      n [        R                  " U R                  5       R                  S5      n[        R                  " [        SS9   U R                  U5      R                  5         S S S 5        g ! , (       d  f       g = f)NrU   rV   rW   r?   z$Grouper and axis must be same lengthr|   )r	   r   r¬   rµ   r¶   Údropnarh   r  ÚraisesÚ
ValueErrorrH   r1   )Úseriesr†   s     r   Útest_bins_unequal_lenr}  û  sx   € ä”R—V‘VœRŸV™V Q¨¨1¨a°°A°q¸!Ð<Ó=€FÜ�6Š6�&—-‘-“/×(Ñ(¨!Ó,€Dô 
�Š”zÐ)OÓ	PØ�‰�tÓ×!Ñ!Ô#÷ 
Q×	PÖ	Pús   Á: B#Â#
B1r|  rÇ   r?   rW   rU   rV   ©rf   rg   c                 ó   • U S-   $ r  rr   )rÙ   s    r   ru   ru     s   € ¨S°1ªWr   ri   c                 óÞ   • U R                  [        [        S5      SS9SS9nUR                  [        5      n[        U[	        UR                  5       5      S9n[        R                  " X45        g )NÚABBAr7  r?  FrE   r]   )rH   r	   r«   r[  r   rL  r­   r·   )r|  rÇ   rH   r$   rÉ   s        r   Útest_categorical_seriesr‚    sW   € ð  �n‰nœV¤D¨£L¸
ÑCÈeˆnÐT€GØ×ÑœtÓ$€FÜ�dÔ"2°4·9±9³;Ó"?Ñ@€HÜ×Ò˜6Õ,r   c                  ó¨  ^• [        [        / SQ/ SQ5      / SQ/ SQS.5      mTR                  SS/SS	S
9R                  5       n [        [        SS/TR                  R                  R
                  S9SS/SS/S./ SQS9n[        R                  " X5        U4S jnSn[        R                  " [        US9   TR                  SU/SS	S
9R                  5       n S S S 5        [        [        SS/TR                  R                  R
                  S9SS/SS/S./ SQS9n[        R                  " X5        [        / SQSS9nSn[        R                  " [        US9   TR                  SU/SS	S
9R                  5       n S S S 5        [        R                  " X5        SS/n[        [        SS/TR                  R                  R
                  S9SS/SS/S./ SQS9nS HP  n[        [        S5      US9Tl        TR                  USS	S
9R                  5       n [        R                  " X5        MR     g ! , (       d  f       GN_= f! , (       d  f       NÍ= f)N©rU   rV   rV   r;  )r‚   é   r…  )ée   éf   ég   )r  rf   rg   r  rf   FTr  rU   rV   r:  r‚   r…  r†  éÍ   rn   c                 ó&   >• TR                   U S4   $ )Nrf   )Úloc)ÚrrK   s    €r   ru   Útest_as_index.<locals>.<lambda>0  s   ø€ �"—&‘&˜˜C˜’.r   z*A grouping .* was excluded from the resultr|   rá   )r   rP   rP   r~   )Nrr  rg   rù   )r   r   rH   r<   r  r   r­   r®   r°   r±   r	   r   r«   r&   )r$   rÉ   r   rÏ   rh  Úgroup_columnsr\   rK   s          @r   Útest_as_indexr�    s  ø€ ä	äšyª)Ó4ÚÚ ñ	
ó
€Bð �Z‰Z˜ ˜¨u¸tˆZÐD×HÑHÓJ€FÜä  1˜v°"·&±&·*±*×2GÑ2GÑHØ�b�Ø�s�ñ	
ò
 "ñ€Hô ×Ò˜&Ô+ô 	!€AØ
6€CÜ	×	#Ò	#¤M¸Ó	=Ø—‘˜U A˜J°À�ÐF×JÑJÓLˆ÷ 
>ää  1˜v°"·&±&·*±*×2GÑ2GÑHØ�b�Ø�s�ñ	
ò
 "ñ€Hô ×Ò˜&Ô+ô 	Š UÑ+€AØ
6€CÜ	×	#Ò	#¤M¸Ó	=Ø—‘˜U A˜J°À�ÐF×JÑJÓLˆ÷ 
>ä×Ò˜&Ô+ð ˜C�L€MÜä  1˜v°"·&±&·*±*×2GÑ2GÑHØ�b�Ø�s�ñ	
ò
 "ñ€Hó !ˆÜœ˜e›¨4Ñ0ˆŒØ—‘˜M°EÀD�ÐI×MÑMÓOˆä
×Ò˜fÖ/ò	 !÷= 
>Ö	=ú÷ 
>Õ	=ús   Â7"H1Å"IÈ1
I É
Ic            	      ó  • [        S5      n [        S[        [        S5      U SS905      n[        X SSS9n[        [        S5      U SSS9n[        R
                  " UR                  SSSS	9R                  5       R                  U5        [        R
                  " UR                  SSSS	9R                  5       R                  U5        [        S[        [        S5      U SS905      n[        X SSS9n[        [        S5      [        S5      SSS9n[        R
                  " UR                  SSSS	9R                  5       R                  U5        [        R
                  " UR                  SSSS	9R                  5       R                  U5        g )
Nrù   rf   ÚbaTr   rq  ÚbacFr¥   )	r«   r   r   r   r­   rÃ   rH   r,   r&   )r   rK   r#   Únosort_indexs       r   Útest_preserve_categoriesr”  W  s]  € ä�e“€Jô 
�Cœ¤T¨$£Z¸JÐPTÑUÐVÓ	W€BÜ! *À$ÈSÑQ€JÜ#¤D¨£K°ÀTÐPSÑT€LÜ×ÒØ
�
‰
�3˜T¨Eˆ
Ð2×8Ñ8Ó:×@Ñ@À*ôô ×ÒØ
�
‰
�3˜U¨Uˆ
Ð3×9Ñ9Ó;×AÑAÀ<ôô
 
�Cœ¤T¨$£Z¸JÐPUÑVÐWÓ	X€BÜ! *À%ÈcÑR€Jô $¤D¨£K´°e³ÀeÐRUÑV€LÜ×ÒØ
�
‰
�3˜T¨Eˆ
Ð2×8Ñ8Ó:×@Ñ@À*ôô ×ÒØ
�
‰
�3˜U¨Uˆ
Ð3×9Ñ9Ó;×AÑAÀ<õr   c                  ó˜  • [        / SQ/ SQ[        [        S5      [        S5      SS9[        [        S5      [        S5      SS9S.5      n [        S	S
[        R                  /SS[        R                  /[        [        S5      [        S5      SS9[        [        S5      [        S5      SS9S.5      nS H’  nU R                  USSS9R                  SS9nU R                  USSS9R                  SS9R                  5       nUR                  UR                  S9n[        R                  " X55        [        R                  " XE5        M”     g )N)rU   rV   rU   rU   rV   )r‚   é   rá   é   r,  Úabaabr’  Fr   T)rf   rg   r-  r.  rý   g      ð?g      9@r  )r-  r.  ©Úbyr  rF   rj   rn   )r   r   r«   r   r¬   rH   r1   r!  r"   ro   r­   r®   )rK   Úexp_fullÚcolÚresult1rÒ   rÉ   s         r   Útest_preserve_categorical_dtyperž  u  s)  € ä	â Ú%Üœd 7›m¼¸U»ÈUÑSÜœd 7›m¼¸U»ÈTÑRñ		
ó
€Bô à�sœBŸF™FÐ#Ø˜œbŸf™fÐ%Üœd 5›k´d¸5³kÈ5ÑQÜœd 5›k´d¸5³kÈ4ÑPñ		
ó€Hó ˆØ—*‘* ¨e¸e�*ÐD×IÑIØð Jð 
ˆð �J‰J˜#¨°uˆJÐ=ß‰T˜tˆTÐ$ß‰[‹]ð 	ð
 ×#Ñ#¨G¯O©OÐ#Ð<ˆÜ
×Ò˜gÔ0Ü
×Ò˜gÖ0ò r   zfunc, valuesÚsecondÚfourthÚthirdc                 óˆ  • [        / SQSS9n[        / SQUS.5      nUR                  S5      n[        X@5      " 5       n[        SS/[	        XR
                  S	9S.5      R                  S5      n[        R                  " XV5        UR                  S5      S
   n[        Xp5      " 5       nUS
   n[        R                  " XV5        g )N)r,   rŸ  r¡  r   Trœ   )re  éþÿÿÿre  r£  )Úpayloadrœ  r¤  r£  re  r?  rœ  )
r   r   rH   Úgetattrr	   rÐ   r  r­   r®   r·   )Úfuncrh   rQ   rK   rÎ   r$   rÉ   Úsgbs           r   Útest_preserve_on_ordered_opsr¨  –  s±   € ô 	Ò:ÀDÑI€AÜ	Ò/¸Ñ:Ó	;€BØ
�
‰
�9Ó€AÜ�QÔÓ€FÜØ˜�H¤V¨F¿'¹'Ñ%BÑCóç�i�	Óð ô ×Ò˜&Ô+ð �*‰*�YÓ
 Ñ
&€CÜ�SÔÓ!€FØ˜‰€HÜ×Ò˜6Õ,r   c                  óx  • [        [        R                  R                  S5      R	                  S5      5      n [        R
                  " / SQ5      n[        R                  " U/ SQSS9nU R                  USS9R                  5       nU R                  USS9R                  5       n[        UR                  UR                  UR                  S	9Ul        [        R                  " X45        [        R
                  " / S
Q5      n[        R                  " U/ SQSS9nU R                  USS9R                  5       nU R                  USS9R                  5       R!                  UR                  5      n[        UR                  UR                  UR                  S	9Ul        [        R                  " X45        [        / SQ/ SQSS	9n[#        / SQUS.5      n U R                  SSS9R                  5       nUS   R$                  n[        R
                  " SSS[        R&                  /5      n[        R(                  " X45        g )NrV   rB  rH  rI  Trœ   FrE   r   )	r   r   r   rU   rU   rU   rW   rW   rW   rf  rO   rR   rT   rY   rP   r   rU   r?   )r	   r   r¹   rº   r¼   r\  r   r   rH   r1   r   r&   r   r   r­   r·   r"   r   rh   r¬   Úassert_numpy_array_equal)rÇ   r¿   rL   r$   rÞ   s        r   Útest_categorical_no_compressr«  ²  s½  € Ü”"—)‘)×'Ñ'¨Ó*×:Ñ:¸1Ó=Ó>€Dä�HŠHÒ0Ó1€EÜ×!Ò! %ª¸DÑA€Dà�\‰\˜$¨ˆ\Ð/×4Ñ4Ó6€FØ
�,‰,�u uˆ,Ð
-×
2Ñ
2Ó
4€Cä Ø�	‰	˜dŸo™o°t·|±|ñ€C„Iô ×Ò˜6Ô'ä�HŠHÒ0Ó1€EÜ×!Ò! %ª¸tÑD€Dà�\‰\˜$¨ˆ\Ð/×4Ñ4Ó6€FØ
�,‰,�u uˆ,Ð
-×
2Ñ
2Ó
4×
<Ñ
<¸T¿_¹_Ó
M€CÜ Ø�	‰	˜dŸo™o°t·|±|ñ€C„Iô ×Ò˜6Ô'äÚ5Ú'Øñ€Dô
 Ò6¸TÑBÓC€Dà�\‰\˜#¨ˆ\Ð.×3Ñ3Ó5€FØ�C‰[×Ñ€FÜ
�(Š(�A�q˜!œRŸV™VÐ$Ó
%€CÜ×Ò Õ,r   c            	      óê   • [        S /S-  [        / SQ5      S.5      n U R                  S5      R                  5       S   n[	        [        / SS/S9[	        / S	SS
9SS9n[
        R                  " X5        g )NrW   )Útrainr­  Útestr~  rf   rg   r®  r­  r:  r³   ©rÐ   r\   ró   )r   r   rH   r,   r	   r­   r·   ©rK   r$   rÉ   s      r   Ú test_groupby_empty_with_categoryr±  ×  sr   € ô 
˜$˜ !™¬+Ò6PÓ*QÑRÓ	S€BØ�Z‰Z˜‹_×"Ñ"Ó$ SÑ)€FÜÜ�B F¨GÐ#4Ñ5Ü�R˜x¨cÑ2Øñ€Hô
 ×Ò˜6Õ,r   c                  ó\  • [        S[        R                  R                  S5      R	                  SSS5      05      n [        SSS5       Vs/ s H  o SUS-    3PM     nn[        X"5      nU R                  S/S	S
9n [        R                  " U R                  [        SSS5      SUS9U S'   U R                  S/SS9S   R                  5       nU[        UR                  S S9   n[        UR                  UR                  R                   S9Ul        ["        R$                  " XE5        g s  snf )NÚvaluerV   r   r4  r¢   iô  z - ió  T)rš  Ú	ascendingi)  F)Úrightr›   Úvalue_grouprE   c                 ó:   • [        U R                  5       S   5      $ )Nr   )ÚfloatÚsplitrs   s    r   ru   Útest_sort.<locals>.<lambda>ö  s   € ¬e°A·G±G³I¸a±LÔ.Ar   )r%  r~   )r   r   r¹   rº   r»   rè   r   Úsort_valuesrµ   r¶   r³  rH   r*   Úsortedr&   r   r\   r­   r·   )rK   r&  r›   Ú
cat_labelsÚresrÞ   s         r   Ú	test_sortr¿  å  s  € ô 
�GœRŸY™Y×2Ñ2°1Ó5×>Ñ>¸qÀ%ÈÓMÐNÓ	O€BÜ(-¨a°¸Ô(<Ó=Ò(< 1��3�q˜‘u�gÓÑ(<€FÐ=Ü˜VÓ,€Jà	�‰˜G˜9°ˆÐ	5€BÜŸšØ
�‰”%˜˜5 #Ó&¨e¸Jñ€B€}Ñð �*‰*�m�_¨uˆ*Ð
5°mÑ
D×
JÑ
JÓ
L€CØ
Œf�S—Y‘YÑ$AÑBÑ
C€CÜ  §¡°·±·±Ñ@€C„IÜ×Ò˜3Õ$ùò >s   ÁD)c           
      óT  • [        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ// SQS	9n[        US
   US9US
'   UR                  S
U SS9R                  5       nU (       a  SS/SS/SS/SS//n/ SQnOSS/SS/SS/SS//n/ SQn[        USS/[	        US
US9S9n[
        R                  " X65        g )N)ú	(7.5, 10]r‚   r‚   )rÁ  r§   rƒ   )ú(2.5, 5]rX   r„   )ú(5, 7.5]rì   r…   )rÂ  r?   r  )ú(0, 2.5]rU   r  )rÃ  ri   r  )rè   rž   rŸ   rn   rè   rœ   Fr¥   rU   r  rX   r„   rì   r…   r‚   )rÄ  rÂ  rÃ  rÁ  )rÁ  rÂ  rÃ  rÄ  rž   rŸ   r[   ©ro   r&   )r   r   rH   r,   r   r­   r®   )r¦   r   rK   r$   Údata_valuesÚindex_valuesrÉ   s          r   Ú
test_sort2rÈ  û  sÙ   € ô
 
â!Ú ÚÚÚÚÚð	
ò (ñ
€Bô ˜b ™k°7Ñ;€B€w�KØ�Z‰Z˜ d°UˆZÐ;×AÑAÓC€FæØ˜2�w  B ¨!¨R¨°2°r°(Ð;ˆÚH‰à˜B�x ! R ¨1¨b¨'°A°r°7Ð;ˆÚHˆÜØØ˜�Ü˜|°'À7ÑKñ€Hô ×Ò˜&Õ+r   c                 óš  • [        [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      // SQ/ SQS./ SQS	9n[        US
   US9US
'   U (       aA  SS/SS/SS/SS//n[        SSS5      [        SSS5      [        SSS5      [        SSS5      /nO@SS/SS/SS/SS//n[        SSS5      [        SSS5      [        SSS5      [        SSS5      /n[        USS/[        US
US9S9nUR	                  S
U SS9R                  5       n[        R                  " Xe5        g )NiÛ  ri   rU   rV   rX   )r‚   r§   rX   rì   r?   rU   ri   r  )Údtrž   rŸ   rn   rÊ  rœ   r  r„   rì   r…   r‚   rž   rŸ   r[   rÅ  Fr¥   )r   r   r   r   rH   r,   r­   r®   )r¦   r   rK   rÆ  rÇ  rÉ   r$   s          r   Útest_sort_datetimelikerË    s�  € ô 
ô ˜˜q !Ó$Ü˜˜q !Ó$Ü˜˜q !Ó$Ü˜˜q !Ó$Ü˜˜q !Ó$Ü˜˜q !Ó$Ü˜˜q !Ó$ðò *Ú/ñ	
ò %ñ
€Bô$ ˜2˜d™8¨WÑ5€B€t�HÞØ˜2�w  B ¨!¨R¨°2°r°(Ð;ˆä�T˜1˜aÓ Ü�T˜1˜aÓ Ü�T˜1˜aÓ Ü�T˜1˜aÓ ð	
‰ð ˜B�x ! R ¨1¨b¨'°A°r°7Ð;ˆä�T˜1˜aÓ Ü�T˜1˜aÓ Ü�T˜1˜aÓ Ü�T˜1˜aÓ ð	
ˆô ØØ˜�Ü˜|°$ÀÑHñ€Hð
 �Z‰Z˜ 4°%ˆZÐ8×>Ñ>Ó@€FÜ×Ò˜&Õ+r   c                  óþ  • [        [        / SQ/ SQS9/ SQS.5      n [        / SQSS9nU R                  SSS	9R                  R                  5       n[        / S
QUSS9n[        R                  " X#5        U R                  SSS	9R                  R                  SS9n[        / S
QUSS9n[        R                  " X#5        U R                  SSS	9R                  R                  SS9n[        SS[        R                  /USS9n[        R                  " X#5        U R                  SSS	9R                  R                  SS9n[        S[        R                  [        R                  /USS9n[        R                  " X#5        g )N©r   r   rP   r	  r:  ©rU   rV   rU   r~  rf   r~   FrE   )rW   rU   r   rg   r   ©Ú	min_countrU   rW   rV   )r   r   r   rH   rg   r<   r	   r­   r·   r   r¬   ©rK   Úexpected_idxr$   rÉ   s       r   Útest_empty_sumrÓ  Q  sM  € ä	Üš/²oÑFÊYÑWó
€Bô $¢O¸#Ñ>€Lð �Z‰Z˜ eˆZÐ,×.Ñ.×2Ñ2Ó4€FÜ’i °CÑ8€HÜ×Ò˜6Ô,ð �Z‰Z˜ eˆZÐ,×.Ñ.×2Ñ2¸QÐ2Ð?€FÜ’i °CÑ8€HÜ×Ò˜6Ô,ð �Z‰Z˜ eˆZÐ,×.Ñ.×2Ñ2¸QÐ2Ð?€FÜ�q˜!œRŸV™V�n l¸Ñ=€HÜ×Ò˜6Ô,ð �Z‰Z˜ eˆZÐ,×.Ñ.×2Ñ2¸QÐ2Ð?€FÜ�qœ"Ÿ&™&¤"§&¡&Ð)¨<¸cÑB€HÜ×Ò˜6Õ,r   c                  ó0  • [        [        / SQ/ SQS9/ SQS.5      n [        / SQSS9nU R                  SSS	9R                  R                  5       n[        / S
QUSS9n[        R                  " X#5        U R                  SSS	9R                  R                  SS9n[        / S
QUSS9n[        R                  " X#5        U R                  SSS	9R                  R                  SS9n[        SS[        R                  /USS9n[        R                  " X#5        g )NrÍ  r	  r:  rÎ  r~  rf   r~   FrE   )rV   rU   rU   rg   r   rÏ  rU   rV   )r   r   r   rH   rg   r6   r	   r­   r·   r   r¬   rÑ  s       r   Útest_empty_prodrÕ  m  sú   € ä	Üš/²oÑFÊYÑWó
€Bô $¢O¸#Ñ>€Lð �Z‰Z˜ eˆZÐ,×.Ñ.×3Ñ3Ó5€FÜ’i °CÑ8€HÜ×Ò˜6Ô,ð �Z‰Z˜ eˆZÐ,×.Ñ.×3Ñ3¸aÐ3Ð@€FÜ’i °CÑ8€HÜ×Ò˜6Ô,ð �Z‰Z˜ eˆZÐ,×.Ñ.×3Ñ3¸aÐ3Ð@€FÜ�q˜!œRŸV™V�n l¸Ñ=€HÜ×Ò˜6Õ,r   c                  óô  • [        [        [        S5      5      [        [        [        R                  " SSSS95      S-  5      [
        R                  " S5      S.5      n U R                  SS	/S
S9R                  5       n[        R                  " [        / SQ5      [        [        R                  " SSSS95      /SS	/S9n[        SSSSSSSS[
        R                  S/	0US9n[        R                  " X5        g )NÚ	abcbabcbaz2018-06-01 00Ú1minrW   )Úfreqra  rB  )Úkey1Úkey2rh   rÚ  rÛ  FrE   r	  r   rh   r   r?   r§   rX   rì   rV   r]   )r   r   r«   rµ   rb  r   r   rH   r1   r   r    r¬   r­   r®   )rK   r$   rÙ   rÉ   s       r   Ú,test_groupby_multiindex_categorical_datetimerÜ  …  så   € ô 
ä¤ [Ó 1Ó2ÜÜ”R—]’] ?¸ÈÑKÓLÈqÑPóô —i’i “lñ	
ó
€Bð �Z‰Z˜ Ð(°5ˆZÐ9×>Ñ>Ó@€Fä
×
!Ò
!äšÓ(ÜœŸš o¸FÈAÑNÓOð	
ð �vÐñ€Cô ˜( Q¨¨1¨a°°A°q¼"¿&¹&À!Ð$DÐEÈSÑQ€HÜ×Ò˜&Õ+r   zas_index, expectedrG  r7  r?  r„  r   rt   )r&   rÇ   r\   ©r   rP   rt   c                 ó²   • [        [        / SQSS9/ SQ/ SQS.5      nUR                  SS/U S	S
9S   R                  5       n[        R
                  " X15        g )NrG  r7  r?  r„  r;  rÝ  r   rP   Tr  rt   )r   r	   rH   r<   r­   rK  )r  rÉ   rK   r$   s       r   Ú,test_groupby_agg_observed_true_single_columnrß  ž  sS   € ô6 
Ü’Y jÑ1º	Ê	ÑRó
€Bð �Z‰Z˜˜c˜
¨XÀˆZÐEÀcÑJ×NÑNÓP€Fä‡O‚O�FÕ%r   r   c                 óŒ   • [        / SQ/ SQSS9n[        / SQ/ SQSS9nUR                  SU S9n[        R                  " X25        g )NrR   Fr   )Nr   rP   rQ   rU   r   )r   Úshiftr­   rK  )r   ÚctrÉ   r¾  s       r   Ú
test_shiftrã  Â  sH   € ä	ÚÒ)=Àuñ
€Bô ÚÒ*>Èñ€Hð �(‰(�1 ˆ(Ð
,€CÜ‡O‚O�CÕ"r   c                 óÊ   • U R                  5       SS nUS   R                  S5      US'   US   R                  S5      US'   [        / SQ5      US'   UR                  S/S	S
9nU$ )au  
DataFrame with multiple categorical columns and a column of integers.
Shortened so as not to contain all possible combinations of categories.
Useful for testing `observed` kwarg functionality on GroupBy objects.

Parameters
----------
df: DataFrame
    Non-categorical, longer DataFrame from another fixture, used to derive
    this one

Returns
-------
df_cat: DataFrame
Nr?   rf   r7  rg   rd   rG   rI   rU   r�   )r²   r´   r	   rJ  )rK   Údf_cats     r   rå  rå  Î  sl   € ð" �W‰W‹Y�r˜ˆ]€FØ˜‘+×$Ñ$ ZÓ0€Fˆ3�KØ˜‘+×$Ñ$ ZÓ0€Fˆ3�KÜšÓ&€Fˆ3�KØ�[‰[˜#˜ Qˆ[Ð'€FØ€Mr   Ú	operationr  rJ   c                 óÌ  • [        / SQU S   R                  SS9n[        / SQU S   R                  SS9n[        R                  " X#/5      n[	        / SQUSS9R                  5       nU R                  SS/S	S
9S   nUS:X  a  SOSn[        R                  " [        US9   [        Xa5      " [        5      nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)N)rŸ   rŸ   rž   rž   rf   r¯  )ÚoneÚthreerè  Útworg   )rV   r?   rU   rW   rG   ©rÇ   r&   r\   TrE   rJ   úusing np.sumr‡   r|   )r   rÐ   r   rõ   r	   r#   rH   r­   r°   r±   r¥  r<   r·   )	rå  ræ  Úlev_aÚlev_br&   rÉ   r×   rÏ   r$   s	            r   Ú test_seriesgroupby_observed_truerï  ç  sÉ   € ô Ò.°f¸S±k×6GÑ6GÈcÑR€EÜÒ0¸¸s¹×8IÑ8IÐPSÑT€EÜ×"Ò" E >Ó2€EÜš<¨u¸3Ñ?×JÑJÓL€Hà�n‰n˜c 3˜Z°$ˆnÐ7¸Ñ<€GØ%¨Ó0‰.Ð6O€CÜ	×	#Ò	#¤M¸Ó	=ä˜Ô,¬SÓ1ˆ÷ 
>ô ×Ò˜6 8Õ,÷ 
>Õ	=ús   ÂCÃ
C#c                 ój  • [         R                  " [        SS/SS9[        / SQSS9/SS/S9R                  5       u  p4[	        S	S
[
        R                  S[
        R                  S/USS9nUS:X  a4  Sn[        R                  " [        US9   UR                  SSS9nS S S 5        U R                  SS/US9S   nUS:X  a  SOSn[        R                  " [        US9   [        Xr5      " [        5      nS S S 5        [        R                  " WU5        g ! , (       d  f       N|= f! , (       d  f       N7= f)NrŸ   rž   Frœ   ©rè  ré  rê  rf   rg   r   rV   r?   rU   rW   rG   rë  r  z.The 'downcast' keyword in fillna is deprecatedr|   r   Úinfer)ÚdowncastrE   r‡   rì  )r   r    r   Ú	sortlevelr	   r   r¬   r­   r°   r±   ÚfillnarH   r¥  r<   r·   )	rå  rF   ræ  r&   Ú_rÉ   rÏ   r×   r$   s	            r   Ú)test_seriesgroupby_observed_false_or_noner÷  ø  s  € ô
 ×&Ò&ä˜e U˜^°UÑ;ÜÒ4¸eÑDð	
ð �Cˆjñ÷ �iƒkñ €Eô ˜A˜q¤"§&¡&¨!¬R¯V©V°QÐ7¸uÈ3ÑO€HØ�EÓØ>ˆÜ×'Ò'¬¸SÓAØ—‘ q°7�Ð;ˆH÷ Bà�n‰n˜c 3˜Z°(ˆnÐ;¸CÑ@€GØ'0°EÓ'9Ñ
#¸~€CÜ	×	#Ò	#¤M¸Ó	=ä˜Ô,¬SÓ1ˆ÷ 
>ô ×Ò˜6 8Õ,÷ BÕAú÷ 
>Õ	=ús   ÂDÃD$Ä
D!Ä$
D2zobserved, index, datarŸ   rž   rf   r¯  )rè  rè  ré  ré  rè  rè  rê  rê  rg   )rV   rV   r?   r?   rU   rU   rW   rW   rœ   rñ  )rf   rg   Nc                 óŽ   • [        X2SS9nU R                  SS/US9S   R                  S 5      n[        R                  " XT5        g )NrG   rë  rf   rg   rE   c                 óD   • U R                  5       U R                  5       S.$ )N©r3   r0   rú  rs   s    r   ru   Ú8test_seriesgroupby_observed_apply_dict.<locals>.<lambda>B  s   € ˜!Ÿ%™%›'¨!¯%©%«'Ò2r   )r	   rH   rJ   r­   r·   )rå  rF   r&   rÇ   rÉ   r$   s         r   Ú&test_seriesgroupby_observed_apply_dictrü    sJ   € ô\ ˜4°3Ñ7€HØ�^‰^˜S #˜J°ˆ^Ð:¸3Ñ?×EÑEÙ2ó€Fô ×Ò˜6Õ,r   c                 ó¼   • U R                  SS/SS9S   R                  5       nU R                  SS/SS9R                  5       S   n[        R                  " X!5        g )Nrf   rg   FrE   rG   )rH   r1   r­   r·   )rå  rÉ   r$   s      r   Ú4test_groupby_categorical_series_dataframe_consistentrþ  G  sX   € à�~‰~˜s C˜j°5ˆ~Ð9¸#Ñ>×CÑCÓE€HØ�^‰^˜S #˜J°ˆ^Ð7×<Ñ<Ó>¸sÑC€FÜ×Ò˜6Õ,r   Úcode)rU   r   r   )r   r   r   c                 ó  • [        / SQ/ SQ/ SQS.5      n[        R                  " U [        S5      S9nSn[        R
                  " [        US9   UR                  US	S
S9nS S S 5        WR                  5       nSn[        R
                  " [        US9   UR                  R                  USS
S9nS S S 5        WR                  5       R                  n[        R                  " XW5        g ! , (       d  f       NŽ= f! , (       d  f       NP= f)Nrd   )re  r£  éýÿÿÿéüÿÿÿ)rX   rì   ri   r§   r	  rù   r:  z+DataFrame.groupby with axis=1 is deprecatedr|   rU   F)r�   rF   z5The 'axis' keyword in DataFrame.groupby is deprecatedr   )r   r   r   r«   r­   r°   r±   rH   r1   ÚTr®   )rÿ  rK   r  rÏ   rÌ   r$   Úgb2rÉ   s           r   Útest_groupby_categorical_axis_1r  N  sÆ   € ô 
šÒ,<Â<ÑPÓ	Q€BÜ
×
 Ò
  ´$°u³+Ñ
>€CØ
7€CÜ	×	#Ò	#¤M¸Ó	=Ø�Z‰Z˜ !¨eˆZÐ4ˆ÷ 
>à�W‰W‹Y€FØ
A€CÜ	×	#Ò	#¤M¸Ó	=Ø�d‰d�l‰l˜3 Q°ˆlÐ7ˆ÷ 
>à�x‰x‹z�|‰|€HÜ×Ò˜&Õ+÷ 
>Õ	=ú÷ 
>Õ	=ús   ÁC)ÂC:Ã)
C7Ã:
Dc                 óú   • [        [        SS/US9SS/S.SS/S	9nUR                  5       nUR                  SU S
9R	                  [         R
                  SS9R                  5       n[        R                  " XC5        g )NÚBobÚGregrœ   rU   rV   )ÚNameÚItemr	  r
  rn   rE   T)Úskipna)	r   r   r²   rH   r  r<   r!  r­   r®   )rF   r   rK   rÉ   r$   s        r   Ú$test_groupby_cat_preserves_structurer  ^  sx   € ä	Ü˜e V˜_°gÑ>ÈÈAÈÑOØ˜Ð ñ
€Bð �w‰w‹y€Hð 	�
‰
�6 Hˆ
Ð-ß	‰ŒY�]‰] 4ˆÐ	(ß	‰‹ð ô ×Ò˜&Õ+r   c                  óÞ   • [        / SQ[        S5      S.5      n [        R                  " [        SS9   U R                  S5      R                  S 5        S S S 5        g ! , (       d  f       g = f)Nr^   r?   ©r=   r  z'vau'r|   r=   c                 ób   • [        U R                  S   S   /U R                  S   S   /S.5      $ )Nre  r=   Úvaur  )r   ry   )Úrowss    r   ru   Ú/test_get_nonexistent_category.<locals>.<lambda>t  s1   € œØŸ™ 2™ uÑ-Ð.¸¿	¹	À"¹ÀeÑ8LÐ7MÑNôr   )r   rè   r  rz  ÚKeyErrorrH   rJ   ©rK   s    r   Útest_get_nonexistent_categoryr  o  sL   € ä	Ò/¼¸a»ÑAÓ	B€BÜ	�Š”x wÓ	/Ø
�
‰
�5Ó×Ññô	
÷ 
0×	/Ö	/ús   ³"AÁ
A,c           	      ó&  • U S:X  a  [         R                  " S5        [        [        [	        S5      [	        S5      S9[        [	        S5      S-  [	        S5      S9S/S	-  S
.5      n[        X5      nU(       a  S	OSnUR                  SS/US9S   nU S:X  a  [        XP5      (       a   eg [        XP5      nU(       d.  U S;   a(  [         R                  " [        SS9   U" U6   S S S 5        g U" U6 n[        U5      U:X  d   eg ! , (       d  f       g = f)NÚngroupúngroup is not truly a reductionÚAABBÚABCDr:  r  rV   çš™™™™™¹?r?   ©Úcat_1Úcat_2r³  r–  r  r  rE   r³  r+   ©r.   r-   ú(empty group due to unobserved categoriesr|   )r  Úskipr   r   r«   r   rH   Úhasattrr¥  rz  r{  r   )Úreduction_funcrF   rK   r%   Úexpected_lengthÚseries_groupbyr  r$   s           r   Ú0test_series_groupby_on_2_categoricals_unobservedr&  z  s	  € à˜Ó!Ü�ŠÐ5Ô6ä	ä ¤ f£¼$¸v»,ÑGÜ ¤ d£¨a¡¼DÀ»LÑIØ�U˜Q‘Yñ	
ó
€Bô # >Ó6€Dæ#‘a¨€Oà—Z‘Z ¨'Ð 2¸X�ZÐFÀwÑO€Nà˜Ó#ä˜>×:Ñ:Ð:Ð:Øä
�.Ó
1€Cæ˜Ð*>Ó>ä�]Š]ÜÐHó
ñ �‰J÷
ð 	á�$ˆZ€Fäˆv‹;˜/Ó)Ð)Ñ)÷
ô 
ð 	ús   ÃDÄ
Dc           	      óÆ  • U S:X  a  [         R                  " S5        U S:X  a.  [         R                  R                  SS9nUR	                  U5        [        [        [        S5      [        S5      S9[        [        S	5      S
-  [        S5      S9S/S-  S.5      n[        S5      [        S5      [        S5      [        S5      [        S5      /n[        X5      nUR                  SS/SS9S   n[        X`5      nU S;   a(  [         R                  " [        SS9   U" U6   S S S 5        g U" U6 n[        U    n	U HQ  n
UR                  U
   n[         R"                  " U	5      (       a  [         R"                  " U5      (       a  MJ  X¹:X  a  MQ   e   U	S:X  a>  U S:w  a7  [$        R&                  " UR(                  [$        R*                  5      (       d   eg g g ! , (       d  f       g = f)Nr  r  r+   z6TODO: implemented SeriesGroupBy.corrwith. See GH 32293r  r  r  r:  r  rV   r  r?   r  ÚACÚBCÚCAÚCBÚCCr  r  FrE   r³  r  r   r|   r   r<   )r  r!  r  r  r  r   r   r«   Útupler   rH   r¥  rz  r{  Ú-_results_for_groupbys_with_missing_categoriesr‹  rµ   r]  r   Ú
issubdtyperÐ   Úinteger)r#  r"  r  rK   Ú
unobservedr%   r%  r  r$   Úzero_or_nanrÙ   r  s               r   Ú?test_series_groupby_on_2_categoricals_unobserved_zeroes_or_nansr3     s©  € ð ˜Ó!Ü�ŠÐ5Ô6à˜Ó#Ü�{‰{× Ñ ØKð !ð 
ˆð 	×Ñ˜DÔ!ä	ä ¤ f£¼$¸u»+ÑFÜ ¤ d£¨a¡¼DÀ»KÑHØ�U˜Q‘Yñ	
ó
€Bô ˜“+œu T›{¬E°$«K¼¸t»ÄeÈDÃkÐR€JÜ" >Ó6€Dà—Z‘Z ¨'Ð 2¸U�ZÐCÀGÑL€NÜ
�.Ó
1€CàÐ-Ó-ä�]Š]ÜÐHó
ñ �‰J÷
ð 	á�$ˆZ€Fä?ÀÑO€KãˆØ�j‰j˜‰oˆÜ—’˜×$Ñ$¬¯ª°¯«¸3Õ;MÐNÐNñ ð �aÓ˜N¨eÓ3Ü�}Š}˜VŸ\™\¬2¯:©:×6Ñ6Ð6Ñ6ð 4Ð÷%
ô 
ð 	ús   ÄGÇ
G c           	      óX  • U S:X  a  [         R                  " S5        [        [        [	        S5      [	        S5      S9[        [	        S5      [	        S5      S9/ SQS	.5      n/ S
QnUR                  SS/SS9n[        X5      n[        X05      " U6 nU H  nXeR                  ;  a  M   e   g )Nr  ú2ngroup does not return the Categories on the indexr  r  r:  Ú1111Ú12©r  r  r  r  r  ©)rf   Ú2)rg   r:  )rG   Ú1)rG   r:  r  r  TrE   )	r  r!  r   r   r«   rH   r   r¥  r&   )r#  rK   Úunobserved_catsÚdf_grpr%   r¾  r  s          r   Ú>test_dataframe_groupby_on_2_categoricals_when_observed_is_truer>  Ô  s¡   € ð
 ˜Ó!Ü�ŠÐHÔIä	ä ¤ f£¼$¸u»+ÑFÜ ¤ f£¼$¸t»*ÑEÚ)ñ	
ó
€Bò G€Oà�Z‰Z˜ 'Ð*°TˆZÐ:€Fä" >Ó6€DÜ
�&Ô
)¨4Ð
0€CãˆØŸ)™)Õ#Ð#Ð#ò r   c           	      óæ  • U S:X  a  [         R                  " S5        [        [        [	        S5      [	        S5      S9[        [	        S5      [	        S5      S9/ SQS	.5      n/ S
QnUR                  SS/US9n[        X5      nU(       d7  U S;   a1  [         R                  " [        SS9   [        X@5      " U6   S S S 5        g [        X@5      " U6 n[        U    nU[        R                  L aA  UR                  U   R                  5       R                  5       R                  5       (       d   eg UR                  U   U:H  R                  5       R                  5       (       d   eg ! , (       d  f       g = f)Nr  r5  r  r  r:  r6  r7  r8  r  r9  r  r  rE   r  r   r|   )r  r!  r   r   r«   rH   r   rz  r{  r¥  r.  r   r¬   r‹  Úisnullr(   )r#  rF   rK   r<  r=  r%   r¾  rÉ   s           r   Ú?test_dataframe_groupby_on_2_categoricals_when_observed_is_falserA  î  s?  € ð ˜Ó!Ü�ŠÐHÔIä	ä ¤ f£¼$¸u»+ÑFÜ ¤ f£¼$¸t»*ÑEÚ)ñ	
ó
€Bò G€Oà�Z‰Z˜ 'Ð*°XˆZÐ>€Fä" >Ó6€Dæ˜Ð*>Ó>ä�]Š]ÜÐHó
ô �FÔ+¨TÑ2÷
ð 	ä
�&Ô
)¨4Ð
0€Cä<¸^ÑL€Hà”2—6‘6ÒØ�w‰w�Ñ'×.Ñ.Ó0×4Ñ4Ó6×:Ñ:×<Ñ<Ð<Ñ<à—‘˜Ñ(¨HÑ4×9Ñ9Ó;×?Ñ?×AÑAÐAÑA÷
ô 
ð 	ús   Â)E"Å"
E0c                  ó>  • / SQ/ SQ/ SQS.n [        U 5      n[        R                  " US   [        R                  " SSS5      5      nX!S	'   UR                  S	S
/SSSS9nUS   R                  S5      nUR                  S5      S   n[        R                  " XE5        g )N)r‚   r§   r?   rU   r  )rS   rQ   rS   rQ   r  rž   r   rƒ   rX   rè   r    TF©r  r¦   rF   r1   )	r   rµ   r¶   r   r   rH   r  r­   r·   )rS   rK   r  r'  r$   rÉ   s         r   Ú3test_series_groupby_categorical_aggregation_getitemrD    s“   € ò Ò&6Ò?SÑT€AÜ	�1‹€BÜ
�&Š&��E‘œBŸKšK¨¨2¨qÓ1Ó
2€CØ€w�KØ�Z‰Z˜ %Ð(°4¸dÈUˆZÐS€FØ�E‰]×Ñ˜vÓ&€FØ�z‰z˜&Ó! %Ñ(€HÜ×Ò˜6Õ,r   zfunc, expected_valuesc                 óö   • [        / SQ/ SQ[        / SQ5      S.5      R                  S5      nUR                  S5      R	                  U 5      n[        SU0[        / SQSS	9S
9n[        R                  " X45        g )Nrš   )r   rU   rU   rV   rV   )r   r   r   r   rU   )Úidr'  r³  rF  r'  r³  rI  r~   r]   )r   r   r  rH   r  r   r­   r®   )r¦  rM  rK   r$   rÉ   s        r   Ú$test_groupby_agg_categorical_columnsrG  &  su   € ô 
â!Ú%Ü ¢Ó1ñ	
ó
÷ �i�ƒoð ð �Z‰Z˜Ó!×%Ñ% dÓ+€FäØ	�/Ð"¬%²	ÀÑ*Iñ€Hô ×Ò˜&Õ+r   c                  óx  • [        S[        / SQ/ SQS905      n [        SSS/0[        R                  " SS/5      S9nU R	                  / SQ5      R                  [        R                  5      n[        R                  " X!5        U R	                  / SQ5      R                  5       n[        R                  " X!5        g )	Nrf   rÍ  r	  r:  rV   rU   r]   rÎ  )
r   r   r   r\  rH   r  r	   r5   r­   r®   ©rK   rÉ   r$   s      r   Útest_groupby_agg_non_numericrJ  ;  s‰   € Ü	�Cœ¢_ÂÑQÐRÓ	S€BÜ˜#  1˜v˜¬b¯hªh¸¸1°vÓ.>Ñ?€Hà�Z‰Zš	Ó"×&Ñ&¤v§~¡~Ó6€FÜ×Ò˜&Ô+à�Z‰Zš	Ó"×*Ñ*Ó,€FÜ×Ò˜&Õ+r   r¦  c                 ó  • [        S/[        S/SS9R                  R                  5       S.5      nUR	                  S5      S   n[        X 5      " 5       n[        S/[        S/SS9SUS   R                  S	9n[        R                  " X45        g )
NiÍ  rP   r7  r?  r~  rf   rg   r~   ©r&   r\   rÐ   )
r   r	   r  Ú
as_orderedrH   r¥  r   rÐ   r­   r·   )r¦  rK   Ú
df_groupedr$   rÉ   s        r   Ú<test_groupby_first_returned_categorical_instead_of_dataframerO  F  s„   € ô 
˜$˜¤f¨c¨U¸*Ñ&E×&IÑ&I×&TÑ&TÓ&VÑWÓ	X€BØ—‘˜C“ Ñ%€JÜ�ZÔ&Ó(€Fô Ø	ˆ”U˜D˜6¨Ñ,°3¸bÀ¹g¿m¹mñ€Hô ×Ò˜6Õ,r   c            	      ó2  • [         R                  " SS/5      n SU R                  l        [	        / SQ[        / SQ[        U 5      S9S.5      n[	        SS	S
/0[        U SS9S9nUR                  SSSS9R                  5       n[        R                  " X25        g )NrU   rV   F)rU   rW   rX   ri   r
  r:  rY   r   rý   g      @rP   r~   rä   r¥   )r   r\  ÚflagsÚ	writeabler   r   r   r   rH   r1   r­   r®   )rL   rK   rÉ   r$   s       r   Útest_read_only_category_no_sortrS  U  sˆ   € ä�8Š8�Q˜�FÓ€DØ €D‡J�JÔÜ	Ú¤ª\ÄeÈDÃkÑ!RÑSó
€Bô ˜s S¨# JÐ/Ô7GÈÐSVÑ7WÑX€HØ�Z‰Z˜ %°%ˆZÐ8×=Ñ=Ó?€FÜ×Ò˜&Õ+r   c                  ó–  • [        / SQ/ SQS.5      n U S   R                  S5      R                  R                  / SQSS9U S'   [        S	S	S
.S	SS
.SSS
.SSS
.S.5      nUR	                  SSS9n[        / SQ/ SQSSSS9Ul        U R                  SS/SS9R                  5       R                  5       n[        R                  " X!5        g )N)ÚsmallÚlargerV  rV  ro  rV  rV  ro  )rG   rf   rf   rG   rf   rG   rf   rG   )rž   rŸ   rž   r7  )ÚtinyrU  ro  rV  Trœ   r   )rf   rG   rU   rW   rV   rŸ   r&   r�   )r   r   r\   rÐ   FrE   )r   r´   r  Úset_categoriesÚrename_axisr   ro   rH   r9   rt  r­   r®   rI  s      r   Ú#test_sorted_missing_category_valuesrZ  a  sæ   € ä	ò	ò <ñ	
ó
€Bð  	ˆ5‰	ß	‰�
Ó	ß	‰�^‰^Ò@È$ˆ^ÐOð €u�Iô à !Ñ$Ø 1Ñ%Ø AÑ&Ø 1Ñ%ñ		
ó€Hð ×#Ñ# E°Ð#Ð8€HÜ'Ú,Ú7ØØØñ€HÔð �Z‰Z˜ ˜°ˆZÐ7×<Ñ<Ó>×FÑFÓH€Fä×Ò˜&Õ+r   c                  ó¨  • [        S/ SQ05      n U S   R                  S5      U S'   U R                  S5      R                  R	                  5       n[        / SQ[        / SQSS9SU S   R                  S9n[        R                  " X5        U R                  S5      R                  SS05      nUR                  5       n[        R                  " X5        g )	NÚcol_num©rU   rU   rV   rW   r7  Úcol_catr;  r~   rL  r,   )r   r´   rH   r^  r,   r	   r   rÐ   r­   r·   r  Úto_framer®   r°  s      r   Ú1test_agg_cython_category_not_implemented_fallbackr`  Ž  s¹   € ä	�Iš|Ð,Ó	-€BØ�y‘M×(Ñ(¨Ó4€B€y�Mà�Z‰Z˜	Ó"×*Ñ*×0Ñ0Ó2€Fô ÚÜ’I IÑ.ØØ�‰m×!Ñ!ñ	€Hô ×Ò˜6Ô,à�Z‰Z˜	Ó"×&Ñ&¨	°7Ð';Ó<€FØ× Ñ Ó"€HÜ×Ò˜&Õ+r   c                  óP  • [        / SQ/ SQSS[        R                  S// SQ/ SQS.5      n U R                  SS	05      n U R	                  S
S/5      R                  S 5      n[        R                  " SS/SS//SS9n[        SS/SS/SS/S.US9n[        R                  " X5        g )N)rU   rU   rU   rU   r  r  gš™™™™™É?g333333Ó?)rž   rŸ   rž   Úfee)rf   rg   Únumerical_colÚ
object_colÚcategorical_colre  r7  rf   rg   c                 ó>   • U R                  5       R                  5       $ rq   )r]  r<   r  s    r   ru   Ú7test_aggregate_categorical_with_isnan.<locals>.<lambda>²  s   € °2·7±7³9·=±=´?r   rU   rV   r~  r   r   )rc  rd  re  rä   )
r   r   r¬   r´   rH   r  r   rõ   r­   r®   rö   s       r   Ú%test_aggregate_categorical_with_isnanrh  ¤  s¹   € ä	âÚØ! 3¬¯©°Ð4Ú6Ú;ñ	
ó
€Bð 
�‰Ð% zÐ2Ó	3€Bà�Z‰Z˜˜c˜
Ó#×'Ñ'Ñ(BÓC€FÜ×"Ò" Q¨ F¨Q°¨FÐ#3¸:ÑF€EÜà ˜VØ˜a˜&Ø ! 1˜vñ
ð
 ñ€Hô ×Ò˜&Õ+r   c                  ó  • [        / SQ/ SQS.5      n [        R                  " / SQSS9nU S   R                  U5      U S'   Sn[        R
                  " [        US	9   U R                  S
5      S   R                  [        5      U S'   S S S 5        U R                  5       n[        / SQ/ SQ/ SQS.5      nUS   R                  U5      US'   US   R                  U5      US'   [        R                  " X45        g ! , (       d  f       Nx= f)N)rU   rU   rU   rV   rV   rW   )ÚWaitingÚOnTheWayÚ	Deliveredrj  rk  rj  )Ú
package_idÚstatus)rj  rk  rl  Tr   rn  zusing SeriesGroupBy.maxr|   rm  Úlast_status)rl  rl  rl  rk  rk  rj  )rm  rn  ro  )r   rµ   ÚCategoricalDtyper´   r­   r°   r±   rH   r¯   r0   r²   r®   )rK   Údelivery_status_typerÏ   r$   rÉ   s        r   Útest_categorical_transformrr  ¿  s  € ä	â,òñ
	
ó
€Bô ×.Ò.Ú7ÀñÐð �h‘<×&Ñ&Ð';Ó<€B€x�LØ
#€CÜ	×	#Ò	#¤M¸Ó	=àŸJ™J |Ó4°XÑ>×HÑHÌÓMˆˆ=Ñ÷ 
>ð �W‰W‹Y€Fäâ,òòñ	
ó€Hð, " (Ñ+×2Ñ2Ð3GÓH€HˆXÑð ' }Ñ5×<Ñ<Ð=QÓR€Hˆ]Ñä×Ò˜&Õ+÷A 
>Õ	=ús   Á+C9Ã9
Dc                 ó   • [        / SQ5      n/ SQn[        X"US.5      n[        SS/5      n[        R                  " XU/SS/S9n[	        S[
        R                  [
        R                  S/US	S
9[	        S[
        R                  [
        R                  S/US	S
9S.nXp   nU(       a-  UR                  5       R                  [
        R                  5      nUR                  SS/US9S	   n	[        X�5      " 5       n
[        R                  " X¨5        g ©N)r   r   rU   rU   )r   rU   rU   r   r	  r   rU   r   rP   r   rQ   r~   )r,   r/   rE   )r   r   r   r    r	   r   r¬   ry  r´   r>  rH   r¥  r­   r·   )r¦  rF   r  r  rK   rË   rÙ   Úexpected_dictrÉ   Úsrs_grpr$   s              r   ÚFtest_series_groupby_first_on_categorical_col_grouped_on_2_categoricalsrw  ÷  sç   € ô
 ’lÓ
#€CÚ
€CÜ	˜¨SÑ1Ó	2€Bä˜˜1�vÓ€DÜ
×
!Ò
! 4 ,°s¸C°jÑ
A€Cä˜œBŸF™F¤B§F¡F¨AÐ.°¸#Ñ>Ü˜œ2Ÿ6™6¤2§6¡6¨1Ð-¨s¸Ñ=ñ€Mð
 Ñ"€HÞØ—?‘?Ó$×+Ñ+¬B¯H©HÓ5ˆà�j‰j˜#˜s˜¨hˆjÐ7¸Ñ<€GÜ�WÔ#Ó%€FÜ×Ò˜6Õ,r   c                 ó6  • [        / SQ5      n/ SQn[        X"US.5      n[        SS/5      n[        R                  " XU/SS/S9n[	        S[
        R                  [
        R                  S/US	S
9[	        S[
        R                  [
        R                  S/US	S
9S.nXp   R                  5       nU(       a-  UR                  5       R                  [
        R                  5      nUR                  SS/US9n	[        X�5      " 5       n
[        R                  " X¨5        g rt  )r   r   r   r    r	   r   r¬   r_  ry  r´   r>  rH   r¥  r­   r®   )r¦  rF   r  r  rK   rË   rÙ   ru  rÉ   r=  r$   s              r   ÚBtest_df_groupby_first_on_categorical_col_grouped_on_2_categoricalsry    së   € ô
 ’lÓ
#€CÚ
€CÜ	˜¨SÑ1Ó	2€Bä˜˜1�vÓ€DÜ
×
!Ò
! 4 ,°s¸C°jÑ
A€Cä˜œBŸF™F¤B§F¡F¨AÐ.°¸#Ñ>Ü˜œ2Ÿ6™6¤2§6¡6¨1Ð-¨s¸Ñ=ñ€Mð
 Ñ"×+Ñ+Ó-€HÞØ—?‘?Ó$×+Ñ+¬B¯H©HÓ5ˆà�Z‰Z˜˜c˜
¨XˆZÐ6€FÜ�VÔ"Ó$€FÜ×Ò˜&Õ+r   c                  ó´  • [        [        / SQ/ SQS9[        S5      S.5      n U R                  SSSS9nUR                  n[
        R                  " S	S
/SS9[
        R                  " S/SS9[
        R                  " / SS9S.nUR                  5       UR                  5       :X  d   eUR                  5        H  n[        R                  " X$   X4   5        M      g )N)rP   rP   r   r	  r:  rW   )r%  rœ  r%  Fr¥   r   rU   Úintpr?  rV   )rP   r   rQ   )
r   r   rè   rH   Úindicesr   r\  rL  r­   rª  )rK   r×   r$   rÉ   r%  s        r   Ú2test_groupby_categorical_indices_unused_categoriesr}  )  s¸   € ä	äšº?ÑKÜ˜“8ñ	
ó
€Bð �j‰j˜ U°UˆjÐ;€GØ�_‰_€Fä�XŠX�q˜!�f FÑ+Ü�XŠX�q�c Ñ(Ü�XŠX�b Ñ'ñ€Hð
 �;‰;‹=˜HŸM™M›OÓ+Ð+Ð+Ø�{‰{Ž}ˆÜ
×#Ò# F¡K°±Ö?ò r   c           	      ó  • [        S/ SQ05      nUS   R                  S5      US'   [        UR                  S5      S   U 5      " 5       n[	        [        / SQ5      S[        / SQSS9S9n[        R                  " X25        g )Nr   r;  r7  rP   r~   )r\   r&   )	r   r´   r¥  rH   r	   r   r   r­   r·   )r¦  rK   r$   rÉ   s       r   Ú1test_groupby_last_first_preserve_categoricaldtyper  =  sr   € ô 
�CšÐ#Ó	$€BØ�‰g�n‰n˜ZÓ(€B€s�GÜ�R—Z‘Z “_ SÑ)¨4Ô0Ó2€FÜÜ’IÓ S´²iÀcÑ0Jñ€Hô ×Ò˜8Õ,r   c                  ó2  • [        SS/SS/SS/S.5      n U R                  SSS.S9n U R                  S	S
/SS9R                  5       S   n[	        SS/[
        R                  " [        SS/S	S9[        SS/S
S9/5      SS9n[        R                  " X5        g )NrU   rV   r‚   r…  r	  r7  rY   r?  r   rP   TrE   rQ   r~   ró   )
r   r´   rH   r5   r	   r   rõ   r   r­   r·   r°  s      r   Ú)test_groupby_categorical_observed_nuniquer�  I  s«   € ä	˜!˜Q˜ q¨! f°B¸°8Ñ<Ó	=€BØ	�‰˜z°
Ñ;ˆÐ	<€BØ�Z‰Z˜˜c˜
¨TˆZÐ2×:Ñ:Ó<¸SÑA€FÜØ	
ˆAˆÜ×$Ò$Ü˜q !˜f¨3Ñ/Ô1AÀ1ÀaÀ&ÈsÑ1SÐTó
ð ñ€Hô ×Ò˜6Õ,r   c            
      óH  • [         R                  " SS/SS9n [        SS/SS/SS//SS/S	9R                  SU 05      nUR	                  S5      S   R                  5       n[        SS/[        SS/SS
9S[         R                  " SS/SS9S9n[        R                  " X#5        g )NrU  ÚbigTr   rU   rV   ÚgrpÚdescriptionrn   r~   rL  )
rµ   rp  r   r´   rH   r0   r	   r   r­   r·   )rÐ   rK   r$   rÉ   s       r   Ú,test_groupby_categorical_aggregate_functionsr†  X  s¸   € ä×Ò¨G°UÐ+;ÀTÑJ€EÜ	Ø
ˆWˆ˜˜5�z A w <Ð0¸5À-Ð:Pñ
ç�fˆm˜UÐ#Ó$ð ð �Z‰Z˜Ó˜}Ñ-×1Ñ1Ó3€FÜØ	�ÐÜ�Q˜�F Ñ'ØÜ×!Ò!¨g°uÐ-=ÀtÑLñ	€Hô ×Ò˜6Õ,r   c                 óN  • [        SS// SQS9n[        [        SS// SQS9SS/S.5      nUR                  SXS	9nUR                  5       nU (       a  [        S
SS/0US9nO[	        / SQ/ SQ5      n[        S
/ SQ0US9nSUR
                  l        [        R                  " XV5        g )NrU   rV   r;  r:  rW   r?   )rt   rc   rt   )rF   ry  rc   r]   )rW   r?   r   )	r   r   rH   r<   r   r&   r\   r­   r®   )rF   ry  r  rK   rÌ   r$   rÉ   r&   s           r   Útest_groupby_categorical_dropnarˆ  j  s›   € ä
�q˜!�fªÑ
3€CÜ	œ a¨ Vº	ÑBÈ!ÈQÈÑPÓ	Q€BØ	�‰�C (ˆÐ	:€BØ�V‰V‹X€FæÜ˜c A q 6˜]°#Ñ6‰ä ¢ªIÓ6ˆÜ˜c¢9Ð-°UÑ;ˆØ€H‡N�NÔä×Ò˜&Õ+r   Ú
index_kind)rè   ÚsingleÚmultic                 óÞ  • US:X  a6  U(       d/  SnU R                  [        R                  R                  US95        O!US:w  a  U(       d  [        R                  " SS9  [        [        / SQ/ SQUS9[        S	5      S
.5      nUS:X  a  S/n	O>US:X  a  S/n	UR                  U	5      nO#US:X  a  SS/n	US   US'   UR                  U	5      n[        XH5      n
UR                  W	XUS9nU(       d7  US;   a1  [        R                  " [        SS9   [        X´5      " U
6   S S S 5        g [        X´5      " U
6 nU(       a&  UR                  R                  S5      R                   nOUS   R"                  R                   n[%        / SQ5      n[&        R(                  " XÞ5        US:X  a<  UR                  R                  S5      R                   n[&        R(                  " XÞ5        g g ! , (       d  f       g = f)Nr+   zDGH#49950 - corrwith with as_index=False may not have grouping columnr  rè   ú/Result doesn't have categories, nothing to test©rV   rU   rV   rW   ©rU   r?   rW   rV   r   r?   rY   r   rŠ  r‹  rD  rC  r  r   r|   )r  r  r  r  r!  r   r   rè   r  r   rH   rz  r{  r¥  r&   rÅ   r   r  r   r­   rÃ   )r"  r  r¦   rF   r#  r‰  r   rÏ   rK   rL  r%   rÌ   Ú	op_resultr$   rÉ   s                  r   Útest_category_order_reducerr‘  {  s¸  € ð ˜Ó#®HØTˆØ×ÑœFŸK™K×-Ñ-°SÐ-Ð9Õ:Ø	�wÓ	¦xÜ�ŠÐLÒMÜ	äš\²lÈGÑTÜ�q“ñ	
ó
€Bð �WÓØˆu‰Ø	�xÓ	ØˆuˆØ�\‰\˜$Ó‰Ø	�wÓ	Ø�Tˆ{ˆØ�c‘7ˆˆ4‰Ø�\‰\˜$ÓˆÜ" >Ó6€DØ	�‰�D 8ÀˆÐ	J€Bæ˜Ð*>Ó>ä�]Š]ÜÐHó
ô �BÔ'¨Ñ.÷
ð 	ä˜Ô+¨TÐ2€IÞØ—‘×1Ñ1°#Ó6×AÑA‰à˜3‘×#Ñ#×.Ñ.ˆÜ’\Ó"€HÜ×Ò˜&Ô+à�WÓØ—‘×1Ñ1°$Ó7×BÑBˆÜ
×Ò˜fÕ/ð ÷
ô 
ð 	ús   ÄGÇ
G,rŠ  r‹  c                 ó¬  • [        [        / SQ/ SQUS9[        S5      S.5      nUS:X  a  S/nUR                  U5      nO#US:X  a  SS	/nUS   US	'   UR                  U5      n[	        X65      nUR                  WXUS
9n	US:X  a  [        OS n
Sn[        R                  " X«S9   [        X“5      " U6 nS S S 5        WR                  R                  S5      R                  n[        / SQ5      n[        R                  " XÞ5        US:X  a<  UR                  R                  S	5      R                  n[        R                  " XÞ5        g g ! , (       d  f       N™= f)NrŽ  r�  r   r?   rY   rŠ  r   r‹  rD  rC  rõ  z%DataFrameGroupBy.fillna is deprecatedr|   )r   r   rè   r  r   rH   r±   r­   r°   r¥  r&   rÅ   r   r   rÃ   )r  r¦   rF   Útransformation_funcr‰  r   rK   rL  r%   rÌ   ÚwarnrÏ   r�  r$   rÉ   s                  r   Útest_category_order_transformerr•  ­  s5  € ô 
äš\²lÈGÑTÜ�q“ñ	
ó
€Bð �XÓØˆuˆØ�\‰\˜$Ó‰Ø	�wÓ	Ø�Tˆ{ˆØ�c‘7ˆˆ4‰Ø�\‰\˜$ÓˆÜ"Ð#6Ó;€DØ	�‰�D 8ÀˆÐ	J€BØ/°8Ó;�=À€DØ
1€CÜ	×	#Ò	# DÓ	4Ü˜BÔ4°dÐ;ˆ	÷ 
5à�_‰_×-Ñ-¨cÓ2×=Ñ=€FÜ’\Ó"€HÜ×Ò˜&Ô+à�WÓØ—‘×1Ñ1°$Ó7×BÑBˆÜ
×Ò˜fÕ/ð ÷ 
5Õ	4ús   Â#EÅ
EÚmethodÚheadÚtailc                 ór  • [        [        / SQ/ SQUS9[        S5      S.5      nUS:X  a  S/nO>US:X  a  S/nUR                  U5      nO#US	:X  a  SS
/nUS   US
'   UR                  U5      nUR	                  WXUS9n[        Xƒ5      " 5       n	US:X  a  U	S   R                  R                  n
O%U	R                  R                  S5      R                  n
[        / SQ5      n[        R                  " X«5        US	:X  a<  U	R                  R                  S
5      R                  n
[        R                  " X«5        g g )NrŽ  r�  r   r?   rY   rè   r   rŠ  r‹  rD  rC  )r   r   rè   r  rH   r¥  r  r   r&   rÅ   r   r­   rÃ   )r  r¦   rF   r–  r‰  r   rK   rL  rÌ   r�  r$   rÉ   s               r   Útest_category_order_head_tailrš  Ï  s%  € ô 
äš\²lÈGÑTÜ�q“ñ	
ó
€Bð �WÓØˆu‰Ø	�xÓ	ØˆuˆØ�\‰\˜$Ó‰Ø	�wÓ	Ø�Tˆ{ˆØ�c‘7ˆˆ4‰Ø�\‰\˜$ÓˆØ	�‰�D 8ÀˆÐ	J€BÜ˜Ô#Ó%€IØ�WÓØ˜3‘×#Ñ#×.Ñ.‰à—‘×1Ñ1°#Ó6×AÑAˆÜ’\Ó"€HÜ×Ò˜&Ô+à�WÓØ—‘×1Ñ1°$Ó7×BÑBˆÜ
×Ò˜fÕ/ð r   )rJ   r  r¯   c                 óv  • US:X  a  US:X  d  U (       d  US:w  a  [         R                  " S5        [        [        / SQ/ SQUS9[	        S5      S.5      nUS:X  a  S	/nO>US
:X  a  S	/nUR                  U5      nO#US:X  a  S	S/nUS	   US'   UR                  U5      nUR                  WXUS9nUS:X  a  US:X  a  [        OS n	Sn
[        R                  " XšS9   [        Xƒ5      " S 5      nS S S 5        US:X  d  U (       d   US:X  a  WS	   R                  R                  nO%WR                  R                  S	5      R                  n[        / SQ5      n[        R                   " XÍ5        US:X  a<  UR                  R                  S5      R                  n[        R                   " XÍ5        g g ! , (       d  f       NÆ= f)Nr¯   rè   z(No categories in result, nothing to testrŽ  r�  r   r?   rY   r   rŠ  r‹  rD  rC  rJ   r{   r|   c                 ó    • U R                  SS9$ )NTrj   )r<   rs   s    r   ru   Ú+test_category_order_apply.<locals>.<lambda>  s   € °!·%±%ÀT°%Ñ2Jr   )r  r!  r   r   rè   r  rH   r±   r­   r°   r¥  r  r   r&   rÅ   r   rÃ   )r  r¦   rF   r–  r‰  r   rK   rL  rÌ   r”  rÏ   r�  r$   rÉ   s                 r   Útest_category_order_applyrž  ó  s�  € ð
 	�+Ó *°Ó"7Þ˜ wÓ.ä�ŠÐ>Ô?Ü	äš\²lÈGÑTÜ�q“ñ	
ó
€Bð �WÓØˆu‰Ø	�xÓ	ØˆuˆØ�\‰\˜$Ó‰Ø	�wÓ	Ø�Tˆ{ˆØ�c‘7ˆˆ4‰Ø�\‰\˜$ÓˆØ	�‰�D 8ÀˆÐ	J€BØ" gÓ-°*ÀÓ2G�=ÈT€DØ
C€CÜ	×	#Ò	# DÓ	4Ü˜BÔ'Ñ(JÓKˆ	÷ 
5à�+Ó¦X°:ÀÓ3HØ˜3‘×#Ñ#×.Ñ.‰à—‘×1Ñ1°#Ó6×AÑAˆÜ’\Ó"€HÜ×Ò˜&Ô+à�WÓØ—‘×1Ñ1°$Ó7×BÑBˆÜ
×Ò˜fÕ/ð ÷ 
5Õ	4ús   ÃF*Æ*
F8c                 ó  • US:w  a  U (       d  [         R                  " SS9  [        R                  " SSS5      n[	        / SQXCS9n[        U[        S5      S	.5      nUS:X  a  S
/nO>US:X  a  S
/nUR                  U5      nO#US:X  a  S
S/nUS
   US'   UR                  U5      nUR                  WXSS9nUR                  5       n	U(       a  / SQO/ SQn
[        X¥R                  US
S9nU (       aA  [        SU
05      nUS:X  a'  [        R                  " [        X»S.5      5      Ul        OFX¼l        O?US:X  a"  [        [        U5      [        U5      U
S.5      nO[        [        U5      U
S	.5      n[         R"                  " Xœ5        g )Nrè   r�  r  i'  re  rŽ  r   r?   rY   r   rŠ  r‹  rD  TrC  )rW   rV   rU   )rV   rU   rW   )r   r   r\   rP   )r   rD  )r   rD  rP   )r  r!  r   r   r   r   rè   r  rH   r<   r   r   r   Ú
from_framer&   r	   r­   r®   )r  r¦   r‰  r   r   ÚgrouperrK   rL  rÌ   r$   rÇ   r&   rÉ   s                r   Útest_many_categoriesr¢    sa  € ð �WÓ¦XÜ�ŠÐLÒMÜ—’˜4  RÓ(€JÜš,°:ÑO€GÜ	˜¤u¨Q£xÑ0Ó	1€BØ�WÓØˆu‰Ø	�xÓ	ØˆuˆØ�\‰\˜$Ó‰Ø	�wÓ	Ø�Tˆ{ˆØ�c‘7ˆˆ4‰Ø�\‰\˜$ÓˆØ	�‰�D 8ÀˆÐ	F€BØ�V‰V‹X€Fö ‹9¢)€DäØ×+Ñ+°WÀ3ñ€Eö Ü˜c 4˜[Ó)ˆØ˜Ó Ü'×2Ò2´9À5Ñ=VÓ3WÓXˆH�Nà"�NØ	�wÓ	Ü¤6¨%£=¼¸u»ÈDÑQÓR‰ä¤6¨%£=°tÑ<Ó=ˆä×Ò˜&Õ+r   Úcat_columnsrL  c                 ó  • [        / SQ/ SQS.5      nX    R                  S5      X '   Sn[        U 5      [        U5      -  (       a  [        OS n[        R
                  " XCS9   UR                  U5        S S S 5        g ! , (       d  f       g = f)Nr]  )r?   rX   rì   ri   rY   r7  z+The default of observed=False is deprecatedr|   )r   r´   Úsetr±   r­   r°   rH   )r£  rL  rK   rÏ   Úklasss        r   Útest_groupby_default_deprr§  D  si   € ô 
šªLÑ9Ó	:€BØ‘o×,Ñ,¨ZÓ8€B�OØ
7€CÜ  Ó-´°D³	×9�M¸t€EÜ	×	#Ò	# EÓ	5Ø
�
‰
�4Ô÷ 
6×	5Ö	5ús   Á"A=Á=
BÚa1c                 óŽ  • U(       a4  US:X  a.  [        [        S5      (       a   e[        R                  " S5        O�US:X  a/  SnU R	                  [        R
                  R                  US95        OXUS:X  aR  U(       dK  [        U5      S:w  a<  U(       d5  U(       d.  SnU R	                  [        R
                  R                  US95        [        / SQ/ S	Q/ S
QS.5      nUR                  SSS.5      nSU;  a  UR                  SS9nUR                  XQUS9nU(       a  US   n[        X75      n	U(       dE  US;   a?  USS/:X  a7  [        R                  " [        SS9   UR                  " U//U	Q76   S S S 5        g UR                  " U//U	Q76 n
[!        Xƒ5      " U	6 nU(       a  U(       d  US:X  a  UR#                  U5      nU(       dA  [$        R&                  " UR(                  S S  Vs/ s H  oÌS4PM     snSU4/-   5      Ul        OU(       d
  XS/-   Ul        [*        R,                  " X«5        g ! , (       d  f       g = fs  snf )Nr+   z*corrwith not implemented for SeriesGroupByz1GH#32293: attempts to call SeriesGroupBy.corrwithr  r5   rU   zGH#52848 - raises a ValueError)r   r   rU   )rV   rW   rW   rC  )r¨  rD  rP   r7  )r¨  rD  rD  rn   r™  rP   r  r¨  r   r|   r9   re  Ú )r"  r   r  r!  r  r  r  r   r   r´   rJ  rH   r   rz  r{  r  r¥  r_  r   Úfrom_tuplesro   r­   rK  )r"  r  rF   r#  rE  rL  rÏ   rK   rÌ   r%   r$   rÉ   Úinds                r   Útest_agg_listr­  P  s  € ö �~¨Ó3Üœ=¨*×5Ñ5Ð5Ð5Ü�ŠÐ@ÕAØ	˜:Ó	%ØAˆØ×ÑœFŸK™K×-Ñ-°SÐ-Ð9Õ:à˜)Ó#ÞÜ�‹I˜‹NÞÞà.ˆØ×ÑœFŸK™K×-Ñ-°SÐ-Ð9Ô:ä	š)ª9º9ÑEÓ	F€BØ	�‰˜*¨JÑ7Ó	8€BØ�4ÓØ�W‰W˜TˆWÐ"ˆØ	�‰�t¸ˆÐ	B€BÞØ�‰WˆÜ" >Ó6€Dæ˜Ð*>Ó>À4ÈDÐRVÈ<ÓCWÜ�]Š]ÜÐHó
ð �FŠF�NÐ#Ð+ dÓ+÷
ð 	à�VŠV�^Ð$Ð, tÒ,€FÜ�rÔ*¨DÐ1€Hæ–[ N°fÓ$<Ø×$Ñ$ ^Ó4ˆÞÜ%×1Ò1Ø"*×"2Ñ"2°3°BÑ"7Ó8Ò"7˜3�2‹YÑ"7Ñ8¸SÀ.Ð<QÐ;RÑRó
ˆÕö ØÐ"2Ñ2ˆÔä‡O‚O�FÕ%÷%
ô 
ð 	üò 9s   ÅH1Ç)IÈ1
H?)ir   Únumpyr   r  Úpandasrµ   r   r   r   r   r   r	   r
   Úpandas._testingÚ_testingr­   Úpandas.api.typingr   Úpandas.tests.groupbyr   r¬   r'   r.  r  ÚfilterwarningsrM   rß   rê   r÷   Úparametrizer  r)  r1  r8  rA  rO  rQ  rT  rX  r_  rc  ri  rl  rw  r}  rè   Úrenamer‚  r�  r”  rž  r¨  r«  r±  r¿  rÈ  rË  rÓ  rÕ  rÜ  rõ   rß  ÚNaTrã  Úfixturerå  rï  r÷  r    rü  rþ  r  r  r  r&  r3  r>  rA  rD  r5   r*   rG  rJ  rO  rS  rZ  r`  rh  rr  r   Úboolrw  ry  r}  r  r�  r†  rˆ  r‘  r•  rš  rž  r¢  r§  r­  rr   r   r   Ú<module>rº     ss  ðÝ ã Û ã ÷÷ ñ õ Ý +Ý 8ð DFÇ6Á6ô Eð"1ð 
ˆ2�6‰6ð1ð 
ˆ2�6‰6ð1ð ˆQð1ð �—‘ð1ð ˆR�V‰Vð1ð ˆb�f‰fð1ð ˆb�f‰fð1ð ˆB�F‰Fð1ð 
ˆ2�6‰6ð1ð  ˆB�F‰Fð!1ð" ˆb�f‰fð#1ð$ 
ˆ2�6‰6ð%1ð& 
ˆ2�6‰6ð'1ð( ˆqð)1ð* ˆB�F‰Fð+1ð, �—‘ð-1ð. 
ˆ2�6‰6ð/1ð0 Ø�F‰FØ�6‰6ØØ�6‰6ò91Ð -ð@ ‡�×ÑÐUÓVñ(ó Wð(òdòN,ò<-ð, ‡�×Ñ˜ T¨5 MÓ2ñ!-ó 3ð!-ðH ‡�×ÑÐUÓVño,ó Wðo,òd,ò(Eò*+ð* ‡�×ÑØ2à	ŠjÑ*ª9¸3Ñ?Ð@à�#ˆJÚ'Ùši¨cÑ2±Eº)Ó4DÐEð	
ð �$ˆKÚ(á ¢°Ñ5Ù ¢°Ñ5ðð	
ðóð& ‡�×Ñ˜¨¨u¨Ó6ñ&ó 7ó'ð(&òD+ò*-ò,ð( ‡�×Ñ˜ T¨5 MÓ2Ø‡�×Ñ˜ d¨E ]Ó3Ø‡�×Ñ˜ $¨ Ó/ñó 0ó 4ó 3ðò@(òV,ò2ò -ò&$ð ‡�×ÑØˆvÐñ 
‘�a“Ó	 ! Q ¨q°!¨fÑ5Ð6ñ 
‘�a“Ó	×	 Ñ	 Ñ!4Ó	5¸a¸SÈÈ1ÀvÑ7NÐOá	‘�a“Ó	 ! Q ¨q°!¨fÑ5Ð6ðóñ-óð-ò90òxò<1ðB ‡�×ÑØà	�8˜WÐ%Ð&Ø	�(˜GÐ$Ð%Ø	�˜7Ð#Ð$Ø	�˜7Ð#Ð$ð	óñ-óð-ò&"-òJ-ò%ð, ‡�×Ñ˜ T¨5 MÓ2ñ,ó 3ð,ðD ‡�×Ñ˜ T¨5 MÓ2ñ/,ó 3ð/,òd-ò8-ò0,ð2 ‡�×ÑØð ÙØ ×,Ò,ÙšI¨ZÑ8º)ÐDÈSÐRUÈJñò Øñð		
ð Ùá¢	°Ñ<Ú"Ú"ñóð		
ðóñ2&ó3ð2&ð ‡�×Ñ˜¨¨b¯f©f°b·f±fÐ'=Ó>ñ#ó ?ð#ð ‡�ñó ðð0 ‡�×Ñ˜ u¨gÐ&6Ó7ñ-ó 8ð-ð  ‡�×Ñ˜ u¨gÐ&6Ó7Ø‡�×Ñ˜ e¨T ]Ó3ñ-ó 4ó 8ð-ð0 ‡�×ÑØð Ø×"Ò"á˜5˜' A™+¨¨°!©Ñ3¸:ÈCÑPÙÚTØ(Ø ññ
 ˜5 %˜.¨1Ñ,Ó-ðó
ò %ð	
ð  Ø×#Ò#á$ e¨U ^¸UÑCÙ$Ò%<ÀeÑLÙ˜5 %˜.Ó)ðò
 'ñð ��1�a˜Ÿ™ §¡¨¨A¨r¯v©v°r·v±v¸qÀ!ÐDð	
ð Ø×#Ò#á$ e¨U ^¸UÑCÙ$Ò%<ÀeÑLÙ˜5 %˜.Ó)ðò
 'ñð ��1�a˜Ÿ™ §¡¨¨A¨r¯v©v°r·v±v¸qÀ!ÐDð	
ð9(ó+ñX-óY+ðX-ò-ð ‡�×Ñ˜¢9²	Ð!;Ó<ñ,ó =ð,ò,ò"
ò#*òL17òh$ð4 ‡�×Ñ˜ e¨T ]Ó3ñ'Bó 4ð'BðT ‡�×ÑÐUÓVñ	-ó Wð	-ð ‡�×ÑØØ‡n�n’iÐ  6§<¡<²Ð";Ð<óñ,ó	ð,ò",ð ‡�×Ñ˜ '¨6Ð!2Ó3ñ-ó 4ð-ò	,ò*,òZ,ò,,ò65,ðp ‡�×Ñ˜ '¨6Ð!2Ó3ð-Ø
ð-Øó-ó 4ð-ð0 ‡�×Ñ˜ '¨6Ð!2Ó3ð,Ø
ð,Øó,ó 4ð,ò0@ð( ‡�×Ñ˜ '¨6Ð!2Ó3ñ-ó 4ð-ò-ò-ò$,ð" ‡�×Ñ˜Ò'CÓDØ‡�×Ñ˜ T¨5 MÓ2ñ-0ó 3ó Eð-0ð` ‡�×Ñ˜¨°'Ð':Ó;Ø‡�×Ñ˜ T¨5 MÓ2ñ0ó 3ó <ð0ð@ ‡�×Ñ˜Ò'CÓDØ‡�×Ñ˜ F¨FÐ#3Ó4Ø‡�×Ñ˜ T¨5 MÓ2ñ0ó 3ó 5ó Eð0ðB ‡�×Ñ˜Ò'CÓDØ‡�×Ñ˜Ò#@ÓAØ‡�×Ñ˜ T¨5 MÓ2ñ#0ó 3ó Bó Eð#0ðL ‡�×Ñ˜Ò'CÓDñ$,ó Eð$,ðN ‡�×Ñ˜¨¨c°C¸°:Ð(>Ó?Ø‡�×Ñ˜ # s¨S°#¨JÐ!7Ó8ñó 9ó @ðð ‡�×Ñ˜¨¨u¨Ó6Ø‡�×Ñ˜ 4 &¨4°¨,Ð!7Ó8ñ.&ó 9ó 7ñ.&r   