o
    i(                     @   s  d dl mZ d dlZd dlZd dlmZ d dlm  m	Z
 d dlZd dlmZ d dlmZ dddddgZejded	d
 Zejdedd Zejdedd Zejdejdg dfeejddgddggdeddgddggg dfejeddgddggg dfejdg dfeejeddgddggddg dfgdd Zejdeejdedd Zejded d! Zej d"d#d$ Z!d%d& Z"d'd( Z#d)d* Z$e
%d+d,d- Z&dS ).    )partialN)np_version_gte1p22)is_extension_array_dtypeint64Int64ABdtypec                 C   st   t jddgddggdd}tj|ddgddgd	j| d}t |}tjt ||j|jd
| }t	|| d S N   r   r
   r   r	   abcolumnsindexr   r   )
nparraypd	DataFrameastypepositiver   r   tmassert_frame_equalr
   valuesdfresultexpected r"   X/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/frame/test_ufunc.pytest_unary_unary   s    
r$   c           	      C   s   t |s	t|tr| jtjjdd tj	ddgddggdd}t
j|ddgd	d
gdj|d}t|}t|ts=J t|dksEJ t|}t||D ]\}}t
j||j|jd}t|| qOd S )Nz8Extension / mixed with multiple outputs not implemented.reasonr   r   r   r   r   r	   r   r   r      r   )r   
isinstancedictnode
add_markerpytestmarkxfailr   r   r   r   r   modftuplelenzipr   r   r   r   )	requestr
   r   r   result_pandasexpected_numpyr    r   r!   r"   r"   r#   test_unary_binary    s     

r6   c                 C   sx   t jddgddggdd}tj|ddgddgd	j| d}t ||}tjt |||j|jd
| }t	|| d S r   )
r   r   r   r   r   addr   r   r   r   r   r"   r"   r#    test_binary_input_dispatch_binop6   s    r8   zfunc,arg,expectedr   )r'            FT)where)r   r9   r:   r   r'   )r   r'   	      )r   r   r   r'   )r   r   c                 C   s   t ddgddgg}t|}t |}|d u r | ||d}n| |||d}t |dd}t|| t|}t|| d S )Nr   r'   r9   r:   )out)	r   r   r   r   
zeros_likereshaper   assert_numpy_array_equalr   )funcargr!   arrr   result_inplacer    r"   r"   r#   test_ufunc_passes_argsB   s   


rI   dtype_adtype_bc                 C   s  t |st|tst |st|tr| jtjjdd t	ddgddgd
|}t|tr=t|tr=|d|d	< t	ddgddgd

|}tt t||}W d    n1 sbw   Y  tj	ddgddggddgd}t|| t||j}t|| d S )N7Extension / mixed with multiple inputs not implemented.r%   r   r'   r9   r:   r   r	   C)r   rM         ?r   r   )r   r(   r)   r*   r+   r,   r-   r.   r   r   r   popr   assert_produces_warningFutureWarningr   	heavisider   r   )r3   rJ   rK   df1df2r    r!   r"   r"   r#    test_binary_input_aligns_columnsf   s0   rV   c                 C   s   t |s	t|tr| jtjjdd tj	ddgddgddd	gd

|}tj	ddgddgdddgd

|}tt t||}W d    n1 sPw   Y  tj	ddgddggddgdd	gd}t|| t||j}t|| d S )NrL   r%   r   r'   r9   r:   r   r   r   r   crN   r   r	   r   )r   r(   r)   r*   r+   r,   r-   r.   r   r   r   r   rQ   rR   r   rS   r   r   )r3   r
   rT   rU   r    r!   r"   r"   r#   test_binary_input_aligns_index   s"   &&	rY   z3ignore:Calling a ufunc on non-aligned:FutureWarningc                  C   s   t dddgi} tjtdd t| | d  W d    n1 s#w   Y  tjtdd t| d |  W d    d S 1 sCw   Y  d S )Nr   r   r'    )match)r   r   r,   raises
ValueErrorr   	logaddexpr   r"   r"   r#   test_binary_frame_series_raises   s   "r`   c                  C   s   t dg di} tj| }t dg di}t|| t g dg dd} tj| }t g dg dd}t|| tjj| dd	}t|| tjj| d
d	}t g dg dd}t|| d S )Nr   )r   r9   r'   r:   )r   r9   r9   r:   )皙?      @      @       @r   r   )rN   rc   rc   rb   )ra   rb   rb   rb   r   axisr   )rN   rc   rd   rb   )rN   rb   rc   rb   )r   r   r   maximum
accumulater   r   )r   r    r!   r"   r"   r#   test_unary_accumulate_axis   s   rj   c                  C   sP   t dddgi} tt tj| |  W d    d S 1 s!w   Y  d S )Nr   r   r'   )r   r   r   rQ   rR   r   subtractouterr_   r"   r"   r#   test_frame_outer_deprecated   s   "rm   c                  C   sB  t g dg dd} t g dg dd}t jddgddgd	}t jddgdd
gd	}t g dg dd}td  t| | }W d    n1 sPw   Y  t|| tt t| |}W d    n1 sqw   Y  t|| t| |j	}t|| t| j	|}t g dg dd}t|| t g dg dd}td  t| |}W d    n1 sw   Y  t|| tt t| |}W d    n1 sw   Y  t|| tt t|| }W d    n	1 sw   Y  t|| t| |j	}t|| d S )Nr   r'   r9   r:   r;      re   r   rX   r   r'   r   r   rW   rX   )r'   r:   rp   )   
      )r'   r9   r:   )rp      rr   )
r   r   Seriesr   rQ   r   r7   r   rR   r   )rT   rU   s1s2r!   r    r"   r"   r#   test_alignment_deprecation   sB   ry   numbac           
      C   s  ddl m}m} trtjd}| j| |||||gdd }t	
g dg dd}t	
g dg dd	}t	
g dg dd
}tt ||||}W d    n1 s]w   Y  t	j
ddgddgddggddgd}	t||	 td  ||||}W d    n1 sw   Y  t||	 tt ||||j}W d    n1 sw   Y  t||	 td  |||j|j}W d    n1 sw   Y  t||	 tt ||j||}W d    n1 sw   Y  |	jddgdd}	t||	 d S )Nr   )float64	vectorizez5ignore:`np.MachAr` is deprecated.*:DeprecationWarningc                 S   s   | | | S )Nr"   )xyzr"   r"   r#   my_ufunc  s   z8test_alignment_deprecation_many_inputs.<locals>.my_ufuncrn   ro   re   rq   )r   rX   rc   g      (@g      @g      .@g      "@g      2@r   r   rO   rX   r   rf   )rz   r{   r|   r   r,   r-   filterwarningsr*   r+   r   r   r   rQ   rR   r   r   set_axis)
r3   r{   r|   r-   r   rT   rU   df3r    r!   r"   r"   r#   &test_alignment_deprecation_many_inputs   sB   
$r   )'	functoolsr   numpyr   r,   pandas.compat.numpyr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   pandas._testing_testingr   pandas.api.typesr   dtypesr-   parametrizer$   r6   r8   r7   r   powerrk   negativerI   rV   rY   r   r`   rj   rm   ry   
skip_if_nor   r"   r"   r"   r#   <module>   s\    


 
#


/