o
    Û­j¦9  ã                   @   sÜ  d dl mZ d dl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 ejejejgd�dd„ ƒZejejdejjd�d	gd
dgd�dd
„ ƒZejdd„ ƒZej dejejejg¡dd„ ƒZejjddd	gddgd�dd„ ƒZ ejjddd	gddgd�dd„ ƒZ!ejjddd	gddgd�ejjddd	gddgd�dd„ ƒƒZ"ej ddd	g¡dd „ ƒZ#ej dej$g¡ej ddd	g¡ej %d!¡d"d#„ ƒƒƒZ&d$d%„ Z'd&d'„ Z(d(d)„ Z)ejej*g d*¢ej+d+�ej*g d*¢d,d+�ej*g d*¢d-d+�ej*g d.¢d/d+�e ,g d0¢¡e ,g d0¢¡ -d1¡e ,g d0¢¡j.d2d3�e /g d4¢¡e 0e 1d d5¡e 1d6d7¡e 1d5d6¡g¡g	d8d9„ d�d:d;„ ƒZ2G d<d=„ d=ƒZ3ej d>e4ee5g¡d?d@„ ƒZ6dAdB„ Z7dCdD„ Z8dEdF„ Z9dGdH„ Z:e
j;dIdJ„ ƒZ<dS )Ké    )ÚdequeN)ÚSparseArray)Úparamsc                 C   ó   | j S ©N©Úparam©Úrequest© r   ú[/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/series/test_ufunc.pyÚufunc   s   r   T)ÚmarksFÚsparseÚdense)r   Úidsc                 C   r   r   r   r	   r   r   r   r      s   c                  C   sX   t j d¡jddddd�} t j d¡jddddd�}d| ddd…< d|ddd	…< | |fS )
zO
    A pair of random, length-100 integer-dtype arrays, that are mostly 0.
    é   r   é
   éd   Úint64©ÚdtypeNé   é   )ÚnpÚrandomÚdefault_rngÚintegers)Úa1Úa2r   r   r   Úarrays_for_binary_ufunc   s
   r    c                 C   s’   t j d¡jddddd�}d|d d d…< |r t|t dd¡d�}ttj	d d… ƒ}d}tj
|||d�}| |ƒ}tj
| |ƒ||d�}t ||¡ d S )Nr   r   r   r   r   Úname©Úindexr!   )r   r   r   r   r   ÚpdÚSparseDtypeÚlistÚstringÚascii_lettersÚSeriesÚtmÚassert_series_equal)r   r   Úarrr#   r!   ÚseriesÚresultÚexpectedr   r   r   Útest_unary_ufunc)   s   r0   ÚflipÚflippedÚstraight)r   c                 C   s˜   |\}}|rt |t dd¡d�}t |t dd¡d�}d}tj||d�}|}||f}	||f}
| r7t|	ƒ}	t|
ƒ}
tj||	Ž |d�}||
Ž }t ||¡ d S ©Nr   r   r   r!   ©r!   )r   r$   r%   r)   Úreversedr*   r+   ©r1   r   r   r    r   r   r!   r-   ÚotherÚ
array_argsÚseries_argsr/   r.   r   r   r   Útest_binary_ufunc_with_array:   s   r;   c                 C   s¨   |\}}|rt |t dd¡d�}t |t dd¡d�}d}tj||d�}tj||d� d¡}||f}	||f}
| r?t|	ƒ}	t|
ƒ}
tj||	Ž |d�}||
Ž }t ||¡ d S r4   )	r   r$   r%   r)   ÚIndexÚastyper6   r*   r+   r7   r   r   r   Útest_binary_ufunc_with_indexR   s   r>   ÚshuffleÚ	unalignedÚalignedc                 C   sþ   |\}}|rt |t dd¡d�}t |t dd¡d�}d}tj||d�}tj||d�}	tj d¡ t|ƒ¡}
|rP|	 	|
¡}	| rG|	 
|¡d j}n| 
|	¡d j}n|j}||f}||	f}| ritt|ƒƒ}tt|ƒƒ}tj||Ž ||d�}||Ž }t ||¡ d S )Nr   r   r   r!   r5   r   r"   )r   r$   r%   r)   r   r   r   ÚpermutationÚlenÚtakeÚalignr#   Útupler6   r*   r+   )r1   r?   r   r   r    r   r   r!   r-   r8   Úidxr#   r9   r:   r/   r.   r   r   r   Útest_binary_ufunc_with_seriesm   s,   
rH   c                 C   s|   |\}}|r
t |ƒ}d}tj|dd�}||f}||f}	|r)tt|ƒƒ}tt|	ƒƒ}	tj| |	Ž dd�}
| |Ž }t ||
¡ d S )Nr   r!   r5   )r   r$   r)   rF   r6   r*   r+   )r   r   r1   r    r,   Ú_r8   r-   r:   r9   r/   r.   r   r   r   Útest_binary_ufunc_scalar•   s   rJ   z$ignore:divide by zero:RuntimeWarningc           
      C   sØ   |\}}d||dk< d||dk< |r&t |t dd¡d�}t |t dd¡d�}t |¡}t |¡}|r8|jdd�}| ||ƒ}t|tƒsDJ ‚| ||ƒ}	t|	tƒsPJ ‚t |	d t |d ¡¡ t |	d t |d ¡¡ d S )Né   r   r   r   )Úfrac)	r   r$   r%   r)   ÚsampleÚ
isinstancerF   r*   r+   )
r   r   r?   r    r   r   Ús1Ús2r/   r.   r   r   r   Ú"test_multiple_output_binary_ufuncs­   s    



rQ   c                 C   s’   |\}}| r
t |ƒ}tj|dd�}t |¡}t |¡}t|tƒs"J ‚t|tƒs)J ‚t |d tj|d dd�¡ t |d tj|d dd�¡ d S )Nr!   r5   r   rK   )	r   r$   r)   r   ÚmodfrN   rF   r*   r+   )r   r    r,   rI   r-   r.   r/   r   r   r   Útest_multiple_output_ufuncÎ   s   

"rS   c                 C   s@   |\}}t j|dd�}t j|dd�}| ||ƒ}|jd u sJ ‚d S )NÚar5   Úb)r$   r)   r!   )r   r   r    r   r   rO   rP   r.   r   r   r   Ú#test_binary_ufunc_drops_series_nameá   s
   
rV   c               
   C   s~   G dd„ dƒ} t  | dƒ| dƒg¡}t |¡}t t  ||¡t t  ||¡¡¡ t t  || dƒ¡t t  || dƒ¡¡¡ d S )Nc                   @   s   e Zd Zddd„Zdd„ ZdS )z$test_object_series_ok.<locals>.DummyÚreturnNc                 S   ó
   || _ d S r   ©Úvalue©ÚselfrZ   r   r   r   Ú__init__í   ó   
z-test_object_series_ok.<locals>.Dummy.__init__c                 S   s   | j |j  S r   rY   ©r\   r8   r   r   r   Ú__add__ð   ó   z,test_object_series_ok.<locals>.Dummy.__add__©rW   N)Ú__name__Ú
__module__Ú__qualname__r]   r`   r   r   r   r   ÚDummyì   s    
rf   r   rK   )r   Úarrayr$   r)   r*   r+   Úadd)rf   r,   Úserr   r   r   Útest_object_series_okë   s
   
".rj   )rK   r   r   r   ÚInt64ÚFloat32)rK   r   r   zSparse[int])Ú2000Ú2010Ú2001ÚCETÚD)Úfreq)z1 Dayz3 Daysz2 DaysrK   r   r   c                 C   s
   t | jƒS r   )Ústrr   )Úxr   r   r   Ú<lambda>  s   
 ru   c                 C   r   r   r   r	   r   r   r   Úvalues_for_np_reduceù   s   rv   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestNumpyReductionsc                 C   s*  |}|}t  d ¡� ||ƒ}W d   ƒ n1 sw   Y  t|tjjjƒr1tjj	dd�}| 
|¡ |jjdv rntj |¡}|tju rP|jdd�}	t  ||	¡ d S |tju rb|j ¡ }	||	ks`J ‚d S | ¡ }	||	kslJ ‚d S d g d¢¡}
tjt|
d�� tj |¡ W d   ƒ d S 1 sŽw   Y  d S )	NzSparseArray has no 'prod')ÚreasonÚiufF©Únumeric_onlyú|)údoes not support reductionúunsupported operand typez$ufunc 'multiply' cannot use operands©Úmatch)r*   Úassert_produces_warningrN   r$   ÚcoreÚarraysr   ÚpytestÚmarkÚxfailÚapplymarkerr   Úkindr   ÚmultiplyÚreduceÚ	DataFrameÚprodr+   r<   Ú_valuesÚjoinÚraisesÚ	TypeError)r\   rv   Úbox_with_arrayr
   ÚboxÚvaluesÚobjr…   r.   r/   Úmsgr   r   r   Útest_multiply  s0   
ÿ



ÿ"ÿz!TestNumpyReductions.test_multiplyc           	      C   s  |}|}t  d ¡� ||ƒ}W d   ƒ n1 sw   Y  |jjdv rZtj |¡}|tju r<|j	dd�}t  
||¡ d S |tju rN|j 	¡ }||ksLJ ‚d S | 	¡ }||ksXJ ‚d S d g d¢¡}tjt|d�� tj |¡ W d   ƒ d S 1 szw   Y  d S )NÚmiufFrz   r|   )r}   r~   zufunc 'add' cannot use operandsr   )r*   r�   r   rˆ   r   rh   rŠ   r$   r‹   Úsumr+   r<   r�   rŽ   r„   r�   r�   )	r\   rv   r‘   r’   r“   r”   r.   r/   r•   r   r   r   Útest_add1  s*   
ÿ


ÿ"ÿzTestNumpyReductions.test_addc           	      C   ó¾   |}|}d}|t ju r|jjdv rd}t d ¡� ||ƒ}W d   ƒ n1 s'w   Y  tj |¡}|t j	u rE|j
dd�}t ||¡ d S |d }||ksOJ ‚|r[t|ƒt|ƒks]J ‚d S d S )NT©ÚiÚfFrz   rK   )r$   r<   r   rˆ   r*   r�   r   ÚmaximumrŠ   r‹   Úmaxr+   Útype©	r\   rv   r‘   r’   r“   Ú	same_typer”   r.   r/   r   r   r   Útest_maxO  s$   
ÿ
þzTestNumpyReductions.test_maxc           	      C   rš   )NTr›   Frz   r   )r$   r<   r   rˆ   r*   r�   r   ÚminimumrŠ   r‹   Úminr+   r    r¡   r   r   r   Útest_ming  s$   
ÿ
þzTestNumpyReductions.test_minN)rc   rd   re   r–   r™   r£   r¦   r   r   r   r   rw     s
    "rw   Útype_c                 C   sT   t jg d¢dd�}| g d¢ƒ}t ||¡}t jt | ¡ |¡dd�}t ||¡ d S )N©rK   r   r   r!   r5   )r   r   é   )r$   r)   r   rh   Úto_numpyr*   r+   )r§   rT   rU   r.   r/   r   r   r   Útest_binary_ufunc_other_types  s
   r«   c                     s^   G ‡ fdd„dƒ‰ t  ˆ dƒˆ dƒg¡} t | ˆ dƒ¡}t  ˆ dƒˆ dƒg¡}t ||¡ d S )Nc                       s>   e Zd Zddd„Zdd„ Zdef‡ fdd„Zdefd	d
„ZdS )z#test_object_dtype_ok.<locals>.ThingrW   Nc                 S   rX   r   rY   r[   r   r   r   r]   ‹  r^   z,test_object_dtype_ok.<locals>.Thing.__init__c                 S   s   t |d|ƒ}t| ƒ| j| ƒS )NrZ   )Úgetattrr    rZ   r_   r   r   r   r`   Ž  s   z+test_object_dtype_ok.<locals>.Thing.__add__c                    s   t |ƒˆ u o| j|jkS r   )r    rZ   r_   ©ÚThingr   r   Ú__eq__’  s   z*test_object_dtype_ok.<locals>.Thing.__eq__c                 S   s   d| j › d�S )NzThing(ú)rY   )r\   r   r   r   Ú__repr__•  s   z,test_object_dtype_ok.<locals>.Thing.__repr__rb   )	rc   rd   re   r]   r`   Úboolr¯   rs   r±   r   r­   r   r   r®   Š  s
    
r®   rK   r   r   )r$   r)   r   rh   r*   r+   )Úsr.   r/   r   r­   r   Útest_object_dtype_ok‰  s
   r´   c                  C   s^   t  g d¢¡} t g d¢¡}tjtdd�� tj | |¡ W d   ƒ d S 1 s(w   Y  d S )Nr¨   Ú r   )	r$   r)   r   rg   r„   r�   ÚNotImplementedErrorÚsubtractÚouter)ri   r”   r   r   r   Ú
test_outerž  s
   "ÿr¹   c                  C   sL   t jg d¢gd�} t jg d¢d�}t jdgd�}t | |¡}t ||¡ d S )N)éÿÿÿÿrK   r   )Údataéf   )r$   r‹   r   Úmatmulr*   Úassert_frame_equal)Údf1Údf2r/   r.   r   r   r   Útest_np_matmul§  s
   rÁ   c                  C   s¨   dd„ } t  | dd¡}t ddg¡}|||dƒ}tjddgtd�}t ||¡ t ddgg¡}d}tj	t
t |¡d	�� ||||ƒ W d   ƒ d S 1 sMw   Y  d S )
Nc                 S   s   | | | S r   r   )rt   ÚyÚzr   r   r   Úadd3³  ra   z2test_array_ufuncs_for_many_arguments.<locals>.add3r   rK   r   r©   r   zTCannot apply ufunc <ufunc 'add3 (vectorized)'> to mixed DataFrame and Series inputs.r   )r   Ú
frompyfuncr$   r)   Úobjectr*   r+   r‹   r„   r�   r¶   ÚreÚescape)rÄ   r   ri   r.   r/   Údfr•   r   r   r   Ú$test_array_ufuncs_for_many_arguments±  s   ÿ"ÿrÊ   c                  C   s6   t  g d¢¡} t | ¡}t  g d¢¡}t ||¡ d S )N)g      ø¿g      à¿g      à?g      ø?)g      ð¿g       €g        g      ð?)r$   r)   r   Úfixr*   r+   )ri   r.   r/   r   r   r   Útest_np_fixÈ  s   
rÌ   )=Úcollectionsr   rÇ   r'   Únumpyr   r„   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasr$   Úpandas._testingÚ_testingr*   Úpandas.arraysr   Úfixturerh   Ú	logaddexpr   r   r…   Úfails_arm_wheelsr   r    ÚparametrizeÚpositiveÚfloorÚexpr0   r;   r>   rH   rJ   ÚdivmodÚfilterwarningsrQ   rS   rV   rj   rg   r   Úto_datetimeÚtz_localizeÚ	to_periodÚto_timedeltaÚIntervalIndexÚIntervalrv   rw   r&   rF   r«   r´   r¹   rÁ   rÊ   Ú&skip_copy_on_write_not_yet_implementedrÌ   r   r   r   r   Ú<module>   sv    
þ




&


&÷ô
s
		
