
    Oh^                        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&                  j+                         gZ ej.                  d      Zej3                  ej&                  j+                   eej4                         ed      k(  xr  e       dej4                                 ej6                  d d	g
      d        Zd Zd Zd Zej&                  jA                  dd d d d g      d        Z!ej&                  jA                  dg dg dg      d        Z"d Z#d Z$d Z%y)    N)is_platform_arm)	DataFrameIndex)Versionnumbaz0.61z&Segfaults on ARM platforms with numba )reason   )paramsc                     | j                   S N)param)requests    e/var/www/html/diagnosisapp-backend/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tG*EF  hZ HH&(+r   c            
      d   t        dt        ddgt        j                  t        j
                              t        ddgt        j                  t        j
                                    } d	 }| j                  |d
d      }| j                  |dd      }t        j                  ||dd       y )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#Jbnnbff&EFsCj(GH
B
 DXXd7X3FxxXAx6HEE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>:   
    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    io>O$E  H[['[:F{{8H1{=H68,H[['[:F{{8H1{=H68,r   	reductionc                 "    | j                         S r   )meanr   s    r   r   r   G   s    qvvx r   c                 "    | j                         S r   )minr   s    r   r   r   G   s    1557 r   c                 "    | j                         S r   )maxr   s    r   r   r   G   s    aeeg r   c                 "    | j                         S r   )sumr   s    r   r   r   G   s     r   c                     t        t        j                  dt        j                              }|j	                  | d|      }|j	                  | d|      }t        j                  ||       y )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   sU    
 
27764	5BXXijXAFxx	(xDH68,r   colnamesr8   )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 )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   sr     

)Y	2"((CX
B IAXXaaX0Fxx(x3H68,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>^       ! 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   ]   sN    A	Q
 O 	!GJ;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>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=sCj(9	:B	R
 5 	74	5 5 5s   AA"c                    t        j                  d       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)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sCj1v>	?Bgnn./BsG	N
 5 	74	5 
6
 E
 	3  7 DE E5 5E Es    C&CCC)&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      s\     ) ) )   'bmmG$fkk&<&<fkk>P>P>RS
G$ 
  
KK!!"gfo5K/:K78I8I7JK   1v ,-  *,=?PQ-	- i%AB	- C	-O5Er   