Ë
    ž…jõ*  ã            
       ó0  — d dl Zd dlZd dlmZ d dlmc mZ d dl	Z
d dl	mZmZ d dlmZ  ej                   ej"                  ej$                  ej&                  ej(                  ddgg d¢¬«      d„ «       Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej<                  j?                  dddg«      ej<                  j?                  dg d¢«      d„ «       «       Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&ej<                  j?                  dddg«      ej<                  j?                  dg d¢«      ej<                  j?                  dg d¢g d ¢fg d!¢g d"¢fg d#¢g d ¢fg«      d$„ «       «       «       Z'ej<                  j?                  dddg«      d%„ «       Z(ej<                  j?                  d&d'd(g«      d)„ «       Z)ejT                  ej<                  j?                  dddg«      ej<                  j?                  d*d+ ejV                  d,«      jX                  fd-g«      d.„ «       «       «       Z-d/„ Z.y)0é    N)ÚUnsupportedFunctionCall)Ú	DataFrameÚSeriesÚInt64ÚFloat64)znp.int32znp.int64z
np.float32z
np.float64r   r   )ÚparamsÚidsc                 óþ  — | j                   }|}|dk(  rt        j                  }n|dk(  rt        j                  }t        j                  |«      j
                  dk(  rt        j                  |«      j                  nt        j                  |«      j                  }t        j                  |«      j
                  dk(  rt        j                  |«      j                  nt        j                  |«      j                  }|||fS )zZ
    Fixture of dtypes with min and max values used for testing
    cummin and cummax
    r   r   Úi)
ÚparamÚnpÚint64Úfloat64ÚdtypeÚkindÚiinfoÚminÚfinfoÚmax)Úrequestr   Únp_typeÚmin_valÚmax_vals        úe/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/pandas/tests/groupby/test_cumulative.pyÚdtypes_for_minmaxr      sË   € ð �M‰M€Eà€GØ�ÒÜ—(‘(‰Ø	�)Ò	Ü—*‘*ˆô �8‰8�GÓ×!Ñ! SÒ(ô 	�‰�Ó×Òä�X‰X�gÓ×"Ñ"ð ô �8‰8�GÓ×!Ñ! SÒ(ô 	�‰�Ó×Òä�X‰X�gÓ×"Ñ"ð ð �7˜GÐ$Ð$ó    c                  ó  — t        dgdz  ddœ«      } | j                  d«      d   j                  «       }| j                  dd¬«      d   j                  d	„ «      }d|_        t        j                  ||«       t        dgd
z  ddœ«      } | d   j                  t        «      | d<   | j                  d«      d   j                  «       }| j                  dd¬«      d   j                  d„ «      }d|_        t        j                  ||«       y )NÚbé
   é   ©ÚkeyÚvaluer"   r#   F©Ú
group_keysc                 ó"   — | j                  «       S ©N©Úcumprod©Úxs    r   ú<lambda>z&test_groupby_cumprod.<locals>.<lambda>3   ó   € ÈAÏIÉIËK€ r   éd   c                 ó"   — | j                  «       S r'   r(   r*   s    r   r,   z&test_groupby_cumprod.<locals>.<lambda>:   r-   r   )	r   Úgroupbyr)   ÚapplyÚnameÚtmÚassert_series_equalÚastypeÚfloat)ÚdfÚactualÚexpecteds      r   Útest_groupby_cumprodr:   .   sð   € ä	˜C˜5 2™:°Ñ2Ó	3€Bà�Z‰Z˜Ó˜wÑ'×/Ñ/Ó1€FØ�z‰z˜%¨EˆzÓ2°7Ñ;×AÑAÑBWÓX€HØ€H„MÜ×Ñ˜6 8Ô,ä	˜C˜5 3™;°Ñ3Ó	4€BØ�W‘+×$Ñ$¤UÓ+€B€w�KØ�Z‰Z˜Ó˜wÑ'×/Ñ/Ó1€FØ�z‰z˜%¨EˆzÓ2°7Ñ;×AÑAÑBWÓX€HØ€H„MÜ×Ñ˜6 8Õ,r   c                  ó<  — t        dgdz  ddœ«      } | j                  d«      d   j                  «       }t        g d¢d¬«      }t	        j
                  ||«       | j                  dd	¬
«      d   j                  d„ «      }d|_        t	        j
                  ||«       y )Nr   é   é † r!   r"   r#   )r=   l    d(	 l     �Iú5 l      Fµx:^ ©r2   Fr$   c                 ó"   — | j                  «       S r'   r(   r*   s    r   r,   z/test_groupby_cumprod_overflow.<locals>.<lambda>J   s   € �!—)‘)“+€ r   )r   r0   r)   r   r3   r4   r1   r2   )r7   r8   r9   Únumpy_results       r   Útest_groupby_cumprod_overflowrA   ?   s”   € ä	˜C˜5 1™9¨wÑ7Ó	8€BØ�Z‰Z˜Ó˜wÑ'×/Ñ/Ó1€FÜÚMØô€Hô ×Ñ˜6 8Ô,à—:‘:˜e°�:Ó6°wÑ?×EÑEÙó€Lð  €LÔÜ×Ñ˜6 <Õ0r   c                  ó  — t        ddt        j                  dgg d¢dœ«      } | j                  d«      j	                  dd¬«      }t        dt        j                  t        j                  gg d	¢d
œ«      }t        j                  ||«       y )Né   r    )rC   r    g      @)Úar   ÚcrD   TF)Únumeric_onlyÚskipna)rC   r    g      @)r   rE   )r   r   Únanr0   r)   r3   Úassert_frame_equal©r7   Úresultr9   s      r   Ú1test_groupby_cumprod_nan_influences_other_columnsrL   P   sq   € ä	àØ”R—V‘V˜Q�Úñ	
ó
€Bð �Z‰Z˜‹_×$Ñ$°$¸uÐ$ÓE€FÜ ¤2§6¡6¬2¯6©6Ð2ºÑEÓF€HÜ×Ñ˜& (Õ+r   c                 ó   — | d   }t        g d¢g d¢dœ«      }g d¢}|j                  |«      }t        d|i«      j                  |«      }|j                  d«      j                  «       }t	        j
                  ||«       |j                  dd¬	«      j                  j                  d
„ «      j                  «       }t	        j
                  ||«       y )Nr   ©rC   rC   rC   rC   r    r    r    r    ©é   r<   rP   r    r    rP   r    rC   ©ÚAÚB©rP   rP   rP   r    r    r    r    rC   rS   rR   Fr$   c                 ó"   — | j                  «       S r'   ©Úcumminr*   s    r   r,   ztest_cummin.<locals>.<lambda>i   ó   € ÀÇÁÃ€ r   )	r   r5   r0   rW   r3   rI   rS   r1   Úto_frame)r   r   Úbase_dfÚexpected_minsr7   r9   rK   s          r   Útest_cumminr\   ^   s¯   € Ø˜aÑ €Eô Ò6Ò=UÑVÓW€GÚ,€Mà	�‰˜Ó	€BÜ˜#˜}Ð-Ó.×5Ñ5°eÓ<€HØ�Z‰Z˜‹_×#Ñ#Ó%€FÜ×Ñ˜& (Ô+Ø�Z‰Z˜¨ˆZÓ.×0Ñ0×6Ñ6Ñ7KÓL×UÑUÓW€FÜ×Ñ˜& (Õ+r   c                 óV  — | d   }| d   }t        g d¢g d¢dœ«      }g d¢}t        d|i«      j                  |«      }|j                  |«      }||j                  dd	gdf<   |dz   |j                  dd
gdf<   ||j                  g d¢df<   |dz   |j                  dd
gdf<   |j                  d«      j	                  «       }t        j                  ||d¬«       |j                  dd¬«      j                  j                  d„ «      j                  «       }t        j                  ||d¬«       y )Nr   rC   rN   rO   rQ   rT   rS   r    é   é   ©r    rP   r^   é   rR   T)Úcheck_exactFr$   c                 ó"   — | j                  «       S r'   rV   r*   s    r   r,   z1test_cummin_min_value_for_dtype.<locals>.<lambda>}   ó   € ¸A¿H¹H»J€ r   )
r   r5   Úlocr0   rW   r3   rI   rS   r1   rY   )r   r   r   rZ   r[   r9   r7   rK   s           r   Útest_cummin_min_value_for_dtyperf   m   s  € Ø˜aÑ €EØ Ñ"€Gô Ò6Ò=UÑVÓW€GÚ,€MÜ˜#˜}Ð-Ó.×5Ñ5°eÓ<€HØ	�‰˜Ó	€BØ!€B‡F�FˆAˆqˆ6�3ˆ;ÑØ! A™+€B‡F�FˆAˆqˆ6�3ˆ;ÑØ&-€H‡L�L’˜sÐ"Ñ#Ø '¨!¡€H‡L�L�!�Q�˜�ÑØ�Z‰Z˜‹_×#Ñ#Ó%€FÜ×Ñ˜& (¸Õ=à
�
‰
�3 5ˆ
Ó)×+Ñ+×1Ñ1Ñ2FÓG×PÑPÓRð ô ×Ñ˜& (¸Ö=r   c                 ó6  — t        g d¢g d¢dœ«      }|j                  ddi«      }t        j                  |j                  g d¢df<   t        dt        j                  dt        j                  dt        j                  d	t        j                  d
gi«      }|j                  d«      j                  «       }t        j                  ||«       |j                  dd¬«      j                  j                  d„ «      j                  «       }t        j                  ||«       y )NrN   rO   rQ   rS   r6   ©r   r    r<   r^   r<   r    rP   rC   rR   Fr$   c                 ó"   — | j                  «       S r'   rV   r*   s    r   r,   z0test_cummin_nan_in_some_values.<locals>.<lambda>‹   rX   r   )r   r5   r   rH   re   r0   rW   r3   rI   rS   r1   rY   ©r   rZ   r9   rK   s       r   Útest_cummin_nan_in_some_valuesrk   ‚   sÕ   € äÒ6Ò=UÑVÓW€GØ�n‰n˜c 7˜^Ó,€GÜ%'§V¡V€G‡K�K’˜cÐ!Ñ"Ü˜#¤§¡¨¬2¯6©6°1´b·f±f¸aÄÇÁÈÐKÐLÓM€HØ�_‰_˜SÓ!×(Ñ(Ó*€FÜ×Ñ˜& (Ô+à�‰˜¨ˆÓ.×0Ñ0×6Ñ6Ñ7KÓL×UÑUÓWð ô ×Ñ˜& (Õ+r   c                  óþ   — t        dgt        j                  dg«      dœ«      } t        t        j                  d«      dgd¬«      }| j	                  d«      d   j                  «       }t        j                  ||«       y ©NrC   Ú2001©rD   r   r   r   )Úindexr2   rD   )r   ÚpdÚto_datetimer   r0   rW   r3   r4   ©r7   r9   rK   s      r   Útest_cummin_datetimert   �   ób   € ä	˜!˜¤2§>¡>°6°(Ó#;Ñ<Ó	=€BÜ”b—n‘n VÓ,°Q°C¸cÔB€Hà�Z‰Z˜‹_˜SÑ!×(Ñ(Ó*€FÜ×Ñ˜8 VÕ,r   c                  óÄ   — t        g d¢g d¢dœ«      } | j                  d«      j                  j                  «       }t	        g d¢d¬«      }t        j                  ||«       y )N©rC   r    rC   )rC   r    r    ro   rD   r   r>   )r   r0   r   rW   r   r3   r4   rJ   s      r   Útest_cummin_getattr_seriesrx   ™   óI   € ä	šªÑ3Ó	4€BØ�Z‰Z˜‹_×Ñ×%Ñ%Ó'€FÜ’i cÔ*€HÜ×Ñ˜6 8Õ,r   ÚmethodrW   Úcummaxr   )ÚUInt64r   r   r6   Úbooleanc                 óª  — |dk(  rt         j                  nt        j                  }t	        g d¢|gdz  dœ«      }|d   j                  |«      |d<   |j                  d«      }t	        d|gdz  i|¬«      } t        || «      «       }t        j                  ||«        t        |d   | «      «       j                  «       }t        j                  ||«       y )Nr6   rN   é   rQ   rS   rR   ©r   )r   rH   rq   ÚNAr   r5   r0   Úgetattrr3   rI   rY   )rz   r   ÚitemrZ   Úgroupedr9   rK   s          r   Útest_cummin_max_all_nan_columnr…   ¡   s¼   € ð ˜gÒ%Œ2�6Š6¬2¯5©5€DÜÒ6¸d¸VÀa¹ZÑHÓI€GØ˜3‘<×&Ñ& uÓ-€GˆC�LØ�o‰o˜cÓ"€Gä˜# ˜v¨™zÐ*°%Ô8€HØ%ŒW�W˜fÓ%Ó'€FÜ×Ñ˜( FÔ+à*ŒW�W˜S‘\ 6Ó*Ó,×5Ñ5Ó7€FÜ×Ñ˜( FÕ+r   c                 ó   — | d   }t        g d¢g d¢dœ«      }g d¢}|j                  |«      }t        d|i«      j                  |«      }|j                  d«      j                  «       }t	        j
                  ||«       |j                  dd¬	«      j                  j                  d
„ «      j                  «       }t	        j
                  ||«       y )Nr   rN   rO   rQ   ©rP   r<   r<   r<   r    rP   rP   rP   rS   rR   Fr$   c                 ó"   — | j                  «       S r'   ©r{   r*   s    r   r,   ztest_cummax.<locals>.<lambda>½   rX   r   )	r   r5   r0   r{   r3   rI   rS   r1   rY   )r   r   rZ   Úexpected_maxsr7   r9   rK   s          r   Útest_cummaxr‹   ±   s¯   € Ø˜aÑ €Eô Ò6Ò=UÑVÓW€GÚ,€Mà	�‰˜Ó	€Bä˜#˜}Ð-Ó.×5Ñ5°eÓ<€HØ�Z‰Z˜‹_×#Ñ#Ó%€FÜ×Ñ˜& (Ô+Ø�Z‰Z˜¨ˆZÓ.×0Ñ0×6Ñ6Ñ7KÓL×UÑUÓW€FÜ×Ñ˜& (Õ+r   c                 óö  — | d   }| d   }t        g d¢g d¢dœ«      }g d¢}|j                  |«      }||j                  ddgdf<   t        d|i«      j                  |«      }||j                  g d	¢df<   |j                  d
«      j	                  «       }t        j                  ||«       |j                  d
d¬«      j                  j                  d„ «      j                  «       }t        j                  ||«       y )Nr   r    rN   rO   rQ   r‡   r^   rS   r`   rR   Fr$   c                 ó"   — | j                  «       S r'   r‰   r*   s    r   r,   z1test_cummax_min_value_for_dtype.<locals>.<lambda>Ð   rd   r   )
r   r5   re   r0   r{   r3   rI   rS   r1   rY   )r   r   r   rZ   rŠ   r7   r9   rK   s           r   Útest_cummax_min_value_for_dtyperŽ   Á   sç   € Ø˜aÑ €EØ Ñ"€Gô Ò6Ò=UÑVÓW€GÚ,€Mà	�‰˜Ó	€BØ!€B‡F�FˆAˆqˆ6�3ˆ;ÑÜ˜#˜}Ð-Ó.×5Ñ5°eÓ<€HØ&-€H‡L�L’˜sÐ"Ñ#Ø�Z‰Z˜‹_×#Ñ#Ó%€FÜ×Ñ˜& (Ô+à
�
‰
�3 5ˆ
Ó)×+Ñ+×1Ñ1Ñ2FÓG×PÑPÓRð ô ×Ñ˜& (Õ+r   c                 ó6  — t        g d¢g d¢dœ«      }|j                  ddi«      }t        j                  |j                  g d¢df<   t        dt        j                  dt        j                  dt        j                  dt        j                  dgi«      }|j                  d	«      j                  «       }t        j                  ||«       |j                  d	d
¬«      j                  j                  d„ «      j                  «       }t        j                  ||«       y )NrN   rO   rQ   rS   r6   rh   r<   rP   rR   Fr$   c                 ó"   — | j                  «       S r'   r‰   r*   s    r   r,   z0test_cummax_nan_in_some_values.<locals>.<lambda>ß   rX   r   )r   r5   r   rH   re   r0   r{   r3   rI   rS   r1   rY   rj   s       r   Útest_cummax_nan_in_some_valuesr‘   Õ   s×   € ô Ò6Ò=UÑVÓW€GØ�n‰n˜c 7˜^Ó,€GÜ%'§V¡V€G‡K�K’˜cÐ!Ñ"Ü˜#¤§¡¨¬2¯6©6°1´b·f±f¸aÄÇÁÈÐKÐLÓM€HØ�_‰_˜SÓ!×(Ñ(Ó*€FÜ×Ñ˜& (Ô+à�‰˜¨ˆÓ.×0Ñ0×6Ñ6Ñ7KÓL×UÑUÓWð ô ×Ñ˜& (Õ+r   c                  óþ   — t        dgt        j                  dg«      dœ«      } t        t        j                  d«      dgd¬«      }| j	                  d«      d   j                  «       }t        j                  ||«       y rm   )r   rq   rr   r   r0   r{   r3   r4   rs   s      r   Útest_cummax_datetimer“   ä   ru   r   c                  óÄ   — t        g d¢g d¢dœ«      } | j                  d«      j                  j                  «       }t	        g d¢d¬«      }t        j                  ||«       y )Nrw   )r    rC   rC   ro   rD   )r    rC   r    r   r>   )r   r0   r   r{   r   r3   r4   rJ   s      r   Útest_cummax_getattr_seriesr•   í   ry   r   c                  óT  — t        t        d«      D � cg c]  } t        j                  j                  | z   ‘Œ! c} «      }t        d||j                  j                  d«      dœ«      }|j                  d«      }|j                  «       }|ddg   }t        j                  ||«       y c c} w )Nr_   rC   zM8[ns]©rR   rS   ÚCrR   rS   r˜   )r   Úrangerq   ÚNaTÚ_valuer   Ú_valuesÚviewr0   r{   r3   rI   )ÚnÚserr7   ÚgbÚresÚexps         r   Ú&test_cummax_i8_at_implementation_boundr£   õ   s„   € ô ¬U°1«XÖ6¨”"—&‘&—-‘- !Ó#Ò6Ó
7€CÜ	˜ ¨3¯;©;×+;Ñ+;¸HÓ+EÑFÓ	G€BØ	�‰�C‹€Bà
�)‰)‹+€CØ
ˆc�3ˆZ‰.€CÜ×Ñ˜#˜sÕ#ùò 7s   “$B%)r6   r   r   zgroups,expected_data©rC   rC   rC   )rC   NN©rC   r    rP   ©rC   Nr    )rC   rP   rP   c                 ó  — t        dt        g d¢|¬«      i«      }|j                  «       }|j                  |«      d   } t	        || «      d¬«      }t        ||d¬«      }t        j                  ||«       t        j                  ||«       y )NrD   r¦   r€   F©rG   )r   r2   )r   r   Úcopyr0   r‚   r3   rI   r4   )	rz   r   ÚgroupsÚexpected_datar7   Úorigr    rK   r9   s	            r   Útest_cummin_max_skipnar­     s{   € ô 
�Cœ¢°EÔ:Ð;Ó	<€BØ�7‰7‹9€DØ	�‰�FÓ	˜CÑ	 €Bà ŒW�R˜Ó ¨Ô.€FÜ�m¨5°sÔ;€Hô ×Ñ˜"˜dÔ#ä×Ñ˜6 8Õ,r   c                 óB  — t        t        j                  ddgg d¢dœ«      }|j                  g d¢«      ddg   } t	        || «      d¬«      }t        t        j                  t        j                  t        j                  gg d¢dœ«      }t        j                  ||«       y )	Nç       @)r¯   r¯   r¯   ro   r¤   rD   r   Fr¨   )r   r   rH   r0   r‚   r3   rI   )rz   r7   r    rK   r9   s        r   Ú$test_cummin_max_skipna_multiple_colsr°     sz   € ô 
œ"Ÿ&™& # sÐ+²/ÑBÓ	C€BØ	�‰’IÓ	  S˜zÑ	*€Bà ŒW�R˜Ó ¨Ô.€FÜ¤§¡¬¯©´·±Ð7ºoÑNÓO€Hä×Ñ˜& (Õ+r   Úfuncr)   Úcumsumc                 ó\  — t        g d¢g d¢dœ«      }|j                  d«      }d}t        j                  t        |¬«      5   t        || «      ddd	«       d d d «       t        j                  t        |¬«      5   t        || «      d¬
«       d d d «       y # 1 sw Y   ŒAxY w# 1 sw Y   y xY w)Nrw   r¥   rQ   rR   z+numpy operations are not valid with groupby)ÚmatchrC   r    rP   )Úfoo)r   r0   ÚpytestÚraisesr   r‚   )r±   r7   ÚgÚmsgs       r   Útest_numpy_compatrº   &  s˜   € ô 
šªÑ3Ó	4€BØ
�
‰
�3‹€Aà
7€Cä	�‰Ô.°cÔ	:ñ "ØŒ��4Ó˜˜A˜qÔ!÷"ä	�‰Ô.°cÔ	:ñ  ØŒ��4Ó˜QÕ÷ ð  ÷"ð "ú÷ ð  ús   ÁBÁ9B"ÂBÂ"B+z	dtype,valr|   Úuint64)r   l         c                 óÚ   — |t         j                  g}t        ddg|dœ|¬«      }|j                  d«      }|j	                  | «      }t        d|i|¬«      }t        j                  ||«       y )NrC   )Úgrpr   r€   r½   r   )rq   r�   r   r0   Ú	transformr3   rI   )rz   r   ÚvalÚdatar7   r„   rK   r9   s           r   Ú#test_nullable_int_not_cast_as_floatrÁ   4  sd   € ð ”—‘ˆ<€DÜ	˜A˜q˜6¨Ñ-°UÔ	;€BØ�j‰j˜Ó€Gà×Ñ˜vÓ&€FÜ˜#˜t˜¨EÔ2€Hä×Ñ˜& (Õ+r   c                 óF  — t        ddt        j                  gdt        j                  dgg d¢gg d¢¬«      }t        dt        j                  gt        j                  dgddggdd	g¬«      }|j                  d
| ¬«      j	                  «       }t        j                  ||«       y )NrC   r    é	   )rP   r<   rÃ   r—   )Úcolumnsr<   rS   r˜   rR   )Úas_index)r   r   rH   r0   r²   r3   rI   )rÅ   r7   r9   rK   s       r   Útest_cython_api2rÆ   D  s�   € ô
 
�Q˜œ2Ÿ6™6�N Q¬¯©° N²IÐ>ÊÔ	X€BÜ˜1œbŸf™f˜+¬¯©° {°Q¸°FÐ;ÀcÈ3ÀZÔP€HØ�Z‰Z˜ hˆZÓ/×6Ñ6Ó8€FÜ×Ñ˜& (Õ+r   )/Únumpyr   r¶   Úpandas.errorsr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasrq   r   r   Úpandas._testingÚ_testingr3   ÚfixtureÚint32r   Úfloat32r   r   r:   rA   rL   r\   rf   rk   rt   rx   ÚmarkÚparametrizer…   r‹   rŽ   r‘   r“   r•   r£   r­   r°   rº   Úskip_if_32bitr   r   rÁ   rÆ   © r   r   ú<module>r×      s3  ðÛ Û å 1ß )Ð )ã ÷õ ð €‡�Ø�H‰H�b—h‘h §
¡
¨B¯J©J¸ÀÐKÚPôñ%ó	ð%ò6-ò"1ò",ò,ò>ò*,ò-ò-ð ‡�×Ñ˜ H¨hÐ#7Ó8Ø‡�×Ñ˜Ò"TÓUñ,ó Vó 9ð,ò,ò ,ò(,ò-ò-ò	$ð ‡�×Ñ˜ H¨hÐ#7Ó8Ø‡�×Ñ˜Ò"?Ó@Ø‡�×ÑØâ	’OÐ$Ú	’LÐ!Ú	’OÐ$ðóñ-óó Aó 9ð-ð ‡�×Ñ˜ H¨hÐ#7Ó8ñ,ó 9ð,ð ‡�×Ñ˜ )¨XÐ!6Ó7ñ
 ó 8ð
 ð ×ÑØ‡�×Ñ˜ H¨hÐ#7Ó8Ø‡�×ÑØ�8˜X˜RŸX™X hÓ/×3Ñ3Ð4Ð6JÐKóñ,óó 9ó ð
,ó,r   