o
    5c-                  	   @   s  d dl Z d dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlm  mZ ejjddg dfdg dfgddgdd	d
 Zdd Zdd Zejdg ddd Zdd Zdd Zdd Zdd Zdd Zdd Zejdd d gd!d" Zd#d$ Zd%d& Zejdd'ed'gd(d) Zd*d+ Zejd,d-gd.d/ Z ejd0g d1g d2g d1fg d3g d4g d3fg d5g d6g d7fgd8d9 Z!d:d; Z"d<d= Z#dS )>    N)FloatingArrayzopname, expadd)      NN	   mul)r      NN   )idsc                 C   sz   t jg d| d}t jg d| d}t j|| d}tt|}|||}t|| ttd| }|||}t|| d S )Nr   r   Nr      dtyper   r   r   N   r)pdarraygetattroperatortmassert_extension_array_equalops)r   opnameexpabexpectedopresult r    a/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/arrays/integer/test_arithmetic.pytest_add_mul   s   


r"   c                 C   sN   t jg d| d}t jg d| d}|| }t jg d| d}t|| d S )Nr   r   r   )r   r   NNr   r   r   r   r   r   r   r   r   r   r    r    r!   test_sub$   
   r%   c                 C   sV   t jg d| d}t jg d| d}|| }t jtjdd d dgdd}t|| d S )Nr   r   r   r   g      ?Float64)r   r   npinfr   r   r$   r    r    r!   test_div-   s
   r*   zzero, negative))r   F)g        F)g       Tc                 C   sd   t jg ddd}||  }ttjtjtjtj dgddtg d}|r*|d9 }t|| d S )N)r   r   NInt64r   r   float64)FFFTr+   )r   r   r   r(   nanr)   r   r   )zeronegativer   r   r   r    r    r!   test_divide_by_zero6   s   r1   c                 C   sN   t jg d| d}t jg d| d}|| }t jg d| d}t|| d S )Nr   r   r   )r   r   NNr   r#   r$   r    r    r!   test_floordivD   s
   r2   c                 C   sl   t jddg| d}d| }t jtjdgdd}t|| ||jj}d| }|tj	}t|| d S )Nr   r   r         ?r'   )
r   Seriesr(   r)   r   assert_series_equalastyper   numpy_dtyper-   )any_int_ea_dtypeserr   r   ser_non_nullabler    r    r!   !test_floordiv_by_int_zero_no_maskN   s   r;   c                 C   sN   t jg d| d}t jg d| d}|| }t jg d| d}t|| d S )Nr   r   r   )r   r   NNr   r#   r$   r    r    r!   test_mod]   r&   r<   c                  C   s  t jg ddd} | d }t jg ddd}t|| | d }t jg ddd}t|| | t j }t jg ddd}t|| | tj }ttjtjtjdtjtjgddtg d	}t|| | dd  } d|  }t jg d
dd}t|| d|  }t jg ddd}t|| t j|  }t jg ddd}t|| tj|  }ttjdtjtjtjgddtg d}t|| d S )N)r+   r   r   Nr   r,   r   r   )r   r   r   r   r   r   )NNr   NNr-   )FFFTF)r   r   Nr   )r   r   r   r   )r   NNN)FFTF)r   r   r   r   NAr(   r.   r   )r   r   r   r    r    r!   test_pow_scalarf   s@   



r>   c                  C   sB   t g d} t g d}| | }t g d}t|| d S )N)	r   r   r   r   r   r   NNN)	r   r   Nr   r   Nr   r   N)	r   r   Nr   r   r   r   NNr#   )r   r   r   r   r    r    r!   test_pow_array   s
   r?   c                  C   sL   t jtjtjgdd} tddg|  }t jdtjgdd}t|| d S )Nr,   r   r3   g       @r'   )r   r   r(   r.   r   r   )arrr   r   r    r    r!   test_rpow_one_to_na   s   rA   otherg      ?c                 C   s4   t g d}|t|  }||  }t|| d S )N)r   Nr   )r   r   r(   r   assert_equal)rB   r@   r   r   r    r    r!   test_numpy_zero_dim_ndarray   s   rD   c           	      C   st  |}t | }t||}dg d}tjt|d |d W d    n1 s)w   Y  tjt|d |t d W d    n1 sGw   Y  t jd|jd}|dv rp||}t jdd	 | D |jd}t	
|| ntjt|d || W d    n1 sw   Y  dg d
}tjt|d |t t jdt|d W d    d S 1 sw   Y  d S )N|)(can only perform ops with numeric valuesz-IntegerArray cannot perform the operation modunsupported operand type/can only concatenate str \(not \"int\"\) to str)not all arguments converted during stringzFufunc '.*' not supported for the input types, and the inputs could notz?ufunc '.*' did not contain a loop with signature matching typeszBAddition/subtraction of integers and integer-arrays with Timestampmatchfoo20180101index)__mul____rmul__c                 S   s   g | ]}d | qS )rL   r    ).0xr    r    r!   
<listcomp>   s    z-test_error_invalid_values.<locals>.<listcomp>)rF   z5cannot perform .* with this index type: DatetimeArrayz`Addition/subtraction of integers and integer-arrays with DatetimeArray is no longer supported. *rG   rH   rI   z*cannot subtract DatetimeArray from ndarray)periods)r   r4   r   joinpytestraises	TypeError	TimestamprO   r   r5   
date_rangelen)	dataall_arithmetic_operatorsr   sr   msgstr_serresr   r    r    r!   test_error_invalid_values   s4   



"rc   c                 C   st   t |}t| }d}|||}||t|}|d}|dkr2|dkdt}d|j	j
|< t || d S )Ng{Gz?r'   __rmod__r   F)r   get_op_from_namer   r4   r6   floatfillnato_numpyboolr   _maskr5   )r]   r^   r   r_   rB   r   r   maskr    r    r!   test_arith_coerce_scalar   s   



rl   r3   c                 C   s8   t | }tjg ddd}|||}|jdksJ d S )Nr   r   r   r,   r   r'   )r   re   r   r4   r   )r^   rB   r   r_   r   r    r    r!   test_arithmetic_conversion   s   

rn   c                  C   s   t t jddtjgddt jdtjdgddg dd} | j| j }t jdd	tjgdd}t|| | j| j d d
k}t jg ddd}t|| | j| j	 }t jdtjtjgdd}t|| d S )Nr   r   r,   r   r   UInt8rm   ABCr      )FTNboolean)
r   	DataFramer4   r(   r.   rq   rs   r   r5   rr   )dfr   r   r    r    r!   test_cross_type_arithmetic  s   rx   r   meanc                 C   s   t g dg dt jg dddd}t|j|  }t|ts"J t|d|  }t jtddgt jd	d
gdddt j	ddgddd}t
|| d S )N)r   r   r   )r   Nr   r,   r   rp   rq   r3   g      @r   r   r'   )rr   rs   r   r   )namerN   )r   rv   r   r   rs   
isinstancerf   groupbyr(   Indexr   assert_frame_equal)r   rw   r   r   r    r    r!   test_reduce_to_float  s   	 r   zsource, neg_target, abs_targetrm   )r+   )r   r   N)r+   r   N)r+   r   r   )r   r   r+   )r   r   r   c           	      C   s~   | }t j||d}| |
 t|}}}t j||d}t j||d}t|| t|| t||r7J t|| d S )Nr   )r   r   absr   r   shares_memory)	any_signed_int_ea_dtypesource
neg_target
abs_targetr   r@   
neg_result
pos_result
abs_resultr    r    r!   test_unary_int_operators9  s   	r   c                  C   s8   t jt td } t t jgd }t| | d S )Ni'  )r   r=   r4   r(   zerosr   r5   )r   r   r    r    r!   *test_values_multiplying_large_series_by_NAN  s   r   c                 C   sH  t jg d| d}t jg d| d}||B }t jg d| d}t|| ||@ }t jg d| d}t|| ||A }t jg d| d}t|| |d}tjtdd	 ||B  W d    n1 sfw   Y  tjtdd	 ||@  W d    n1 sw   Y  tjtdd	 ||A  W d    d S 1 sw   Y  d S )
N)r   Nr   r   r   )Nr   r   r   )NN   r   )NNr   r   )NN   r   r'   rG   rJ   )r   r   r   r   r6   rW   rX   rY   )r   leftrightr   r   floatsr    r    r!   test_bitwiseW  s*   



"r   )$r   numpyr(   rW   pandasr   pandas._testing_testingr   pandas.core.arraysr   pandas.core.opscorer   markparametrizer"   r%   r*   r1   r2   r;   r<   r>   r?   rA   rD   rc   rl   r   rn   rx   r   r   r   r   r    r    r    r!   <module>   sT    
		

	,	
=



	