Ë
    ž…j‰.  ã                   óô  — d Z ddlZddlZddlmZmZ ddlZddlm	Z	m
Z
mZmZmZmZmZ ddlmZ ej&                  j)                  ddddd	d
d ej*                  dej&                  j-                  d«      g¬«      dddg
«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zej&                  j)                  ddej:                  fdej<                  fd	ej>                  fdej@                  fdejB                  fdejD                  fdejF                  fdd„ fdd„ fg	«      d„ «       Z$ej&                  j)                  ddej:                  fdd„ fd	d„ fdejD                  fdejF                  fg«      d „ «       Z%d!„ Z&ej&                  j)                  d"g d#¢«      ej&                  j)                  d$ ed%«       ed&«      g«      d'„ «       «       Z'ej&                  j)                  d(g d)¢«      d*„ «       Z(ej&                  j)                  dg d+¢«      d,„ «       Z)ej&                  j)                  d-g d.¢«      d/„ «       Z*ej&                  j)                  d0d1d2g«      ej&                  j)                  d3g d4¢«      ej&                  j)                  d$ ejV                  g d5¢d6¬7«       ejV                  g d5¢d8¬7«       ejV                  g d9¢d:¬7«       ejV                  g d9¢d;¬7«       ejV                  g d<¢d=¬7«      g«      d>„ «       «       «       Z,y)?z
test cython .agg behavior
é    N)Úis_float_dtypeÚis_integer_dtype)Ú	DataFrameÚIndexÚNaTÚSeriesÚ	TimedeltaÚ	TimestampÚbdate_rangeÚop_nameÚcountÚsumÚstdÚvarÚsemÚmeanÚmedianzignore::RuntimeWarning)ÚmarksÚprodÚminÚmaxc                 ót  ‡ — ddddddddddt         j                  t         j                  gddgdz  t         j                  j                  d«      j	                  d«      d	œ}t        |«      }t         j                  |j                  dd
d…df<   ˆ fd„}|j                  dgd¬«      j                  d«      }|D ��ci c]  \  }}| ||d   «      “Œ }}}t        d|i«      }d|j                  _
         ||«      }t        j                  ||«       |j                  ddg«      }i }	|D ]&  \  \  }
}} ||d   «      |	j                  |
i «      |<   Œ( t        |	«      j                  j                  «       }ddg|j                  _        d|_
         ||«      d   }‰ dv rt        j"                  ||«       y y c c}}w )Nr   é   g      ð?ÚAÚBé   é   é   ©r   r   ÚCé
   r    c                 ó&   •—  t        | ‰«      «       S ©N)Úgetattr)Úxr   s    €úk/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/pandas/tests/groupby/aggregate/test_cython.pyú<lambda>z(test_cythonized_aggers.<locals>.<lambda>7   s   ø€ Ð&”7˜1˜gÓ&Ó(€ ó    )Úaxis)r   r   )ÚnpÚnanÚrandomÚdefault_rngÚstandard_normalr   ÚlocÚdropÚgroupbyÚindexÚnameÚtmÚassert_frame_equalÚ
setdefaultÚTÚstackÚnamesÚassert_series_equal)r   ÚdataÚdfÚopÚgroupedÚcatÚgroupÚexpÚresultÚexpdÚcat1Úcat2s   `           r&   Útest_cythonized_aggersrF      s§  ø€ ð, ��A�q˜!˜Q  1 a¨¬b¯f©f´b·f±fÐ=Ø�3ˆZ˜!‰^Ü�Y‰Y×"Ñ" 1Ó%×5Ñ5°bÓ9ñ€Dô
 
�4‹€BÜŸ&™&€B‡F�Fˆ1ˆR�ˆ6�3ˆ;Ñã	(€Bð �g‰g�s�e !ˆgÓ$×,Ñ,¨SÓ1€GØ18×
9¡: 3¨ˆ3‘�5˜‘:“ÑÐ
9€CÑ
9Ü
�S˜#�JÓ
€CØ€C‡I�I„NÙ�‹[€FÜ×Ñ˜& #Ô&ð �j‰j˜#˜s˜Ó$€GØ€DØ&ò 9Ñ‰ˆˆt�eÙ*,¨U°3©Z«.ˆ�‰˜˜bÓ! $Ò'ð9ä
�D‹/×
Ñ
×
!Ñ
!Ó
#€CØ˜C�j€C‡I�I„OØ€C„Há�‹[˜Ñ€FØ�/Ñ!Ü
×Ñ˜v sÕ+ð "ùó! :s   Â;F4c                  óÈ  — t        t        j                  j                  d«      j	                  ddd«      t        j                  j                  d«      j	                  ddd«      j                  d«      dœ«      } | j                  d«      d   j                  «       }| j                  d«      d   j                  t        j                  «      }t        j                  ||«       y )	Nr   r   é   é2   Úbool©ÚaÚbrL   rM   )r   r*   r,   r-   ÚintegersÚastyper1   r   Úaggr4   r:   )ÚframerB   Úexpecteds      r&   Útest_cython_agg_booleanrS   O   s®   € Üä—‘×&Ñ& qÓ)×2Ñ2°1°a¸Ó<Ü—‘×&Ñ& qÓ)×2Ñ2°1°a¸Ó<×CÑCÀFÓKñ	
ó€Eð �]‰]˜3Ó Ñ$×)Ñ)Ó+€Fà�}‰}˜SÓ! #Ñ&×*Ñ*¬2¯7©7Ó3€Hä×Ñ˜6 8Õ,r(   c                  ó   — t        t        j                  j                  d«      j	                  ddd«      ddgdz  dœ«      } d	}t        j                  t        |¬
«      5  | j                  d«      d   j                  d¬«       d d d «       t        t        j                  j                  d«      j	                  ddd«      ddgdz  dœ«      } | dg   j                  | d   «      j                  d¬«      }t        g | d   j                  «       j                  «       t        g d¬«      ¬«      }t        j                  ||«       y # 1 sw Y   ŒÁxY w)Nr   r   rH   rI   ÚfooÚbaré   rK   úKCannot use numeric_only=True with SeriesGroupBy.mean and non-numeric dtypes©ÚmatchrL   rM   T©Únumeric_onlyÚstr©Údtype)r2   Úcolumns)r   r*   r,   r-   rN   ÚpytestÚraisesÚ	TypeErrorr1   r   Úsort_valuesÚdrop_duplicatesr   r4   r5   )rQ   ÚmsgrB   rR   s       r&   Útest_cython_agg_nothing_to_aggrg   ]   s.  € ÜÜ�i‰i×#Ñ# AÓ&×/Ñ/°°1°bÓ9ÀÈÀÐQSÑ@SÑTó€Eð X€CÜ	�‰”y¨Ô	,ñ 8Ø�‰�cÓ˜3Ñ×$Ñ$°$Ð$Ô7÷8ô Ü�i‰i×#Ñ# AÓ&×/Ñ/°°1°bÓ9ÀÈÀÐQSÑ@SÑTó€Eð �C�5‰\×!Ñ! %¨¡*Ó-×2Ñ2ÀÐ2ÓE€FÜØ
Ø�C‰j×$Ñ$Ó&×6Ñ6Ó8Ü�b Ô&ô€Hô
 ×Ñ˜& (Õ+÷8ð 8ús   Á%EÅEc            	      ón  — t        t        j                  j                  d«      j	                  ddd«      ddgdz  t        j                  ddd	¬
«      dœ«      } d}t        j                  t        |¬«      5  | j                  d«      j                  j                  d¬«       d d d «       y # 1 sw Y   y xY w)Nr   r   rH   rI   rU   rV   rW   Únowr   )ÚperiodsÚfreq)rL   rM   ÚdatesrX   rY   rM   Tr[   )r   r*   r,   r-   rN   ÚpdÚ
date_rangera   rb   rc   r1   rl   r   )rQ   rf   s     r&   Ú)test_cython_agg_nothing_to_agg_with_datesro   s   s™   € Üä—‘×&Ñ& qÓ)×2Ñ2°1°a¸Ó<Ø˜� "Ñ$Ü—]‘] 5°"¸5ÔAñ	
ó€Eð X€CÜ	�‰”y¨Ô	,ñ 9Ø�‰�cÓ× Ñ ×%Ñ%°4Ð%Ô8÷9÷ 9ñ 9ús   Á6,B+Â+B4c                  óš  — t        g d¢g d¢t        j                  j                  d«      j	                  d«      t        j                  j                  d«      j	                  d«      dœ«      } | j                  d«      d   j                  d„ «      }t        d	d	d	d
œddd	d
œgt        ddgd¬«      d¬«      }t        j                  ||«       y )N)rU   rV   rU   rV   rU   rV   rU   rU   )Úonerq   ÚtwoÚthreerr   rr   rq   rs   r   é   )r   r   r    ÚDr   r   c                 ó>   — | j                  «       j                  «       S r#   )Úvalue_countsÚto_dict©r%   s    r&   r'   z-test_cython_agg_return_dict.<locals>.<lambda>‹   s   € ¨A¯N©NÓ,<×,DÑ,DÓ,F€ r(   r   )rr   rq   rs   rV   rU   ©r3   )r2   r3   )r   r*   r,   r-   r.   r1   rP   r   r   r4   r:   )r<   ÚtsrR   s      r&   Útest_cython_agg_return_dictr|   €   s´   € ä	âIÚMÜ—‘×&Ñ& qÓ)×9Ñ9¸!Ó<Ü—‘×&Ñ& qÓ)×9Ñ9¸!Ó<ñ		
ó
€Bð 
�‰�C‹˜Ñ	×	!Ñ	!Ñ"FÓ	G€BÜØ˜1 qÑ	)°1¸QÈÑ+KÐLÜ�U˜E�N¨Ô-Øô€Hô
 ×Ñ˜2˜xÕ(r(   c                  ó   — t        dd¬«      } t        g d¢dz  t        | ¬«      }|j                  d„ «      }|j	                  «       }|j                  t        j                  «      j                  t        «      }t        j                  ||«       y )Nz1/1/2000rI   )rj   )r   r   r    ru   ÚEr!   )r_   r2   c                 ó   — | j                   S r#   )Úmonthry   s    r&   r'   z&test_cython_fail_agg.<locals>.<lambda>˜   s
   €  1§7¡7€ r(   )
r   r   Úobjectr1   r   rP   r*   rO   r4   r:   )Údrr{   r>   ÚsummedrR   s        r&   Útest_cython_fail_aggr„   ”   si   € Ü	�Z¨Ô	,€BÜ	Ò)¨BÑ.´fÀBÔ	G€Bà�j‰jÑ*Ó+€GØ�[‰[‹]€FØ�{‰{œ2Ÿ6™6Ó"×)Ñ)¬&Ó1€HÜ×Ñ˜6 8Õ,r(   z
op, targopÚfirstc                 ó    — | j                   d   S ©Nr   ©Úilocry   s    r&   r'   r'   ¨   s   € ˜AŸF™F 1™I€ r(   Úlastc                 ó    — | j                   d   S )Néÿÿÿÿrˆ   ry   s    r&   r'   r'   ©   s   € ˜1Ÿ6™6 "™:€ r(   c                 óØ  — t        t        j                  j                  d«      j	                  d«      «      }t        j                  j                  d«      j                  ddd¬«      j                  t        «      }| dk(  rddini }| d	vrd|d
<   |j                  |«      j                  | d d¬«      } |j                  |«      j                  |fi |¤Ž}t        j                  ||«       y )Nr   iè  r   rI   )Úsizer   Úddofr   )r…   rŠ   r)   T©Úaltr\   )r   r*   r,   r-   r.   rN   rO   Úfloatr1   Ú_cython_agg_generalrP   r4   r5   )r=   Útargopr<   ÚlabelsÚkwargsrB   rR   s          r&   Útest__cython_agg_generalr—   ž   sÌ   € ô 
”2—9‘9×(Ñ(¨Ó+×;Ñ;¸DÓAÓ	B€BÜ�Y‰Y×"Ñ" 1Ó%×.Ñ.¨q°"¸4Ð.Ó@×GÑGÌÓN€FØ %šKˆf�a‰[¨R€FØ	Ð"Ñ"Øˆˆv‰à�Z‰Z˜Ó×3Ñ3°B¸DÈtÐ3ÓT€FØ%ˆr�z‰z˜&Ó!×%Ñ% fÑ7°Ñ7€HÜ×Ñ˜& (Õ+r(   c                 óh   — t        | «      dkD  rt        j                  | «      S t        j                  S r‡   )Úlenr*   r   r+   ry   s    r&   r'   r'   ¼   s    € ¬S°«V°aªZœRŸY™Y q›\€ ¼R¿V¹V€ r(   c                 ó0   — t        j                  | d¬«      S )Nr   )r�   )r*   r   ry   s    r&   r'   r'   ½   s   € œ"Ÿ&™& ¨Ô+€ r(   c                 ó^  ‡— t        g d¢«      }t        ddd«      }|j                  t        j                  |d   |«      |¬«      }|j                  | d d¬«      }|j                  t        j                  |d   |«      |¬«      }|j                  ˆfd„«      }t        j                  ||«       y )	N©é   r   é   r   é7   rH   ©ÚobservedTr�   c                 ó   •—  ‰| «      S r#   © )r%   r”   s    €r&   r'   z/test_cython_agg_empty_buckets.<locals>.<lambda>Ì   s   ø€ ™v a›y€ r(   )	r   Úranger1   rm   Úcutr“   rP   r4   r5   )r=   r”   r¡   r<   ÚgrpsÚgrB   rR   s    `      r&   Útest_cython_agg_empty_bucketsr¨   ¸   s–   ø€ ô 
’<Ó	 €BÜ��B˜‹?€Dð 	�
‰
”2—6‘6˜"˜Q™% Ó&°ˆ
Ó:€AØ×"Ñ" 2¨4¸dÐ"ÓC€Fà
�
‰
”2—6‘6˜"˜Q™% Ó&°ˆ
Ó:€AØ�u‰uÓ(Ó)€HÜ×Ñ˜& (Õ+r(   c                 óÂ  — t        g d¢dg¬«      }t        j                  dddt        ¬«      }|j	                  t        j                  |d   |«      | ¬«      j                  d	d d
¬«      }t        j                  ddd¬«      }t        dg d¢it        j                  |dd
¬«      ¬«      }| r||j                  dk7     }t        j                  ||«       |j	                  t        j                  |d   |«      | ¬«      j                  dd d
¬«      }t        dg d¢it        j                  |dd
¬«      ¬«      }| r||j                  dk7     }t        j                  ||«       y )Nrœ   rL   )r`   r   rW   rH   r^   r    r   Tr�   é   )rk   )r   r   é$   r   )r3   Úordered©r2   r   )r   r   i´  r   r   )r   r*   ÚarangeÚintr1   rm   r¥   r“   Úinterval_rangeÚCategoricalIndexrL   r4   r5   )r¡   r<   r¦   rB   Ú	intervalsrR   s         r&   Ú$test_cython_agg_empty_buckets_nanopsr³   Ð   sH  € ô 
’<¨#¨Ô	/€BÜ�9‰9�Q˜˜A¤SÔ)€Dà�Z‰ZœŸ™˜r #™w¨Ó-¸ˆZÓA×UÑUØ�4 dð Vó €Fô ×!Ñ! ! R¨aÔ0€IÜØ	ŠmÐÜ×!Ñ! )°#¸tÔDô€Hñ Ø˜HŸJ™J¨!™OÑ,ˆä×Ñ˜& (Ô+ð �Z‰ZœŸ™˜r #™w¨Ó-¸ˆZÓA×UÑUØ�D tð Vó €Fô Ø	ŠoÐÜ×!Ñ! )°#¸tÔDô€Hñ Ø˜HŸJ™J¨!™OÑ,ˆä×Ñ˜& (Õ+r(   r=   )r…   rŠ   r   r   r;   z2016-10-14 21:00:44.557z17088 days 21:00:44.557c                 óä   — t        ddg|t        gdœ«      }t        ddgd¬«      }t        d|t        gi|¬«      }|j                  d«      j	                  | «      }t        j                  ||«       y )Nr   r   rK   rL   rz   rM   r­   )r   r   r   r1   Ú	aggregater4   r5   )r=   r;   r<   r2   rR   rB   s         r&   Ú"test_cython_with_timestamp_and_natr¶   ñ   sj   € ô 
˜!˜Q˜ t¬S kÑ2Ó	3€BÜ�1�a�&˜sÔ#€Eô ˜# ¤c˜{Ð+°5Ô9€Hà�Z‰Z˜‹_×&Ñ& rÓ*€FÜ×Ñ˜( FÕ+r(   rP   )r   r   r   r   r   r   r   r   ÚohlcÚcumprodÚcumsumÚshiftÚanyÚallÚquantiler…   rŠ   ÚrankÚcumminÚcummaxc                 ó`  — t        g d¢g d¢dœ«      }d|j                  j                  d   j                  j                  _        |j                  dg«      j                  d| i«      }|j                  «       j                  dg«      j                  d| i«      }t        j                  ||«       y )N)gffffff@gš™™™™™@gÍÌÌÌÌÌ@gffffff@g      @)ÚsetosarÂ   rÂ   rÂ   rÂ   )Úsepal_lengthÚspeciesFr   rÄ   rÃ   )r   Ú_mgrÚblocksÚvaluesÚflagsÚ	writeabler1   rP   Úcopyr4   Úassert_equal)rP   r<   rB   rR   s       r&   Ú test_read_only_buffer_source_aggrÌ     s’   € ô6 
â5ÚIñ	
ó
€Bð 05€B‡G�G‡N�N�1Ñ×Ñ×"Ñ"Ô,à�Z‰Z˜˜Ó$×(Ñ(¨.¸#Ð)>Ó?€FØ�w‰w‹y× Ñ  ) Ó-×1Ñ1°>À3Ð2GÓH€Hä‡O�O�F˜HÕ%r(   )
r   r   r   r   r   r   r   r   r   r   c                 óº  — t        ddgdz  t        j                  ddddddd	d
dt        j                  g
d¬«      dœ«      } t	        |j                  d«      d   | «      «       }|j                  |d   j                  d«      ¬«      } t	        |j                  d«      d   | «      «       }| dv rd}nd}|j                  |¬«      }t        j                  ||«       y )Nr   r   rH   r   r   é   é   r   é   rt   é	   ÚInt64r^   )r   r   Úfloat64)r   )r   r   FT)Úconvert_integer)r   rm   ÚarrayÚNAr$   r1   ÚassignrO   Úconvert_dtypesr4   r:   )r   r<   rB   Údf2rR   rÔ   s         r&   Útest_cython_agg_nullable_intrÚ   *  s×   € ô$ 
à�s�˜a‘Ü—‘˜1˜a  A q¨!¨Q°°1´b·e±eÐ<ÀGÔLñ	
ó
€Bð 4ŒW�R—Z‘Z “_ SÑ)¨7Ó3Ó5€FØ
�)‰)�b˜‘g—n‘n YÓ/ˆ)Ó
0€CØ6Œw�s—{‘{ 3Ó'¨Ñ,¨gÓ6Ó8€HØÐ$Ñ$Ø‰àˆØ×&Ñ&°Ð&ÓG€HÜ×Ñ˜6 8Õ,r(   r_   )rÒ   ÚFloat64Úbooleanc                 óH  — t        ddgt        j                  dt        j                  g| ¬«      t        j                  ddg| ¬«      dœ«      }|j	                  d«      j                  «       }t        ddggt        dgd¬«      ddgd	¬
«      }t        j                  ||«       y )Nr   r^   r   r   r   rz   r   r    rÒ   )r2   r`   r_   )	r   rm   rÕ   rÖ   r1   r   r   r4   r5   )r_   r<   rB   rR   s       r&   Ú&test_count_masked_returns_masked_dtyperÞ   M  s�   € ä	à�Q�Ü—‘˜1œbŸe™e˜*¨EÔ2Ü—‘˜1˜a˜&¨Ô.ñ	
ó
€Bð �Z‰Z˜‹_×"Ñ"Ó$€FÜØ
ˆQˆˆœ˜q˜c¨Ô,°s¸C°jÈô€Hô ×Ñ˜& (Õ+r(   Úwith_naTFzop_name, action)	)r   Ú	large_int)r   Úalways_float)r   rá   )r   rá   )r   rà   )r   Úpreserve)r   râ   )r…   râ   )rŠ   râ   )r   r   rÎ   rÏ   rÒ   r^   ÚInt8)gš™™™™™¹?gš™™™™™É?g333333Ó?gš™™™™™Ù?ÚFloat32rÛ   )TTFFrÜ   c                 ó"  — |rt         j                  | d<   t        g d¢| dœ«      }|j                  d«      }|dk(  rt        j                  «       }n«|dk(  rYt        | j                  «      r| j                  }n„t        | j                  «      r| j                  }nbt        j                  «       }nM|dk(  r7t        | j                  «      r| j                  }n&t        j                  «       }n|dk(  r| j                  } t        ||«      «       }|d	   j                  k(  sJ ‚|j                  |«      }|d	   j                  |k(  sJ ‚ t        |d	   |«      «       }|j                  |k(  sJ ‚|d	   j                  |«      }|j                  |k(  sJ ‚y )
NrÎ   )rL   rL   rM   rM   )ÚkeyÚcolræ   Ú
always_intrà   rá   râ   rç   )rm   rÖ   r   r1   Ú
Int64Dtyper   r_   r   ÚFloat64Dtyper$   rµ   )r;   r   Úactionrß   r<   r>   Úexpected_dtyperB   s           r&   Útest_cython_agg_EA_known_dtypesrí   ]  sZ  € ñ: Ü—%‘%ˆˆQ‰ä	Ò/¸Ñ=Ó	>€BØ�j‰j˜Ó€Gà�ÒäŸ™›‰Ø	�;Ò	ä˜$Ÿ*™*Ô%Ø!ŸZ™Z‰NÜ˜dŸj™jÔ)à!ŸZ™Z‰NäŸ]™]›_‰NØ	�>Ò	!ä˜$Ÿ*™*Ô%Ø!ŸZ™Z‰NäŸ_™_Ó.‰NØ	�:Ò	ØŸ™ˆà&ŒW�W˜gÓ&Ó(€FØ�%‰=×Ñ .Ò0Ð0Ð0à×Ñ˜wÓ'€FØ�%‰=×Ñ .Ò0Ð0Ð0à-ŒW�W˜U‘^ WÓ-Ó/€FØ�<‰<˜>Ò)Ð)Ð)à�U‰^×%Ñ% gÓ.€FØ�<‰<˜>Ò)Ð)Ñ)r(   )-Ú__doc__Únumpyr*   ra   Úpandas.core.dtypes.commonr   r   Úpandasrm   r   r   r   r   r	   r
   r   Úpandas._testingÚ_testingr4   ÚmarkÚparametrizeÚparamÚfilterwarningsrF   rS   rg   ro   r|   r„   r   r   r   r   r   r   r   r—   r¨   r³   r¶   rÌ   rÚ   rÞ   rÕ   rí   r£   r(   r&   ú<module>rø      s:  ðñó Û ÷ó
 ÷÷ ñ õ ð ‡�×ÑØàØØØØØØˆ�‰Øð —;‘;×-Ñ-Ð.FÓGÐHô		
ð 	ØØðóñ(,ó)ð(,òB-ò,ò,
9ò)ò(-ð ‡�×ÑØà	�—‘ÐØ	�2—9‘9ÐØ	�—‘ˆØ	�—‘ˆØ	�—‘ÐØ	�—‘ˆØ	�—‘ˆØ	Ñ%Ð&Ø	Ñ%Ð&ð
óñ	,óð	,ð ‡�×ÑØà	�—‘ÐØ	ÑCÐDØ	Ñ+Ð,Ø	�—‘ˆØ	�—‘ˆðó	ñ,ó	ð,ò,ðB ‡�×Ñ˜Ò>Ó?Ø‡�×ÑØ
‰YÐ0Ó1±9Ð=VÓ3WÐXóñ	,óó @ð	,ð ‡�×ÑØ	òóñ2&ó3ð2&ð  ‡�×ÑØòóñ-óð-ð( ‡�×Ñ˜Ò"AÓBñ,ó Cð,ð ‡�×Ñ˜ T¨5 MÓ2Ø‡�×ÑØòóð" ‡�×ÑØ
àˆ�‰’ WÔ-Øˆ�‰’ VÔ,Øˆ�‰Ò%¨YÔ7Øˆ�‰Ò%¨YÔ7Øˆ�‰Ò+°9Ô=ðó	ñ&*ó	ó#ó 3ñ8&*r(   