
    MhX                        S SK rS SKrS SKrS SKJr  S SKJ	r	  S SK
Jr  S SKJrJrJr  \R                   " \R"                  \R$                  /S9S 5       rS rS rS	 rS
 rS r\R2                  R5                  SSS/S\R6                  /4S/\R6                  /4S\R6                  /\R6                  \R6                  /4\R6                  \R6                  /\R6                  \R6                  /4/5      S 5       r\R2                  R5                  SSS/SSS\R:                  " SSS9\R"                  " S/5      SS/SS//\R6                  SS0//5      S 5       rS rS r S r!S r"\R2                  R5                  SSS /S S/\" 5       \" 5       4SS /S S/S!\" 5       4SS \R6                  /S S\R6                  /\" 5       \" 5       4/5      S" 5       r#\R2                  R5                  S#\R"                  " S/S$S%9S\4\R"                  " S\R6                  /5      S\4\R"                  " S\R6                  /5      S&\4/5      S' 5       r$S( r%g))    N)
is_integer)IntegerArray)	Int8Dtype
Int32Dtype
Int64Dtype)paramsc                     U R                   $ )zbFixture returning parametrized IntegerArray from given sequence.

Used to test dtype conversions.
)param)requests    _/var/www/html/env/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_construction.pyconstructorr      s     ==    c                  r    [         R                  " SS /[        5       S9n U S   [         R                  L d   eg )N   dtype)pdarrayr   NA)as    r   test_uses_pandas_nar      s,    
!T*,/AQ4255==r   c                 ,   U R                   n[        R                  " U 5      n[        R                  " U R                  [        R
                  SS9[        U5      S9n[        R                  " X25        [        R                  " U 5      n[        R                  " [        R                  " U 5      R                  5       [        U5      S9n[        R                  " X25        [        R                  " U 5      R                  5       R                  SS9n[        R                  " U R                  5       5      R                  [        R                   " UR                  5      5      n[        R                  " U[        U5      S9n[        R                  " X25        g )Nfloat)na_valuer   r   T)drop)r   r   Seriesto_numpynpnanstrtmassert_series_equalr   tolistdropnareset_indexastypetype)datar   expectedresultdroppeds        r   test_from_dtype_from_floatr,      s   JJE yyHYYt}}bffG}DCPUJWF6, yyHYYrxx~,,.c%jAF6, yy%%'333>Hhht{{}%,,RXXejj-ABGYYwc%j1F6,r   c                    [         R                  " SU 05      nUS   R                  S5      n[         R                  " [        R
                  " [         R                  S/[        S9SS9n[        R                  " X#5        US   R                  S5      R                  n[        R
                  " [         R                  S/[        S9n[        R                  " X#5        [        X#5       H  u  pE[         R                  " U5      (       a  [         R                  " U5      (       d   eM?  [        U5      (       a  XE:X  d   e[        U5      (       d   eMj  XE:X  d   e[        U5      [        U5      :X  a  M   e   g )NAobjectr   r   )name)r   	DataFramer&   r   r   r   r   r/   r!   r"   valuesassert_numpy_array_equalzipisnullr   r'   )data_missingdfr*   r)   res         r   test_conversionsr:   2   s   	sL)	*BW^^H%Fyy255!*F;#FH6,
 W^^H%,,Fxx
&1H1F%99Q<<99Q<<<]]6M6a== =6M67d1g%%% &r   c                  J   [         R                  " / SQSS9n [         R                  " / SQSS9n[        X5      n[        R                  " SSS[         R                  /S	S9n[
        R                  " X#5        S
n[        R                  " [        US9   [        U R                  5       U5        S S S 5        [        R                  " [        US9   [        XR                  5       5        S S S 5        [        R                  " [        US9   [        U R                  [        5      U5        S S S 5        Sn[        R                  " [        US9   [        U 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N`= f! , (       d  f       g = f)Nr            int64r   FFFTboolr   r=   r>   Int64z@.* should be .* numpy array. Use the 'pd.array' function insteadmatchz;__init__\(\) missing 1 required positional argument: 'mask')r   r   r   r   r   r!   assert_extension_array_equalpytestraises	TypeErrorr#   r&   r   )r2   maskr*   r)   msgs        r   test_integer_array_constructorrL   K   s   XXl'2F88/v>D&'FxxAq"&&)9H##F5
MC	y	,V]]_d+ 
- 
y	,V[[]+ 
- 
y	,V]]5)40 
-
HC	y	,V 
-	, 
-	, 
-	, 
-	, 
-	,s0   E!E2	 FF!
E/2
F 
F
F"c                     [         R                  " / SQSS9n [         R                  " / SQSS9n[        X5      nUR                  U L d   eUR                  UL d   e[        XSS9nUR                  U Ld   eUR                  ULd   eg )Nr<   r@   r   rA   rB   T)copy)r   r   r   _data_mask)r2   rJ   r*   s      r   #test_integer_array_constructor_copyrQ   a   s    XXl'2F88/v>D&'F<<6!!!<<4&T2F<<v%%%<<t###r   za, br   c                     [         R                  " U SS9n[         R                  " USS9n[        R                  " X#5        g )NrC   r   )r   r   r!   rF   )r   br*   r)   s       r   !test_to_integer_array_none_is_nanrT   n   s2     XXaw'Fxx)H##F5r   r2   foobar      ?20130101r=   )periodsr>   r?   r   c                 d   SR                  / SQ5      n[        R                  " [        [        4US9   [
        R                  " U SS9  S S S 5        [        R                  " [        [        4US9   [        R                  " U 5        S S S 5        g ! , (       d  f       NM= f! , (       d  f       g = f)N|)z#cannot be converted to IntegerDtypez)invalid literal for int\(\) with base 10:zvalues must be a 1D list-likezCannot pass scalarz!int\(\) argument must be a stringrD   rC   r   )	joinrG   rH   
ValueErrorrI   r   r   r   _from_sequence)r2   rK   s     r   test_to_integer_array_errorr_   }   s|     ((	
C 

I.c	:
w' 
; 

I.c	:##F+ 
;	: 
;	: 
;	:s   B0B!
B!
B/c                 (   U " [         R                  " SS/SS95      nUR                  [        5       :X  d   eU " [         R                  " SS/SS95      nUR                  [	        5       :X  d   eU " SS/5      nUR                  [        5       :X  d   eg )Nr   r=   int8r   int32)r   r   r   r   r   r   r   r*   s     r   $test_to_integer_array_inferred_dtyperd      s    1a&78F<<9;&&&1a&89F<<:<''' !Q F<<:<'''r   c                     U " SS/SS9nUR                   [        5       :X  d   eU " [        R                  " SS/SS9SS9nUR                   [	        5       :X  d   eg )Nr   r=   Int8r   ra   Int32)r   r   r   r   r   rc   s     r   #test_to_integer_array_dtype_keywordrh      sW    !Qv.F<<9;&&& 1a&7wGF<<:<'''r   c                     [         R                  " SS/SS9n [        R                  " SS/SS9n[        R
                  " X5        [        R                  " [        SS9   [         R                  " S	S/SS9  S S S 5        [         R                  " [        R                  " SS/S
S9SS9n U R                  [        5       :X  d   eg ! , (       d  f       NS= f)NrW   g       @rC   r   r   r=   z!cannot safely cast non-equivalentrD   g      ?float32)r   r^   r   r   r!   rF   rG   rH   rI   r   r   r   r*   r)   s     r   test_to_integer_array_floatrl      s    ((#s7CFxxAg.H##F5	y(K	L##S#Jg> 
M ((
#s9-WF <<:<''' 
M	Ls   C
Cc                     [         R                  " / SQSS9n [        R                  " SS[        R
                  /SS9n[        R                  " X5        [        R                  " [        SS9   [         R                  " / SQSS9  S S S 5        [        R                  " [        SS9   [         R                  " S	S
/SS9  S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)N)12NrC   r   r   r=   z,invalid literal for int\(\) with base 10: .*rD   )rn   ro    z1.5z2.0)r   r^   r   r   r   r   r!   rF   rG   rH   r]   rk   s     r   test_to_integer_array_strrq      s    (()9IFxxArvvg6H##F5	I
 	##N'B

 
I
 	##UEN'B
 

 


 
s   -C&C
C
C&z5bool_values, int_values, target_dtype, expected_dtypeFTrC   c                     U " XS9nUR                   U:X  d   e[        R                  " X#S9n[        R                  " XV5        g Nr   )r   r   r   r!   rF   )r   bool_values
int_valuestarget_dtypeexpected_dtyper*   r)   s          r   test_to_integer_array_boolrx      s<     9F<<>)))xx
7H##F5r   zvalues, to_dtype, result_dtyper@   r   ra   c                     [         R                  " XS9nUR                  U" 5       :X  d   e[        R                  " X" 5       S9n[
        R                  " X45        g rs   )r   r^   r   r   r   r!   rF   )r2   to_dtyperesult_dtyper*   r)   s        r   test_to_integer_arrayr|      sH     ((@F<<<>)))xxln5H##F5r   c                      [         R                  " [        R                  " SS/5      SS9n [         R                  " [        R                  " SS/[        S9SS9n[        R
                  " X5        g )NTFrC   r   )r   r   r   r/   r!   rF   )r)   r*   s     r   test_integer_array_from_booleanr~      sL    xx$/w?HXXbhhe}F;7KF##F5r   )&numpyr   rG   pandasr   pandas._testing_testingr!   pandas.api.typesr   pandas.core.arraysr   pandas.core.arrays.integerr   r   r   fixturer   r^   r   r   r,   r:   rL   rQ   markparametrizer   rT   
date_ranger_   rd   rh   rl   rq   rx   r|   r~    r   r   <module>r      s|       ' +  ,"="=>? @
-*&2,
$ 

TQK 
"&&
"&&"&&)*
&&"&&	BFFBFF+,	66 		
j!,
%
Q!Q	#q	,,$	(((C  ;
A
jl;
A6
rvv	Arvv
jlK66 $	1#W	%tZ8	1bff+	j1	1bff+		2666r   