Ë
    ¤ehâ  ã                   ó�  — d dl Zd dlZd dlmc mZ d dlmZm	Z	 d dl
mZ  ej                  d«      ej                  j                  gZ ej"                  d dg¬«      d„ «       Zd„ Zd„ Zd	„ Zej                  j-                  d
d„ d„ d„ d„ g«      d„ «       Zej                  j-                  dg d¢g d¢g«      d„ «       Zd„ Zd„ Zd„ Zy)é    N)Ú	DataFrameÚIndexÚnumbaé   )Úparamsc                 ó   — | j                   S ©N)Úparam)Úrequests    ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/tests/apply/test_numba.pyÚ
apply_axisr      s   € à�=‰=Ðó    c                 ó†   — d„ }| j                  |d|¬«      }| j                  |d|¬«      }t        j                  ||«       y )Nc                 ó   — | S r	   © ©Úxs    r   ú<lambda>z+test_numba_vs_python_noop.<locals>.<lambda>   ó   € �Q€ r   r   ©ÚengineÚaxisÚpython)ÚapplyÚtmÚassert_frame_equal)Úfloat_framer   ÚfuncÚresultÚexpecteds        r   Útest_numba_vs_python_noopr!      sE   € Ù€DØ×Ñ˜t¨G¸*ÐÓE€FØ× Ñ  ¨h¸ZÐ ÓH€HÜ×Ñ˜& (Õ+r   c                  ó  — t        j                  d«       t        dt        ddgd¬«      t        ddgd¬«      ¬	«      } d
„ }| j	                  |dd¬«      }| j	                  |dd¬«      }t        j                  ||dd¬«       y )NÚpyarrowr   ÚaÚbzstring[pyarrow_numpy]©Údtyper   Úy)ÚindexÚcolumnsc                 ó   — | S r	   r   r   s    r   r   z3test_numba_vs_python_string_index.<locals>.<lambda>#   r   r   r   r   r   r   F)Úcheck_column_typeÚcheck_index_type)ÚpytestÚimportorskipr   r   r   r   r   )Údfr   r   r    s       r   Ú!test_numba_vs_python_string_indexr1      s�   € ä
×Ñ˜	Ô"Ü	Ø	Ü�S˜#�JÐ&=Ô>Ü�s˜C�jÐ(?Ô@ô
€Bñ
 €DØ�X‰X�d 7°ˆXÓ3€FØ�x‰x˜ X°AˆxÓ6€HÜ×ÑØ�¨EÀEör   c                  óL  — t        g d¢g d¢g d¢dœt        g d¢«      ¬«      } d„ }| j                  |dd	¬
«      }| j                  |dd	¬
«      }t        j                  ||«       d„ }| j                  |dd¬
«      }| j                  |dd¬
«      }t        j                  ||«       y )N©r   é   é   ©é   é   é   )g      @g       @g      "@©r$   r%   Úc)ÚAÚBÚC©r)   c                 ó   — | d   S )Nr;   r   r   s    r   r   z/test_numba_vs_python_indexing.<locals>.<lambda>0   ó
   € ˜˜3™€ r   r   r   r   r   c                 ó   — | d   S )Nr<   r   r   s    r   r   z/test_numba_vs_python_indexing.<locals>.<lambda>5   rA   r   r   )r   r   r   r   Úassert_series_equal)ÚframeÚrow_funcr   r    Úcol_funcs        r   Útest_numba_vs_python_indexingrG   +   sš   € ÜÚšiªoÑ>Ü’OÓ$ô€Eñ  €HØ�[‰[˜¨'¸ˆ[Ó:€FØ�{‰{˜8¨H¸1ˆ{Ó=€HÜ×Ñ˜6 8Ô,á€HØ�[‰[˜¨'¸ˆ[Ó:€FØ�{‰{˜8¨H¸1ˆ{Ó=€HÜ×Ñ˜6 8Õ,r   Ú	reductionc                 ó"   — | j                  «       S r	   )Úmeanr   s    r   r   r   =   s   € ˆq�v‰v‹x€ r   c                 ó"   — | j                  «       S r	   )Úminr   s    r   r   r   =   s   €  1§5¡5£7€ r   c                 ó"   — | j                  «       S r	   )Úmaxr   s    r   r   r   =   s   € °a·e±e³g€ r   c                 ó"   — | j                  «       S r	   )Úsumr   s    r   r   r   =   s   € ÈÏÉË€ r   c                 óÜ   — t        t        j                  dt        j                  ¬«      «      }|j	                  | d|¬«      }|j	                  | d|¬«      }t        j                  ||«       y )N)r7   r7   r&   r   r   r   )r   ÚnpÚonesÚfloat64r   r   rC   )rH   r   r0   r   r    s        r   Útest_numba_vs_python_reductionsrU   ;   sU   € ô
 
”2—7‘7˜6¬¯©Ô4Ó	5€BØ�X‰X�i¨°jˆXÓA€FØ�x‰x˜	¨(¸ˆxÓD€HÜ×Ñ˜6 8Õ,r   Úcolnamesr3   )g      ð?g       @g      @c                 ó  ‡— t        t        j                  g d¢g d¢g d¢gt        j                  ¬«      | ¬«      }| d   Šˆfd„}|j	                  |dd	¬
«      }|j	                  |dd	¬
«      }t        j                  ||«       y )Nr3   r6   )é   é   é	   r&   )r*   r   c                 ó   •— | ‰   S r	   r   )r   Ú	first_cols    €r   r   z-test_numba_numeric_colnames.<locals>.<lambda>M   s   ø€ �!�I‘,€ r   r   r   r   r   )r   rR   ÚarrayÚint64r   r   rC   )rV   r0   Úfr   r    r\   s        @r   Útest_numba_numeric_colnamesr`   F   sr   ø€ ô 
Ü
�‰’)šYª	Ð2¼"¿(¹(ÔCÈXô
€Bð ˜‘€IÛ€AØ�X‰X�a ¨aˆXÓ0€FØ�x‰x˜ (°ˆxÓ3€HÜ×Ñ˜6 8Õ,r   c                 ó–   — d„ }t        j                  t        d¬«      5  | j                  |dddi¬«       d d d «       y # 1 sw Y   y xY w)Nc                 ó   — | S r	   r   r   s    r   r   z1test_numba_parallel_unsupported.<locals>.<lambda>T   ó   € �!€ r   zAParallel apply is not supported when raw=False and engine='numba'©Úmatchr   ÚparallelT)r   Úengine_kwargs)r.   ÚraisesÚNotImplementedErrorr   )r   r_   s     r   Útest_numba_parallel_unsupportedrj   S   sN   € Ù€AÜ	�‰ÜØQô
ñ Oð 	×Ñ˜! G¸JÈÐ;MÐÔN÷	O÷ Oñ Oús	   Ÿ?¿Ac                 óÊ   — d„ }t        dddgit        ddg«      ¬«      }t        j                  t        d¬«      5  |j                  |d| ¬	«       d d d «       y # 1 sw Y   y xY w)
Nc                 ó   — | S r	   r   r   s    r   r   z2test_numba_nonunique_unsupported.<locals>.<lambda>]   rc   r   r$   r   r4   r?   zBThe index/columns must be unique when raw=False and engine='numba'rd   r   r   )r   r   r.   rh   ri   r   ©r   r_   r0   s      r   Ú test_numba_nonunique_unsupportedrn   \   s_   € Ù€AÜ	�C˜!˜Q˜�=¬¨s°C¨jÓ(9Ô	:€BÜ	�‰ÜØRô
ñ 5ð 	�‰�˜7¨ˆÔ4÷	5÷ 5ñ 5ús   »AÁA"c                 ó”  — d„ }t        ddgddgddgdœ«      }|d	   j                  d
«      |d	<   t        j                  t        d¬«      5  |j                  |d| ¬«       d d d «       t        j                  t        d¬«      5  |d	   j                  «       j                  |d| ¬«       d d d «       y # 1 sw Y   ŒSxY w# 1 sw Y   y xY w)Nc                 ó   — | S r	   r   r   s    r   r   z/test_numba_unsupported_dtypes.<locals>.<lambda>g   rc   r   r   r4   r$   r%   r7   r8   r:   r;   zdouble[pyarrow]zAColumn b must have a numeric dtype. Found 'object|string' insteadrd   r   r   zUColumn c is backed by an extension array, which is not supported by the numba engine.)r   Úastyper.   rh   Ú
ValueErrorr   Úto_framerm   s      r   Útest_numba_unsupported_dtypesrt   f   sÏ   € Ù€AÜ	˜!˜Q˜ s¨C j¸¸1°vÑ>Ó	?€BØ�‰g�n‰nÐ.Ó/€B€s�Gä	�‰ÜØQô
ñ 5ð 	�‰�˜7¨ˆÔ4÷	5ô 
�‰Üð6ô
ñ Eð
 	ˆ3‰×ÑÓ× Ñ  ¨7¸Ð ÔD÷Eð E÷5ð 5ú÷Eð Eús   ÁB2Â&B>Â2B;Â>C)ÚnumpyrR   r.   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasr   r   Úpandas._testingÚ_testingr   Ú
skip_if_noÚmarkÚ
single_cpuÚ
pytestmarkÚfixturer   r!   r1   rG   ÚparametrizerU   r`   rj   rn   rt   r   r   r   ú<module>rƒ      sÝ   ðÛ Û ç )Ð )÷õ àˆb�m‰m˜GÓ$ f§k¡k×&<Ñ&<Ð=€
ð €‡�˜˜1�vÔñó ðò,òò -ð  ‡�×ÑØÙÑ*Ñ,=Ñ?PÐQóñ-ó	ð-ð ‡�×Ñ˜¢i²Ð%AÓBñ	-ó Cð	-òOò5óEr   