
    gi9                        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c m	Z
 d dlZd dlmZ d dlmZ  ej$                  ej&                  ej(                  g      d        Z ej$                  ddgdd	g
      d        Zej$                  d        Zej0                  j3                  dej4                  ej6                  ej8                  g      d        Zej0                  j3                  dddgddg      d        Zej0                  j3                  dddgddg      d        Zej0                  j3                  dddgddg      ej0                  j3                  dddgddg      d               Z ej0                  j3                  dddg      d        Z!ej0                  j3                  dejD                  g      ej0                  j3                  dddg      ej0                  jG                  d      d                      Z$d Z%d Z&d Z' ej$                   ejP                  g dejR                          ejP                  g dd!        ejP                  g dd"        ejP                  g d#d$        ejT                  g d%       ejT                  g d%      jW                  d&       ejT                  g d%      jY                  d'(       ejZ                  g d)       ej\                   ej^                  d d*       ej^                  d+d,       ej^                  d*d+      g      g	d- 
      d.        Z0 G d/ d0      Z1ej0                  j3                  d1e2ee3g      d2        Z4d3 Z5d4 Z6d5 Z7d6 Z8e
jr                  d7        Z:y)8    )dequeN)SparseArray)paramsc                     | j                   S Nparamrequests    [/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/pandas/tests/series/test_ufunc.pyufuncr      s     ==    TFsparsedense)r   idsc                     | j                   S r   r   r
   s    r   r   r      s    ==r   c                      t         j                  j                  d      j                  dddd      } t         j                  j                  d      j                  dddd      }d| ddd<   d|ddd	<   | |fS )
zO
    A pair of random, length-100 integer-dtype arrays, that are mostly 0.
       r   
   d   int64dtypeN      )nprandomdefault_rngintegers)a1a2s     r   arrays_for_binary_ufuncr"      sw    
 
		q	!	*	*1b#W	*	EB			q	!	*	*1b#W	*	EBBssGBssGr6Mr   r   c                    t         j                  j                  d      j                  dddd      }d|d d d<   |r!t	        |t        j                  dd            }t        t        j                  d d       }d}t        j                  |||      } | |      }t        j                   | |      ||      }t        j                  ||       y )Nr   r   r   r   r   nameindexr$   )r   r   r   r   r   pdSparseDtypeliststringascii_lettersSeriestmassert_series_equal)r   r   arrr&   r$   seriesresultexpecteds           r   test_unary_ufuncr3   &   s     ))


"
+
+Ar2W
+
ECC!H#R^^GQ%?@%%cr*+EDYYs%d3F6]Fyys5t<H68,r   flipflippedstraight)r   c                 v   |\  }}|rBt        |t        j                  dd            }t        |t        j                  dd            }d}t        j                  ||      }|}||f}	||f}
| rt	        |	      }	t	        |
      }
t        j                   ||	 |      } ||
 }t        j                  ||       y Nr   r   r   r$   r$   )r   r'   r(   r,   reversedr-   r.   r4   r   r   r"   r    r!   r$   r0   other
array_argsseries_argsr2   r1   s                r   test_binary_ufunc_with_arrayr?   7   s     %FB2>>'1#=>2>>'1#=>DYYr%FEbJ5/Kj)
{+yy
+$7HK F68,r   c                    |\  }}|rBt        |t        j                  dd            }t        |t        j                  dd            }d}t        j                  ||      }t        j                  ||      j                  d      }||f}	||f}
| rt        |	      }	t        |
      }
t        j                   ||	 |      } ||
 }t        j                  ||       y r8   )	r   r'   r(   r,   Indexastyper:   r-   r.   r;   s                r   test_binary_ufunc_with_indexrC   O   s    
 %FB2>>'1#=>2>>'1#=>DYYr%FHHRd#**73EbJ5/Kj)
{+yy
+$7HK F68,r   shuffle	unalignedalignedc                    |\  }}|rBt        |t        j                  dd            }t        |t        j                  dd            }d}t        j                  ||      }t        j                  ||      }	t        j
                  j                  d      j                  t        |            }
|rQ|	j                  |
      }	| r|	j                  |      d   j                  }n+|j                  |	      d   j                  }n|j                  }||f}||	f}| r(t        t        |            }t        t        |            }t        j                   || ||      } || }t        j                  ||       y )Nr   r   r   r$   r9   r   r%   )r   r'   r(   r,   r   r   r   permutationlentakealignr&   tupler:   r-   r.   )r4   rD   r   r   r"   r    r!   r$   r0   r<   idxr&   r=   r>   r2   r1   s                   r   test_binary_ufunc_with_seriesrN   j   s8    %FB2>>'1#=>2>>'1#=>DYYr%FIIbt$E
))


"
.
.s2w
7C

3KK'*00ELL'*00EbJ5/K8J/0
H[12yy
+5tDHK F68,r   c                 (   |\  }}|rt        |      }d}t        j                  |d      }||f}||f}	|r(t        t	        |            }t        t	        |	            }	t        j                   | |	 d      }
 | | }t        j                  ||
       y )Nr   r$   r9   )r   r'   r,   rL   r:   r-   r.   )r   r   r4   r"   r/   _r<   r0   r>   r=   r2   r1   s               r   test_binary_ufunc_scalarrQ      s    
 %FC#EYYs(F5/KuJH[128J/0
yy
+&9HK F68,r   z$ignore:divide by zero:RuntimeWarningc                 Z   |\  }}d||dk(  <   d||dk(  <   |rBt        |t        j                  dd            }t        |t        j                  dd            }t        j                  |      }t        j                  |      }|r|j	                  d      } | ||      }t        |t              sJ  | ||      }	t        |	t              sJ t        j                  |	d   t        j                  |d                t        j                  |	d   t        j                  |d                y )N   r   r   r   )frac)	r   r'   r(   r,   sample
isinstancerL   r-   r.   )
r   r   rD   r"   r    r!   s1s2r2   r1   s
             r   "test_multiple_output_binary_ufuncsrY      s     %FBBrQwKBrQwK2>>'1#=>2>>'1#=>	2B	2BYYAYR}Hh&&&2r]Ffe$$$6!9bii&<=6!9bii&<=r   c                    |\  }}| rt        |      }t        j                  |d      }t        j                  |      }t        j                  |      }t        |t              sJ t        |t              sJ t        j                  |d   t        j                  |d   d             t        j                  |d   t        j                  |d   d             y )Nr$   r9   r   rS   )	r   r'   r,   r   modfrV   rL   r-   r.   )r   r"   r/   rP   r0   r1   r2   s          r   test_multiple_output_ufuncr\      s     %FC#YYs(FWWV_Fwws|Hfe$$$h&&&6!9bii&&IJ6!9bii&&IJr   c                     |\  }}t        j                  |d      }t        j                  |d      } | ||      }|j                  J y )Nar9   b)r'   r,   r$   )r   r   r"   r    r!   rW   rX   r1   s           r   #test_binary_ufunc_drops_series_namer`      sF    $FB	2C	 B	2C	 B2r]F;;r   c                      G d d      } t        j                   | d       | d      g      }t        j                  |      }t	        j
                  t        j                  ||      t        j                  t        j                  ||                   t	        j
                  t        j                  | | d            t        j                  t        j                  | | d                         y )Nc                       e Zd ZddZd Zy)$test_object_series_ok.<locals>.DummyNc                     || _         y r   valueselfrf   s     r   __init__z-test_object_series_ok.<locals>.Dummy.__init__   	    DJr   c                 4    | j                   |j                   z   S r   re   rh   r<   s     r   __add__z,test_object_series_ok.<locals>.Dummy.__add__   s    ::++r   returnN)__name__
__module____qualname__ri   rm    r   r   Dummyrc      s    		,r   rt   r   rS   )r   arrayr'   r,   r-   r.   add)rt   r/   sers      r   test_object_series_okrx      s    , , ((E!HeAh'
(C
))C.C266#s+RYYrvvc37G-HI266#uQx0"))BFF3a<Q2RSr   )rS   r   r   r   Int64Float32)rS   r   r   zSparse[int])200020102001CETD)freq)z1 Dayz3 Daysz2 DaysrS   r   r   c                 ,    t        | j                        S r   )strr   )xs    r   <lambda>r     s    #agg, r   c                     | j                   S r   r   r
   s    r   values_for_np_reducer      s      ==r   c                   $    e Zd Zd Zd Zd Zd Zy)TestNumpyReductionsc                 p   |}|}t        j                  d       5   ||      }d d d        t        |t        j                  j
                  j                        r1t        j                  j                  d      }|j                  |       |j                  j                  dv rt        j                  j                        }|t        j                   u r)|j#                  d      }	t        j$                  ||	       y |t        j&                  u r!|j(                  j#                         }	||	k(  sJ |j#                         }	||	k(  sJ y y dj+                  g d      }
t        j,                  t.        |
      5  t        j                  j                         d d d        y # 1 sw Y   ~xY w# 1 sw Y   y xY w)	NzSparseArray has no 'prod')reasoniufFnumeric_only|)does not support reductionunsupported operand typez$ufunc 'multiply' cannot use operandsmatch)r-   assert_produces_warningrV   r'   corearraysr   pytestmarkxfailapplymarkerr   kindr   multiplyreduce	DataFrameprodr.   rA   _valuesjoinraises	TypeError)rh   r   box_with_arrayr   boxvaluesobjr   r1   r2   msgs              r   test_multiplyz!TestNumpyReductions.test_multiply  sd   %''- 	f+C	 fbggnn889;;$$,G$HD%<<%[['',Fbll"8887&&vx8;;++-)))88:))) *
 ((C y4 (""3'( (7	 	6( (s   	F6 F,F),F5c                    |}|}t        j                  d       5   ||      }d d d        |j                  j                  dv rt        j
                  j                        }|t        j                  u r)|j                  d      }t        j                  ||       y |t        j                  u r!|j                  j                         }||k(  sJ |j                         }||k(  sJ y y dj                  g d      }t        j                  t         |      5  t        j
                  j                         d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NmiufFr   r   )r   r   zufunc 'add' cannot use operandsr   )r-   r   r   r   r   rv   r   r'   r   sumr.   rA   r   r   r   r   r   )	rh   r   r   r   r   r   r1   r2   r   s	            r   test_addzTestNumpyReductions.test_add.  s    %''- 	f+C	 <<&VV]]3'Fbll"7776&&vx8;;??,)))779))) *
 ((C y4 #c"# #/	 	.# #s   	E  E E
Ec                    |}|}d}|t         j                  u r|j                  j                  dv rd}t	        j
                  d       5   ||      }d d d        t        j                  j                        }|t         j                  u r)|j                  d      }t	        j                  ||       y |d   }||k(  sJ |rt        |      t        |      k(  sJ y y # 1 sw Y   xY w)NTifFr   rS   )r'   rA   r   r   r-   r   r   maximumr   r   maxr.   type	rh   r   r   r   r   	same_typer   r1   r2   s	            r   test_maxzTestNumpyReductions.test_maxL  s    %	"((?v||00J>I''- 	f+C	 ""3'",,wwEw2H""684ayHX%%%F|tH~555 	 	   	CC%c                    |}|}d}|t         j                  u r|j                  j                  dv rd}t	        j
                  d       5   ||      }d d d        t        j                  j                        }|t         j                  u r)|j                  d      }t	        j                  ||       y |d   }||k(  sJ |rt        |      t        |      k(  sJ y y # 1 sw Y   xY w)NTr   Fr   r   )r'   rA   r   r   r-   r   r   minimumr   r   minr.   r   r   s	            r   test_minzTestNumpyReductions.test_mind  s    %	"((?v||00J>I''- 	f+C	 ""3'",,wwEw2H""684ayHX%%%F|tH~555 	 	r   N)rp   rq   rr   r   r   r   r   rs   r   r   r   r   	  s     (D#<606r   r   type_c                    t        j                  g dd      } | g d      }t        j                  ||      }t        j                  t        j                  |j	                         |      d      }t        j                  ||       y )NrS   r   r   r$   r9   )r   r      )r'   r,   r   rv   to_numpyr-   r.   )r   r^   r_   r1   r2   s        r   test_binary_ufunc_other_typesr   |  s\    
		)&)AiAVVAq\Fyy

a0v>H68,r   c                      G fdd      t        j                   d       d      g      } t        j                  |  d            }t        j                   d       d      g      }t	        j
                  ||       y )Nc                   8    e Zd ZddZd Zdef fdZdefdZy)#test_object_dtype_ok.<locals>.Thingro   Nc                     || _         y r   re   rg   s     r   ri   z,test_object_dtype_ok.<locals>.Thing.__init__  rj   r   c                 X    t        |d|      } t        |       | j                  |z         S )Nrf   )getattrr   rf   rl   s     r   rm   z+test_object_dtype_ok.<locals>.Thing.__add__  s*    E7E2E4:djj5011r   c                 T    t        |      u xr | j                  |j                  k(  S r   )r   rf   )rh   r<   Things     r   __eq__z*test_object_dtype_ok.<locals>.Thing.__eq__  s$    ;%'EDJJ%++,EEr   c                 "    d| j                    dS )NzThing()re   )rh   s    r   __repr__z,test_object_dtype_ok.<locals>.Thing.__repr__  s    DJJ<q))r   rn   )	rp   rq   rr   ri   rm   boolr   r   r   )r   s   r   r   r     s'    		2	F4 	F	*c 	*r   r   rS   r   r   )r'   r,   r   rv   r-   r.   )sr1   r2   r   s      @r   test_object_dtype_okr     si    * * 			58U1X&'AVVAuQx Fyy%(E!H-.H68,r   c                      t        j                  g d      } t        j                  g d      }t	        j
                  t        d      5  t        j                  j                  | |       d d d        y # 1 sw Y   y xY w)Nr    r   )	r'   r,   r   ru   r   r   NotImplementedErrorsubtractouter)rw   r   s     r   
test_outerr     sV    
))I
C
((9
C	*"	5 $
#s#$ $ $s   
!A44A=c                      t        j                  g dg      } t        j                  g d      }t        j                  dg      }t        j                  | |      }t	        j
                  ||       y )N)rS   r   )dataf   )r'   r   r   matmulr-   assert_frame_equal)df1df2r2   r1   s       r   test_np_matmulr     sP    
,,[M
*C
,,K
(C||#'HYYsC F(F+r   c                     d } t        j                  | dd      }t        j                  ddg      } |||d      }t        j                  ddgt              }t        j                  ||       t        j                  ddgg      }d}t        j                  t        t        j                  |            5   ||||       d d d        y # 1 sw Y   y xY w)	Nc                     | |z   |z   S r   rs   )r   yzs      r   add3z2test_array_ufuncs_for_many_arguments.<locals>.add3  s    1uqyr   r   rS   r   r   r   zTCannot apply ufunc <ufunc 'add3 (vectorized)'> to mixed DataFrame and Series inputs.r   )r   
frompyfuncr'   r,   objectr-   r.   r   r   r   r   reescape)r   r   rw   r1   r2   dfr   s          r   $test_array_ufuncs_for_many_argumentsr     s     MM$1%E
))QF
C3QFyy!Qv.H68,	1vh	B	0  
*"))C.	A c3  s   7CCc                      t        j                  g d      } t        j                  |       }t        j                  g d      }t	        j
                  ||       y )N)g      g      g      ?g      ?)g      g       g        g      ?)r'   r,   r   fixr-   r.   )rw   r1   r2   s      r   test_np_fixr     s?     ))*
+CVVC[Fyy/0H68,r   );collectionsr   r   r*   numpyr   r   pandas.util._test_decoratorsutil_test_decoratorstdpandasr'   pandas._testing_testingr-   pandas.arraysr   fixturerv   	logaddexpr   r   r"   r   parametrizepositivefloorexpr3   r?   rC   rN   rQ   divmodfilterwarningsrY   r\   r`   rx   ru   r   to_datetimetz_localize	to_periodto_timedeltaIntervalIndexIntervalr   r   r)   rL   r   r   r   r   r   &skip_copy_on_write_not_yet_implementedr   rs   r   r   <module>r     s    	    ) )   % -. /
 e}8W*=> ?   2;;"&&"AB- C-  $Y
4KL- M-. $Y
4KL- M-4 T5MY7OP$Y
4KL#- M Q#-L $/- 0-. 299+.T5M2BC> D 3 /><K&T "((+'*),=1/0/0<<UC/0:::D56+"++a+[R[[A->Aq@QRS
 	
p6 p6f 4"67- 8--*$,. **- +-r   