
    dZ                    v   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             Z!d Z"d Z#g dZ$ eddd          gZ%de&d<   e%'                    d e$D                        e%'                    d e$D                         G d d          Z( G d d          Z) G d d          Z* G d d          Z+ G d d          Z, G d d           Z- G d! d"          Z. G d# d$          Z/d% Z0d& Z1ej2        3                    d'g d(g d)fg          d*             Z4d+ Z5ej2        3                    d,g d-          ej2        3                    d.g d/          d0                         Z6d1 Z7dS )2    )annotations)abc)	timedelta)DecimalN)Index
RangeIndexSeries	TimedeltaTimedeltaIndexarray)ops)expressions)assert_invalid_addsub_typeassert_invalid_comparison)paramsc                    | j         S )zL
    Fixture to test behavior for Index, Series and tm.to_array classes
    )param)requests    `/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/arithmetic/test_numeric.pybox_pandas_1d_arrayr       s    
 =    c                    t          j        t          j        |                                                     r?t          j        t          j        |                                                     sJ |dz  }|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expecteds     r   adjust_negative_zeror    (   sd    
 
z"(4..!!%%''  z"(4..))--/////BOr   c                   |t           j        t          j        fv rt	          j        |           n| }|t           j        t          j        fv rt	          j        |          n|} |||          }|                    ||          }t          |t                    r>|j	        
                    | j	                  s|j	                            d           |_	        t          j        ||           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pythons          r   
compare_opr5   7   s    CHhl#;;;26&>>>DCHhl#;;;BF5MMMEbuooO\\%$$F%   5););FL)I)I 5|..t44?F33333r   )i1i2i4i8u1u2u4u8f2f4f8
   (   zlist[Index | Series]leftsc                4    g | ]}t          g d |          S )rA         dtype)r	   .0rI   s     r   
<listcomp>rL   G   s)    FFFEf\\\///FFFr   c                @    g | ]}|d k    t          g d|          S )r>   rE   rH   )r   rJ   s     r   rL   rL   H   s/    VVV5QUeLLL...r   c                  &    e Zd Zd Zd Zd Zd ZdS )TestNumericComparisonsc                   t          j        d          t          g d          k    }dt          g d          k    }t          j        ||           t          g d          t          j        d          k     }t          g d          dk     }t          j        ||           t          j        g d          d         t          g d          k    }dt          g d          k    }t          j        ||           d S )Nr                    r   rR   rS   )r   float64r	   r,   r-   r   )selfresultr   s      r   (test_operator_series_comparison_zerorankz?TestNumericComparisons.test_operator_series_comparison_zerorankO   s    A			!2!22			***
vx000			""RZ]]2)))$$s*
vx000)))$$Q'&*;*;;			***
vx00000r   c                    |}t          j        t          d                    }t          j        ||          }t          |||           d S N   )r   r   ranger,   box_expectedr   )rX   box_with_arrayfixed_now_tstsobjs        r   test_df_numeric_cmp_dt64_raisesz6TestNumericComparisons.test_df_numeric_cmp_dt64_raises[   sE    huQxx  oc>22!#r>:::::r   c                (   t          t          j                            d          d          }t          t          j                            d                    }t	          j        d          |_        t          j        ||z  d||z  z             d S )Nr]   r   namez
2000-01-01rR   )	r	   r   randomrandnpd	Timestamprg   r,   r-   )rX   abs      r   test_compare_invalidz+TestNumericComparisons.test_compare_invalidc   su     29??1%%A...29??1%%&&l++
q1ua1q5k22222r   c                "   |}|t           ur|nt          j        }t          t          j                            d                    }t          j        ||d          }|dk    }t          t          j        dt                              }t          j        ||d          }t          j
        ||           |dk    }t          j
        ||            d}t          j        t          |          5  |dk      d d d            d S # 1 swxY w Y   d S )Ni F	transposerl   rH   z0Invalid comparison between dtype=float64 and strmatch)r   r   ndarrayr	   rh   ri   r,   r_   zerosboolassert_equalpytestraises	TypeError)rX   r`   boxxboxrc   rY   r   msgs           r   $test_numeric_cmp_string_numexpr_pathz;TestNumericComparisons.test_numeric_cmp_string_numexpr_pathk   s>   &&ssBJRY__U++,,oc3%888"(555566?8TUCCC
)))
	***@]9C000 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   0DDDN)__name__
__module____qualname__rZ   rd   rn   r~    r   r   rO   rO   N   sP        
1 
1 
1; ; ;3 3 3    r   rO   c                  ,   e Zd Zej                            dej        ee	g          ej                            de
d           d                         Zej                            dej        ee	g          ej                            de
d           d                         Zej                            d ed	
           ed	
                                           ed	
                                           ed	
                                                              d           ed	
                                                              d          gd           d             Zej                            d ed	
           ed	
                                           ed	
                                          gd           ej                            dej        ej        g          d                         Zd Zej                            d ed           ed                                           ed                                           ed                                                              d           ej        d           ej        dd          ej                            d          ej                            d           ej        dd           ej        d           ej        d                                           ej        dd                                           ej        d                                           ej        dd          ej        ge           d              Z!d!S )".TestNumericArraylikeArithmeticWithDatetimeLikebox_clsr1   c                T    t          |           j        t          | j                  z   S r"   typer   strrI   xs    r   <lambda>z7TestNumericArraylikeArithmeticWithDatetimeLike.<lambda>       T!WW%5AG%D r   idsc                b   t          j        g dd          } ||          }t          g d|j                  }t	          |t
                    s	|t
          u rt          |          }|j        |j        k    sJ ||z  }t          j        ||           ||z  }t          j        ||           d S )NrQ   m8[s]rH   )10s40s90s)r   r   r   rI   r(   r	   r,   rw   )rX   r1   r   r2   r   rY   s         r   test_mul_td64arrz?TestNumericArraylikeArithmeticWithDatetimeLike.test_mul_td64arr   s     '222!"7"7"7u{KKKdF## 	(w&'8'8h''H~,,,,
)))
)))))r   c                T    t          |           j        t          | j                  z   S r"   r   r   s    r   r   z7TestNumericArraylikeArithmeticWithDatetimeLike.<lambda>   r   r   c                L   t          j        g dd          } ||          }t          g d|j                  }t	          |t
                    s	|t
          u rt          |          }|j        |j        k    sJ ||z  }t          j        ||           ||z  }t          j        ||           d}t          j	        t          |          5  ||z   d d d            n# 1 swxY w Y   d}t          j	        t          |          5  ||z   d d d            d S # 1 swxY w Y   d S )N)rA   rB   Z   r   rH   )1s2s3sz5ufunc '(true_)?divide' cannot use operands with typesrr   z3ufunc 'floor_divide' cannot use operands with types)r   r   r   rI   r(   r	   r,   rw   rx   ry   rz   )rX   r1   r   r2   r   rY   r}   s          r   test_div_td64arrz?TestNumericArraylikeArithmeticWithDatetimeLike.test_div_td64arr   s    W555!"4"4"4EKHHHdF## 	(w&'8'8h''H~,,,,
)))$
))) F]9C000 	 	5LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 D]9C000 	 	EMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   CC"%C"DD D	scalar_tdrR   daysztimedelta64[s]ztimedelta64[ms]c                *    t          |           j        S r"   r   r   r   s    r   r   z7TestNumericArraylikeArithmeticWithDatetimeLike.<lambda>       d1gg& r   c                   |}|}t          d t          t          |                    D                       }t          |t          j                  r|j        }|                    |          }n+t          |          t          u r|                    d          }t          j        ||          }t          j        ||          }||z  }t          j        ||           ||z  }	t          j        |	|           d S )Nc                .    g | ]}t          |           S )r   )r
   )rK   ns     r   rL   z`TestNumericArraylikeArithmeticWithDatetimeLike.test_numeric_arr_mul_tdscalar.<locals>.<listcomp>   s#    "P"P"P9!#4#4#4"P"P"Pr   m8[us])r   r^   lenr(   r   timedelta64rI   astyper   r   r,   r_   rw   )
rX   r   numeric_idxr`   r{   r)   r   rI   rY   commutes
             r   test_numeric_arr_mul_tdscalarzLTestNumericArraylikeArithmeticWithDatetimeLike.test_numeric_arr_mul_tdscalar   s     !"P"PeCJJ>O>O"P"P"PQQi00 	1OEu--HH)__	))x00Hs++?8S11"
)))e#
*****r   c                *    t          |           j        S r"   r   r   s    r   r   z7TestNumericArraylikeArithmeticWithDatetimeLike.<lambda>   r   r   rI   c                   |}t          j        d                              t           j        d          }|                    |d          }t	          j        ||d          }|                    d                              d          }t          |          t          u r|                    d          }t	          j        ||d          }||z  }	t	          j	        |	|           ||z  }	t	          j	        |	|           d S )Ni N  Fcopyrp   ztimedelta64[D]ztimedelta64[ns]ztimedelta64[us])
r   aranger   int64r,   r_   viewr   r   rw   )
rX   rI   r   r`   r{   arr_i8arrrc   r   rY   s
             r   *test_numeric_arr_mul_tdscalar_numexpr_pathzYTestNumericArraylikeArithmeticWithDatetimeLike.test_numeric_arr_mul_tdscalar_numexpr_path   s     9%%,,RXE,BBmmEm..oc3%888;;/00778IJJ	??i'''899H?8SEBBBy
)))S
)))))r   c                Z   |}|dd         }t          ddg          }t          |t          j                  rI|j        }|t          j        d          k     rt          j        d          }|                    |          }n+t          |          t          u r|                    d          }t          j	        ||          }t          j	        ||          }||z  }t          j
        ||           d}	t          j        t          |	          5  ||z   d d d            d S # 1 swxY w Y   d S )	NrR   rT   z3 Daysz36 Hoursr   r   $cannot use operands with types dtyperr   )r   r(   r   r   rI   r   r   r   r,   r_   rw   rx   ry   rz   )
rX   
three_daysr   r`   r{   r)   r   rI   rY   r}   s
             r   test_numeric_arr_rdiv_tdscalarzMTestNumericArraylikeArithmeticWithDatetimeLike.test_numeric_arr_rdiv_tdscalar   se   AaC !8Z"899j".11 	1$Erx(((())u--HH***x00Hs++?8S11e#
)))4]9C000 	 	J	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   D  D$'D$r/      )hourszm8[h]NaTDrT   r   z
2021-01-01z
Asia/Tokyo)tzUTCnsc                    |}t          j        ||          }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,   r_   joinr   )rX   r   r/   r`   r{   r1   r}   s          r   &test_add_sub_datetimedeltalike_invalidzUTestNumericArraylikeArithmeticWithDatetimeLike.test_add_sub_datetimedeltalike_invalid  sV    4 {C00hh  
 
  	#444444r   N)"r   r   r   rx   markparametrizer   r   r   r	   rC   r   r   r
   to_timedelta64to_pytimedeltar   r   r   rW   r   r   r   rj   offsetsMinuteSecondrk   to_pydatetimeto_datetime64
datetime64r   reprr   r   r   r   r   r      s       [Y5&(ABB[DD   * *  CB*" [Y5&(ABB[DD      CB6 [I1I1,,..I1,,..I1,,..556FGGI1,,..556GHH	
 '&  
 
+ +
 
+( [I1I1,,..I1,,..	

 '&    [Wrx&<==* * >= *,  2 [IBIB..00IB..00IB..0077@@BN5!!BN5#&&Ja  Ja   BL,777BL&&BL&&4466BL%000>>@@BL&&4466BM%&&F#	
& +   .5 5/ .5 5 5r   r   c                     e Zd Zd Zd Zd Zd Zej        	                    de
j        e
j        g          d             Zej        	                    dej        ej        ej        g          d             Zej        	                    dej        ej        ej        g          d	             Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z dS )TestDivisionByZeroc                   |}t          t          j        t          j        t          j        t          j        t          j        gt          j                  }t          ||          }||z  }t          j        ||           t          |          	                    d          t          j
        |          	                    d          z  }t          j        |t          |                     d S NrH   r9   r   r   naninfrW   r    r,   assert_index_equalr	   r   r   r-   rX   r   r   idxr   	expected2rY   
ser_compats           r   test_div_zeroz TestDivisionByZero.test_div_zeroG  s    "&"&"&"&"&ATTT )x88	t
fi000C[[''--0E0Ed0K0KK

z6(+;+;<<<<<r   c                   |}t          t          j        t          j        t          j        t          j        t          j        gt          j                  }t          ||          }||z  }t          j        ||           t          |          	                    d          t          j
        |          	                    d          z  }t          j        |t          |                     d S r   r   r   s           r   test_floordiv_zeroz%TestDivisionByZero.test_floordiv_zeroT  s    "&"&"&"&"&ATTT )x88	
fi000C[[''--$1F1Ft1L1LL

z6(+;+;<<<<<r   c                   |}t          t          j        t          j        t          j        t          j        t          j        gt          j                  }||z  }t	          j        ||           t          |                              d          t          j        |                              d          z  }t	          j	        |t          |                     d S r   )
r   r   r   rW   r,   r   r	   r   r   r-   )rX   r   r   r   r   rY   r   s          r   test_mod_zeroz TestDivisionByZero.test_mod_zeroa  s    "&"&"&"&"&ATTTt
fh///C[[''--0E0Ed0K0KK

z6&>>:::::r   c                   |}t          t          j        t          j        t          j        t          j        t          j        gt          j                  }t          t          j        t          j        t          j        t          j        t          j        gt          j                  }t          ||          }t          ||          }t          j        |d         |           t          j        |d         |           d S )NrH   r   rR   )	r   r   r   r   rW   r    divmodr,   r   )rX   r   r   r   exleftexrightrY   s          r   test_divmod_zeroz#TestDivisionByZero.test_divmod_zeroj  s    ?rzRRR@
SSS%dF33T""
fQi000
fQi11111r   r0   c                J   |j         t          j        k    rd S |dz
  }t          t          j         t          j         t          j         t          j        t          j        gt          j                  }t          ||          } |||          }t          j	        ||           d S )NrT   rH   )
rI   r   uint64r   r   r   rW   r    r,   r   )rX   r   r   r0   r   r   rY   s          r   test_div_negative_zeroz)TestDivisionByZero.test_div_negative_zerou  s     	))FAo26'BF7RVGRVRVDBJWWW'h77C
fh/////r   dtype1c                   |}t          g dd                              |          }t          g dd                              |          }t          j        d          5  t          |j                            t          j                  |j        z  dd 	          }d d d            n# 1 swxY w Y   t          j        |j        d
d<   |j        dk    r2|j        dk    r't          j
        r|d
k    r|                    d          }||z  }t          j        ||           |                    ||z            rJ d S )NrT      r]      firstrf   r   r   r   rT   secondignorer   rW   rI   rg   r   rT   r   float32)r	   r   r   errstatevaluesrW   r   ilocrI   exprUSE_NUMEXPRr,   r-   r*   )	rX   switch_numexpr_min_elementsr   any_real_numpy_dtypedtype2r   r   r   rY   s	            r   test_ser_div_serz#TestDivisionByZero.test_ser_div_ser  s    &|||'22299&AA8444;;FCC[X&&& 	 	##BJ//&-?  H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	  Vac;'!!fli&?&?  6$?1$D$D#??955
vx000==%0000000s   $=B--B14B1c                   |}t          ddg                              |          }t          ddg                              |          }||z  ||z  f}t          |          }|d                             t          j                  |d<   t          j        |d         d<   t          ||          }t          j        |d         |d                    t          j        |d         |d                    t          |j	        |          }t          j        |d         |d                    t          j        |d         |d                    d S )NrR   r   rS   )
r	   r   listr   rW   r   r   r,   r-   r   )rX   r   r   r   r1   r2   r   rY   s           r   test_ser_divmod_zeroz'TestDivisionByZero.test_ser_divmod_zero  s"    &q!f~~$$V,,1v%%f-- 5=$,.>>qk((44Ae$$
vay(1+666
vay(1+666 U++
vay(1+666
vay(1+66666r   c                   t          t          j        dg          }t          t          j        dg          }||z  ||z  f}t          ||          }t	          j        |d         |d                    t	          j        |d         |d                    t          |j        |          }t	          j        |d         |d                    t	          j        |d         |d                    d S )N      ?       @r   rR   )r	   r   r   r   r,   r-   r   )rX   r1   r2   r   rY   s        r   test_ser_divmod_infz&TestDivisionByZero.test_ser_divmod_inf  s    rvsm$$}%%5=$,.e$$
vay(1+666
vay(1+666 U++
vay(1+666
vay(1+66666r   c                   t          j        dgdz            }t           j                            d          }t	          dgdz            }|t	          |          z  }t          j        ||           t	          |          |z  }t          j        ||           t	          |          t	          |          z  }t          j        ||           d S )Nr   r]   rU   )r   r   rh   ri   r	   r,   r-   )rX   
zero_arraydatar   rY   s        r   test_rdiv_zero_compatz(TestDivisionByZero.test_rdiv_zero_compat  s    XqcAg&&
yq!!3%!)$$fTll*
vx000
##d*
vx000
##fTll2
vx00000r   c                    t          g dd          }t          t          j         t          j        t          j        gd          }|dz  }t	          j        ||           d S Nr   r   rR   r   rf   r   r	   r   r   r   r,   r-   rX   serr   rY   s       r   test_div_zero_inf_signsz*TestDivisionByZero.test_div_zero_inf_signs  s[    ZZZg...BF7BFBF3'BBBq
vx00000r   c                    t          g dd          }t          dt          j        dgd          }d|z  }t          j        ||           d S )Nr  r   rf   rU   r   )r	   r   r   r,   r-   r  s       r   test_rdiv_zeroz!TestDivisionByZero.test_rdiv_zero  sU    ZZZg...3,7;;;S
vx00000r   c                    t          g dd          }|dz  }t          t          j         t          j        t          j        gd          }t	          j        ||           d S r  r  )rX   r  rY   r   s       r   test_floordiv_divz$TestDivisionByZero.test_floordiv_div  s[    ZZZg...BF7BFBF3'BBB
vx00000r   c                "   t          j        g dg dd          }||z  }t          g d          }t          t          j        t          j        t          j        dg          }t          j        ||d          }t          j        ||           d S )Nr   r   r   r   r  r  r  r  rR   )rj   	DataFramer	   r   r   r,   assert_frame_equal)rX   dfrY   r   r   r   s         r   test_df_div_zero_dfz&TestDivisionByZero.test_df_div_zero_df  s    \LLLLLLIIJJb+++,,344<%6 B BCC
fh/////r   c                   t          j        g dg dd          }t          g d          }t          t          j        t          j        t          j        dg          }t          j        ||d          }t          j        d          5  |j                            d          |j        z  }d d d            n# 1 swxY w Y   t          j        ||j        |j	        	          }t          j        ||           d S )
Nr   r   r  r  rR   r   r   floatr)   columns)rj   r  r	   r   r   r   r   r   r)   r   r,   r  )rX   r  r   r   r   r   rY   s          r   test_df_div_zero_arrayz)TestDivisionByZero.test_df_div_zero_array  s   \LLLLLLIIJJ+++,,344<%6 B BCC[X&&& 	8 	8)""7++bi7C	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8c2:FFF
fh/////s   
#B99B= B=c                   t          j        g dg dd          }|dz  }t          j        t          j        |j        |j                  }t          j        |j        dddf<   t          j	        ||           t          j
        d	          5  |j                            d
          dz  }d d d            n# 1 swxY w Y   t          j        ||j        |j                  }t          j	        ||           d S )Nr   r   r  r   r  rT   rR   r   r   rW   )rj   r  r   r   r)   r   r   r   r,   r  r   r   r   rX   r  rY   r   r   result2s         r   test_df_div_zero_intz'TestDivisionByZero.test_df_div_zero_int  s&   \LLLLLLIIJJa<bh
KKK "ac1f
fh/// [X&&& 	2 	2)""9--1C	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2,s"(BJGGG
gx00000s   B88B<?B<c                   t          j        t          j                            dd                    }|d         }||z  }||z  }|                    d                              |                    d                    rJ d S NrA   r]   r   rj   r  r   rh   ri   fillnar*   rX   r  r  resres2s        r   (test_df_div_zero_series_does_not_commutez;TestDivisionByZero.test_df_div_zero_series_does_not_commute  sp    \")//"a0011eBhCx::a==''A7777777r   c                t   t          j        g dg dd          }t          g d          }|s|                    d          }t          t          j        t          j        t          j        dg          }t          j        ||d          }||z  }t          j        ||           t          j        g dg ddd          }t          g dd	
          }t          t          j        t          j        t          j        dg          }t          j        ||d          }||z  }t          j        ||           d S )Nr   r   r  r   r   r   r   rW   r   Fr   r   rH   )rj   r  r	   r   r   r   r,   r  )rX   using_array_managerr  r   r   r   rY   s          r   test_df_mod_zero_dfz&TestDivisionByZero.test_df_mod_zero_df   s.   \LLLLLLIIJJ|||$$" 	, LL++E344<%6 B BCCb
fh/// \LLLLLLIIPUVVV|||7333344<%6 B BCCb
fh/////r   c                   t          j        g dg dd          }t          g dd          }t          t          j        t          j        t          j        dg          }t          j        ||d          }t          j        d	          5  |j        |j        z  }d d d            n# 1 swxY w Y   t          j        ||j        |j        d
          }t          j        |j	        dddf<   t          j        ||           d S )Nr   r   r  r/  rW   rH   r   r   r   )r)   r   rI   rT   rR   )rj   r  r	   r   r   r   r   r)   r   r   r,   r  )rX   r  r   r   r   r   r$  s          r   test_df_mod_zero_arrayz)TestDivisionByZero.test_df_mod_zero_array8  s/   \LLLLLLIIJJ |||9555344<%6 B BCC [X&&& 	( 	()bi'C	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(,s"(BJiXXX!vQqS!V
gx00000s   B((B,/B,c                   t          j        g dg dd          }|dz  }t          j        t          j        |j        |j                  }t          j        ||           t          j        d          5  |j	        
                    d          dz  }d d d            n# 1 swxY w Y   t          j        ||j        |j                  }t          j        ||           d S )	Nr   r   r  r   r  r   r   rW   )rj   r  r   r   r)   r   r,   r  r   r   r   r#  s         r   test_df_mod_zero_intz'TestDivisionByZero.test_df_mod_zero_intI  s   \LLLLLLIIJJa<bh
KKK
fh/// [X&&& 	2 	2)""9--1C	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2,s"(BJGGG
gx00000s   6B  B$'B$c                   t          j        t          j                            dd                    }|d         }||z  }||z  }|                    d                              |                    d                    rJ d S r'  r(  r*  s        r   (test_df_mod_zero_series_does_not_commutez;TestDivisionByZero.test_df_mod_zero_series_does_not_commuteW  sr     \")//"a0011eBhCx::a==''A7777777r   N)!r   r   r   r   r   r   r   rx   r   r   r$   truedivfloordivr   r   r   rW   r   r   r  r  r
  r  r  r  r  r!  r%  r-  r1  r3  r5  r7  r   r   r   r   r   F  s       = = == = =; ; ;	2 	2 	2 [TH$4h6G#HII
0 
0 JI
0 [X"*bi'HII1 1 JI1: [X"*bi'HII7 7 JI7,7 7 71 1 11 1 11 1 11 1 10 0 00 0 01 1 18 8 80 0 001 1 1"1 1 18 8 8 8 8r   r   c            	         e Zd Zd Zd Zd Zej                            de	j
        ej        e	j        g          d             Zd Zd Zd Zd	 Zd
 Zd Zej                            de	j        ej        g          d             Zd Zd Zd Zd Zej                            dej        ddddej        g          d             Zd Z d Z!d Z"dS )TestMultiplicationDivisionc                n   |}t          t          d          g          }t          t          d          g          }t          j        ||          }t          j        ||          }|t          d          z  }t          j        ||           |t          d          z  }t          j        ||           d S )NrA   r]   rS   )r	   r   r,   r_   rw   )rX   r`   r{   r  r   rY   s         r   test_divide_decimalz.TestMultiplicationDivision.test_divide_decimale  s    gbkk]##71::,''oc3''?8S11wqzz!
)))

"
)))))r   c                   t          ddgd          }t          ddgd          }t          dt          j         g          }|                    |          }t	          j        ||d	           ||z  }t	          j        ||           d S )
NrR   r   r   rf   g{Gzg{Gzr   Fcheck_names)r	   r   r   divr,   r-   )rX   r   r   r   rY   s        r   test_div_equiv_binopz/TestMultiplicationDivision.test_div_equiv_binopu  s     1vG,,,X666526'*++E""
vxUCCCC%
vx00000r   c                    |}|dz  }|                     d          }t          j        ||           |dz  }t          |j        dz            }t          j        ||           d S )NrR   rW   rS   )r   r,   r   r   r   )rX   r   r   rY   r   s        r   test_div_intz'TestMultiplicationDivision.test_div_int  si    q::i((
fh///qa((
fh/////r   r0   c                v    |}t          j        ||          } ||d          }t          j        ||           d S NrR   )r,   r_   rw   )rX   r0   r   r`   r   rY   s         r   test_mul_int_identityz0TestMultiplicationDivision.test_mul_int_identity  s?    oc>22C
$$$$$r   c                   |}||z  }|t          j        dd          z  }t          j        ||dz             |j        t           j        k    rdnd}|t          j        d|          z  }t          j        ||           d S )Nr]   r   rH   r   )r   r   r,   r   rI   r   r   )rX   r   r   didxrY   	arr_dtypes         r   test_mul_int_arrayz-TestMultiplicationDivision.test_mul_int_array  s    Syrx1111
fcAg... #	RY 6 6HHG	ry)4444
fd+++++r   c                    |}||z  }|j         t          j        k    rdnd}|t          t          j        d|                    z  }t          j        |t          |                     d S )Nr   r   r]   rH   )rI   r   r   r	   r   r,   r-   )rX   r   r   rI  rJ  rY   s         r   test_mul_int_seriesz.TestMultiplicationDivision.test_mul_int_series  sg    Sy #	RY 6 6HHG	vbi;;;<<<
vvd||44444r   c                    |}t          j        dd          }|t          |dz             z  }t          ||dz   z            }t          j        ||           d S )Nr]   rW   rH   g?)r   r   r	   r,   r-   )rX   r   r   rng5rY   r   s         r   test_mul_float_seriesz0TestMultiplicationDivision.test_mul_float_series  s`    y),,,vdSj)))$$*-..
vx00000r   c                D    |}||z  }t          j        ||dz             d S NrS   r,   r   )rX   r   r   rY   s       r   test_mul_indexz)TestMultiplicationDivision.test_mul_index  s-    s
fc1f-----r   c                    |}d}t          j        t          |          5  |t          j        dd          z   d d d            d S # 1 swxY w Y   d S )Nz,cannot perform __rmul__ with this index typerr   20130101r]   periods)rx   ry   rz   rj   
date_rangerX   r   r   r}   s       r   test_mul_datelike_raisesz3TestMultiplicationDivision.test_mul_datelike_raises  s    <]9C000 	7 	7"-
A66666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   AAAc                (   |}d}t          j        t          |          5  ||dd         z   d d d            n# 1 swxY w Y   t          j        t          |          5  |t          j        ddg          z   d d d            d S # 1 swxY w Y   d S )Nz(operands could not be broadcast togetherrr   r   rT   rR   rS   )rx   ry   
ValueErrorr   r   rZ  s       r   test_mul_size_mismatch_raisesz8TestMultiplicationDivision.test_mul_size_mismatch_raises  s   8]:S111 	 	#ac(NN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:S111 	# 	#"(Aq6""""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   :>> BBBc                    |}|}t           ||j        d                    }t          j        ||          }t          j        ||          } ||d          }t          j        ||           d S )Nr  r   r   r,   r_   rw   )rX   r0   r   r`   r{   r   r   rY   s           r   test_pow_floatz)TestMultiplicationDivision.test_pow_float  sr     CJ,,--oc3''?8S11C
)))))r   c                    |}|}t          |j        dz            }t          j        ||          }t          j        ||          }|dz  }t          j        ||           d S rR  r`  )rX   r   r`   r{   r   r   rY   s          r   test_moduloz&TestMultiplicationDivision.test_modulo  sb    a((oc3''?8S11q
)))))r   c                F   |}t          |d          }t          j        d          5  t          |j        d          \  }}d d d            n# 1 swxY w Y   t	          |          t	          |          f}t          ||          D ]\  }}t          j        ||           d S )NrS   r   r   )r   r   r   r   r   zipr,   r   )	rX   r   r   rY   rA  modr   res	            r   test_divmod_scalarz-TestMultiplicationDivision.test_divmod_scalar  s    Q[X&&& 	- 	-cj!,,HC	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- ::uSzz))) 	( 	(DAq!!Q''''	( 	(s   AAAc                   |}t          j        |j        j        |j        j                  dz  }t          ||          }t          j        d          5  t          |j        |          \  }}d d d            n# 1 swxY w Y   t          |          t          |          f}t          ||          D ]\  }}	t          j
        ||	           d S NrH   rS   r   r   )r   onesr   shaperI   r   r   r   re  r,   r   
rX   r   r   r/   rY   rA  rf  r   rg  rh  s
             r   test_divmod_ndarrayz.TestMultiplicationDivision.test_divmod_ndarray  s   
(
0@AAAAEU##[X&&& 	1 	1cj%00HC	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 ::uSzz))) 	( 	(DAq!!Q''''	( 	(s   A::A>A>c                   |}t          j        |j        j        |j        j                  dz  }t          |t          |                    }t          j        d          5  t          |j        |          \  }}d d d            n# 1 swxY w Y   t          |          t          |          f}t          ||          D ]\  }}	t          j
        ||	           d S rk  )r   rl  r   rm  rI   r   r	   r   re  r,   r-   rn  s
             r   test_divmod_seriesz-TestMultiplicationDivision.test_divmod_series  s   
(
0@AAAAEVE]]++[X&&& 	1 	1cj%00HC	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 #;;s+)) 	) 	)DAq"1a((((	) 	)s   "BBBr/      igX9v@gQ	c                   t           j                            dd          }d } ||          }t          j        |t          j        |          z   |||z                       t          j        t          j        |          |z   |||z                       t          j        |t          j        |          z    |||z                        t          j        t          j        |          |z
   |||z
                       d S )Nr]   rT   c                N    t          j        | t          d          g d          S )NABCDE)jimjoejolier  )rj   r  r  r   s    r   r   z?TestMultiplicationDivision.test_ops_np_scalar.<locals>.<lambda>  s+    blT']],C,C,C
 
 
 r   )r   rh   ri   r,   r  r   )rX   r/   valsfr  s        r   test_ops_np_scalarz-TestMultiplicationDivision.test_ops_np_scalar   s    yq!$$
 
 QtWW
b28E??2AAdUlOODDD
bhuoo2AAdUlOODDD
b28E??2AAdUlOODDD
bhuoo2AAedlOODDDDDr   c                   t          j                    }d|_        t          j        d|i          }t          j        ||z   ||d         z   d           t          j        ||z  ||d         z  d           t          j        ||k     ||d         k     d           t          j        ||z  ||d         z  d           d S )Nrb   AFr?  )r,   makeTimeSeriesrg   rj   r  r-   )rX   rb   r  s      r   test_operators_framez/TestMultiplicationDivision.test_operators_frame  s      \3)$$
rBwRW%HHHH
r2vrRW}%HHHH
rBwRW%HHHH
rBwRW%HHHHHHr   c                J   t          j        d          5  t          j        g dg dd          }|d         |d         z  }t	          |d         j        |d         j        z  d	          }t           j        |j        d
d<   t          j	        ||           |d         d
z  }t	          t           j        |j
        d          }t          j	        ||           |                    d          }|d         |d         z  }t	          |d         j        |d         j        z            }t          j	        ||           |                    d          }|d         |d         z  }|d         |d         z  }|                    |          rJ 	 d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r  r   r   rW   rH   r   rT   r)   rg   )r   r   rj   r  r	   r   r   r   r,   r-   r)   r   r*   )rX   prY   r   r$  s        r   test_modulo2z'TestMultiplicationDivision.test_modulo2  s   [X&&& 	. 	.||||||LLMMAwZ!H+-Faj/!H+2DDIVVVH!#HM!A#"68444wZ!^FbfAG'BBBH"68444##AwZ!H+-Faj/!H+2DDEEH"68444##AwZ!H+-FkAgJ.G}}W------)	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   E4FFFc                l   t          j        d          5  t          ddg          }|dz  }t          t           j        t           j        g          }t	          j        ||           d|z  }t          t           j        dg          }t	          j        ||           d d d            d S # 1 swxY w Y   d S )Nr   r   r   rR   rU   )r   r   r	   r   r,   r-   )rX   srY   r   s       r   test_modulo_zero_intz/TestMultiplicationDivision.test_modulo_zero_int4  s    [X&&& 		5 		51vAUFrvrv.//H"68444UFrvsm,,H"68444		5 		5 		5 		5 		5 		5 		5 		5 		5 		5 		5 		5 		5 		5 		5 		5 		5 		5s   BB))B-0B-N)#r   r   r   r=  rB  rD  rx   r   r   r$   mulr   rmulr9  rG  rK  rM  rP  rT  r[  r^  r%   r#   ra  rc  ri  ro  rq  r   r   r   r{  r  r  r  r   r   r   r;  r;  a  s       * * * 1 1 10 0 0 [THL#(H<M#NOO% % PO%	, 	, 	,5 5 51 1 1. . .7 7 7# # # [THL#(#;<<
* 
* =<
*
* 
* 
*	( 	( 	(
( 
( 
(
) 
) 
) [Wrvq#ueRV&LMME E NME
I 
I 
I. . ..5 5 5 5 5r   r;  c                     e Zd Zej                            d eg d ed          d           eg d ed          d           edd	ej	        ej	        g ed
          d          f eg d ed          d           eg d ed
          d           edddej	        g ed
          d          fg          d             Z
ej                            d ej        dg di ed                     ej        dg di ed                     ej        ddd	ej	        ej	        gi ed
                    f ej        dg di ed                     ej        dg di ed
                     ej        ddddej	        gi ed
                    fg          d             Zd Zd Zd Zd Zd Zej                            dd          d             Zej                            dd d d gg d          d              Zej                            dd! d" gd#d$g          d%             Zej                            dd& d' d( gg d          d)             Zd* Zd+S ),TestAdditionSubtractionzfirst, second, expectedrQ   ABCr   r  )rS   rS   rS   ABD      @      @ABCD)rS   rS   rS   rS   rT   r   r]   c                f    t          j        ||z   |           t          j        ||z   |           d S r"   )r,   r-   rX   r   r   r   s       r   test_add_seriesz'TestAdditionSubtraction.test_add_seriesF  s8    " 	uv~x888
v~x88888r   r)   c                f    t          j        ||z   |           t          j        ||z   |           d S r"   )r,   r  r  s       r   test_add_framesz'TestAdditionSubtraction.test_add_framesZ  s8    " 	efnh777
funh77777r   c                   t          t          j        dd                    }d|z   }|                    d           }t          j        ||           t          j        d|i          }d|z   }t          j        d|                    d           i          }t          j        ||           t          j                    }d|_	        |
                                }d                    d	d
g          }t          j        t          |          5  ||z    d d d            n# 1 swxY w Y   t          j        t          |          5  ||z    d d d            d S # 1 swxY w Y   d S )Nr]   rA   foo_c                    d| z   S Nr  r   r   s    r   r   zDTestAdditionSubtraction.test_series_frame_radd_bug.<locals>.<lambda>s  s
    fqj r   ry  c                    d| z   S r  r   r   s    r   r   zDTestAdditionSubtraction.test_series_frame_radd_bug.<locals>.<lambda>x  s
    FQJ r   rb   r   r   zConcatenation operationrr   )r	   r,   rands_arraymapr-   rj   r  r  r~  rg   r   r   rx   ry   rz   )	rX   ra   ry  rY   r   framerb   fix_nowr}   s	            r   test_series_frame_radd_bugz2TestAdditionSubtraction.test_series_frame_radd_bugo  s   bnQ++,,$880011
vx000fd^,,%<2F2F)G)G HII
fh///   ,,..hh*)
 
 ]9C000 	 	bLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9C000 	 	LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   DD#&D#EEEc                   t          t          j                            d                    }||j                                        z
  }||j        z
  }t          j        ||           t          t          j	        dd          t          j	        dd                    }||j                                        z
  }||j        z
  }t          j        ||           d}t          j        t          |          5  ||j                                        z
  }d d d            n# 1 swxY w Y   t          j        t          j                            dd          t          j	        dd                    }t          j        d          |d	<   |d	         |j                                        z
  |d
<   |d	         |j        z
  |d<   t          j        |d         |d
         d           d S )Nr]   rV  rW  r  z.cannot subtract PeriodArray from DatetimeArrayrr   rS   20130102dater   rY   Fr?  )r	   r   rh   ri   r)   	to_seriesr,   r-   rj   rY  rx   ry   rz   	to_periodr  rk   )rX   r  r   rY   r}   r  s         r   test_datetime64_with_indexz2TestAdditionSubtraction.test_datetime64_with_index  s   RY__Q''((,,...sy
vx000 M*a000-
A666
 
 
 ,,...sy
vx000>]9C000 	1 	139..000F	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 \IOOAq!!z1)M)M)M
 
 
 \*--6
Fbh&8&8&:&:::&zBH,8
r(|R
^OOOOOOs   9D""D&)D&c                   |}t           j                            d          }t          |t          j        |j                            }||z   }||z   }|                                D ]c\  }}|                                D ]I\  }	}
||         |	         dz  }t          j        |
          s	|
|k    sJ 3t          j        |          sJ Jd|                                D ]i\  }}|                                D ]O\  }	}
||         |	         ||         z   }t          j        |
          s	|
|k    sJ 9t          j        |          sJ Pjd S )Nr   r  rS   )r   rh   r	   r   r   itemsisnan)rX   float_framer  garbage	colSeriesidSum	seriesSumcolr.   r   valorigVals               r   test_frame_operatorsz,TestAdditionSubtraction.test_frame_operators  si   )""1%%7"(5=*A*ABBB	I%	 ;;== 	- 	-KC"LLNN - -S*S/A-x}} -'>>>>>8G,,,,,,- %??,, 	- 	-KC"LLNN - -S*S/IcN:x}} -'>>>>>8G,,,,,,-	- 	-r   c                t    t          j        |g d          }||z   }|dz  }t          j        ||           d S )N)r   CBr}  )r   rS   )rj   r  r,   r  )rX   r  frame2addedr   s        r   test_frame_operators_col_alignz6TestAdditionSubtraction.test_frame_operators_col_align  sH    k3G3G3GHHHA:
eX.....r   c           	         t          j        dg di          }t          j        ||z   t          j        ddt          j        dgi                     d S )Nrl   )rl   Nrm   aabb)rj   r  r,   r  r   r   )rX   r  s     r    test_frame_operators_none_to_nanz8TestAdditionSubtraction.test_frame_operators_none_to_nan  sR    \3 0 0 0122
b2gr|S4:N4O'P'PQQQQQr   rI   )r  r   c                    t          j        |          t          j        dg|          t          j        dg|          g}|D ]4}||z                       |          sJ t          j        ||z   |           5d S )NrH   r}  )r   rI   r   r)   rI   )rj   r  r*   r,   r  )rX   rI   framesr  s       r   test_frame_operators_empty_likez7TestAdditionSubtraction.test_frame_operators_empty_like  s     Lu%%%L#e444Ls%000

  	/ 	/BG##B'''''!"r'2....	/ 	/r   funcc                    | dz  S rR  r   r   s    r   r   z TestAdditionSubtraction.<lambda>  
    1q5 r   c                    | d d d         S rR  r   r   s    r   r   z TestAdditionSubtraction.<lambda>      AcccF r   c                    dS r\   r   r   s    r   r   z TestAdditionSubtraction.<lambda>      a r   )multiplysliceconstantr   c                    |}t          j                                        d          } ||          }t          |||           d S Nrb   r,   r~  renamer5   )rX   all_arithmetic_functionsr  r0   r.   r/   s         r    test_series_operators_arithmeticz8TestAdditionSubtraction.test_series_operators_arithmetic  sJ     &"$$++D11V65"%%%%%r   c                    | dz   S rF  r   r   s    r   r   z TestAdditionSubtraction.<lambda>  s
    1q5 r   c                    dS r\   r   r   s    r   r   z TestAdditionSubtraction.<lambda>  s    A r   addr  c                    |}t          j                                        d          } ||          }t          |||           d S r  r  )rX   comparison_opr  r0   r.   r/   s         r   test_series_operators_comparez5TestAdditionSubtraction.test_series_operators_compare  sJ     "$$++D11V65"%%%%%r   c                    | dz  S rR  r   r   s    r   r   z TestAdditionSubtraction.<lambda>  r  r   c                    | d d d         S rR  r   r   s    r   r   z TestAdditionSubtraction.<lambda>  r  r   c                    dS r\   r   r   s    r   r   z TestAdditionSubtraction.<lambda>  r  r   c                J   t          j                                        d          } ||          }t          ||          }t	          |t
          j                  r\t          |          t          |          k    r<g }|D ]6}|                    |           |                    t          j
                   7n|}t          j        |          }t          j        d          5  t          |j        t          j        |                    }d d d            n# 1 swxY w Y   t          ||          D ]p\  }}	t          j        t          j        |          |	           |j        |j        k    sJ t          j        |j        |j                            d                      qd S )Nrb   r   r   )r,   r~  r  r   r(   r   Iterabler   appendr   r   asarrayr   r   re  assert_almost_equalrg   r   r)   r+   )
rX   r  r.   r/   resultsother_npr   	expectedsrY   r   s
             r   test_divmodz#TestAdditionSubtraction.test_divmod  s    "$$++D11V''eS\** 	s6{{c%jj/H/H H ( ("""''''( H:h''[X&&& 	D 	Dv}bj.B.BCCI	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D !$GY 7 7 	O 	OFH"2:f#5#5x@@@;&+----!&,0G0G0M0MNNNN	O 	Os   #(DDDc                   t          j                                        d          }|dz  }t          ||          }t	          t
          j        gt          |          z  |j        d          }t	          t
          j	        gt          |          z  |j        d          }t          j
        |d         |           t          j
        |d         |           d S )Nrb   r   r  rR   )r,   r~  r  r   r	   r   r   r   r)   r   r-   )rX   tserr/   rY   exp1exp2s         r   test_series_divmod_zeroz/TestAdditionSubtraction.test_series_divmod_zero  s      ""))$//qe$$rvhT*$*4HHHrvhT*$*4HHH
vay$///
vay$/////r   N)r   r   r   rx   r   r   r	   r  r   r   r  rj   r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r  r  B  s        [! yyyU#>>>yyyU#>>>S"&"&1fCPPP yyyU#>>>|||44<<cBBB1a(V3GGG	
 9 9 9
 [! c999-TT%[[AAAc999-TT%[[AAAcCbfbf#=>dd6llSSS c999-TT%[[AAAc<<<0VEEEcAq!RV#45TT&\\JJJ	
 8 8 8  >P P P>- - -2/ / /R R R [W&899	/ 	/ :9	/ [	**KK8---   
& & 
& [++.UJ4G   & & & [	**KK8---   
O O 
O00 0 0 0 0r   r  c                  ,   e Zd Zej                            deeeg          ej                            de	j
        e	j        e	j        g          d                         Zej                            deeg          ej                            de	j
        e	j        e	j        g          d                         Zej                            deeg          ej                            de	j
        e	j        e	j        g          d                         Zd ZdS )TestUFuncCompatholderrI   c                   |t           u rt           nt          }|t          u r;|t          j        k    rt          j        d| d           t          ddd          }n! |t          j        d|          d          }t          j        |          } |t          j        t          j        d|                    d          }t          j
        ||           d S )Nzdtype z not relevant for RangeIndexr   r]   foorf   rH   )r	   r   r   r   r   rx   skipr   sinr,   rw   )rX   r  rI   r{   r   rY   r   s          r   test_ufunc_compatz!TestUFuncCompat.test_ufunc_compat!  s     &((ffeZ  HUHHHIIIQ...CC&1E222???C3rvbi77788uEEE
)))))r   c                    |g d|d          }|t           u rt           nt          }t          j        |          }|j        dk    rt          ||          sJ t          t          j        t          j        g dt          j                            d          }t          j	        ||          }t          j
        ||           t          j        |d          }|j        dk    rt          ||          sJ t          g dt          j        d          }t          j	        ||          }t          j
        ||           |dz   }|j        dk    rt          ||          sJ t          g d	t          j        d          }t          j	        ||          }t          j
        ||           |dz
  }|j        dk    rt          ||          sJ t          g d
t          j        d          }t          j	        ||          }t          j
        ||           |dz  }|j        dk    rt          ||          sJ t          g dt          j        d          }t          j	        ||          }t          j
        ||           |dz  }|j        dk    rt          ||          sJ t          g dt          j        d          }t          j	        ||          }t          j
        ||           d S )N)rR   rS   rT   r   r]   r   r   r@   rH   rf   r  )g      ?r  g      ?r  g      @)r  r        @g      @g      @)g      rU   r  r  r  r  )r  r  r  r  r  )r	   r   r   sqrtrI   r(   r   rW   r,   r_   rw   divide)rX   r  rI   r   r{   rY   exps          r   test_ufunc_coercionsz$TestUFuncCompat.test_ufunc_coercions1  s    f___E<<<&((ffe|t##
63(?(?###BGBH___BJGGGHHsSSSoc3''
$$$3$$|t##
63(?(?###---RZcJJJoc3''
$$$ s|t##
63(?(?###---RZcJJJoc3''
$$$s|t##
63(?(?###...bjsKKKoc3''
$$$s|t##
63(?(?###---RZcJJJoc3''
$$$s|t##
63(?(?###---RZcJJJoc3''
$$$$$r   c                    |g d|d          }|t           u rt           nt          }t          j        |          }t	          |t
                    sJ t          g dt          j        d          }t          g dt          j        d          }t          j        |d         t          j	        ||                     t          j        |d         t          j	        ||                     d S )NrQ   r   r   )rU   rU   rU   )r  r  r  r   rR   )
r	   r   r   modfr(   tuplerW   r,   rw   r_   )rX   r  rI   rc   r{   rY   r  r  s           r   !test_ufunc_multiple_return_valuesz1TestUFuncCompat.test_ufunc_multiple_return_values]  s     fYYYe#666&((ffe&%(((((___BJSAAA___BJSAAA
q	2?4#=#=>>>
q	2?4#=#=>>>>>r   c                    t          g dg dd          }t          j                            |ddgd           t          g dg dd          }t	          j        ||           d S )	NrV   rQ   r   r  r   rS   rA   )rA   rR      )r	   r   r  atr,   r-   )rX   r  r   s      r   test_ufunc_atzTestUFuncCompat.test_ufunc_atj  so    999IIIC888
		!aVR   +++YYYSAAA
q(+++++r   N)r   r   r   rx   r   r   r   r   r	   r   r   r   rW   r  r  r  r  r   r   r   r  r    s=       [Xz6'BCC[WrxBJ&GHH* * IH DC* [Xv77[WrxBJ&GHH'% '% IH 87'%T [Xv77[WrxBJ&GHH	? 	? IH 87	?, , , , ,r   r  c                  *   e Zd Zej                            ddeg          d             Zej                            ddeg          d             Zej                            de	j
        e	j        e	j        e	j        e	j        g          d             ZdS )TestObjectDtypeEquivalencerI   Nc                x   |}t          g d|          }t          t          j        t          j        t          j        g|          }t          j        ||          }t          j        ||          }t          j        |z   }t          j        ||           |t          j        z   }t          j        ||           d S )NrQ   rH   )r	   r   r   r,   r_   rw   rX   rI   r`   r{   r  r   rY   s          r   test_numarr_with_dtype_add_nanz9TestObjectDtypeEquivalence.test_numarr_with_dtype_add_nant  s    YYYe,,,2626262%@@@oc3''?8S11#
)))rv
)))))r   c                   |}t          g d|          }t          g d|          }t          j        ||          }t          j        ||          }d|z   }t          j        ||           |dz   }t          j        ||           d S )NrQ   rH   )rS   rT   r   rR   )r	   r,   r_   rw   r   s          r   test_numarr_with_dtype_add_intz9TestObjectDtypeEquivalence.test_numarr_with_dtype_add_int  s    YYYe,,,)))5111oc3''?8S11S
)))q
)))))r   r0   c                L   t          t          j                            d          t          j        d          t
                    } |d|          } |d|                    t                              }t          j	        |                    t                    |           d S )NrA   r  r  )
r	   r   rh   ri   r   objectr   r  r,   r-   )rX   r0   r   rY   r   s        r   test_operators_reverse_objectz8TestObjectDtypeEquivalence.test_operators_reverse_object  s     RY__R((	"VLLLC2c3::e,,--
v}}U33X>>>>>r   )r   r   r   rx   r   r   r  r  r  r$   r  subr  r8  r9  r  r   r   r   r  r  q  s         [WtVn55* * 65* [WtVn55* * 65* [	x|X\83CXEVW ? ?	 ? ? ?r   r  c                  R   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                                     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                                     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                         Zej                            d eddd           eddd          g          ej                            dddg          d                         Zej                            dej        ej        ej	        ej
        ej        ej        ej        g          d             Z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z  f eddd          d e eddd          j                  dz  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'             Zej                            d(ej        ej        g          ej                            d)g d*          d+                         Zd,S )-TestNumericArithmeticUnsortedr0   idx1r   rA   rR   rF   rS   ir]   r   idx2c                4   |                     d          }|                     d          } |||          } |t          |                                          t          |                                                    }t          j        ||d           d S Nr  barequivexact)_renamer   to_numpyr,   r   )rX   r0   r
  r  rY   r   s         r   test_binops_indexz/TestNumericArithmeticUnsorted.test_binops_index  s    : ||E""||E""D$2eDMMOO,,eDMMOO.D.DEE
fhg>>>>>>r   r   scalar)r   rR   rS   c                     |||          } |t          |                                          |          }t          j        ||d           d S Nr  r  )r   r  r,   r   )rX   r0   r   r  rY   r   s         r   test_binops_index_scalarz6TestNumericArithmeticUnsorted.test_binops_index_scalar  sR    * C2eCLLNN++V44
fhg>>>>>>r   c                D   |                     d          }|                     d          }t          ||          }t          t          |                                          t          |                                                    }t	          j        ||d           d S r  )r  r%   r   r  r,   r   )rX   r
  r  rY   r   s        r   test_binops_index_powz3TestNumericArithmeticUnsorted.test_binops_index_pow  s    
 ||E""||E""T4uT]]__--uT]]__/E/EFF
fhg>>>>>>r   c                    t          ||          }t          t          |                                          |          }t          j        ||d           d S r  )r%   r   r  r,   r   )rX   r   r  rY   r   s        r   test_binops_index_scalar_powz:TestNumericArithmeticUnsorted.test_binops_index_scalar_pow  sP    
 S&!!uS\\^^,,f55
fhg>>>>>>r   c                   t          d          }t          t          j                            d                    } |t          |          |          } |||          }t          j        ||           t          j        t          j                            dd                    } |t          j        ||g          |          } |||          }t          j	        ||           d S )Nr]   rS   )
r   r	   r   rh   ri   r,   r-   rj   r  r  )rX   r0   r)   r/   r   rY   s         r   $test_arithmetic_with_frame_or_serieszBTestNumericArithmeticUnsorted.test_arithmetic_with_frame_or_series  s     1ryq))**2fUmmU++E5!!
vx000RY__Q22332blE5>22E::E5!!
fh/////r   c                n   t          ddd          }|dz  }t          ddd          }t          j        ||d           |dz   }t          ddd          }t          j        ||d           |dz
  }t          d	d
d          }t          j        ||d           |dz  }t          ddd                              d          }t          j        ||d           |dz  }t          ddd          dz  }t          j        ||d           |dz  }|}t          j        ||d           ||z  }t	          |j        |j        z            }t          j        ||d           t          ddd          }|dz  }t	          |j                  dz  }t          j        t	          |j                  |d           d S )Nr   rA   rS   rF   r   Tr  r  r   r]   rR   rW     )r   r,   r   r   r   r   _values)rX   r   rY   r   s       r   test_numeric_compat2z2TestNumericArithmeticUnsorted.test_numeric_compat2  s    B""qaQ''
fhd;;;;qaQ''
fhd;;;;qb!Q''
fhd;;;;qaA&&--i88
fhd;;;;qaQ''!+
fhd;;;;
fhd;;;; scj011
fhd;;;; D!$$a%%*
eFM22HDIIIIIIr   zidx, div, expectedr"  i  ii7!   C   d   r  2   r   rT   ir!  ii8c                :    t          j        ||z  |d           d S )NTr  rS  )rX   r   rA  r   s       r   test_numeric_compat2_floordivz;TestNumericArithmeticUnsorted.test_numeric_compat2_floordiv8  s&    0 	cSj($??????r   rI   delta)rR   r   r   c                    ||          }t          g d|          }||z   }t          |j        |z   |          }t          j        ||           ||z
  }t          |j        |z
  |          }t          j        ||           t          j        ||z   d|z             t          j        ||z
  d|z             ||z
  j        rJ d S )N)rA      r  rH   rS   r   )r   r   r,   r   empty)rX   rI   r,  r)   rY   r   s         r   test_addsub_arithmeticz4TestNumericArithmeticUnsorted.test_addsub_arithmeticR  s     elll%000-U;;;
fh/// -U;;;
fh///
eemQY777
eemQY777EM((((((r   N)r   r   r   rx   r   r   r$   r  r  r  r9  r8  r   r  r  r  r  r%   rf  r  r$  r   r#  r+  r   r   rW   r0  r   r   r   r	  r	    sw        [LLL	
	 	 [Jq"a  Jq"a  JsB""Jq"b!!		
  [Jq"a  Jq"a  JsB""Jq"b!!		
 ? ?  	 	8? [LLL	
	 	 [Jq"a  Jq"a  JsB""Jq"b!!		
  [Xzzz22? ? 32 	 	(?
 [VjjB&:&:JJq"a<P<P%QRR[VjjB&:&:JJq"a<P<P%QRR? ? SR SR? [UZZ2q%9%9::aQ;O;O$PQQ[X1v..? ? /. RQ? [LLLLL	
 0 0 0'J 'J 'JR [ Z4##Q

1c1(=(=>ZT2&&JJr2q,A,AB
1dA&&jjD!,,455: 
1c1%%jjC++344;
 Z]]B

1.Z1a  !ZZ1a%8%89ZC$$aBA)>)>?ZdA&&::a==9#	
 ,@ @- ,@ [Wrx&<==[Wjjj11) ) 21 >=) ) )r   r	  c                 F   t          j        g dg dd          } t          j        dg dig d          }|                     |d	          }t          j        t          j        d
dd
gdt          j        dt          j        gd          }t          j        ||           d S )NrV   )皙?Nr2  )r}  r  r}  )r2  g333333?g?)r   rS   rT   r  rR   
fill_valuer  rU   )rj   r  	rfloordivr   r   r   r,   r  )r  r/   rY   r   s       r   test_fill_value_inf_maskingr6  f  s    	III,<,<,<==	>	>BL#/yyyAAAE\\%A\..F|vsC%S"&#rv,FGG H &(+++++r   c                     t          j        t          j        d          t          j        ddddgdz  t          j        gdz  t          j        d          dt          d          t          d          	          } t          j        t          j                            dd          t          d
          t          d          	          }t          j	        d           5  | 
                    |d           d d d            d S # 1 swxY w Y   d S )NrA   rR   rS   rT   r   )r}  r  r  r   
abcdefghijr  r  
abcdefghjkABCXr   r3  )rj   r  r   r   r   r  rh   ri   r,   assert_produces_warningrA  )pdf1pdf2s     r   test_dataframe_div_silencedr>  t  s8   <2&!Q1%)&B2		
 	
 <  V	 	 	D <
	Ad<&8&8$v,,  D 
	#D	)	) % %!$$$% % % % % % % % % % % % % % % % % %s   DD
Dzdata, expected_datarV   )r   rS   r   c                >   t          |d          } | |          }| ||          z   } ||          |z   }t          || fv rt          }nt          || fv rt          }nt           } ||d          }	t          j        ||	           t          j        ||	           d S )NInt64rH   )r   r	   r   r,   rw   )
r   box_1d_arrayr	  expected_datar   	containerr1   r2   clsr   s
             r    test_integer_array_add_list_likerE    s     G
$
$
$C##C((I||D)))DL*E, 3444	<!45	5	5s=000HOD(###OE8$$$$$r   c                    t          j        dt          j                            d          it           j                            ddgg dgddg                    } |                                 }|j        	                    d	d
          |_        | |z
  }t          j        dgdz  dg| j                  }t          j        ||           d S )Nrl      rm   rV   levAlevB)namesr  r   rR   rU   )r   r)   )rj   r  r   rh   ri   
MultiIndexfrom_productr   r)   	swaplevelr,   r  )r  df2rY   r   s       r   "test_sub_multiindex_swapped_levelsrO    s    		biooa  !m((3Z#FF+; ) 
 

 
 
B ''))C	##Aq))CI#XF|SEAIuBHEEEH&(+++++r   power)rR   rS   r]   string_size)r   rR   rS   r]   c                2   t          j        t          d| z                      }t          j        |t           j                  }d|z  }||k    }t          j        t          j        |j        t                              }t          j
        ||           d S )NrA   rH    )r   r   r^   rj   r  r   ru   rm  rv   r,   r  )rP  rQ  rl   r2   r1   rY   r   s          r   test_empty_str_comparisonrT    s     	r5y!!""AL"(+++EDd]F|BHU[===>>H&(+++++r   c                    t          g d          } t          g dd          }| |z   }t          g dd          }t          j        ||           | |z
  }t          g dd          }t          j        ||           d S )NrQ   )rS   rR   rT   UInt64rH   )rT   rT   rG  Float64)r   rR   r   )r	   r,   r-   )series1series2rY   r   s       r   test_series_add_sub_with_UInt64rZ    s    YYYGYYYh///GwFiiiy111H68,,,wFjjj	222H68,,,,,r   )8
__future__r   collectionsr   datetimer   decimalr   r$   numpyr   rx   pandasrj   r   r   r	   r
   r   r   pandas._testing_testingr,   pandas.corer   pandas.core.computationr   r   pandas.tests.arithmetic.commonr   r   fixtureto_arrayr   r    r5   _ldtypesrC   __annotations__extendrO   r   r   r;  r  r  r  r	  r6  r>  r   r   rE  rO  rT  rZ  r   r   r   <module>rk     sG   # " " " " " "                                                        7 7 7 7 7 7        vr{3444  54  4 4 4 NMM)z"b"556 6 6 6 6 FFXFFF G G G VVHVVV W W W0 0 0 0 0 0 0 0nz5 z5 z5 z5 z5 z5 z5 z5BX8 X8 X8 X8 X8 X8 X8 X8v^5 ^5 ^5 ^5 ^5 ^5 ^5 ^5BZ0 Z0 Z0 Z0 Z0 Z0 Z0 Z0zO, O, O, O, O, O, O, O,d,? ,? ,? ,? ,? ,? ,? ,?^C) C) C) C) C) C) C) C)L, , ,% % %& ii % %	 %,, , , ))),,55, , 65 -,,- - - - -r   