o
    dZ                     @  s  U d dl mZ d dlmZ d dlmZ 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ZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d d	lmZmZ ejeeej gd
dd Z!dd Z"dd Z#g dZ$edddgZ%de&d< e%'dd e$D  e%'dd e$D  G dd dZ(G dd dZ)G dd dZ*G dd  d Z+G d!d" d"Z,G d#d$ d$Z-G d%d& d&Z.G d'd( d(Z/d)d* Z0d+d, Z1ej23d-g d.g d/fgd0d1 Z4d2d3 Z5ej23d4g d5ej23d6g d7d8d9 Z6d:d; Z7dS )<    )annotations)abc)	timedelta)DecimalN)Index
RangeIndexSeries	TimedeltaTimedeltaIndexarray)ops)expressions)assert_invalid_addsub_typeassert_invalid_comparison)paramsc                 C  s   | j S )zL
    Fixture to test behavior for Index, Series and tm.to_array classes
    )param)request r   i/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/arithmetic/test_numeric.pybox_pandas_1d_array    s   r   c                 C  s8   t t |  rt t |  sJ |d9 }|S )z_
    Helper to adjust the expected result if we are dividing by -0.0
    as opposed to 0.0
    )npsignbitr   anyall)zeroexpectedr   r   r   adjust_negative_zero(   s   r   c                 C  s   |t jtjfv rt| n| }|t jtjfv rt|n|}|||}|||}t|tr<|j	
| j	s<|j	d |_	t|| d S N)r   rpowoperatorpowr   abscombine
isinstancer   indexequals
_with_freqtmassert_series_equal)seriesotheropleftrightcython_or_numpypythonr   r   r   
compare_op7   s   
r1   )i1i2i4i8u1u2u4u8f2f4f8
   (   zlist[Index | Series]leftsc                 C  s   g | ]
}t g d |dqS )r=         dtype)r   .0rD   r   r   r   
<listcomp>G   s    rG   c                 C  s$   g | ]}|d krt g d|dqS )r:   r@   rC   )r   rE   r   r   r   rG   H   s   $ c                   @  s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestNumericComparisonsc                 C  s   t dtg dk}dtg dk}t|| tg dt dk }tg ddk }t|| t g dd tg dk}dtg dk}t|| d S )Nr                    r   rJ   rK   )r   float64r   r(   r)   r   )selfresultr   r   r   r   (test_operator_series_comparison_zerorankO   s   z?TestNumericComparisons.test_operator_series_comparison_zerorankc                 C  s.   |}t td}t||}t||| d S N   )r   r   ranger(   box_expectedr   )rP   box_with_arrayfixed_now_tstsobjr   r   r   test_df_numeric_cmp_dt64_raises[   s   z6TestNumericComparisons.test_df_numeric_cmp_dt64_raisesc                 C  sL   t tjddd}t tjd}td|_t|| d||   d S )NrT   r   namez
2000-01-01rJ   )	r   r   randomrandnpd	Timestampr]   r(   r)   )rP   abr   r   r   test_compare_invalidc   s   z+TestNumericComparisons.test_compare_invalidc                 C  s   |}|t ur|ntj}ttjd}tj||dd}|dk}ttjdt	d}tj||dd}t
|| |dk}t
||  d}tjt|d |dk  W d    d S 1 sZw   Y  d S )Ni F	transposerb   rC   z0Invalid comparison between dtype=float64 and strmatch)r   r   ndarrayr   r^   r_   r(   rV   zerosboolassert_equalpytestraises	TypeError)rP   rW   boxxboxrZ   rQ   r   msgr   r   r   $test_numeric_cmp_string_numexpr_pathk   s   
"z;TestNumericComparisons.test_numeric_cmp_string_numexpr_pathN)__name__
__module____qualname__rR   r[   rd   rs   r   r   r   r   rH   N   s
    rH   c                   @  s  e Zd Zejdejee	gejjde
dd ddd Zejdejee	gejjde
dd dd	d
 Zejjdeddedd edd edd dedd dgdd ddd Zejjdeddedd edd gdd dejdejejgdd Zdd Zejjdeddedd edd edd dededdejdejd ejd!d"d#ed!ed! ejd!d$d# ed! edd%ejge dd&d' Z!d(S )).TestNumericArraylikeArithmeticWithDatetimeLikebox_clsr-   c                 C     t | jt| j S r   typert   strrD   xr   r   r   <lambda>       z7TestNumericArraylikeArithmeticWithDatetimeLike.<lambda>idsc                 C  s   t jg ddd}||}tg d|jd}t|ts|tu r#t|}|j|jks+J || }t|| || }t|| d S )NrI   m8[s]rC   )10s40s90s)r   r   r
   rD   r$   r   r(   rl   )rP   r-   rx   r.   r   rQ   r   r   r   test_mul_td64arr   s   z?TestNumericArraylikeArithmeticWithDatetimeLike.test_mul_td64arrc                 C  ry   r   rz   r}   r   r   r   r      r   c                 C  s   t jg ddd}||}tg d|jd}t|ts|tu r#t|}|j|jks+J || }t|| || }t|| d}tj	t
|d ||  W d    n1 sWw   Y  d}tj	t
|d ||  W d    d S 1 suw   Y  d S )N)r=   r>   Z   r   rC   )1s2s3sz5ufunc '(true_)?divide' cannot use operands with typesrg   z3ufunc 'floor_divide' cannot use operands with types)r   r   r
   rD   r$   r   r(   rl   rm   rn   ro   )rP   r-   rx   r.   r   rQ   rr   r   r   r   test_div_td64arr   s$   

"z?TestNumericArraylikeArithmeticWithDatetimeLike.test_div_td64arr	scalar_tdrJ   daysztimedelta64[s]ztimedelta64[ms]c                 C  
   t | jS r   r{   rt   r}   r   r   r   r         
 c           
      C  s   |}|}t dd tt|D }t|tjr |j}||}nt|t	u r+|d}t
||}t
||}|| }t
|| || }	t
|	| d S )Nc                 S  s   g | ]}t |d qS )r   )r	   )rF   nr   r   r   rG      s    z`TestNumericArraylikeArithmeticWithDatetimeLike.test_numeric_arr_mul_tdscalar.<locals>.<listcomp>m8[us])r
   rU   lenr$   r   timedelta64rD   astyper{   r   r(   rV   rl   )
rP   r   numeric_idxrW   rp   r%   r   rD   rQ   commuter   r   r   test_numeric_arr_mul_tdscalar   s   
zLTestNumericArraylikeArithmeticWithDatetimeLike.test_numeric_arr_mul_tdscalarc                 C  r   r   r   r}   r   r   r   r      r   rD   c           
      C  s   |}t djt jdd}|j|dd}tj||dd}|dd}t|tu r/|d}tj||dd}|| }	t	|	| || }	t	|	| d S )Ni N  Fcopyre   ztimedelta64[D]ztimedelta64[ns]ztimedelta64[us])
r   aranger   int64r(   rV   viewr{   r   rl   )
rP   rD   r   rW   rp   arr_i8arrrZ   r   rQ   r   r   r   *test_numeric_arr_mul_tdscalar_numexpr_path   s   
zYTestNumericArraylikeArithmeticWithDatetimeLike.test_numeric_arr_mul_tdscalar_numexpr_pathc           
      C  s   |}|dd }t ddg}t|tjr)|j}|tdk r#td}||}nt|tu r4|d}t	||}t	||}|| }t
|| d}	tjt|	d ||  W d    d S 1 scw   Y  d S )	NrJ   rL   z3 Daysz36 Hoursr   r   $cannot use operands with types dtyperg   )r
   r$   r   r   rD   r   r{   r   r(   rV   rl   rm   rn   ro   )
rP   
three_daysr   rW   rp   r%   r   rD   rQ   rr   r   r   r   test_numeric_arr_rdiv_tdscalar   s$   


"zMTestNumericArraylikeArithmeticWithDatetimeLike.test_numeric_arr_rdiv_tdscalarr+      )hourszm8[h]NaTDrL   r   z
2021-01-01z
Asia/Tokyo)tzUTCnsc                 C  s.   |}t ||}dg d}t||| d S )N|)
unsupported operand typez3Addition/subtraction of integers and integer-arrayszInstead of adding/subtractingr   z;Concatenation operation is not implemented for NumPy arraysz+Cannot (add|subtract) NaT (to|from) ndarrayzBoperand type\(s\) all returned NotImplemented from __array_ufunc__z(can only perform ops with numeric valuesz*cannot subtract DatetimeArray from ndarrayz.Cannot add or subtract Timedelta from integers)r(   rV   joinr   )rP   r   r+   rW   rp   r-   rr   r   r   r   &test_add_sub_datetimedeltalike_invalid  s   zUTestNumericArraylikeArithmeticWithDatetimeLike.test_add_sub_datetimedeltalike_invalidN)"rt   ru   rv   rm   markparametrizer   r   r   r   r?   r   r   r	   to_timedelta64to_pytimedeltar   r   r   rO   r   r   r   r`   offsetsMinuteSecondra   to_pydatetimeto_datetime64
datetime64r   reprr   r   r   r   r   rw      sl    


	



rw   c                   @  s   e Zd Zdd Zdd Zdd Zdd Zej	d	e
je
jgd
d Zej	dejejejgdd Zej	dejejejgdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Z d+S ),TestDivisionByZeroc                 C  sv   |}t tjtjtjtjtjgtjd}t||}|| }t|| t|	dt
|	d }t|t| d S NrC   r5   r   r   naninfrO   r   r(   assert_index_equalr   r   r   r)   rP   r   r   idxr   	expected2rQ   
ser_compatr   r   r   test_div_zeroG     "
z TestDivisionByZero.test_div_zeroc                 C  sv   |}t tjtjtjtjtjgtjd}t||}|| }t|| t|	dt
|	d }t|t| d S r   r   r   r   r   r   test_floordiv_zeroT  r   z%TestDivisionByZero.test_floordiv_zeroc                 C  sl   |}t tjtjtjtjtjgtjd}|| }t|| t|dt|d }t	|t| d S r   )
r   r   r   rO   r(   r   r   r   r   r)   )rP   r   r   r   r   rQ   r   r   r   r   test_mod_zeroa  s   "z TestDivisionByZero.test_mod_zeroc                 C  s   |}t tjtjtjtjtjgtjd}t tjtjtjtjtjgtjd}t||}t||}t|d | t|d | d S )NrC   r   rJ   )	r   r   r   r   rO   r   divmodr(   r   )rP   r   r   r   exleftexrightrQ   r   r   r   test_divmod_zeroj  s   ""

z#TestDivisionByZero.test_divmod_zeror,   c                 C  sd   |j tjkrd S |d }ttj tj tj tjtjgtjd}t||}|||}t	|| d S )NrL   rC   )
rD   r   uint64r   r   r   rO   r   r(   r   )rP   r   r   r,   r   r   rQ   r   r   r   test_div_negative_zerou  s   (

z)TestDivisionByZero.test_div_negative_zerodtype1c           	      C  s   |}t g ddd|}t g ddd|}tjdd t |jtj|j dd d	}W d    n1 s8w   Y  tj|jd
d< |jdkr[|jdkr[t	j
r[|d
kr[|d}|| }t|| ||| rnJ d S )NrL      rT      firstr\   r   r   r   rL   secondignorer   rO   rD   r]   r   rL   r   float32)r   r   r   errstatevaluesrO   r   ilocrD   exprUSE_NUMEXPRr(   r)   r&   )	rP   switch_numexpr_min_elementsr   any_real_numpy_dtypedtype2r   r   r   rQ   r   r   r   test_ser_div_ser  s"   
z#TestDivisionByZero.test_ser_div_serc                 C  s   |}t ddg|}t ddg|}|| || f}t|}|d tj|d< tj|d d< t||}t|d |d  t|d |d  t|j	|}t|d |d  t|d |d  d S )NrJ   r   rK   )
r   r   listr   rO   r   r   r(   r)   r   )rP   r   r   r   r-   r.   r   rQ   r   r   r   test_ser_divmod_zero  s   
z'TestDivisionByZero.test_ser_divmod_zeroc                 C  s   t tjdg}t tjdg}|| || f}t||}t|d |d  t|d |d  t|j|}t|d |d  t|d |d  d S )N      ?       @r   rJ   )r   r   r   r   r(   r)   r   )rP   r-   r.   r   rQ   r   r   r   test_ser_divmod_inf  s   
z&TestDivisionByZero.test_ser_divmod_infc                 C  sz   t dgd }t jd}tdgd }|t| }t|| t|| }t|| t|t| }t|| d S )Nr   rT   rM   )r   r   r^   r_   r   r(   r)   )rP   
zero_arraydatar   rQ   r   r   r   test_rdiv_zero_compat  s   z(TestDivisionByZero.test_rdiv_zero_compatc                 C  sB   t g ddd}t tj tjtjgdd}|d }t|| d S Nr   r   rJ   r   r\   r   r   r   r   r   r(   r)   rP   serr   rQ   r   r   r   test_div_zero_inf_signs  s   z*TestDivisionByZero.test_div_zero_inf_signsc                 C  s<   t g ddd}t dtjdgdd}d| }t|| d S )Nr   r   r\   rM   r   )r   r   r   r(   r)   r   r   r   r   test_rdiv_zero  s   z!TestDivisionByZero.test_rdiv_zeroc                 C  sB   t g ddd}|d }t tj tjtjgdd}t|| d S r   r   )rP   r   rQ   r   r   r   r   test_floordiv_div  s   z$TestDivisionByZero.test_floordiv_divc                 C  sb   t g dg dd}|| }tg d}ttjtjtjdg}t ||d}t|| d S )Nr   r   r   r   r   r   r   r   rJ   )r`   	DataFramer   r   r   r(   assert_frame_equal)rP   dfrQ   r   r   r   r   r   r   test_df_div_zero_df  s   z&TestDivisionByZero.test_df_div_zero_dfc                 C  s   t g dg dd}tg d}ttjtjtjdg}t ||d}tjdd |jd|j }W d    n1 s?w   Y  t j||j|j	d	}t
|| d S )
Nr   r   r   r   rJ   r   r   floatr%   columns)r`   r   r   r   r   r   r   r   r%   r   r(   r   )rP   r   r   r   r   r   rQ   r   r   r   test_df_div_zero_array  s   z)TestDivisionByZero.test_df_div_zero_arrayc                 C  s   t g dg dd}|d }t jtj|j|jd}tj|jdddf< t	|| tj
dd	 |jd
d }W d    n1 sDw   Y  t j||j|jd}t	|| d S )Nr   r   r   r   r   rL   rJ   r   r   rO   )r`   r   r   r   r%   r   r   r   r(   r   r   r   r   rP   r   rQ   r   r   result2r   r   r   test_df_div_zero_int  s   z'TestDivisionByZero.test_df_div_zero_intc                 C  sJ   t tjdd}|d }|| }|| }|d|dr#J d S Nr=   rT   r   r`   r   r   r^   r_   fillnar&   rP   r   r   resres2r   r   r   (test_df_div_zero_series_does_not_commute  s
   z;TestDivisionByZero.test_df_div_zero_series_does_not_commutec                 C  s   t g dg dd}tg d}|s|d}ttjtjtjdg}t ||d}|| }t|| t jg dg dddd}tg dd	d
}ttjtjtjdg}t ||d}|| }t|| d S )Nr   r   r   r   r   r   r   rO   r   Fr   r   rC   )r`   r   r   r   r   r   r(   r   )rP   using_array_managerr   r   r   r   rQ   r   r   r   test_df_mod_zero_df   s   
z&TestDivisionByZero.test_df_mod_zero_dfc                 C  s   t g dg dd}tg ddd}ttjtjtjdg}t ||d}tjdd	 |j|j }W d    n1 s>w   Y  t j||j|jdd
}tj|j	dddf< t
|| d S )Nr   r   r   r  rO   rC   r   r   r   )r%   r   rD   rL   rJ   )r`   r   r   r   r   r   r   r%   r   r   r(   r   )rP   r   r   r   r   r   r   r   r   r   test_df_mod_zero_array8  s   z)TestDivisionByZero.test_df_mod_zero_arrayc                 C  s   t g dg dd}|d }t jtj|j|jd}t|| tjdd |j	
dd }W d    n1 s:w   Y  t j||j|jd}t|| d S )	Nr   r   r   r   r   r   r   rO   )r`   r   r   r   r%   r   r(   r   r   r   r   r   r   r   r   test_df_mod_zero_intI  s   z'TestDivisionByZero.test_df_mod_zero_intc                 C  sJ   t tjdd}|d }|| }|| }|d|dr#J d S r  r  r  r   r   r   (test_df_mod_zero_series_does_not_commuteW  s
   z;TestDivisionByZero.test_df_mod_zero_series_does_not_commuteN)!rt   ru   rv   r   r   r   r   rm   r   r   r    truedivfloordivr   r   r   rO   r   r   r   r   r   r   r   r   r   r   r   r  r
  r  r  r  r   r   r   r   r   F  s0    	



r   c                	   @  s   e Zd Zdd Zdd Zdd Zejde	j
eje	jgdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zejde	jejgdd Zdd Zdd Zdd Zdd Zejd ejd!d"d#d$ejgd%d& Zd'd( Z d)d* Z!d+d, Z"d-S ).TestMultiplicationDivisionc                 C  sl   |}t tdg}t tdg}t||}t||}|td }t|| |td }t|| d S )Nr=   rT   rK   )r   r   r(   rV   rl   )rP   rW   rp   r   r   rQ   r   r   r   test_divide_decimale  s   z.TestMultiplicationDivision.test_divide_decimalc                 C  sb   t ddgdd}t ddgdd}t dtj g}||}tj||dd	 || }t|| d S )
NrJ   r   r   r\   g{Gzg{Gzr   Fcheck_names)r   r   r   divr(   r)   )rP   r   r   r   rQ   r   r   r   test_div_equiv_binopu  s   
z/TestMultiplicationDivision.test_div_equiv_binopc                 C  sH   |}|d }| d}t|| |d }t|jd }t|| d S )NrJ   rO   rK   )r   r(   r   r   r   )rP   r   r   rQ   r   r   r   r   test_div_int  s   
z'TestMultiplicationDivision.test_div_intr,   c                 C  s*   |}t ||}||d}t || d S NrJ   )r(   rV   rl   )rP   r,   r   rW   r   rQ   r   r   r   test_mul_int_identity  s   
z0TestMultiplicationDivision.test_mul_int_identityc                 C  sd   |}|| }|t jddd }t||d  |jt jkrdnd}|t jd|d }t|| d S )NrT   r   rC   r   )r   r   r(   r   rD   r   r   )rP   r   r   didxrQ   	arr_dtyper   r   r   test_mul_int_array  s   z-TestMultiplicationDivision.test_mul_int_arrayc                 C  sJ   |}|| }|j tjkrdnd}|ttjd|d }t|t| d S )Nr   r   rT   rC   )rD   r   r   r   r   r(   r)   )rP   r   r   r  r  rQ   r   r   r   test_mul_int_series  s
   z.TestMultiplicationDivision.test_mul_int_seriesc                 C  sB   |}t jddd}|t|d  }t||d  }t|| d S )NrT   rO   rC   g?)r   r   r   r(   r)   )rP   r   r   rng5rQ   r   r   r   r   test_mul_float_series  s
   z0TestMultiplicationDivision.test_mul_float_seriesc                 C  s    |}|| }t ||d  d S NrK   r(   r   )rP   r   r   rQ   r   r   r   test_mul_index  s   z)TestMultiplicationDivision.test_mul_indexc                 C  sN   |}d}t jt|d |tjddd  W d    d S 1 s w   Y  d S )Nz,cannot perform __rmul__ with this index typerg   20130101rT   periods)rm   rn   ro   r`   
date_rangerP   r   r   rr   r   r   r   test_mul_datelike_raises  s
   "z3TestMultiplicationDivision.test_mul_datelike_raisesc                 C  s   |}d}t jt|d ||dd   W d    n1 sw   Y  t jt|d |tddg  W d    d S 1 s?w   Y  d S )Nz(operands could not be broadcast togetherrg   r   rL   rJ   rK   )rm   rn   
ValueErrorr   r   r&  r   r   r   test_mul_size_mismatch_raises  s   "z8TestMultiplicationDivision.test_mul_size_mismatch_raisesc                 C  sJ   |}|}t ||jd}t||}t||}||d}t|| d S )Nr   r   r   r(   rV   rl   )rP   r,   r   rW   rp   r   r   rQ   r   r   r   test_pow_float  s   
z)TestMultiplicationDivision.test_pow_floatc                 C  sF   |}|}t |jd }t||}t||}|d }t|| d S r  r*  )rP   r   rW   rp   r   r   rQ   r   r   r   test_modulo  s   z&TestMultiplicationDivision.test_moduloc           	      C  s~   |}t |d}tjdd t |jd\}}W d    n1 s w   Y  t|t|f}t||D ]
\}}t|| q2d S )NrK   r   r   )r   r   r   r   r   zipr(   r   )	rP   r   r   rQ   r  modr   rer   r   r   test_divmod_scalar  s   
z-TestMultiplicationDivision.test_divmod_scalarc           
      C  s   |}t j|jj|jjdd }t||}t jdd t|j|\}}W d    n1 s-w   Y  t|t|f}t||D ]
\}}	t	
||	 q?d S NrC   rK   r   r   )r   onesr   shaperD   r   r   r   r-  r(   r   
rP   r   r   r+   rQ   r  r.  r   r/  r0  r   r   r   test_divmod_ndarray  s   
z.TestMultiplicationDivision.test_divmod_ndarrayc           
      C  s   |}t j|jj|jjdd }t|t|}t jdd t|j|\}}W d    n1 s/w   Y  t|t|f}t||D ]
\}}	t	
||	 qAd S r2  )r   r3  r   r4  rD   r   r   r   r-  r(   r)   r5  r   r   r   test_divmod_series  s   z-TestMultiplicationDivision.test_divmod_seriesr+      igX9v@gQ	c                 C  s   t jdd}dd }||}t|t | |||  tt || |||  t|t | |||  tt || |||  d S )NrT   rL   c                 S  s   t j| tdg ddS )NABCDE)jimjoejolier   )r`   r   r   r}   r   r   r   r     s    z?TestMultiplicationDivision.test_ops_np_scalar.<locals>.<lambda>)r   r^   r_   r(   r   r   )rP   r+   valsfr   r   r   r   test_ops_np_scalar   s   "z-TestMultiplicationDivision.test_ops_np_scalarc                 C  s   t  }d|_td|i}t j|| ||d  dd t j|| ||d  dd t j||k ||d k dd t j|| ||d  dd d S )NrY   AFr  )r(   makeTimeSeriesr]   r`   r   r)   )rP   rY   r   r   r   r   test_operators_frame  s    z/TestMultiplicationDivision.test_operators_framec                 C  s2  t jdd tg dg dd}|d |d  }t|d j|d j dd	}t j|jd
d< t	|| |d d
 }tt j|j
dd}t	|| |d}|d |d  }t|d j|d j }t	|| |d}|d |d  }|d |d  }||rJ W d    d S 1 sw   Y  d S )Nr   r   r   r   r   r   r   rO   rC   r   rL   r%   r]   )r   r   r`   r   r   r   r   r   r(   r)   r%   r   r&   )rP   prQ   r   r   r   r   r   test_modulo2  s$   

"z'TestMultiplicationDivision.test_modulo2c                 C  s   t jdd2 tddg}|d }tt jt jg}t|| d| }tt jdg}t|| W d    d S 1 s;w   Y  d S )Nr   r   r   rJ   rM   )r   r   r   r   r(   r)   )rP   srQ   r   r   r   r   test_modulo_zero_int4  s   "z/TestMultiplicationDivision.test_modulo_zero_intN)#rt   ru   rv   r  r  r  rm   r   r   r    mulr   rmulr  r  r  r  r  r!  r'  r)  r!   r   r+  r,  r1  r6  r7  r   r   r   r?  rB  rE  rG  r   r   r   r   r  a  s.    



r  c                   @  s4  e Zd Zejdeg dedddeg dedddedd	ej	ej	ged
ddfeg dedddeg ded
ddedddej	ged
ddfgdd Z
ejdejdg dieddejdg dieddejddd	ej	ej	gied
dfejdg dieddejdg died
dejddddej	gied
dfgdd Zdd Zdd Zdd Zdd Zdd Zejddd d! Zejjd"d#d$ d%d$ d&d$ gg d'd(d)d* Zejjd"d+d$ d,d$ gd-d.gd(d/d0 Zejjd"d1d$ d2d$ d3d$ gg d'd(d4d5 Zd6d7 Zd8S )9TestAdditionSubtractionzfirst, second, expectedrI   ABCr~   rC  )rK   rK   rK   ABD      @      @ABCD)rK   rK   rK   rK   rL   r   rT   c                 C  $   t || | t || | d S r   )r(   r)   rP   r   r   r   r   r   r   test_add_seriesF     z'TestAdditionSubtraction.test_add_seriesr%   c                 C  rP  r   )r(   r   rQ  r   r   r   test_add_framesZ  rS  z'TestAdditionSubtraction.test_add_framesc           	      C  s  t tdd}d| }|dd }t|| td|i}d| }td|dd i}t|| t }d|_	|
 }d	d
dg}tjt|d ||  W d    n1 s^w   Y  tjt|d ||  W d    d S 1 szw   Y  d S )NrT   r=   foo_c                 S     d|  S NrV  r   r}   r   r   r   r   s      zDTestAdditionSubtraction.test_series_frame_radd_bug.<locals>.<lambda>r=  c                 S  rW  rX  r   r}   r   r   r   r   x  rY  rY   r   r   zConcatenation operationrg   )r   r(   rands_arraymapr)   r`   r   r   rA  r]   r   r   rm   rn   ro   )	rP   rX   r=  rQ   r   framerY   fix_nowrr   r   r   r   test_series_frame_radd_bugo  s,   

"z2TestAdditionSubtraction.test_series_frame_radd_bugc                 C  s,  t tjd}||j  }||j }t|| t tj	dddtj	dddd}||j  }||j }t|| d}t
jt|d ||j  }W d    n1 sWw   Y  tjtjddtj	dddd}td|d	< |d	 |j  |d
< |d	 |j |d< tj|d |d
 dd d S )NrT   r"  r#  rT  z.cannot subtract PeriodArray from DatetimeArrayrg   rK   20130102dater   rQ   Fr  )r   r   r^   r_   r%   	to_seriesr(   r)   r`   r%  rm   rn   ro   	to_periodr   ra   )rP   r   r   rQ   rr   r   r   r   r   test_datetime64_with_index  s,   

z2TestAdditionSubtraction.test_datetime64_with_indexc                 C  s   |}t jd}t|t |jd}|| }|| }| D ](\}}| D ]\}	}
|| |	 d }t |
s>|
|ks=J q&t |sEJ q&q| D ]*\}}| D ]!\}	}
|| |	 ||  }t |
sm|
|kslJ qSt |stJ qSqKd S )Nr   rT  rK   )r   r^   r   r   r   itemsisnan)rP   float_framer\  garbage	colSeriesidSum	seriesSumcolr*   r   valorigValr   r   r   test_frame_operators  s(   

z,TestAdditionSubtraction.test_frame_operatorsc                 C  s2   t j|g dd}|| }|d }t|| d S )N)r   CBr@  )r   rK   )r`   r   r(   r   )rP   rf  frame2addedr   r   r   r   test_frame_operators_col_align  s   z6TestAdditionSubtraction.test_frame_operators_col_alignc              	   C  s8   t dg di}t|| t ddtjdgi d S )Nrb   )rb   Nrc   aabb)r`   r   r(   r   r   r   )rP   r   r   r   r    test_frame_operators_none_to_nan  s   &z8TestAdditionSubtraction.test_frame_operators_none_to_nanrD   )r   r   c                 C  sZ   t j|dt jdg|dt jdg|dg}|D ]}|| |s"J t|| | qd S )NrC   r@  )r   rD   r   r%   rD   )r`   r   r&   r(   r   )rP   rD   framesr   r   r   r   test_frame_operators_empty_like  s   
z7TestAdditionSubtraction.test_frame_operators_empty_likefuncc                 C     | d S r  r   r}   r   r   r   r     rY  z TestAdditionSubtraction.<lambda>c                 C     | d d d S r  r   r}   r   r   r   r         c                 C     dS rS   r   r}   r   r   r   r         )multiplysliceconstantr   c                 C  *   |}t  d}||}t||| d S NrY   r(   rA  renamer1   )rP   all_arithmetic_functionsrz  r,   r*   r+   r   r   r    test_series_operators_arithmetic  s   z8TestAdditionSubtraction.test_series_operators_arithmeticc                 C  s   | d S r  r   r}   r   r   r   r     rY  c                 C  r~  rS   r   r}   r   r   r   r     r  addr  c                 C  r  r  r  )rP   comparison_oprz  r,   r*   r+   r   r   r   test_series_operators_compare  s   z5TestAdditionSubtraction.test_series_operators_comparec                 C  r{  r  r   r}   r   r   r   r     rY  c                 C  r|  r  r   r}   r   r   r   r     r}  c                 C  r~  rS   r   r}   r   r   r   r     r  c           
      C  s   t  d}||}t||}t|tjr1t|t|kr1g }|D ]}|| |t	j
 q"n|}t	|}t	jdd t|jt	|}W d    n1 sRw   Y  t||D ] \}}	t t	||	 |j|jksqJ t |j|jd  q\d S )NrY   r   r   )r(   rA  r  r   r$   r   Iterabler   appendr   r   asarrayr   r   r-  assert_almost_equalr]   r   r%   r'   )
rP   rz  r*   r+   resultsother_npr   	expectedsrQ   r   r   r   r   test_divmod  s&   


z#TestAdditionSubtraction.test_divmodc                 C  s|   t  d}|d }t||}ttjgt| |jdd}ttj	gt| |jdd}t 
|d | t 
|d | d S )NrY   r   rC  rJ   )r(   rA  r  r   r   r   r   r   r%   r   r)   )rP   tserr+   rQ   exp1exp2r   r   r   test_series_divmod_zero  s   
z/TestAdditionSubtraction.test_series_divmod_zeroN)rt   ru   rv   rm   r   r   r   r   r   r   rR  r`   r   rU  r^  rc  rn  rs  rv  ry  r  r  r  r  r   r   r   r   rJ  B  sf    
 




rJ  c                   @  s   e Zd Zejdeeegejde	j
e	je	jgdd Zejdeegejde	j
e	je	jgdd Zejdeegejde	j
e	je	jgdd Zd	d
 ZdS )TestUFuncCompatholderrD   c                 C  s   |t u rt nt}|tu r"|tjkrtd| d tdddd}n|tjd|ddd}t|}|ttjd|ddd}t	
|| d S )Nzdtype z not relevant for RangeIndexr   rT   foor\   rC   )r   r   r   r   r   rm   skipr   sinr(   rl   )rP   r  rD   rp   r   rQ   r   r   r   r   test_ufunc_compat!  s   

z!TestUFuncCompat.test_ufunc_compatc                 C  s  |g d|dd}|t u rt nt}t|}|jdkr t||s"J tttjg dtjddd}t	||}t
|| t|d}|jdkrOt||sQJ tg dtjdd}t	||}t
|| |d }|jdkrut||swJ tg d	tjdd}t	||}t
|| |d }|jdkrt||sJ tg d
tjdd}t	||}t
|| |d }|jdkrt||sJ tg dtjdd}t	||}t
|| |d }|jdkrt||sJ tg dtjdd}t	||}t
|| d S )N)rJ   rK   rL   r   rT   r~   r   r<   rC   r\   r   )g      ?r   g      ?r   g      @)rM  rN        @g      @g      @)g      rM   r   r   rM  r   )r   r   rM  rN  r  )r   r   r   sqrtrD   r$   r   rO   r(   rV   rl   divide)rP   r  rD   r   rp   rQ   expr   r   r   test_ufunc_coercions1  s@   
"z$TestUFuncCompat.test_ufunc_coercionsc                 C  s   |g d|dd}|t u rt nt}t|}t|tsJ tg dtjdd}tg dtjdd}t|d t	|| t|d t	|| d S )NrI   r~   r   )rM   rM   rM   )r   r   rM  r   rJ   )
r   r   r   modfr$   tuplerO   r(   rl   rV   )rP   r  rD   rZ   rp   rQ   r  r  r   r   r   !test_ufunc_multiple_return_values]  s   
z1TestUFuncCompat.test_ufunc_multiple_return_valuesc                 C  sP   t g dg ddd}tj|ddgd t g dg ddd}t|| d S )	NrN   rI   r~   rC  r   rK   r=   )r=   rJ      )r   r   r  atr(   r)   )rP   rF  r   r   r   r   test_ufunc_atj  s   zTestUFuncCompat.test_ufunc_atN)rt   ru   rv   rm   r   r   r   r   r   r   r   r   rO   r  r  r  r  r   r   r   r   r    s    *r  c                   @  sj   e Zd Zejddegdd Zejddegdd Zejde	j
e	je	je	je	jgdd	 ZdS )
TestObjectDtypeEquivalencerD   Nc                 C  st   |}t g d|d}t tjtjtjg|d}t||}t||}tj| }t|| |tj }t|| d S )NrI   rC   )r   r   r   r(   rV   rl   rP   rD   rW   rp   r   r   rQ   r   r   r   test_numarr_with_dtype_add_nant  s   

z9TestObjectDtypeEquivalence.test_numarr_with_dtype_add_nanc                 C  sh   |}t g d|d}t g d|d}t||}t||}d| }t|| |d }t|| d S )NrI   rC   )rK   rL   r   rJ   )r   r(   rV   rl   r  r   r   r   test_numarr_with_dtype_add_int  s   z9TestObjectDtypeEquivalence.test_numarr_with_dtype_add_intr,   c                 C  sL   t tjdtdtd}|d|}|d|t}t	|t| d S )Nr=   rw  r   )
r   r   r^   r_   r   objectr   r   r(   r)   )rP   r,   r   rQ   r   r   r   r   test_operators_reverse_object  s   
z8TestObjectDtypeEquivalence.test_operators_reverse_object)rt   ru   rv   rm   r   r   r  r  r  r    r  subrH  r  r  r  r   r   r   r   r  q  s    

r  c                   @  s  e Zd Zejdejejej	ej
ejgejdedddedddeddded	d
dgejdedddedddeddded	d
dgdd Zejdejejej	ej
ejgejdedddedddeddded	d
dgejdg ddd Zejdedddedddgejdedddedddgdd Zejdedddedddgejdddgdd Zejdejejej	ej
ejejejgdd Zdd Zejdeddddedddfedd d!d!ed"d#dfeddddeedddjd fedd$dd%eedd$djd% fedd&edfedd'dd(edddfed
dd)d'ed*ddfed+d,d(dedfgd-d. Zejd/ejejgejd0g d1d2d3 Zd4S )5TestNumericArithmeticUnsortedr,   idx1r   r=   rJ   rA   rK   irT   r   idx2c                 C  sL   | d}| d}|||}|t| t| }tj||dd d S Nr  barequivexact)_renamer   to_numpyr(   r   )rP   r,   r  r  rQ   r   r   r   r   test_binops_index  s
   


z/TestNumericArithmeticUnsorted.test_binops_indexr   scalar)r   rJ   rK   c                 C  s0   |||}|t | |}tj||dd d S Nr  r  )r   r  r(   r   )rP   r,   r   r  rQ   r   r   r   r   test_binops_index_scalar  s   
z6TestNumericArithmeticUnsorted.test_binops_index_scalarc                 C  sL   | d}| d}t||}tt| t| }tj||dd d S r  )r  r!   r   r  r(   r   )rP   r  r  rQ   r   r   r   r   test_binops_index_pow  s
   


z3TestNumericArithmeticUnsorted.test_binops_index_powc                 C  s0   t ||}t t| |}tj||dd d S r  )r!   r   r  r(   r   )rP   r   r  rQ   r   r   r   r   test_binops_index_scalar_pow  s   
z:TestNumericArithmeticUnsorted.test_binops_index_scalar_powc                 C  s~   t d}ttjd}|t||}|||}t|| ttjdd}|t||g|}|||}t	|| d S )NrT   rK   )
r   r   r   r^   r_   r(   r)   r`   r   r   )rP   r,   r%   r+   r   rQ   r   r   r   $test_arithmetic_with_frame_or_series  s   

zBTestNumericArithmeticUnsorted.test_arithmetic_with_frame_or_seriesc                 C  sJ  t ddd}|d }t ddd}tj||dd |d }t ddd}tj||dd |d }t d	d
d}tj||dd |d }t dddd}tj||dd |d }t dddd }tj||dd |d }|}tj||dd || }t|j|j }tj||dd t ddd}|d }t|jd }tjt|j|dd d S )Nr   r=   rK   rA   r   Tr  r  r   rT   rJ   rO     )r   r(   r   r   r   r   _values)rP   r   rQ   r   r   r   r   test_numeric_compat2  s4   z2TestNumericArithmeticUnsorted.test_numeric_compat2zidx, div, expectedr  i  ii7!   C   d   r   2   r   rL   ir  ii8c                 C  s   t j|| |dd d S )NTr  r   )rP   r   r  r   r   r   r   test_numeric_compat2_floordiv8  s   z;TestNumericArithmeticUnsorted.test_numeric_compat2_floordivrD   delta)rJ   r   r   c                 C  s   ||}t g d|d}|| }t |j| |d}t|| || }t |j| |d}t|| t|| d|  t|| d|  || jrMJ d S )N)r=      r  rC   rK   r   )r   r   r(   r   empty)rP   rD   r  r%   rQ   r   r   r   r   test_addsub_arithmeticR  s   z4TestNumericArithmeticUnsorted.test_addsub_arithmeticN)rt   ru   rv   rm   r   r   r    r  r  rH  r  r  r   r  r  r  r  r!   r.  r  r  r   r  r  r   r   rO   r  r   r   r   r   r    s    




	



	




	   	
)


r  c                  C  sv   t g dg dd} t jdg dig dd}| j|dd	}t tjd
dd
gdtjdtjgd}t|| d S )NrN   )皙?Nr  )r@  rp  r@  )r  g333333?g?)r   rK   rL   rT  rJ   
fill_valuer   rM   )r`   r   	rfloordivr   r   r   r(   r   )r   r+   rQ   r   r   r   r   test_fill_value_inf_maskingf  s   r  c                  C  s   t jtdtjddddgd tjgd tddtdtdd	} t jtjddtd
tdd	}t	d  | j
|dd W d    d S 1 sLw   Y  d S )Nr=   rJ   rK   rL   r   )r@  rp  ro  r   
abcdefghijrO  r   
abcdefghjkABCXr   r  )r`   r   r   r   r   r   r^   r_   r(   assert_produces_warningr  )pdf1pdf2r   r   r   test_dataframe_div_silencedt  s   

"r  zdata, expected_datarN   )r   rK   r   c           
      C  s|   t |dd}| |}||| }||| }t|| fv rt}nt|| fv r(t}nt }||dd}	t||	 t||	 d S )NInt64rC   )r   r   r   r(   rl   )
r   box_1d_arrayr   expected_datar   	containerr-   r.   clsr   r   r   r    test_integer_array_add_list_like  s   r  c                  C  s   t jdtjdit jjddgg dgddgdd} |  }|j	d	d
|_| | }t jdgd dg| jd}t
|| d S )Nrb      rc   rN   levAlevB)namesrT  r   rJ   rM   )r   r%   )r`   r   r   r^   r_   
MultiIndexfrom_productr   r%   	swaplevelr(   r   )r   df2rQ   r   r   r   r   "test_sub_multiindex_swapped_levels  s   r  power)rJ   rK   rT   string_size)r   rJ   rK   rT   c                 C  sX   t td|  }tj|t jd}d| }||k}tt j|jtd}t	
|| d S )Nr=   rC    )r   r   rU   r`   r   r   rj   r4  rk   r(   r   )r  r  rb   r.   r-   rQ   r   r   r   r   test_empty_str_comparison  s   r  c                  C  sh   t g d} t g ddd}| | }t g ddd}t|| | | }t g ddd}t|| d S )NrI   )rK   rJ   rL   UInt64rC   )rL   rL   r  Float64)r   rJ   r   )r   r(   r)   )series1series2rQ   r   r   r   r   test_series_add_sub_with_UInt64  s   r  )8
__future__r   collectionsr   datetimer   decimalr   r    numpyr   rm   pandasr`   r   r   r   r	   r
   r   pandas._testing_testingr(   pandas.corer   pandas.core.computationr   r   pandas.tests.arithmetic.commonr   r   fixtureto_arrayr   r   r1   _ldtypesr?   __annotations__extendrH   rw   r   r  rJ  r  r  r  r  r  r   r   r  r  r  r  r   r   r   r   <module>   s^    
7 B   b ^R/ G
