§
    tŠtj_  ã                   ó¬  — 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 d dlmZ  ej        d¦  «        ej        j        ej                             ¦   «         gZ ej        d¦  «        Ze                     ej                              eej        ¦  «         ed¦  «        k    o	 e¦   «         dej        › �¬¦  «        ¦  «          ej        d d	g¬
¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zej                              dd„ d„ d„ d„ g¦  «        d„ ¦   «         Z!ej                              dg d¢g d¢g¦  «        d„ ¦   «         Z"d„ Z#d„ Z$d„ Z%dS )é    N)Úis_platform_arm)Ú	DataFrameÚIndex)ÚVersionÚnumbaz0.61z&Segfaults on ARM platforms with numba )Úreasoné   )Úparamsc                 ó   — | j         S ©N)Úparam)Úrequests    ú[/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pandas/tests/apply/test_numba.pyÚ
apply_axisr      s
   € àŒ=Ðó    c                 ó–   — d„ }|                       |d|¬¦  «        }|                       |d|¬¦  «        }t          j        ||¦  «         d S )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$      sV   € Øˆ;€DØ×Ò˜t¨G¸*ÐÑEÔE€FØ× Ò  ¨h¸ZÐ ÑHÔH€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+r   c            
      óx  — t          dt          ddgt          j        t          j        ¬¦  «        ¬¦  «        t          ddgt          j        t          j        ¬¦  «        ¬¦  «        ¬¦  «        } d	„ }|                      |d
d¬¦  «        }|                      |dd¬¦  «        }t          j        ||dd¬¦  «         d S )Nr	   ÚaÚb)Úna_value©Ú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)	r   r   ÚpdÚStringDtypeÚnpÚnanr   r   r   )Údfr!   r"   r#   s       r   Ú!test_numba_vs_python_string_indexr6   &   sÃ   € å	Ø	Ý�S˜#�J¥b¤n½b¼fÐ&EÑ&EÔ&EÐFÑFÔFÝ�s˜C�j­¬ÅÄÐ(GÑ(GÔ(GÐHÑHÔHð
ñ 
ô 
€Bð
 ˆ;€DØ�XŠX�d 7°ˆXÑ3Ô3€FØ�xŠx˜ X°AˆxÑ6Ô6€HÝÔØ�¨EÀEðñ ô ð ð ð r   c                  óz  — t          g d¢g d¢g d¢dœt          g d¢¦  «        ¬¦  «        } d„ }|                      |dd	¬
¦  «        }|                      |dd	¬
¦  «        }t          j        ||¦  «         d„ }|                      |dd¬
¦  «        }|                      |dd¬
¦  «        }t          j        ||¦  «         d S )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>:   ó
   € ˜˜3œ€ r   r   r	   r   r   c                 ó   — | d         S )NrA   r   r   s    r   r   z/test_numba_vs_python_indexing.<locals>.<lambda>?   rF   r   r   )r   r   r   r   Úassert_series_equal)ÚframeÚrow_funcr"   r#   Úcol_funcs        r   Útest_numba_vs_python_indexingrL   5   sØ   € ÝØˆiˆi˜i˜i˜i¨o¨o¨oÐ>Ð>Ý�O�O�OÑ$Ô$ðñ ô €Eð  Ð€HØ�[Š[˜¨'¸ˆ[Ñ:Ô:€FØ�{Š{˜8¨H¸1ˆ{Ñ=Ô=€HÝÔ˜6 8Ñ,Ô,Ð,àÐ€HØ�[Š[˜¨'¸ˆ[Ñ:Ô:€FØ�{Š{˜8¨H¸1ˆ{Ñ=Ô=€HÝÔ˜6 8Ñ,Ô,Ð,Ð,Ð,r   Ú	reductionc                 ó*   — |                       ¦   «         S r   )Úmeanr   s    r   r   r   G   s   € ˆq�vŠv‰xŒx€ r   c                 ó*   — |                       ¦   «         S r   )Úminr   s    r   r   r   G   s   €  1§5¢5¡7¤7€ r   c                 ó*   — |                       ¦   «         S r   )Úmaxr   s    r   r   r   G   s   € °a·e²e±g´g€ r   c                 ó*   — |                       ¦   «         S r   )Úsumr   s    r   r   r   G   s   € ÈÏÊÉÌ€ r   c                 óê   — t          t          j        dt          j        ¬¦  «        ¦  «        }|                     | d|¬¦  «        }|                     | d|¬¦  «        }t          j        ||¦  «         d S )N)r<   r<   r)   r   r   r   )r   r3   ÚonesÚfloat64r   r   rH   )rM   r   r5   r"   r#   s        r   Útest_numba_vs_python_reductionsrY   E   si   € õ
 
•2”7˜6­¬Ð4Ñ4Ô4Ñ	5Ô	5€BØ�XŠX�i¨°jˆXÑAÔA€FØ�xŠx˜	¨(¸ˆxÑDÔD€HÝÔ˜6 8Ñ,Ô,Ð,Ð,Ð,r   Úcolnamesr8   )g      ð?g       @g      @c                 ó  ‡— t          t          j        g d¢g d¢g d¢gt          j        ¬¦  «        | ¬¦  «        }| d         Šˆfd„}|                     |dd	¬
¦  «        }|                     |dd	¬
¦  «        }t          j        ||¦  «         d S )Nr8   r;   )é   é   é	   r)   )r-   r   c                 ó   •— | ‰         S r   r   )r   Ú	first_cols    €r   r   z-test_numba_numeric_colnames.<locals>.<lambda>W   s   ø€ �!�I”,€ r   r   r	   r   r   )r   r3   ÚarrayÚint64r   r   rH   )rZ   r5   Úfr"   r#   r`   s        @r   Útest_numba_numeric_colnamesrd   P   s¢   ø€ õ 
Ý
Œ�)�)�)˜Y˜Y˜Y¨	¨	¨	Ð2½"¼(ÐCÑCÔCÈXð
ñ 
ô 
€Bð ˜”€IØÐÐÐ€AØ�XŠX�a ¨aˆXÑ0Ô0€FØ�xŠx˜ (°ˆxÑ3Ô3€HÝÔ˜6 8Ñ,Ô,Ð,Ð,Ð,r   c                 ó¨   — d„ }t          j        t          d¬¦  «        5  |                      |dddi¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó   — | S r   r   r   s    r   r   z1test_numba_parallel_unsupported.<locals>.<lambda>^   ó   € �!€ r   zAParallel apply is not supported when raw=False and engine='numba'©Úmatchr   ÚparallelT)r   Úengine_kwargs)ÚpytestÚraisesÚNotImplementedErrorr   )r    rc   s     r   Útest_numba_parallel_unsupportedro   ]   sÀ   € Øˆ€AÝ	ŒÝØQð
ñ 
ô 
ð Oð Oð 	×Ò˜! G¸JÈÐ;MÐÑNÔNÐNð	Oð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oð Oð Os   ŸAÁAÁAc                 óì   — d„ }t          dddgit          ddg¦  «        ¬¦  «        }t          j        t          d¬¦  «        5  |                     |d| ¬	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nc                 ó   — | S r   r   r   s    r   r   z2test_numba_nonunique_unsupported.<locals>.<lambda>g   rg   r   r&   r	   r9   rD   zBThe index/columns must be unique when raw=False and engine='numba'rh   r   r   )r   r   rl   rm   rn   r   ©r   rc   r5   s      r   Ú test_numba_nonunique_unsupportedrs   f   sÊ   € Øˆ€AÝ	�C˜!˜Q˜�=­¨s°C¨jÑ(9Ô(9Ð	:Ñ	:Ô	:€BÝ	ŒÝØRð
ñ 
ô 
ð 5ð 5ð 	�Š�˜7¨ˆÑ4Ô4Ð4ð	5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5ð 5ð 5s   ÁA)Á)A-Á0A-c                 ó   — t          j        d¦  «         d„ }t          ddgddgddgd	œ¦  «        }|d
                              d¦  «        |d
<   t          j        t
          d¬¦  «        5  |                     |d| ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          d¬¦  «        5  |d
                              ¦   «                              |d| ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚpyarrowc                 ó   — | S r   r   r   s    r   r   z/test_numba_unsupported_dtypes.<locals>.<lambda>r   rg   r   r	   r9   r&   r'   r<   r=   r?   r@   zdouble[pyarrow]z>Column b must have a numeric dtype. Found 'object|str' insteadrh   r   r   zUColumn c is backed by an extension array, which is not supported by the numba engine.)rl   Úimportorskipr   Úastyperm   Ú
ValueErrorr   Úto_framerr   s      r   Útest_numba_unsupported_dtypesr{   p   s©  € Ý
Ô˜	Ñ"Ô"Ð"Øˆ€AÝ	˜!˜Q˜ s¨C j¸¸1°vÐ>Ð>Ñ	?Ô	?€BØ�Œg�nŠnÐ.Ñ/Ô/€B€s�Gå	ŒÝØNð
ñ 
ô 
ð 5ð 5ð 	�Š�˜7¨ˆÑ4Ô4Ð4ð	5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5õ 
ŒÝð6ð
ñ 
ô 
ð Eð Eð
 	ˆ3Œ×ÒÑÔ× Ò  ¨7¸Ð ÑDÔDÐDðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eð Eð Es$   Á*BÂBÂBÂ51C3Ã3C7Ã:C7)&Únumpyr3   rl   Úpandas.compatr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasr1   r   r   Úpandas._testingÚ_testingr   Úpandas.util.versionr   Ú
skip_if_noÚmarkÚ
single_cpuÚskipifÚ
pytestmarkrw   r   ÚappendÚ__version__Úfixturer   r$   r6   rL   ÚparametrizerY   rd   ro   rs   r{   r   r   r   ú<module>r�      sm  ðØ Ð Ð Ð Ø €€€à )Ð )Ð )Ð )Ð )Ð )Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )à Ð Ð Ð ðð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'àˆbŒm˜GÑ$Ô$ f¤kÔ&<¸f¼k×>PÒ>PÑ>RÔ>RÐS€
àˆÔ˜GÑ$Ô$€Ø 
× Ò Ø
„K×ÒØˆ�Ô!Ñ"Ô" g g¨f¡o¤oÒ5ÐK¸/¸/Ñ:KÔ:KØK¸Ô8IÐKÐKð ñ ô ñô ð ð €„˜˜1�vÐÑÔðð ñ Ôðð,ð ,ð ,ðð ð ð-ð -ð -ð  „×ÒØØÐÐ*Ð*Ð,=Ð,=Ð?PÐ?PÐQñô ð-ð -ñ	ô ð-ð „×Ò˜ i i i°°°Ð%AÑBÔBð	-ð 	-ñ CÔBð	-ðOð Oð Oð5ð 5ð 5ðEð Eð Eð Eð Er   