
    m*iF              
          S SK Jr  S SKrS SKJr  S SKrS SKrS SKrS SK	r	S SK
Jr  S SKJrJrJrJr  S SKJrJrJrJrJrJrJr  S SKJr  S SKJr  \	R<                  S 5       rS	 r S
 r!\	RD                  RG                  S/ SQ5      S 5       r$S r%\	RD                  RG                  S/ SQ5      S 5       r&S r'\	RD                  RG                  S/ SQ5      S 5       r(S r)S r*S r+S r,S r-S r.\	RD                  R_                  \SS9S 5       r0\	RD                  Rc                  \(       + SS9S  5       r2\	RD                  R_                  \S!S9S" 5       r3S# r4S$ r5S% r6\	RD                  Rc                  \(       + S&S9S' 5       r7\	RD                  Rc                  \" 5       S(S9S) 5       r8\	RD                  Rr                  S* 5       r:\	RD                  RG                  S+/ S,Q/ S-Q/ S.Q/ S/Q/ S0Q/ S1Q/5      S2 5       r;g)3    )StringION)ascii_uppercase)using_string_dtype)HAS_PYARROWIS64PYPYis_platform_arm)CategoricalIndex	DataFrameIndex
MultiIndexSeries
date_rangeoption_context)Versionc                  r    [        [        R                  R                  S5      R	                  S5      / SQS9$ )z&Dataframe with duplicate column names.   )i     )ar   br   columns)r   nprandomdefault_rngstandard_normal     d/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_info.pyduplicate_columns_framer        s1     
		a 00;$ r   c                      [        5       n [        5       nU R                  US9  UR                  5       n[        R
                  " S5      nX#:X  d   eg )Nbufzd        <class 'pandas.core.frame.DataFrame'>
        RangeIndex: 0 entries
        Empty DataFrame
)r   r   infogetvaluetextwrapdedent)dfr#   resultexpecteds       r   test_info_emptyr+   )   sJ    	B
*CGGG\\^F	H r   c                     Sn [        S[        R                  R                  S5      R	                  SU [
        S905      n[        [        R                  " [        S5      5      R                  [        R                  R                  S5      R	                  SSU [
        S95      5      R                  S	5      US	'   UR                  5         [        5       nUR                  US
9  XS	   S:H     n[        5       nUR                  US
9  g )Ni	  int64r   d   )sizedtype
abcdefghijr   
   categoryr"   d)r   r   r   r   integersintr   arraylisttakeastypeisnar   r$   )nr(   r#   df2s       r   'test_info_categorical_column_smoke_testr>   8   s    A	GRYY2215>>sRU>VW	XB
l#$))II!!!$--a!3-G	
 fZ	 zN
 GGI
*CGGG

^s"
#C
*CHHHr   fixture_func_name)	int_framefloat_framedatetime_framer    float_string_framec                     UR                  U 5      n[        5       nUR                  US9  UR                  5       R	                  5       n[        U5      S:  d   e[        5       nUR                  USS9  g )Nr"   r2   Fr#   verbose)getfixturevaluer   r$   r%   
splitlineslen)r?   requestframer#   r)   s        r   test_info_smoke_testrL   I   sg     ##$56E
*C	JJ3J\\^&&(Fv;
*C	JJ3J&r   c                     [        5       nU R                  S/S9R                  SUS9  U R                  SS/S9R                  SUS9  [        5       R                  US9  g )NAr   FrF   r#   Br"   )r   reindexr$   r   )rA   r#   s     r   test_info_smoke_test2rR   ^   sf    
*C&++Es+Cc
+00C0H Kr   z&num_columns, max_info_columns, verbose))r2   r.   T)r2      T)r2   r2   T)r2   	   F)r2      Fc                 v   [        [        R                  R                  S5      R	                  SU 45      5      n[        SU5         [        5       nUR                  US9  UR                  5       n[        5       nUR                  XbS9  UR                  5       nXW:X  d   e S S S 5        g ! , (       d  f       g = f)Nr      display.max_info_columnsr"   rE   )	r   r   r   r   r   r   r   r$   r%   )num_columnsmax_info_columnsrF   rK   
io_defaultr)   io_explicitr*   s           r   #test_info_default_verbose_selectionr]   h   s     bii++A.>>;?OPQE	24D	EZ


z
"$$&j

{
4'')!!! 
F	E	Es   AB**
B8c                     [        5       n SnSn[        [        R                  R	                  S5      R                  SU45      5      nUR                  SU S9  U R                  5       nSnXT;   d   eUR                  SU S9  U R                  S5        U R                  5       n[        U5      S:  d   e[        U5       H9  u  pxX's=::  a
  X!-   :  d  M  O  M  S	Xr-
   S	3n	UR                  U	5      (       a  M9   e   g )
N  rW   r      TrO   z- #     Column  Dtype  
---    ------  -----  r    )r   r   r   r   r   r   r$   r%   seek	readlinesrI   	enumerate
startswith)
r#   r/   startrK   resheaderlinesilineline_nrs
             r   -test_info_verbose_check_header_separator_bodyrm      s    
*CDEbii++A.>>4yIJE	JJtJ%
,,.C=F==	JJtJ%HHQKMMOEu:>>U#$$$!)A&G??7++++ $r   z>size, header_exp, separator_exp, first_line_exp, last_line_exp))r   $ #   Column  Non-Null Count  Dtype  $---  ------  --------------  -----  $ 0   0       3 non-null      float64z$ 3   3       3 non-null      float64)rS   rn   ro   rp   z$ 10  10      3 non-null      float64)e   z% #    Column  Non-Null Count  Dtype  z%---   ------  --------------  -----  z% 0    0       3 non-null      float64z% 100  100     3 non-null      float64)r_   z& #     Column  Non-Null Count  Dtype  z&---    ------  --------------  -----  z& 0     0       3 non-null      float64z& 1000  1000    3 non-null      float64)i'  z' #      Column  Non-Null Count  Dtype  z'---     ------  --------------  -----  z' 0      0       3 non-null      float64z' 10000  10000   3 non-null      float64c                 j   [        [        R                  R                  S5      R	                  SU 45      5      n[        5        nUR                  SSUS9  UR                  5       R                  5       nSSS5        WSS nUGtppnX:X  d   eX:X  d   eX:X  d   eX:X  d   eg! , (       d  f       N6= f)zETest header column, spacer, first line and last line in verbose mode.r   r`   T)rF   show_countsr#   N)	r   r   r   r   r   r   r$   r%   rH   )r/   
header_expseparator_expfirst_line_explast_line_exprK   r#   	all_linestablerh   	separator
first_linerest	last_lines                 r   %test_info_verbose_with_counts_spacingr      s    X bii++A.>>4yIJE	s

4Ts
;LLN--/	 

 aOE6;3Fz)%%%'''%%% 
s   0B$$
B2c                     [        S[        SS/SS905      n [        5       nU R                  US9  UR	                  5       n[        U R                  5       R                  5       5      n[        R                  " SU S35      nX$:X  d   eg )	Nr   rU   r   i8r0   r"   a      <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 2 entries, 0 to 1
    Data columns (total 1 columns):
     #   Column  Non-Null Count  Dtype
    ---  ------  --------------  -----
     0   a       2 non-null      int64
    dtypes: int64(1)
    memory usage: z bytes
    )
r   r   r   r$   r%   floatmemory_usagesumr&   r'   )r(   r#   r)   bytesr*   s        r   test_info_memoryr      s    	CAd34	5B
*CGGG\\^F"//#'')*E ' 		H r   c                     [        5       n [        [        R                  R	                  S5      R                  S5      5      nUR                  U S9  [        5       n UR                  U SS9  U R                  5       n[        UR                  5       5      S:  d   eUn[        SS5         [        5       n UR                  U S9  U R                  5       nX#:X  d   e S S S 5        g ! , (       d  f       g = f)Nr   )rW   rq   r"   rq   r#   max_colsr.   rX   )r   r   r   r   r   r   r$   r%   rI   rH   r   )ior(   r)   r*   s       r   test_info_wider      s    	B	299((+;;HE	FBGGGO	BGGSG![[]Fv  "#c)))H	2C	8Z
B!!!	 
9	8	8s   (1C##
C1c                      [        5       n [        SS//SS/S9nUR                  U S9  U R                  5       R	                  S5      nSUS   :X  d   eS	US
   :X  d   eg )NrU   g       @r   r   r"   Tz% 0   a       1 non-null      int64  
rW   z% 1   a       1 non-null      float64
   )r   r   r$   r%   rH   )r   rK   ri   s      r   0test_info_duplicate_columns_shows_correct_dtypesr      sg    	B3xj3*5E	JJ2JKKM$$T*E3uQx???3uQx???r   c            	         / SQn 0 nSn[        U 5       HC  u  p4[        R                  R                  S5      R	                  SUS9R                  U5      X'   ME     [        U5      n[        5       nUR                  US9  UR                  5       nSnX;   d   e[        U 5       H  u  p4SUS S	US S
US SU 3n	X;   a  M   e   g )Nr-   float64zdatetime64[ns]ztimedelta64[ns]
complex128objectboolr2   r   r/   r"   zY #   Column  Non-Null Count  Dtype          
---  ------  --------------  -----          ra   r4   z   z       z non-null     )
rd   r   r   r   r5   r:   r   r   r$   r%   )
dtypesdatar<   rj   r0   r(   r#   rg   rh   names
             r   test_info_shows_column_dtypesr     s    F D
Af%))''*33AA3>EEeL &	4B
*CGGG
,,.C	7  ==f%1Q%s1Q%wqe>%A{{ &r   c                     [        [        R                  R                  S5      R	                  S5      5      n S Hr  u  p[        SS5         [        5       nU R                  X2S9  UR                  5       n[        UR                  5       R                  S5      5      U:X  d   e S S S 5        Mt     S Hr  u  p[        SS	5         [        5       nU R                  X2S9  UR                  5       n[        UR                  5       R                  S5      5      U:X  d   e S S S 5        Mt     S
 H  u  p[        SS5         [        5       nU R                  X5S9  UR                  5       n[        UR                  5       R                  S5      5      U:X  d   e S S S 5        [        SS	5         [        5       nU R                  X5S9  UR                  5       n[        UR                  5       R                  S5      5      U:X  d   e S S S 5        M     g ! , (       d  f       GM  = f! , (       d  f       GM  = f! , (       d  f       N= f! , (       d  f       GM+  = f)Nr   )r2   rW   ))rW   NrW   F   TrZ   r   rE   
))r   Nr   r   rW   ))r   rW   )rW   r   r   )r   r   r   r   r   r   r   r$   r%   rI   stripsplit)r(   len_rF   r#   rg   r   s         r   test_info_max_colsr     s   	299((+;;GD	EB<.2*CGGG-,,.Csyy{((./4777	 32 = >.2*CGGG-,,.Csyy{((./4777	 32 > ,.2*CGGG/,,.Csyy{((./4777	 3 .2*CGGG/,,.Csyy{((./4777	 32 , 32 32 32 32s4   AHAH!;AH4(AI
H	!
H1	4
I	
I	c            	         / SQn 0 nSn[        U 5       HC  u  p4[        R                  R                  S5      R	                  SUS9R                  U5      X'   ME     [        U5      n[        5       nUR                  USS9  UR                  5       R                  5       nSUS   ;   d   eUR                  US	S9  UR                  5       R                  5       nSUS   ;  d   eUR                  USS9  UR                  5       R                  5       n[        R                  " S
US   5      (       d   eUR                  S S 2S S24   R                  USS9  UR                  5       R                  5       n[        R                  " S
US   5      (       a   e/ SQn 0 nSn[        U 5       HC  u  p4[        R                  R                  S5      R	                  SUS9R                  U5      X'   ME     [        U5      nXl        [        SS/0[        S/[         S9S9nUR                  USS9  UR                  5       R                  5       n[        R                  " S
US   5      (       d   eUR                  USS9  UR                  5       R                  5       n[        R                  " SUS   5      (       d   eUR#                  5       R%                  5       n	['        U 5      U-  S-  UR(                  R*                  -   n
X:X  d   e[        R,                  " UR                  R.                  5      S-   nU[        R,                  " UR#                  5       5      :X  d   eUR#                  5       R%                  5       UR#                  SS9R%                  5       :X  d   e[        SS/S/S9R#                  SS9  [        SS/S/S9R(                  R*                    [        S[0        R2                  " S/[5        S5      /5      S/S9nUR(                  R*                    UR#                  SS9  UR(                  R.                  R*                    UR#                  SS9R%                  5       nUS:  d   eg )Nr   r2   r   r   T)r#   r   zmemory usage: Fzmemory usage: [^+]+\+rW   )r-   r-   r-   r   r.   r   rU   foor   indexdeepzmemory usage: [^+]+$   r   rN   r   r     r   r   r   r   )rd   r   r   r   r5   r:   r   r   r$   r%   rH   rematchilocr   r   r   r   r   rI   r   nbytesr/   valuesr   from_productrange)r   r   r<   rj   r0   r(   r#   rg   df_with_object_indexdf_sizeexp_sizesize_dfmems                r   test_info_memory_usager   @  s   F D
Af%))''*33AA3>EEeL &	4B
*C GG$G'
,,.
#
#
%Cs2w&&& GG%G(
,,.
#
#
%C3r7***GG$G'
,,.
#
#
%C 88,c"g6666GGArrENCd3
,,.
#
#
%C xx0#b':::: 4FDAf%))''*33AA3>EEeL &	4BJ$cA3ZueWF7ST#D9
,,.
#
#
%C88,c"g6666#F;
,,.
#
#
%C88+SW5555 oo##%G6{Q"RXX__4H ggbjj''(1,Gbggboo/0000 ??  "boo4o&@&D&D&FFFF ause,999Eause,2299	j--ueDk.BCcU
B HHOOOO$OHHOO
//t/
$
(
(
*C7N7r   z'on PyPy deep=True doesn't change result)reasonc                  h   [        SS/0[        S/[        S9S9n U R                  SSS9R	                  5       U R                  SS9R	                  5       :  d   e[        S[        S/[        S905      nUR                  SS9R	                  5       UR                  5       R	                  5       :  d   eg 	Nr   rU   r   r   r   T)r   r   r   r   r   r   r   r   r   r   	df_objects     r   $test_info_memory_usage_deep_not_pypyr     s    $cA3ZueWF7ST))4)@DDF

+
+$
+
7
;
;
=	>	> 3uF ;<=I!!t!,002Y5K5K5M5Q5Q5SSSSr   z(on PyPy deep=True does not change resultc                  h   [        SS/0[        S/[        S9S9n U R                  SSS9R	                  5       U R                  SS9R	                  5       :X  d   e[        S[        S/[        S905      nUR                  SS9R	                  5       UR                  5       R	                  5       :X  d   eg r   r   r   s     r    test_info_memory_usage_deep_pypyr     s    $cA3ZueWF7ST))4)@DDF,,4,8<<>	?	? 3uF ;<=I!!t!,002i6L6L6N6R6R6TTTTr   z PyPy getsizeof() fails by designc            	          [        S[        R                  " S/[        S5      /5      S/S9n U R	                  SS9R                  5       nU[        R                  " U 5      -
  n[        U5      S:  d   eg )	NrU   r   r   rN   r   Tr   r.   )	r   r   r   r   r   r   sys	getsizeofabs)r(   r   diffs      r   test_usage_via_getsizeofr     sk    	j--ueDk.BCcU
B //t/
$
(
(
*C r""Dt9s??r   c           
      (   [        5       n[        S[        S5      / SQS9nUR                  US9  SUR	                  5       ;  d   e[        5       n[        S[        S5      [        [        S5      [        S9S9nUR                  US9  SUR	                  5       ;   d   e[        5       n[        S[        S5      [        [        S5      S	S9S9nUR                  US9  U (       a"  [        (       a  SUR	                  5       ;  d   eOSUR	                  5       ;   d   e[        5       n[        S[        S5      [        R                  " [        S
5      [        S
5      /5      S9nUR                  US9  SUR	                  5       ;  d   e[        5       n[        S[        S5      [        R                  " [        S
5      SS//5      S9nUR                  US9  U (       a"  [        (       a  SUR	                  5       ;  d   eg SUR	                  5       ;   d   eg )NrU   ab)rU   r   r`   r   r   r"   +ABCr   strr`   r   bar)r   r   r8   r$   r%   r   r   r   r   r   r   )using_infer_stringr#   r(   s      r    test_info_memory_usage_qualifiedr     s   
*C	1d4j		:BGGGclln$$$
*C	1d4jd5k0P	QBGGG#,,.   
*C	1d4jd5k0O	PBGGGkk#,,.(((clln$$$
*C		4:Z%<%<eAha=Q%R
B GGGclln$$$
*C		4:Z%<%<eAhPU=W%X
B GGGkk#,,.(((clln$$$r   c                     S n Sn[        [        5      n[        R                  " [	        [        5      [        SUS9/SS/S9n[        S[        R                  R                  S	5      R                  X-  5      0US
9nUR                  S5      nUR                  R                  UR                  R                  :X  d   eU " U5      U " U5      :  d   eU " U5      U " U5      -
  S:  d   eg )Nc                 <    U R                  SS9R                  5       $ )NTr   )r   r   )fs    r   r   >test_info_memory_usage_bug_on_multiindex.<locals>.memory_usage  s    ~~4~(,,..r   r.   20160101)periodsiddate)namesvaluer   r   i  )rI   r   r   r   r8   r   r   r   r   r   r   unstackr   r   )r   NMr   r(   	unstackeds         r   (test_info_memory_usage_bug_on_multiindexr     s    / 	AOA##	o	
:q ABVnE 
	"))''*::15AB%
B 

4 I99y//66666l95555 	"\"%55<<<r   c                      [        SS/5      n [        [        R                  " S5      X S9n[	        5       nUR                  US9  g )Nr   r   )r   r   r   r"   )r
   r   r   zerosr   r$   )idxr(   r#   s      r   test_info_categoricalr     s:    
C:
&C	288F#3	<B
*CGGGr   zGH 36579: fail on 32-bit systemc                     [        SS/SS/S.SS/S9n[        5       nUR                  SUS	9  UR                  5       n[        R
                  " S
U (       a  [        (       a  SOS S35      nX4:X  d   eg )NrU   r   r`   )rU   r   rN   rP   r   T)rs   r#   aR          <class 'pandas.core.frame.DataFrame'>
        Index: 2 entries, A to B
        Data columns (total 2 columns):
         #   Column  Non-Null Count  Dtype
        ---  ------  --------------  -----
         0   1       2 non-null      int64
         1   2       2 non-null      int64
        dtypes: int64(2)
        memory usage: z50.0z48.0+z bytes
        )r   r   r$   r%   r&   r'   r   )r   r(   r#   r)   r*   s        r   test_info_int_columnsr      s     
1v1a&)#s	<B
*CGG#G&\\^F	 "4vQ R	
	H r   zTODO(infer_string)c                 &   [        SS/S9n[        R                  " S 5         UR                  5       nS S S 5        U (       a  [        (       a  SnO[
        (       a  SOSn[        US/S9n[        R                  " WU5        g ! , (       d  f       NU= f)Nr   r   r         r   r   )r   tmassert_produces_warningr   r   r   r   assert_series_equal)r   r(   r)   r   r*   s        r   "test_memory_usage_empty_no_warningr     so     
#s	$B		#	#D	)" 
*kkdeG9-H68, 
*	)s   B
Bc                     [         R                  " S5      n [        U R                  5      [        S5      :X  a2  [	        5       (       a#  [         R
                  " SU R                   35        [        SS/SS//5      n[        SS	5         [        5       nUR                  US
9  UR                  5       nS S S 5        [        5       nUR                  US
9  UR                  5       nWU:X  d   eg ! , (       d  f       N@= f)Nnumbaz0.61z&Segfaults on ARM platforms with numba rU   r   r`   r   zcompute.use_numbaTr"   )pytestimportorskipr   __version__r	   skipr   r   r   r$   r%   )r   r(   r#   r)   r*   s        r   test_info_compute_numbar   %  s     (Eu  !WV_49J9J<U=N=N<OPQ	QFQF#	$B	+T	2j
C 
3
 *CGGG||~HX 
3	2s   *C,,
C:z!row, columns, show_counts, result)   r   NT)r   r   TT)r   r   FF)rW   rW   NF)rW   rW   TF)rW   rW   FFc                    [        S[        S5      [        S5      S9R                  SS05      n[        R                  UR
                  S'   [        SU SU5         [        5        nUR                  XRS9  S	UR                  5       ;   UL d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)
NrU   r2   r   r   )rU   rU   zdisplay.max_info_rowsrX   )r#   rs   znon-null)
r   r   r:   r   nanr   r   r   r$   r%   )rowr   rs   r)   r(   r#   s         r   test_info_show_countsr   8  s     
1eBiuRy	9	@	@!W	NBFFBGGDM	&@'
 Z3GGG5#,,.0V;;; 
 
 Z
 
s$   B0%(BB0
B-	)B00
B>)<r   r   r   stringr   r   r&   numpyr   r   pandas._configr   pandas.compatr   r   r   r	   pandasr
   r   r   r   r   r   r   pandas._testing_testingr   pandas.util.versionr   fixturer    r+   r>   markparametrizerL   rR   r]   rm   r   r   r   r   r   r   r   skipifr   xfailr   r   r   r   r   r   r   
single_cpur   r   r   r   r   <module>r
     sY    	 " 
    -     '  " 	'	' ,	"	",, D$'P&Q'P&$,"$@88DRj D!JKT LT t8$NOU PU D!CD E"%J=2 t8$EF G, %'0DE
- F
-  $ '

<

<r   