
    o[we8              $          d dl Z d dlZd dlZ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 d dlmZmZmZmZmZmZmZ d dlmZmZ d dlmZmZmZ ej                            dg d          d             Zej                            d	g g d ej         g           fd
dgd ej         d
dg          fd
dge! e ej"        d
dge!                    fd
dg ej#        d           e ej"        ddg ej#        d                              f ej"        g e!          d e ej"        g e!                    f ej"        d
dgd          d ej         d
dg          f ej"        ddgd          d ej         ddg          fd
dgd e ej"        d
dgd                    fd
dgd e ej"        d
dgej$                            f ej"        d
dgej%                  d e ej"        d
dgej%                            f e ej"        d
dgej&                            d e ej"        d
dgej&                            f ej'        dd           ej'        dd          gd eddgd          f ej'        dd          g ej(        d           edgd          fd
dg ej#        d           ej          ej"        d
dgd                    fd
dg ej#        d           ej          ej"        d
dgd                    f ej"        d
dgd          d ej          ej"        d
dgd                    f ej)        ddg           ej#        d           ej         ddg          f ej)        ddg          d ej         ddg          fddg ej#        d           ej         ddg          fddg ej*        d           ej         ddg ej*        d                    fddg ej#        d           ej         ddg          f ej+        ddg           ej#        d           ej         ddg          f ej"        d
dgd           ej#        d           ej          ej"        d
dgd                    f ej+        ddg          d ej         ddg          f ej,         ej-        d ej$                  .                    d           ej#        d                    d ej,         ej-        d ej$                  .                    d           ej#        d                    f ej,         ej-        d ej$                  .                    d           ej#        d                     ej#        d           ej,         ej-        d ej$                  .                    d           ej#        d                    fd!d"gd# ej/        d!d"g          fd!d"g ej0        dd$%           ej/        d!d"gd$%          f ej1        d
d           ej1        d&d'          gd( ej2        d)d*g          fd d
gd+ ed d
gd          fd
dgd, ej"        d
dgd,          f ej3        d
dg          d e ej"        d
dgej$                            fd!dgd- ej4                    5                                                     d!dg          fd!dg ej4                     ej4                    5                                                     d!dg          fd$dgd. ej         d$dg          fd$dg ej6                     ej         d$dg          f ej7        d
dg          d e ej"        d
dgej$                            f ej3         ej/        d!d"gg d/0                    d ej/        d!d"gg d/0          f ej8        d            ej8        d
          gd1 ed d
g          f eddgd          d# ej/         ej'        dd           ej'        dd          g          f          d2             Z9d3 Z: ej;        d          Z<ej                            d4 ej'        dd           ej'        dd          g eddgd          f ej1        d d
           ej1        d
d          g ej=        g d5          f ej>        d           ej>        d          g ej         ddg          f e j         d6d
d
           e j         d7d
d
          g ej         ddg          f ej"        d
dgd8           e ej"        d
dgd8                    f ej"        d
dgd9           ej,         ej"        d
dgd9           ej#        d9                    f ej>        dd           ej>        dd          g ej         ddg ej*        d                    f e j         d6d
d
e<:           e j         d7d
d
e<:          g ej         ddg ej*        e<                    f ej?        d           ej?        d          g ej         ddg          f ej"        d
dgd;           e ej"        d
dgd;                    f ej"        d
dgd<           e ej"        d
dgd<                    fd
dg ej         d
dg          fd
dg ej         d
dg          fd
ej@        g ej         d
ej@        g          fd
ejA        g ej         d
ejA        g          fd=d>g ej         d=d>g          fd=dg ej         d=ej@        g          fd=ejA        g ej         d=ej@        g          fd=ej@        g ej         d=ej@        g          fddg ej         ddg          fddg ej         dej@        g          fdejA        g ej         dej@        g          fdej@        g ej         dej@        g          fd
dg ej         ddg          fd
ejA        dg ej         g d?          fd!d"g ej4                    5                                                     d!d"g          fd!dg ej4                    5                                                     d!dg          fd$d@g ej         d$d@g          fd$dg ej         d$dg          fg          dA             ZBej                            dB ej'        dd           ej'        ddC          g ej1        d d
dDE           ej1        d
ddFE          g ej>        dd           ej>        ddG          g ej>        dd           ej>        d          g ej"         ej>        d           ej>        dd          g          g          dH             ZCej                            dB ej"        d           g          dI             ZDdJ ZEdK ZFdL ZGe G dM dNe                      ZH G dO dPe          ZIdQ ZJdR ZKdS )S    N)register_extension_dtype)BooleanArrayDatetimeArrayFloatingArrayIntegerArrayIntervalArraySparseArrayTimedeltaArray)NumpyExtensionArrayperiod_array)DecimalArrayDecimalDtype
to_decimal
dtype_unit)zM8[h]M8[m]zm8[h]r   c                     t          j        |           }d}t          j        t          t          j        |                    5  t          j        g |           d d d            d S # 1 swxY w Y   d S )Nzdatetime64 and timedelta64 dtype resolutions other than 's', 'ms', 'us', and 'ns' are deprecated. In future releases passing unsupported resolutions will raise an exception.matchdtype)	npr   tmassert_produces_warningFutureWarningreescapepdarray)r   	dtype_varmsgs      >lib/python3.11/site-packages/pandas/tests/arrays/test_array.pytest_dt64_arrayr"       s     $$I	  
	#M3	H	H	H & &
9%%%%& & & & & & & & & & & & & & & & & &s   A((A,/A,zdata, dtype, expected      r   float32      ?       @int64float642000D2001z	Period[D])freqzdatetime64[ns]zdatetime64[s]CET)tz1H2Hztimedelta64[ns]zm8[s]ztimedelta64[s]   abcategoryT)ordered      interval)r#   r$   )r7   r8   zSparse[int64]Int16stringboolean)r3   r4   c)
categoriesdecimalc                 \    t          j        | |          }t          j        ||           d S Nr   r   r   r   assert_equal)datar   expectedresults       r!   
test_arrayrG   .   s1    t Xd%(((FOFH%%%%%    c                  b   t          j        ddg          } t          j        | | j                  }t	          j        | |          rJ t          j        | | j        d          }t	          j        | |          rJ t          j        | | j        d          }t	          j        | |          sJ d S )Nr#   r$   r   Tr   copyF)r   r   r   r   r   shares_memory)r3   r4   s     r!   test_array_copyrM      s    
!QA
!'"""A1%%%%% 	!'---A1%%%%% 	!'...AAq!!!!!!!rH   zdata, expected)r   r#   r$   i  i  zM8[ns]zM8[us])tzinfozm8[ns]zm8[us]g?g?)r&   Nr'   Fc                 X    t          j        |           }t          j        ||           d S )NrB   )rD   rE   rF   s      r!   test_array_inferencerP      s*    v Xd^^FOFH%%%%%rH   rD   Aleft)closedrightUTCc                     t          j        |           }t          t          j        | t                              }t          j        ||           d S rA   )r   r   r   r   objectr   assert_extension_array_equal)rD   rF   rE   s      r!   test_array_inference_failsrY   ]  sF     Xd^^F"28D#?#?#?@@H#FH55555rH   c                     t          j        t          d          5  t          j        | d           d d d            d S # 1 swxY w Y   d S )Nz)NumpyExtensionArray must be 1-dimensionalr   r(   r   pytestraises
ValueErrorr   r   )rD   s    r!   test_nd_raisesr_   q  s    	z)T	U	U	U & &
W%%%%& & & & & & & & & & & & & & & & & &s   A  AAc                      t          j        t          d          5  t          j        d           d d d            d S # 1 swxY w Y   d S )NzCannot pass scalar '1'r   r#   r[    rH   r!   test_scalar_raisesrb   w  s    	z)A	B	B	B  
                 s   >AAc                      t          j        ddgddggddg          } d}t          j        t          |	          5  t          j        |            d d d            d S # 1 swxY w Y   d S )
Nr#   r$   r7   r8   rQ   B)columnsz'Cannot pass DataFrame to 'pandas.array'r   )r   	DataFramer\   r]   	TypeErrorr   )dfr    s     r!   test_dataframe_raisesri   |  s    	1v1v&c
	;	;	;B
3C	y	,	,	,  
                 s   AA"%A"c                      t          j        t          d          5  t          j        g dd           d d d            d S # 1 swxY w Y   d S )Nz6cannot safely cast non-equivalent int(32|64) to uint16r   )r$   r7   UInt16r   )r\   r]   rg   r   r   ra   rH   r!   test_bounds_checkrm     s    	R
 
 
 - - 	8,,,,- - - - - - - - - - - - - - - - - -s   AA	Ac                   (    e Zd ZdZed             ZdS )DecimalDtype2decimal2c                     t           S )zq
        Return the array type associated with this dtype.

        Returns
        -------
        type
        )DecimalArray2)clss    r!   construct_array_typez"DecimalDtype2.construct_array_type  s
     rH   N)__name__
__module____qualname__nameclassmethodrt   ra   rH   r!   ro   ro     s2        D  [  rH   ro   c                   0     e Zd Zed fd	            Z xZS )rr   NFc                     t          |t          j        t          j        f          rt	          d          t                                          |||          S )N3scalars should not be of type pd.Series or pd.IndexrJ   )
isinstancer   SeriesIndexrg   super_from_sequence)rs   scalarsr   rK   	__class__s       r!   r   zDecimalArray2._from_sequence  sM    g	28455 	SQRRRww%%gU%FFFrH   )NF)ru   rv   rw   ry   r   __classcell__)r   s   @r!   rr   rr     sQ        G G G G G [G G G G GrH   rr   c                    | } |t          j        d          t          j        d          g          }t          j        t          d          5  t
                              |           d d d            n# 1 swxY w Y   t          j        |d          }t
                              |j	                  }t          j        ||           d S )N12r|   r   rp   r   )r?   Decimalr\   r]   rg   rr   r   r   r   valuesr   rC   )index_or_seriesboxrD   rF   rE   s        r!   test_array_unboxesr     s    
C3$$goc&:&:;<<D	N
 
 
 + + 	$$T***+ + + + + + + + + + + + + + +
 Xd*---F++DK88HOFH%%%%%s   A66A:=A:c                      t          j        t           j        dgd          } |                     dt                    }t          j        ddg          }t          j        ||           d S )Nr#   r;   r   T)na_valuer   )r   r   NAto_numpyboolr   r   assert_numpy_array_equal)arrrF   rE   s      r!   test_array_to_numpy_nar     s]    
(BE1:X
.
.
.C\\4t\44Fxt%%H11111rH   )Ldatetimer?   r   numpyr   r\   pytzpandasr   pandas._testing_testingr   pandas.api.extensionsr   pandas.arraysr   r   r   r   r   r	   r
   pandas.core.arraysr   r   pandas.tests.extension.decimalr   r   r   markparametrizer"   r   rW   r   r   r(   float16int32PeriodPeriodDtypeDatetimeIndexDatetimeTZDtypeTimedeltaIndex_simple_newarangeviewCategoricalCategoricalDtypeIntervalfrom_tuplesr~   StringDtypert   BooleanDtyper   r   rG   rM   timezonecetfrom_breaks	Timestamp	Timedeltar   nanrP   rY   r_   rb   ri   rm   ro   rr   r   r   ra   rH   r!   <module>r      s     				                 : : : : : :                                  'K'K'KLL
& 
& ML
& u	T/=/334u Q2|2Aq6::;u Q,,XRXq!fF-K-K-KLLM	u FBHY#s828I;N;N O O OPP	
u BHRv&&&6 : : :;;	
u 
1a&	(	(	($0K0KQPQF0S0STu" BHc3Zy111(M(#s44	
!u, Q//!Qy0Q0Q0QRRS-u. Q--hbh1vRX.N.N.NOOP/u6 BHaV2:...!Qrz B B BCC	
5uB  !Qrx @ @ @AA!Qrx @ @ @AA	
AuN RYvs##YRYvs%;%;<L&&)444	
MuZ RYvs##$BN3L&,,,	
Yuf FBH%&&(M(1a&@P)Q)Q)QRR	
eup FBH_%%(M(1a&)P)P)PQQ	
ouz BHaV#3444(M(1a&@P)Q)Q)QRR	
yuD Bff-..BH%&&(M(&&)9::	
CuN Bff-..(M(&&)9::	
MuX VBH%&&(M(&&)9::	
Wud VB%((((M( (:(:e(D(D(D  	
cut 4LBH&'')N)4,77	
su~ BtTl++BH&'')N)4,77	
}uH BHaV7+++BH%&&)N)("(Aq6*I*I*IJJ	
GuR BtTl++)N)4,77	
Qu^ 'N&	!28,,,11'::("(7BSBS   &N&	!28,,,11'::("(7BSBS  		
[ur 'N&	!28,,,11'::("(7BSBS   BHW&N&	!28,,,11'::("(7BSBS  		
ouD sZc
!;!;<EuH #JBd333BNC:t444	
GuT R[AAq 1 12%M%vv&677	
Su^ Q++q!fG"D"D"DE_ub TGXRXq$iw???@cuf BIq!f!Qrx @ @ @AA	
eur $KBN1133BBC;OO	
qu| $KBNBN1133BBC;OO	
{uF y"=,"=tTl"K"KLGuH r((*E,*EtTl*S*STIuL 
1a&		4!4!4XRXq!fBH5U5U5U!V!VWMuR BInbnc3ZOOOLLLMMBNC:///BBB	
Qu\ '/!

ogoa00	19jj!Q>P>PQ]ub L&&)444BNIBIfc22IBIfc4J4JKLL	
aux xr& &sx xr&
" " " dmE  RYvs##YRYvs%;%;<L&&)444	

 "+a

[R[A..	/1J1J9991U1UV R\&!!<2<#7#78(M(&&)9::	

 XtQ**,=H,=dAq,I,IJ(M(&&)9::	

 BHaV8,,,M("(Aq6:::;;	

 BHaV8,,,%M%!Qx0008J8J  	
 R\&U+++\R\&U-K-K-KL(M( (:(:e(D(D(D  	
 "!$1S999!!$1S999 )M( (:(:c(B(B(B  	
 R\$d!3!34)N)4,77	

 BHaV8,,,N828QF(;;;<<	

 BHaV8,,,N828QF(;;;<<	

 Q,,aV445
T/L/D	::;
RU0\0!RU<<=
RV1l11bf+>>?
s1]13*==>
t2m2C<@@A
rv44c25\BBC
ru3}3S"%LAAB
s1]13*==>
t2m2C<@@A
rv44c25\BBC
ru3}3S"%LAAB
S/=/c
;;<
RVS	7=78H8H8HIIJ #JBN1133BBC:NN	

 $KBN1133BBC;OO	

 33T5MBBC
2|2D$<@@AkVY Yt& &uY Yt&
 
 
63		63!7!78	Q&	)	)	);2;q!G+L+L+LM	f	'	'	'f)G)G)GH	f	'	'	'f)=)=>,",v&&V(F(F(FGHH
 6 6 6 ("(1++//& & 0/&
  
  - - -     L   G G G G GL G G G& & &2 2 2 2 2rH   