
    bMh              
         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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         d
d dgddg          d             Z! ej         eeej"        g          d             Z# ej          e e
j$        dd                     e e
j$        dd                     e e
j$        dd                     ed          gd           d             Z% ej         eeej"        e
j        e&gd           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*          Z0 G d+ d,          Z1 G d- d.          Z2 G d/ d0          Z3 G d1 d2          Z4 G d3 d4          Z5d5 Z6d6 Z7ej8        9                    d7g d8g d9fg          d:             Z:d; Z;ej8        9                    d<g d=          ej8        9                    d>g d?          d@                         Z<dA Z=dS )B    )annotations)abc)	timedelta)DecimalN)Index
RangeIndexSeries	TimedeltaTimedeltaIndexarray
date_range)ops)expressions)assert_invalid_addsub_typeassert_invalid_comparisonTi@B numexprpython)autouseparamsidsc              #     K   |                                 5 }|                    t          d| j                   | j        V  d d d            d S # 1 swxY w Y   d S )N_MIN_ELEMENTS)contextsetattrexprparam)requestmonkeypatchms      d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/arithmetic/test_numeric.pyswitch_numexpr_min_elementsr!   !   s      					 !			$777m                 s   +AAA)r   c                    | j         S )zL
    Fixture to test behavior for Index, Series and tm.to_array classes
    r   r   s    r    box_pandas_1d_arrayr%   (   s    
 =       float64dtypeint64uint64c                *    t          |           j        S Ntype__name__xs    r    <lambda>r4   8   s    $q''" r&   )r   r   c                    | j         S )z7
    Several types of numeric-dtypes Index objects
    r#   r$   s    r    numeric_idxr6   0   s     =r&   c                    | j         S r.   )r1   r2   s    r    r4   r4   B   s    qz r&   c                    | j         S )zc
    Fixture to test behavior for Index, Series, tm.to_array, numpy Array and list
    classes
    r#   r$   s    r    box_1d_arrayr9   A   s     =r&   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_zerorB   L   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 r.   )r   rpowoperatorpowr<   abscombine
isinstancer	   indexequals
_with_freqtmassert_series_equal)seriesotheropleftrightcython_or_numpyr   s          r    
compare_oprU   [   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         r)   )r	   .0r*   s     r    
<listcomp>rj   k   s)    FFFEf\\\///FFFr&   c                @    g | ]}|d k    t          g d|          S )r^   re   r)   )r   rh   s     r    rj   rj   l   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   rp   rq   )r<   r(   r	   rM   rN   r   )selfresultrA   s      r    (test_operator_series_comparison_zerorankz?TestNumericComparisons.test_operator_series_comparison_zeroranks   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 Nr'   )r<   r   rangerM   box_expectedr   )ru   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          t          j                            d                              d          d          }t          t          j                            d                              d                    }t          j        d          |_        t          j	        ||z  d||z  z             d S )Nrq   r'   r   namez
2000-01-01rp   )
r	   r<   randomdefault_rngstandard_normalpd	Timestampr   rM   rN   )ru   abs      r    test_compare_invalidz+TestNumericComparisons.test_compare_invalid   s     29((++;;A>>QGGG29((++;;A>>??l++
q1ua1q5k22222r&   c                h   |}|t           ur|nt          j        }t          t          j                            d                              d                    }t          j        ||d          }|	                                5 }|
                    t          dd           |dk    }d d d            n# 1 swxY w Y   t          t          j        dt                              }t          j        ||d          }t          j        ||           |	                                5 }|
                    t          dd           |dk    }d d d            n# 1 swxY w Y   t          j        ||            d	}	t          j        t"          |	
          5  |dk      d d d            d S # 1 swxY w Y   d S )Nrq   3   F	transposer   2   r   r)   z0Invalid comparison between dtype=float64 and strmatch)r   r<   ndarrayr	   r   r   r   rM   r{   r   r   r   zerosboolassert_equalpytestraises	TypeError)
ru   r|   r   boxxboxr   r   rv   rA   msgs
             r    $test_numeric_cmp_string_numexpr_pathz;TestNumericComparisons.test_numeric_cmp_string_numexpr_path   sF   &&ssBJRY**1--==bAABBoc3%888  "" 	 aIIdOR000CZF	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  "(2T22233?8TUCCC
)))  "" 	 aIIdOR000CZF	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  		***@]9C000 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   #B33B7:B7&#EEEF''F+.F+N)r1   
__module____qualname__rw   r   r   r    r&   r    rm   rm   r   sP        
1 
1 
1; ; ;3 3 3    r&   rm   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_clsrR   c                T    t          |           j        t          | j                  z   S r.   r0   r1   strr*   r2   s    r    r4   z7TestNumericArraylikeArithmeticWithDatetimeLike.<lambda>       T!WW%5AG%D r&   r   c                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 )Nro   m8[s]r)   )10s40s90s)r<   r   r   r*   rI   r	   rM   r   )ru   rR   r   rS   rA   rv   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   r2   s    r    r4   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   r)   )1s2s3sz5ufunc '(true_)?divide' cannot use operands with typesr   z3ufunc 'floor_divide' cannot use operands with types)r<   r   r   r*   rI   r	   rM   r   r   r   r   )ru   rR   r   rS   rA   rv   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_tdrp   daysztimedelta64[s]ztimedelta64[ms]c                *    t          |           j        S r.   r/   r2   s    r    r4   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
   )ri   ns     r    rj   z`TestNumericArraylikeArithmeticWithDatetimeLike.test_numeric_arr_mul_tdscalar.<locals>.<listcomp>   s#    "P"P"P9!#4#4#4"P"P"Pr&   m8[us])r   rz   lenrI   r<   timedelta64r*   astyper0   r   rM   r{   r   )
ru   r   r6   r|   r   rJ   rA   r*   rv   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/   r2   s    r    r4   z7TestNumericArraylikeArithmeticWithDatetimeLike.<lambda>  r   r&   r*   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copyr   ztimedelta64[D]ztimedelta64[ns]ztimedelta64[us])
r<   aranger   r+   rM   r{   viewr0   r   r   )
ru   r*   r   r|   r   arr_i8arrr   rA   rv   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                &   |}|dd         }t          ddg          }t          |t          j                  rI|j        }|t          j        d          k     rt          j        d          }|                    |          }nt          |          t          u r|                    d          }net          |t          j	        j
        t          j	        j        t          j	        j        t          j	        j        f          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 )	Nrp   rr   z3 Daysz36 Hoursr   r   $cannot use operands with types dtyper   )r   rI   r<   r   r*   r   r0   r   r   offsetsDayHourMinuteSecondrM   r{   r   r   r   r   )
ru   
three_daysr6   r|   r   rJ   rA   r*   rv   r   s
             r    test_numeric_arr_rdiv_tdscalarzMTestNumericArraylikeArithmeticWithDatetimeLike.test_numeric_arr_rdiv_tdscalar   s   AaC !8Z"899j".11 	0$Erx(((())u--HH***x00HHZ^RZ_bj.?ARS
 
 	0
  w//Hs++?8S11e#
)))4]9C000 	 	J	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   3FF
F
rP      )hourszm8[h]NaTDrr   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)rM   r{   joinr   )ru   r6   rP   r|   r   rR   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)"r1   r   r   r   markparametrizer<   r   r   r	   rc   r   r   r
   to_timedelta64to_pytimedeltar   r   r+   r(   r   r   r   r   r   r   r   r   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&<==* * >= *,  > [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 Nr)   rY   r   r<   naninfr(   rB   rM   assert_index_equalr	   r   r   rN   ru   r@   r6   idxrA   	expected2rv   
ser_compats           r    test_div_zeroz TestDivisionByZero.test_div_zerot  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_zero  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   r(   rM   r   r	   r   r   rN   )ru   r@   r6   r   rA   rv   r   s          r    test_mod_zeroz TestDivisionByZero.test_mod_zero  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 )Nr)   r   rp   )	r   r<   r   r   r(   rB   divmodrM   r   )ru   r@   r6   r   exleftexrightrv   s          r    test_divmod_zeroz#TestDivisionByZero.test_divmod_zero  s    ?rzRRR@
SSS%dF33T""
fQi000
fQi11111r&   rQ   c                ~   |j         t          j        k    rt          j        d|j                     |dz
  }t          t          j         t          j         t          j         t          j        t          j        gt          j                  }t          ||          } |||          }t          j        ||           d S )Nz#Div by negative 0 not relevant for rr   r)   )r*   r<   r,   r   skipr   r   r   r(   rB   rM   r   )ru   r@   r6   rQ   r   rA   rv   s          r    test_div_negative_zeroz)TestDivisionByZero.test_div_negative_zero  s     	))KQk>OQQRRR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rr      r'      firstr   r   r   r   rr   secondignorer?   r(   r*   r   r   rr   r+   float32)r	   r   r<   errstatevaluesr(   r   ilocr*   r   USE_NUMEXPRrM   rN   rK   )	ru   r!   r  any_real_numpy_dtypedtype2r  r
  rA   rv   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 )Nrp   r   rq   )
r	   r   listr<   r(   r   r   rM   rN   r  )ru   r  r  r  rR   rS   rA   rv   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   rp   )r	   r<   r   r   rM   rN   r  )ru   rR   rS   rA   rv   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                              d          }t          dgdz            }|t          |          z  }t          j        ||           t          |          |z  }t          j        ||           t          |          t          |          z  }t          j        ||           d S )Nr   r'   rq   rs   )r<   r   r   r   r   r	   rM   rN   )ru   
zero_arraydatarA   rv   s        r    test_rdiv_zero_compatz(TestDivisionByZero.test_rdiv_zero_compat  s    XqcAg&&
y$$Q''77::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   rp   r  r   r   r	   r<   r   r   rM   rN   ru   serrA   rv   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  r   rs   r   )r	   r<   r   rM   rN   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$  )ru   r&  rv   rA   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  rp   )r   	DataFramer	   r<   r   rM   assert_frame_equal)ru   dfrv   r  r
  rA   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.  rp   r  r  floatrJ   columns)r   r/  r	   r<   r   r  r  r   rJ   r6  rM   r0  )ru   r1  r  r
  rA   r   rv   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   r5  rr   rp   r  r  r(   )r   r/  r<   r   rJ   r6  r   r  rM   r0  r  r  r   ru   r1  rv   rA   r   result2s         r    test_df_div_zero_intz'TestDivisionByZero.test_df_div_zero_int3  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 Nrq   )ra   r'   r   r   r/  r<   r   r   r   fillnarK   ru   r1  r&  resres2s        r    (test_df_div_zero_series_does_not_commutez;TestDivisionByZero.test_df_div_zero_series_does_not_commuteB  s~    \")//22BB7KKLL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   r(   r   Fr   r+   r)   )r   r/  r	   r   r<   r   rM   r0  )ru   using_array_managerr1  r  r
  rA   rv   s          r    test_df_mod_zero_dfz&TestDivisionByZero.test_df_mod_zero_dfM  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-  rE  r(   r)   r   r  r  )rJ   r6  r*   rr   rp   )r   r/  r	   r<   r   r  r  rJ   r6  r  rM   r0  )ru   r1  r  r
  rA   r   r:  s          r    test_df_mod_zero_arrayz)TestDivisionByZero.test_df_mod_zero_arraye  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   r5  r  r  r(   )r   r/  r<   r   rJ   r6  rM   r0  r  r  r   r9  s         r    test_df_mod_zero_intz'TestDivisionByZero.test_df_mod_zero_intv  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_commute  s     \")//22BB7KKLLeBhCx::a==''A7777777r&   N)!r1   r   r   r   r   r   r   r   r   r   rE   truedivfloordivr  r<   r+   r(   r,   r  r  r  r   r'  r)  r+  r2  r7  r;  rC  rG  rI  rK  rM  r   r&   r    r   r   s  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'   rq   )r	   r   rM   r{   r   )ru   r|   r   r&  rA   rv   s         r    test_divide_decimalz.TestMultiplicationDivision.test_divide_decimal  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 )
Nrp   r   r  r   g{Gzg{Gzr
  Fcheck_names)r	   r<   r   divrM   rN   )ru   r  r
  rA   rv   s        r    test_div_equiv_binopz/TestMultiplicationDivision.test_div_equiv_binop  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 )Nrp   r(   rq   )r   rM   r   r   r  )ru   r6   r   rv   rA   s        r    test_div_intz'TestMultiplicationDivision.test_div_int  si    q::i((
fh///qa((
fh/////r&   rQ   c                v    |}t          j        ||          } ||d          }t          j        ||           d S Nrp   )rM   r{   r   )ru   rQ   r6   r|   r   rv   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+   r)   r,   )r<   r   rM   r   r*   r,   r   )ru   r6   r   didxrv   	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'   r)   )r*   r<   r,   r	   r   rM   rN   )ru   r6   r   r_  r`  rv   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'   r(   r)   g?)r<   r   r	   rM   rN   )ru   r6   r   rng5rv   rA   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 Nrq   rM   r   )ru   r6   r   rv   s       r    test_mul_indexz)TestMultiplicationDivision.test_mul_index  s-    s
fc1f-----r&   c                    |}d}t          j        t          |          5  |t          dd          z   d d d            d S # 1 swxY w Y   d S )Nz,cannot perform __rmul__ with this index typer   20130101r'   periods)r   r   r   r   ru   r6   r   r   s       r    test_mul_datelike_raisesz3TestMultiplicationDivision.test_mul_datelike_raises  s    <]9C000 	4 	4*Z33333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   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 togetherr   r   rr   rp   rq   )r   r   
ValueErrorr<   r   ro  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  rM   r{   r   )ru   rQ   r6   r|   r   r   rA   rv   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 rh  ru  )ru   r6   r|   r   r   rA   rv   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 )Nrq   r  r  )r   r<   r  r  r   ziprM   r   )	ru   r6   r   rv   rW  modrA   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 Nr)   rq   r  r  )r<   onesr  shaper*   r   r  r   rz  rM   r   
ru   r6   r   rP   rv   rW  r{  rA   r|  r}  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 r  )r<   r  r  r  r*   r   r	   r  rz  rM   rN   r  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rP      igX9v@gQ	c                6   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 )Nrq   )r'   rr   c                N    t          j        | t          d          g d          S )NABCDE)jimjoejolier5  )r   r/  r  r2   s    r    r4   z?TestMultiplicationDivision.test_ops_np_scalar.<locals>.<lambda>0  s+    blT']],C,C,C
 
 
 r&   )r<   r   r   r   rM   r0  r   )ru   rP   valsfr1  s        r    test_ops_np_scalarz-TestMultiplicationDivision.test_ops_np_scalar-  s    y$$Q''77??
 
 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          t          j        dt          j                  t	          dd          d          }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 )
Nra   r)   
2020-01-01rm  r~   rJ   r   AFrU  )
r	   r<   r   r(   r   r   r   r/  rM   rN   )ru   r~   r1  s      r    test_operators_framez/TestMultiplicationDivision.test_operators_frame<  s    Ib
+++\2666
 
 

 \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
  r(   r)   r   rr   r  )r<   r  r   r/  r	   r  r   r  rM   rN   rJ   r   rK   )ru   prv   rA   r:  s        r    test_modulo2z'TestMultiplicationDivision.test_modulo2N  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   rp   rs   )r<   r  r	   r   rM   rN   )ru   srv   rA   s       r    test_modulo_zero_intz/TestMultiplicationDivision.test_modulo_zero_inte  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)#r1   r   r   rS  rX  rZ  r   r   r   rE   mulr   rmulrO  r]  ra  rc  rf  rj  rp  rs  rF   rD   rv  rx  r~  r  r  r<   r   r   r  r  r  r  r   r&   r    rQ  rQ    s       * * * 1 1 10 0 0 [THL#(H<M#NOO% % PO%	, 	, 	,5 5 51 1 1. . .4 4 4# # # [THL#(#;<<
* 
* =<
*
* 
* 
*	( 	( 	(
( 
( 
(
) 
) 
) [Wrvq#ueRV&LMME E NMEI I I$. . ..5 5 5 5 5r&   rQ  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, expectedro   ABCr3   r  )rq   rq   rq   ABD      @      @ABCD)rq   rq   rq   rq   rr   r  r'   c                f    t          j        ||z   |           t          j        ||z   |           d S r.   )rM   rN   ru   r  r
  rA   s       r    test_add_seriesz'TestAdditionSubtraction.test_add_seriesw  s8    " 	uv~x888
v~x88888r&   rJ   c                f    t          j        ||z   |           t          j        ||z   |           d S r.   )rM   r0  r  s       r    test_add_framesz'TestAdditionSubtraction.test_add_frames  s8    " 	efnh777
funh77777r&   c                   t          d t          d          D                       }d|z   }|                    d           }t          j        ||           t          j        d|i          }d|z   }t          j        d|                    d           i          }t          j        ||           t          t          j	        dt          j
                  t          d	d
          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 )Nc                ,    g | ]}t          |          S r   )r   )ri   is     r    rj   zFTestAdditionSubtraction.test_series_frame_radd_bug.<locals>.<listcomp>  s    000!s1vv000r&   r'   foo_c                    d| z   S Nr  r   r2   s    r    r4   zDTestAdditionSubtraction.test_series_frame_radd_bug.<locals>.<lambda>  s
    fqj r&   r  c                    d| z   S r  r   r2   s    r    r4   zDTestAdditionSubtraction.test_series_frame_radd_bug.<locals>.<lambda>  s
    FQJ r&   ra   r)   r  rm  r~   r  r   r   zConcatenation operationr   )r	   rz   maprM   rN   r   r/  r0  r<   r   r(   r   r   r   r   r   r   )	ru   r}   r  rv   rA   framer~   fix_nowr   s	            r    test_series_frame_radd_bugz2TestAdditionSubtraction.test_series_frame_radd_bug  s   00uQxx00011$880011
vx000fd^,,%<2F2F)G)G HII
fh///Ib
+++\2666
 
 
 ,,..hh*)
 
 ]9C000 	 	bLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9C000 	 	LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   6EEE.FFFc                   t          t          j                            d                              d                    }||j                                        z
  }||j        z
  }t          j        ||           t          t          dd          t          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          dd                    }t          j        d	          |d
<   |d
         |j                                        z
  |d<   |d
         |j        z
  |d<   t          j        |d         |d         d           d S )Nrq   r'   rl  rm  r  z.cannot subtract PeriodArray from DatetimeArrayr   )r'   rq   20130102daterA   rv   FrU  )r	   r<   r   r   r   rJ   	to_seriesrM   rN   r   r   r   r   	to_periodr   r/  r   )ru   r&  rA   rv   r   r1  s         r    test_datetime64_with_indexz2TestAdditionSubtraction.test_datetime64_with_index  s   RY**1--==a@@AA,,...sy
vx000 z1---Z333
 
 
 ,,...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 \I!!!$$44V<<Z333
 
 
 \*--6
Fbh&8&8&:&:::&zBH,8
r(|R
^OOOOOOs   D++D/2D/c                   |}t           j                            d                              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 )Nrq   r  r  )r<   r   r   r	   r   r6  itemsisnan)ru   float_framer  garbage	colSeriesidSum	seriesSumcolrO   r   valorigVals               r    test_frame_operatorsz,TestAdditionSubtraction.test_frame_operators  sw   )''**11!44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  )r6  rq   )r   r/  rM   r0  )ru   r  frame2addedrA   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 )Nr   )r   Nr   aabb)r   r/  rM   r0  r<   r   )ru   r1  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&   r*   )r4  r+   c                    t          j        |          t          j        dg|          t          j        dg|          g}|D ]4}||z                       |          sJ t          j        ||z   |           5d S )Nr)   r  )r6  r*   r   rJ   r*   )r   r/  rK   rM   r0  )ru   r*   framesr1  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 rh  r   r2   s    r    r4   z TestAdditionSubtraction.<lambda>  
    1q5 r&   c                    | d d d         S rh  r   r2   s    r    r4   z TestAdditionSubtraction.<lambda>      AcccF r&   c                    dS ry   r   r2   s    r    r4   z TestAdditionSubtraction.<lambda>      a r&   )multiplysliceconstantr   c                    |}t          t          j        dt          j                  t	          dd          d          } ||          }t          |||           d S Nra   r)   r  rm  r~   r  r	   r<   r   r(   r   rU   )ru   all_arithmetic_functionsr  rQ   rO   rP   s         r     test_series_operators_arithmeticz8TestAdditionSubtraction.test_series_operators_arithmetic  sk     &Ib
+++\2666
 
 

 V65"%%%%%r&   c                    | dz   S r\  r   r2   s    r    r4   z TestAdditionSubtraction.<lambda>!  s
    1q5 r&   c                    dS ry   r   r2   s    r    r4   z TestAdditionSubtraction.<lambda>!  s    A r&   addr  c                    |}t          t          j        dt          j                  t	          dd          d          } ||          }t          |||           d S r  r  )ru   comparison_opr  rQ   rO   rP   s         r    test_series_operators_comparez5TestAdditionSubtraction.test_series_operators_compare   sk     Ib
+++\2666
 
 

 V65"%%%%%r&   c                    | dz  S rh  r   r2   s    r    r4   z TestAdditionSubtraction.<lambda>/  r  r&   c                    | d d d         S rh  r   r2   s    r    r4   z TestAdditionSubtraction.<lambda>/  r  r&   c                    dS ry   r   r2   s    r    r4   z TestAdditionSubtraction.<lambda>/  r  r&   c                |   t          t          j        dt          j                  t	          dd          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 )	Nra   r)   r  rm  r~   r  r  r  )r	   r<   r   r(   r   r   rI   r   Iterabler   appendr   asarrayr  r  rz  rM   assert_almost_equalr   r   rJ   rL   )
ru   r  rO   rP   resultsother_npr   	expectedsrv   rA   s
             r    test_divmodz#TestAdditionSubtraction.test_divmod-  s    Ib
+++\2666
 
 

 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   <(D00D47D4c                   t          t          j        ddt          j                  t	          dd          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 )
Nrp      r)   r  ra   rm  r~   r  r   )r	   r<   r   r(   r   r   r   r   rJ   r   rM   rN   )ru   tserrP   rv   exp1exp2s         r    test_series_divmod_zeroz/TestAdditionSubtraction.test_series_divmod_zeroN  s     Ia2:...\2666
 
 

 qe$$rvhT*$*4HHHrvhT*$*4HHH
vay$///
vay$/////r&   N)r1   r   r   r   r   r   r	   r  r<   r   r  r   r/  r  r  r  r  r  r  r  r  r  r  r  r   r&   r    r  r  s  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  DP P P@- - -2/ / /R R R [W&899	/ 	/ :9	/ [	**KK8---   
& & 
& [++.UJ4G   & & & [	**KK8---   
O O 
O8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holderr*   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'   foor   r)   )r	   r   r   r<   r+   r   r  r   sinrM   r   )ru   r  r*   r   r   rv   rA   s          r    test_ufunc_compatz!TestUFuncCompat.test_ufunc_compatf  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)rp   rq   rr   r  r'   r3   r  r`   r)   r   r  )g      ?r  g      ?r  g      @)r  r        @g      @g      @)g      rs   r  r  r  r  )r  r  r  r  r  )r	   r   r<   sqrtr*   rI   r   r(   rM   r{   r   divide)ru   r  r*   r   r   rv   exps          r    test_ufunc_coercionsz$TestUFuncCompat.test_ufunc_coercionsv  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 )Nro   r3   r  )rs   rs   rs   )r  r  r  r   rp   )
r	   r   r<   modfrI   tupler(   rM   r   r{   )ru   r  r*   r   r   rv   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 )	Nrt   ro   r3   r  r   rq   ra   )ra   rp      )r	   r<   r  atrM   rN   )ru   r  rA   s      r    test_ufunc_atzTestUFuncCompat.test_ufunc_at  so    999IIIC888
		!aVR   +++YYYSAAA
q(+++++r&   N)r1   r   r   r   r   r   r   r   r	   r<   r+   r,   r(   r  r	  r  r  r   r&   r    r  r  d  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 )TestObjectDtypeEquivalencer*   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 )Nro   r)   )r	   r<   r   rM   r{   r   ru   r*   r|   r   r&  rA   rv   s          r    test_numarr_with_dtype_add_nanz9TestObjectDtypeEquivalence.test_numarr_with_dtype_add_nan  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 )Nro   r)   )rq   rr   r  rp   )r	   rM   r{   r   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&   rQ   c                r   t          t          j                            d                              d          t          j        d          t                    } |d|          } |d|                    t                              }t          j
        |                    t                    |           d S )Nrq   ra   r  r  )r	   r<   r   r   r   r   objectr   r4  rM   rN   )ru   rQ   r   rv   rA   s        r    test_operators_reverse_objectz8TestObjectDtypeEquivalence.test_operators_reverse_object  s     I!!!$$44R88)B--
 
 
 C2c3::e,,--
v}}U33X>>>>>r&   )r1   r   r   r   r   r   r  r  r  rE   r  subr  rN  rO  r  r   r&   r    r  r    s         [WtVn55* * 65* [WtVn55* * 65* [	x|X\83CXEVW 
? 
?	 
? 
? 
?r&   r  c                  X   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, Zd-S ).TestNumericArithmeticUnsortedrQ   idx1r   ra   rp   rf   rq   ir'   r;   idx2c                4   |                     d          }|                     d          } |||          } |t          |                                          t          |                                                    }t          j        ||d           d S Nr  barequivexact)_renamer   to_numpyrM   r   )ru   rQ   r  r!  rv   rA   s         r    test_binops_indexz/TestNumericArithmeticUnsorted.test_binops_index  s    : ||E""||E""D$2eDMMOO,,eDMMOO.D.DEE
fhg>>>>>>r&   r   scalar)r;   rp   rq   c                     |||          } |t          |                                          |          }t          j        ||d           d S Nr%  r&  )r   r)  rM   r   )ru   rQ   r   r+  rv   rA   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(  rF   r   r)  rM   r   )ru   r  r!  rv   rA   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-  )rF   r   r)  rM   r   )ru   r   r+  rv   rA   s        r    test_binops_index_scalar_powz:TestNumericArithmeticUnsorted.test_binops_index_scalar_pow3  sP    
 S&!!uS\\^^,,f55
fhg>>>>>>r&   c                    t          d          }t          t          j                            d                              d                    } |t          |          |          } |||          }t          j        ||           t          j	        t          j                            d                              d                    } |t          j	        ||g          |          } |||          }t          j
        ||           d S )Nr'   rq   )rq   r'   )r   r	   r<   r   r   r   rM   rN   r   r/  r0  )ru   rQ   rJ   rP   rA   rv   s         r    $test_arithmetic_with_frame_or_serieszBTestNumericArithmeticUnsorted.test_arithmetic_with_frame_or_series=  s     1ry,,Q//??BBCC2fUmmU++E5!!
vx000RY22155EEfMMNN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   rq   rf   r  Tr&  r  r  r'   rp   r(     )r   rM   r   r   r   r  _values)ru   r   rv   rA   s       r    test_numeric_compat2z2TestNumericArithmeticUnsorted.test_numeric_compat2X  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, expectedr7  i  ii7!   C   d   r  r   r  rr   ir6  ii8c                :    t          j        ||z  |d           d S )NTr&  ri  )ru   r   rW  rA   s       r    test_numeric_compat2_floordivz;TestNumericArithmeticUnsorted.test_numeric_compat2_floordiv  s&    0 	cSj($??????r&   r*   delta)rp   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  r  r)   rq   r   )r   r  rM   r   empty)ru   r*   r@  rJ   rv   rA   s         r    test_addsub_arithmeticz4TestNumericArithmeticUnsorted.test_addsub_arithmetic  s     elll%000-U;;;
fh/// -U;;;
fh///
eemQY777
eemQY777EM((((((r&   c                \   t          t          j        t          j        t          j        g          }t          g d          }t          g d          }t          j        ||          }t          j        ||          }t          j        ||          }||z  }t          j        ||           d S )N)r   r   r   )r  r  r  )r   r<   r   rM   r{   r   )ru   r|   rR   rS   rA   rv   s         r    test_pow_nan_with_zeroz4TestNumericArithmeticUnsorted.test_pow_nan_with_zero  s    bfbfbf-..iii  ))t^44~66?8^<<u
)))))r&   N)r1   r   r   r   r   r   rE   r  r  r  rO  rN  r   r*  r.  r0  r2  rF   r{  r4  r9  r   r8  r?  r<   r+   r(   rC  rE  r   r&   r    r  r    s        [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 )Nrt   )皙?NrG  )r  r  r  )rG  g333333?g?)r   rq   rr   r  rp   
fill_valuer  rs   )r   r/  	rfloordivr<   r   r   rM   r0  )r1  rP   rv   rA   s       r    test_fill_value_inf_maskingrK    s    	III,<,<,<==	>	>BL#/yyyAAAE\\%A\..F|vsC%S"&#rv,FGG H &(+++++r&   c                 D   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   rp   rq   rr   r  )r  r  r  r   
abcdefghijr  r5  )ra   r  
abcdefghjkABCXr   rH  )r   r/  r<   r   r   r  r   r   r   rM   assert_produces_warningrW  )pdf1pdf2s     r    test_dataframe_div_silencedrS    sH   <2&!Q1%)&B2		
 	
 <  V	 	 	D <
	a  0099<  V  D
 
	#D	)	) % %!$$$% % % % % % % % % % % % % % % % % %s   0DDDzdata, expected_datart   )r   rq   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Int64r)   )r   r	   r   rM   r   )
r%   r9   r  expected_datar   	containerrR   rS   clsrA   s
             r     test_integer_array_add_list_likerY    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                              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 )Nr   rq      r   rt   levAlevB)namesr  r   rp   rs   )r6  rJ   )r   r/  r<   r   r   r   
MultiIndexfrom_productr   rJ   	swaplevelrM   r0  )r1  df2rv   rA   s       r    "test_sub_multiindex_swapped_levelsrc    s    		bi##A&&66q99:m((3Z#FF+; ) 
 

 
 
B ''))C	##Aq))CI#XF|SEAIuBHEEEH&(+++++r&   power)rp   rq   r'   string_size)r   rp   rq   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   r)    )r<   r   rz   r   r/  r+   r   r  r   rM   r0  )rd  re  r   rS   rR   rv   rA   s          r    test_empty_str_comparisonrh    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 )Nro   )rq   rp   rr   UInt64r)   )rr   rr   r[  Float64)r;   rp   r   )r	   rM   rN   )series1series2rv   rA   s       r    test_series_add_sub_with_UInt64rn    s    YYYGYYYh///GwFiiiy111H68,,,wFjjj	222H68,,,,,r&   )>
__future__r   collectionsr   datetimer   decimalr   rE   numpyr<   r   pandasr   r   r   r	   r
   r   r   r   pandas._testing_testingrM   pandas.corer   pandas.core.computationr   r   pandas.tests.arithmetic.commonr   r   fixturer!   to_arrayr%   r   r6   r  r9   rB   rU   _ldtypesrc   __annotations__extendrm   r   r   rQ  r  r  r  r  rK  rS  r   r   rY  rc  rh  rn  r   r&   r    <module>r     sx   # " " " " " "                                                          7 7 7 7 7 7        a\	87LMMM  NM vr{3444  54  	ibi+++,,ibi)))**ibi***++
1 	#"	 	 	 	 	 62;$7=Q=Q      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3 3 3 3 3 3 3 3t@5 @5 @5 @5 @5 @5 @5 @5NX8 X8 X8 X8 X8 X8 X8 X8vb5 b5 b5 b5 b5 b5 b5 b5Jn0 n0 n0 n0 n0 n0 n0 n0bO, O, O, O, O, O, O, O,d0? 0? 0? 0? 0? 0? 0? 0?fO* O* O* O* O* O* O* O*d, , ,% % %* ii % %	 %,, , , ))),,55, , 65 -,,- - - - -r&   