o
    dc)                     @   s  d dl mZ d dlZd dlZd dl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d!d" Zd#d$ Z d%d& Z!d'd( Z"e	#d)d*d+ Z$d,d- Z%dS ).    )partialN)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!   b/var/www/html/visualizacion-main/env/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     

r5   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    r7   zfunc,arg,expectedr   )r&            FT)where)r   r8   r9   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&   r8   r9   )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   


rH   dtype_adtype_bc              	   C   sD  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ddtjgddtjggtdtjdgdtjdgg}tj	|ddgg dd}t|| t||j}tj	ddgddggddgd}t|| d S )N7Extension / mixed with multiple inputs not implemented.r$   r   r&   r8   r9   r   r   C)r   rL   r   )r   r   rL   r         ?r   r   )r   r'   r(   r)   r*   r+   r,   r-   r   r   r   popr   	heavisider   nanr   r   r   )r2   rI   rJ   df1df2r   r    r!   r!   r"    test_binary_input_aligns_columnsf   s6   rT   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ddgddgtjtjggtddgtjtjgddgg}tj	|g dddgd}t|| t||j}tj	ddgddggddgdd	gd}t|| d S )NrK   r$   r   r&   r8   r9   r   r   r   r   cr   r   rV   r   r   r   rM   r   )r   r'   r(   r)   r*   r+   r,   r-   r   r   r   r   rP   r   rQ   r   r   r   )r2   r	   rR   rS   r   r    r!   r!   r"   test_binary_input_aligns_index   s(   &&rX   c                  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&   	logaddexpmatch)r   r   r+   raisesNotImplementedErrorr   rY   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   r8   r&   r9   )r   r8   r8   r9   )皙?      @      @       @r   r   )rM   rb   rb   ra   )r`   ra   ra   ra   r   )axisr   )rM   rb   rc   ra   )rM   ra   rb   ra   )r   r   r   maximum
accumulater   r   )r   r   r    r!   r!   r"   test_unary_accumulate_axis   s   rh   c                  C   sT   t dddgi} tjtdd tj| |  W d    d S 1 s#w   Y  d S )Nr   r   r&    rZ   )r   r   r+   r\   r]   r   subtractouterr^   r!   r!   r"   test_frame_outer_disallowed   s   "rl   c                  C   s8  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| |j}t|| t| |}t tj	gd g dtj	gd d}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| |j}t|| t tj	gd g dtj	gd d}t| |}t|| d}t
jt|d t||  W d    d S 1 sw   Y  d S )Nr   r&   r8   r9   r:      rd   r   rV   r   r&   r   r   rU   rV   )r&   r9   ro   )   
      r8   )r:      r<   rW   )r&   r8   r9   )ro   rt   rq   )g      @      @g      @zFCannot apply ufunc <ufunc 'add'> to mixed DataFrame and Series inputs.rZ   )r   r   Seriesr   assert_produces_warningr   r6   r   r   rQ   r+   r\   r]   )rR   rS   s1s2r    r   msgr!   r!   r"   #test_alignment_deprecation_enforced   sB   &$r{   numbac            	      C   s  ddl m} m} || | | | gdd }tg dg dd}tg dg dd}tg dg dd	}||||}tjtd
tjg dd}t	|| t
d  ||||}W d    n1 siw   Y  tjddgddgddggddgd}t	|| d}tjt|d ||||j W d    n1 sw   Y  t
d  |||j|j}W d    n1 sw   Y  t	|| d}tjt|d ||j|| W d    d S 1 sw   Y  d S )Nr   )float64	vectorizec                 S      | | | S Nr!   xyzr!   r!   r"   my_ufunc  s   zAtest_alignment_deprecation_many_inputs_enforced.<locals>.my_ufuncrm   rn   rd   rp   )r   rV   )r8   r8   rW   rN   rb   g      (@ru   g      .@g      "@g      2@r   r   zLoperands could not be broadcast together with shapes \(3,3\) \(3,3\) \(3,2\)rZ   zLoperands could not be broadcast together with shapes \(3,2\) \(3,3\) \(3,3\))r|   r}   r~   r   r   r   fullrQ   r   r   rw   r+   r\   
ValueErrorr   )	r}   r~   r   rR   rS   df3r   r    rz   r!   r!   r"   /test_alignment_deprecation_many_inputs_enforced   s8   
$"r   c                  C   s   dd } t | dd}tddgddgg}|||d}tjddgdd	ggtd
}t|| tddg}d}tj	t
t|d |||| W d    d S 1 sTw   Y  d S )Nc                 S   r   r   r!   r   r!   r!   r"   add3,  s   z2test_array_ufuncs_for_many_arguments.<locals>.add3r8   r   r&   r9   r:   rt   r<   r   zTCannot apply ufunc <ufunc 'add3 (vectorized)'> to mixed DataFrame and Series inputs.rZ   )r   
frompyfuncr   r   objectr   r   rv   r+   r\   r]   reescape)r   ufuncr   r   r    serrz   r!   r!   r"   $test_array_ufuncs_for_many_arguments*  s   "r   )&	functoolsr   r   numpyr   r+   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   pandas._testing_testingr   pandas.api.typesr   dtypesr,   parametrizer#   r5   r7   r6   r   powerrj   negativerH   rT   rX   r_   rh   rl   r{   
skip_if_nor   r   r!   r!   r!   r"   <module>   s\    


 
 

1
0