
    *g/=              $           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:                  j=                  dg d      d        Zej:                  j=                  d	g g d ej@                  g d
      fddgd ej@                  ddgd      fddge! e ejD                  ddge!            fddg ejF                  d       e ejD                  ddg ejF                  d                  f ejD                  g e!      d e ejD                  g e!            f ejD                  ddgd      d ej@                  ddgd      f ejD                  ddgd      d ej@                  ddgd
      fddgd e ejD                  ddgd            fddgd e ejD                  ddgejH                              f ejD                  ddgejJ                        d e ejD                  ddgejJ                              f e ejD                  ddgejL                              d e ejD                  ddgejL                              f ejN                  dd       ejN                  dd      gd eddgd      f ejN                  dd      g ejP                  d       edgd      fddg ejF                  d       ej@                   ejD                  ddgd      d      fddg ejF                  d       ej@                   ejD                  ddgd      d      f ejD                  ddgd      d ej@                   ejD                  ddgd      d      f ejR                  ddg       ejF                  d       ej@                  ddgd      f ejR                  ddg      d ej@                  ddgd      fddg ejF                  d       ej@                  ddgd      fddg ejT                  d       ej@                  ddg ejT                  d            fdd g ejF                  d!       ej@                  dd gd"      f ejV                  dd g       ejF                  d!       ej@                  dd gd"      f ejD                  ddgd#       ejF                  d$       ej@                   ejD                  ddgd#      d#      f ejV                  dd g      d ej@                  dd gd"      f ejX                   ejZ                  d%ejH                        j]                  d#       ejF                  d#            d ejX                   ejZ                  d%ejH                        j]                  d#       ejF                  d#            f ejX                   ejZ                  d%ejH                        j]                  d#       ejF                  d#             ejF                  d#       ejX                   ejZ                  d%ejH                        j]                  d#       ejF                  d#            fd&d'gd( ej^                  d&d'g      fd&d'g ej`                  dd)*       ej^                  d&d'gd)*      f ejb                  dd       ejb                  d+d,      gd- ejd                  d.d/g      fd dgd0 ed dgd      fddgd1 ejD                  ddgd1      f ejf                  ddg      d e ejD                  ddgejH                              fd&dgd2 ejh                         jk                         jA                  d&dg ejh                               fd&dg ejh                          ejh                         jk                         jA                  d&dg ejh                               fd)dgd3 ej@                  d)dgd3      fd)dg ejl                          ej@                  d)dgd3      f ejn                  ddg      d e ejD                  ddgejH                              f ejf                   ej^                  d&d'gg d45            d ej^                  d&d'gg d45      f ejp                  d        ejp                  d      gd6 ed dg      f eddgd      d( ej^                   ejN                  dd       ejN                  dd      g      f      d7        Z9d8 Z: ejv                  d      Z<ej:                  j=                  d9 ejN                  dd       ejN                  dd      g eddgd      f ejb                  d d       ejb                  dd      g ejz                  g d:      f ej|                  d       ej|                  d      g ej@                  ddgd      f e j                   d;dd       e j                   d<dd      g ej@                  ddgd      f ejD                  ddgd       ej@                   ejD                  ddgd            f ejD                  ddgd=       ejX                   ejD                  ddgd=       ejF                  d=            f ej|                  dd       ej|                  dd      g ej@                  ddg ejT                  dd>?            f e j                   d;dde<@       e j                   d<dde<@      g ej@                  ddg ejT                  e<d>?            f ej~                  d       ej~                  d       g ej@                  dd gd"      f ejD                  ddgd"       ej@                   ejD                  ddgd"            f ejD                  ddgdA       ej@                   ejD                  ddgdA            fddg ej@                  ddgd      fddg ej@                  ddgd      fdej                  g ej@                  dej                  gd      fdej                  g ej@                  dej                  gd      fdBdCg ej@                  dBdCgd
      fdBdg ej@                  dBej                  gd
      fdBej                  g ej@                  dBej                  gd
      fdBej                  g ej@                  dBej                  gd
      fddg ej@                  ddgd
      fddg ej@                  dej                  gd
      fdej                  g ej@                  dej                  gd
      fdej                  g ej@                  dej                  gd
      fddg ej@                  ddgd
      fdej                  dg ej@                  g dDd
      fd&d'g ejh                         jk                         jA                  d&d'g ejh                               fd&dg ejh                         jk                         jA                  d&dg ejh                               fd)dEg ej@                  d)dEgd3      fd)dg ej@                  d)dgd3      fg      dF        ZBej:                  j=                  dG ejN                  dd       ejN                  ddH      g ejb                  d ddIJ       ejb                  dddKJ      g ej|                  dd       ej|                  ddL      g ej|                  dd       ej|                  d      g ejD                   ej|                  d       ej|                  dd      g      g      dM        ZCej:                  j=                  dG ejD                  d       g      dN        ZDdO ZEdP ZFdQ ZGe G dR dSe             ZH G dT dUe      ZIdV ZJdW ZKy)X    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        y # 1 sw Y   y xY w)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      h/var/www/html/articles-backend/trend/venv/lib/python3.12/site-packages/pandas/tests/arrays/test_array.pytest_dt64_arrayr"       sY     $I	  
	#	#M3	H &
9%& & &s   A''A0zdata, dtype, expectedFloat64r         Int64float32      ?       @int64float642000D2001z	Period[D])freqzdatetime64[ns]zM8[ns]zdatetime64[s]zM8[s]CET)tz1h2hztimedelta64[ns]zm8[ns]zm8[s]ztimedelta64[s]   abcategoryT)ordered      interval)r$   r%   )r9   r:   zSparse[int64]Int16stringboolean)r5   r6   c)
categoriesdecimalc                 ^    t        j                  | |      }t        j                  ||       y Nr   r   r   r   assert_equal)datar   expectedresults       r!   
test_arrayrI   .   s#    d XXd%(FOOFH%    c                     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 y )Nr$   r%   r   Tr   copyF)r   r   r   r   r   shares_memory)r5   r6   s     r!   test_array_copyrO     s    
!QA
!''"A1%%% 	!''-A1%%% 	!''.AAq!!!rJ   zdata, expected)r   r$   r%   i  i  zM8[us]ns)r1   unit)tzinfozm8[us]g?g?)r(   Nr)   Fc                 Z    t        j                  |       }t        j                  ||       y )NrD   )rF   rG   rH   s      r!   test_array_inferencerT     s     D XXd^FOOFH%rJ   rF   Yleft)closedrightUTCc                     t        j                  |       }t        t        j                  | t                    }t        j                  ||       y rC   )r   r   r   r   objectr   assert_extension_array_equal)rF   rH   rG   s      r!   test_array_inference_failsr]   |  s6     XXd^F"288D#?@H##FH5rJ   c                     t        j                  t        d      5  t        j                  | d       d d d        y # 1 sw Y   y xY w)Nz)NumpyExtensionArray must be 1-dimensionalr   r*   r   pytestraises
ValueErrorr   r   )rF   s    r!   test_nd_raisesrc     s4    	z)T	U &
W%& & &s	   =Ac                      t        j                  t        d      5  t        j                  d       d d d        y # 1 sw Y   y xY w)NzCannot pass scalar '1'r   r$   r_    rJ   r!   test_scalar_raisesrf     s1    	z)A	B 
  s	   ;Ac                      t        j                  ddgddggddg      } d}t        j                  t        |	      5  t        j
                  |        d d d        y # 1 sw Y   y xY w)
Nr$   r%   r9   r:   AB)columnsz'Cannot pass DataFrame to 'pandas.array'r   )r   	DataFramer`   ra   	TypeErrorr   )dfr    s     r!   test_dataframe_raisesrn     sV    	1v1v&c
	;B
3C	y	, 
  s   AA%c                      t        j                  t        d      5  t        j                  g dd       d d d        y # 1 sw Y   y xY w)Nz6cannot safely cast non-equivalent int(32|64) to uint16r   )r%   r9   UInt16r   )r`   ra   rl   r   r   re   rJ   r!   test_bounds_checkrr     s9    	R
 - 	8,- - -s	   ?Ac                        e Zd ZdZed        Zy)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
     rJ   N)__name__
__module____qualname__nameclassmethodry   re   rJ   r!   rt   rt     s    D rJ   rt   c                   0     e Zd Zeddd fd
       Z xZS )rw   NFrL   c                    t        |t        j                  t        j                  f      rt	        d      t
        |   |||      S )N3scalars should not be of type pd.Series or pd.IndexrL   )
isinstancer   SeriesIndexrl   super_from_sequence)rx   scalarsr   rM   	__class__s       r!   r   zDecimalArray2._from_sequence  s=    g		28845QRRw%gU%FFrJ   )rz   r{   r|   r~   r   __classcell__)r   s   @r!   rw   rw     s    .2 G GrJ   rw   c                    | } |t        j                  d      t        j                  d      g      }t               }t        j                  t
        d      5  t        j                  ||       d d d        t        j                  |d      }t        j                  |j                  |      }t        j                  ||       y # 1 sw Y   XxY w)N12r   r   r   ru   )rA   Decimalrt   r`   ra   rl   rw   r   r   r   valuesr   rE   )index_or_seriesboxrF   r   rH   rG   s         r!   test_array_unboxesr     s    
C$gooc&:;<DOE	N
 8 	$$T$78
 XXd*-F++DKKu+EHOOFH%8 8s   CCc                      t        j                  t         j                  dgd      } | j                  dt              }t        j                  ddg      }t        j                  ||       y )Nr$   zstring[python]r   T)na_valuer   )r   r   NAto_numpyboolr   r   assert_numpy_array_equal)arrrH   rG   s      r!   test_array_to_numpy_nar     sO    
((BEE1:%5
6C\\4t\4Fxxt%H1rJ   )LdatetimerA   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   r[   r   r   r*   float16int32PeriodPeriodDtypeDatetimeIndexDatetimeTZDtypeTimedeltaIndex_simple_newarangeviewCategoricalCategoricalDtypeIntervalfrom_tuplesr   StringDtypery   BooleanDtyper   r   rI   rO   timezonecetfrom_breaks	Timestamp	Timedeltar   nanrT   r]   rc   rf   rn   rr   rt   rw   r   r   re   rJ   r!   <module>r      s      	      :    'KL
& M
& M	T/=//)DEM Q2|22Aq6IJM Q,XRXXq!fF-KLM	M FBHHY#s8288I;N OP	
M BHHRv&6 :;	
M  BHHaV7+'L''Ag>	
M* BHHc3Zy1(M((#s9E	
)M4 Q/!Qy0QRS5M6 Q-hbhh1vRXX.NOP7M> BHHaV2::.!Qrzz BC	
=MJ  !Qrxx @A!Qrxx @A	
IMV RYYvs#YRYYvs%;<&&)4	
UMb RYYvs#$BNN3&,	
aMn FBHH%&(M((!Qx0	
mM| FBHH_%(M((!Qw/w	
{MJ BHHaV#34(M((!Qx0	
IMX Bff-.BHH%&(M((&&)9J	
WMb Bff-.(M((&&)9J	
aMl VBHH%&(M((&&)9J	
kMx VB%((M(( (:(:(:e(D	
wMH 4LBHH&')N))4,hG	
GMR BtTl+BHH&')N))4,hG	
QM\ BHHaV7+BHH%&)N))!Qw/w	
[Mj BtTl+)N))4,hG	
iMv 'N&&		!288,11':("((7BS &N&&		!288,11':("((7BS		
sMJ 'N&&		!288,11':("((7BS BHHW&N&&		!288,11':("((7BS		
GM\ sZc
!;<]M` #JBd3BNNC:t4	
_Ml R[[AAq 12%M%%vv&67	
kMv Q+q!fG"DEwMz TGXRXXq$iw?@{M~ BIIq!f!Qrxx @A	
}MJ $KBNN!!#^S$K~r~~/?^@	
IMX $KBNNBNN!!#^S$K~r~~/?^@	
WMh 4L'L''tIF	
gMr 4LBOO'L''tIF	
qM| 
1a&	4!4XRXXq!fBHH5U!VW}MB BIInbnnc3ZOLMBNNC:/B	
AML '//!
ogooa0	19j!Q>PQMMR &&)4BNNIBIIfc2IBIIfc4JKL	
QMPb&cPb&
" dmmE  RYYvs#YRYYvs%;<&&)4	

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

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

 BHHaV8,(M((1a&)IJ	

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

 BHHaV8,)N))("((Aq6*JK	

 BHHaV8,)N))("((Aq6*JK	

 Q,,,aV7CD
T/L//D	IJ
RUU0\00!RUU7KL
RVV1l111bff+WMN
s1]113*INO
t2m22C<yQR
rvv444c255\ST
ruu3}33S"%%L	RS
s1]113*INO
t2m22C<yQR
rvv444c255\ST
ruu3}33S"%%L	RS
S/=//c
)LM(M(()9K	
 #JBNN!!#^S#Jnbnn.>^?		
 $KBNN!!#^S$K~r~~/?^@		
 333T5MST
2|22D$<yQRy]`B&C`B&
 
 
63	63!78	Q&	);2;;q!G+LM	f	'f)GH	f	'f)=>,",,v&V(FGH
66 ("((1+/& 0&

- L  GL G& 2rJ   