
    .i!                        d dl Z d dlZd dlZd dlZd dlmZ d dl	m
Z
 ej                  j                  ddg dfdg dfdg d	fd
g dfdg dfdg dfgg d      d        Zej                  j                  dg d      d        Zd Zd Zd Zej                  j                  dd dg      d        Zd Zd Zej                  j                  dg dg d g dfg d!g d"g d!fg d#g d$g d%fg      d&        Zd' Zy)(    N)FloatingArrayzopname, expadd)皙?皙@NNg      @mul)皙?g?NNg      @sub)g?g?NNg      @truediv)      $@r   NNr   floordiv)      "@r   NNr   mod)r   皙?NN        )r   r   r	   divr   r   )idsc                     t        j                  g d|       }t        j                  g d|       }t        t        |      } |||      }t        j                  ||       }t	        j
                  ||       y )N)      ?       @Ng      @g      @dtype)r   r   g333333?N      ?)pdarraygetattroperatortmassert_extension_array_equal)r   opnameexpabopresultexpecteds           j/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/arrays/floating/test_arithmetic.pytest_array_opr'      s]     	+59A
+59A	6	"B1XFxx5)H##FH5    zzero, negative))r   F)r   F)g       Tc                    t        j                  g d|       }||z  }t        j                  g d      }|rd|ddg<   t        t        j                  t        j                  t        j
                  t        j
                   t        j                  g| j                        |      }|r|dz  }t        j                  ||       y )N)r      Nr   )FFFTTr   r+   )	r   r   npr   naninfnumpy_dtyper   r   )r   zeronegativeusing_nan_is_nar!   r$   exp_maskr%   s           r&   test_divide_by_zeror4   %   s     	!/AXFxx34H !R
"&&"&&266'2662%:K:KLH B##FH5r(   c           	      v   t        j                  g d|       }|dz  }t        j                  g d|       }t        j                  ||       |dz  }t        j                  g d|       }t        j                  ||       |t         j                  z  }t        j                  g d|       }t        j                  ||       |t
        j                  z  }|rt        j                  g d|       }nst        t        j                  t
        j                  t
        j                  dt
        j                  t
        j                  g| j                        |j                        }t        j                  ||       |dd  }d|z  }t        j                  g d|       }t        j                  ||       d|z  }t        j                  g d	|       }t        j                  ||       t         j                  |z  }t        j                  g d
|       }t        j                  ||       t
        j                  |z  }|sdt        t        j                  dt
        j                  t
        j                  t
        j                  g| j                        |j                        }t        j                  ||       y )N)r+   r   r*   N   r   r   )r*   r*   r*   r*   r*   r*   )NNr*   NN)mask)r*   r   Nr   )r*   r*   r*   r*   )r*   NNN)
r   r   r   r   NAr,   r-   r   r/   _mask)r   r2   r!   r$   r%   s        r&   test_pow_scalarr:   7   s   
$E2ATFxxu5H##FH5TFxx+59H##FH5XFxx35AH##FH5YF887uE !HHbffbffa8@Q@QR
 ##FH5 	
!"ATFxxu5H##FH5TFxxE2H##FH5UUAXFxx-U;H##FH5VVQYF HHa08I8IJQRQXQX
 ##FH5r(   c                     t        j                  g d|       }t        j                  g d|       }||z  }t        j                  g d|       }t        j                  ||       y )N)	r   r   r   r*   r*   r*   NNNr   )	r   r*   Nr   r*   Nr   r*   N)	r*   r   Nr*   r*   r*   r*   NN)r   r   r   r   )r   r!   r"   r$   r%   s        r&   test_pow_arrayr<   h   sN    
5UCA
5UCATFxx<EJH##FH5r(   c                     t        j                  t         j                  t         j                  gd      } t        j                  ddg      | z  }t        j                  dt         j                  gd      }t	        j
                  ||       y )NFloat64r   r   r   )r   r   r8   r,   r   r   )arrr$   r%   s      r&   test_rpow_one_to_nar@   p   s_     ((BEE255>
3CXXsCj!S(FxxbeeI6H##FH5r(   otherr   c                     t        j                  g dd      }|t        j                  |       z   }|| z   }t        j                  ||       y )N)r*   Nr6   r>   r   )r   r   r,   r   assert_equal)rA   r?   r$   r%   s       r&   test_arith_zero_dim_ndarrayrD   y   s;    
((<y
1C288E?"FU{HOOFH%r(   c                 Z   |}t        j                  |       }t        ||      }dj                  g d      }t	        j
                  t        |      5   |d       d d d        t	        j
                  t        |      5   |t        j                  d             d d d        t	        j
                  t        |      5   |t        j                  d|j                               d d d        dj                  ddd	d
ddddt        j                   ddddddg      }t	        j
                  t        |      5   |t        j                  t        j                  dt        |      d                   d d d        y # 1 sw Y   #xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)N|)(can only perform ops with numeric valuesz.FloatingArray cannot perform the operation modunsupported operand type4not all arguments converted during string formatting2can't multiply sequence by non-int of type 'float'5ufunc 'subtract' cannot use operands with types dtypez1can only concatenate str \(not \"float\"\) to strzFufunc '.*' not supported for the input types, and the inputs could notz?ufunc '.*' did not contain a loop with signature matching typesz;Concatenation operation is not implemented for NumPy arrayshas no kernelnot implementednot supported for dtypez&Can only string multiply by an integermatchfoo20180101)indexrG   z5cannot perform .* with this index type: DatetimeArrayz`Addition/subtraction of integers and integer-arrays with DatetimeArray is no longer supported. *rH   rI   rJ   rK   z3ufunc 'add' cannot use operands with types dtype\('zM8\[ns\]'\)z@ufunc 'add' cannot use operands with types dtype\('float\d{2}'\)z*cannot subtract DatetimeArray from ndarrayrL   rM   rN   ns)periodsunit)r   Seriesr   joinpytestraises	TypeError	TimestamprS   r   ENDIAN
date_rangelen)dataall_arithmetic_operatorsr#   sopsmsgs         r&   test_error_invalid_valuesre      st   	!B
		$A
!R.C ((	
C$ 
y	, E
	y	, &BLL$%& 
y	, -BIIe177+,- ((6C;&B@CII;k3 P8%#	
C* 
y	, MBIIbmmJATJKLM M= & &- -0M Ms0   	E<>F	=(F8;F!<F	FF!F*c                     t        j                  t        j                  ddt         j                  gd      t        j                  dt         j                  dgd      t	        j                  g dd      d	      } | j
                  | j                  z   }t        j                  dd
t         j                  gd      }t        j                  ||       | j
                  | j                  z   dz  dk(  }t        j                  g dd      }t        j                  ||       | j
                  | j                  z   }t        j                  dt         j                  t         j                  gd      }t        j                  ||       y )Nr*   r6   r>   r      Float32)r*   r6   rg   float64)ABC      )FTNboolean)r   	DataFramer   r8   r,   rj   rl   rW   r   assert_series_equalrk   )dfr$   r%   s      r&   test_cross_type_arithmeticrs      s   	1a-y91beeQ-y9)95	

B TTBDD[Fyy!Qi8H68,ddRTTkQ"$Fyy,I>H68,TTBDD[Fyy!RUUBEE*)<H68,r(   zsource, neg_target, abs_target)r   r   gffffff
@)皙皙gffffff
)r   r   N)rt   ru   N)rt   r   r   )r   r   rt   )r   r   r   c                 h   | }t        j                  ||      }| |t        |      }}}t        j                  ||      }t        j                  ||      }t        j                  ||       t        j                  ||       t        j
                  ||      rJ t        j                  ||       y )Nr   )r   r   absr   r   shares_memory)	float_ea_dtypesource
neg_target
abs_targetr   r?   
neg_result
pos_result
abs_results	            r&   test_unary_float_operatorsr      s     E
((6
'C*-tSXJ
J*E2J*E2J##J
;##J4
C000##J
;r(   c                    t        j                  g d|       }t        j                  g d|       }t        j                  t        d      5  ||z   d d d        t        j                  t        d      5  ||z   d d d        t        j                  t        d      5  ||z   d d d        y # 1 sw Y   \xY w# 1 sw Y   ?xY w# 1 sw Y   y xY w)N)r*   Nrg   rm   r   )Nrg      rm   rH   rO   )r   r   rY   rZ   r[   )r   leftrights      r&   test_bitwiser      s    88O51DHH_E2E	y(B	C u	y(B	C u	y(B	C u 	   s$   B/7B; C/B8;CC)r   numpyr,   rY   pandasr   pandas._testing_testingr   pandas.core.arraysr   markparametrizer'   r4   r:   r<   r@   rD   re   rs   r   r    r(   r&   <module>r      sA        , 	+,	+,	+,	23	12	+, 	8  66 )+ST6 U6".6b66 1c(+& ,&7M|-, $	,o>	-/?@	+_=<<	r(   