
    bMhF              
          d dl mZ d dlZ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Z d dlmZmZmZmZ d dlmZmZmZmZmZmZmZ d dlmZ d dlmZ e	j        d             Zd	 Z d
 Z!e	j"        #                    dg d          d             Z$d Z%e	j"        #                    dg d          d             Z&d Z'e	j"        #                    dg d          d             Z(d Z)d Z*d Z+d Z,d Z-d Z.e	j"        /                    ed          d             Z0e	j"        1                    e d          d              Z2e	j"        /                    ed!          d"             Z3d# Z4d$ Z5d% Z6e	j"        1                    e d&          d'             Z7e	j"        1                     e            d(          d)             Z8e	j"        j9        d*             Z:e	j"        #                    d+g d,g d-g d.g d/g d0g d1g          d2             Z;dS )3    )StringION)ascii_uppercase)using_string_dtype)HAS_PYARROWIS64PYPYis_platform_arm)CategoricalIndex	DataFrameIndex
MultiIndexSeries
date_rangeoption_context)Versionc                      t          t          j                            d                              d          g d          S )z&Dataframe with duplicate column names.   )i     )ar   br   columns)r   nprandomdefault_rngstandard_normal     d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/frame/methods/test_info.pyduplicate_columns_framer        sE     
	a  00;;$$$   r   c                      t                      } t                      }|                     |           |                                }t	          j        d          }||k    sJ d S )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+   )   sd    	B
**CGGG\\^^F	 H Xr   c            
         d} t          dt          j                            d                              d| t
                    i          }t          t          j        t          d                    	                    t          j                            d                              dd| t
                                        
                    d	          |d	<   |                                 t                      }|                    |
           ||d	         dk             }t                      }|                    |
           d S )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	GRY22155>>sRU>VVW	X	XB
l##$$))I!!!$$--a!3-GG	
 	
  fZ	 zN
 GGIII
**CGGG
R
^s"
#C
**CHHHr   fixture_func_name)	int_framefloat_framedatetime_framer    float_string_framec                 8   |                     |           }t                      }|                    |           |                                                                }t          |          dk    sJ t                      }|                    |d           d S )Nr"   r2   Fr#   verbose)getfixturevaluer   r$   r%   
splitlineslen)r?   requestframer#   r)   s        r   test_info_smoke_testrL   I   s     ##$566E
**C	JJ3J\\^^&&((Fv;;
**C	JJ3J&&&&&r   c                    t                      }|                     dg                              d|           |                     ddg                              d|           t                                          |           d S )NAr   FrF   r#   Br"   )r   reindexr$   r   )rA   r#   s     r   test_info_smoke_test2rR   ^   s    
**C&&++Es+CCCc
++00C0HHH KKr   z&num_columns, max_info_columns, verbose))r2   r.   T)r2      T)r2   r2   T)r2   	   F)r2      Fc                    t          t          j                            d                              d| f                    }t          d|          5  t                      }|                    |           |                                }t                      }|                    ||           |                                }||k    sJ 	 d d d            d S # 1 swxY w Y   d S )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    bi++A..>>;?OPPQQE	24D	E	E 	" 	"ZZ


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

{G
444''))!!!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   A:CC!Cc                  L   t                      } d}d}t          t          j                            d                              d|f                    }|                    d|            |                                 }d}||v sJ |                    d|            |                     d           | 	                                }t          |          dk    sJ t          |          D ]8\  }}||cxk    r	||z   k     r#n d	||z
   d	}	|                    |	          sJ 9d S )
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      s6   
**CDEbi++A..>>4yIIJJE	JJtJ%%%
,,..C=FS====	JJtJ%%%HHQKKKMMOOEu::>>>>U## , ,4A$$$$$$$$$&!e)&&&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                    t          t          j                            d                              d| f                    }t                      5 }|                    dd|           |                                                                }ddd           n# 1 swxY w Y   |dd         }|^}	}
}}}|	|k    sJ |
|k    sJ ||k    sJ ||k    sJ dS )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 bi++A..>>4yIIJJE	 0s

4Ts
;;;LLNN--//	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 adOE6;3FIzD)Z%%%%''''%%%%%%s   ?BB"Bc                  `   t          dt          ddgd          i          } t                      }|                     |           |                                }t          |                                                                           }t          j	        d| d          }||k    sJ d S )	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334	5	5B
**CGGG\\^^F"//##''))**E		 		 		 		 H Xr   c                  d   t                      } t          t          j                            d                              d                    }|                    |            t                      } |                    | d           |                                 }t          |	                                          dk    sJ |}t          dd          5  t                      } |                    |            |                                 }||k    sJ 	 d d d            d S # 1 swxY w Y   d S )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      sM   	B	29((++;;HEE	F	FBGGGOOO	BGGSG!!![[]]Fv  ""##c))))H	2C	8	8 " "ZZ
B!!!!!	" " " " " " " " " " " " " " " " " "s   AD%%D),D)c                      t                      } t          ddggddg          }|                    |            |                                                     d          }d|d         k    sJ d	|d
         k    sJ d S )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      s    	B3xj3*555E	JJ2JKKMM$$T**E3uQx????3uQx??????r   c            	         g d} i }d}t          |           D ]O\  }}t          j                            d                              d|                              |          ||<   Pt          |          }t                      }|                    |           |	                                }d}||v sJ t          |           D ]\  }}d|dd	|dd
|dd| }	|	|v sJ d S )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%% M M5)''**33AA3>>EEeLLQ	4B
**CGGG
,,..C	7  S====f%%  5A1AAA1AAAqAAA%AAs{{{{{ r   c                     t          t          j                            d                              d                    } dD ]\  }}t          dd          5  t                      }|                     ||           |                                }t          |
                                                    d                    |k    sJ 	 d d d            n# 1 swxY w Y   dD ]\  }}t          dd	          5  t                      }|                     ||           |                                }t          |
                                                    d                    |k    sJ 	 d d d            n# 1 swxY w Y   d
D ]>\  }}t          dd          5  t                      }|                     ||           |                                }t          |
                                                    d                    |k    sJ 	 d d d            n# 1 swxY w Y   t          dd	          5  t                      }|                     ||           |                                }t          |
                                                    d                    |k    sJ 	 d d d            n# 1 swxY w Y   @d S )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   	29((++;;GDD	E	EB< 8 8g.22 	8 	8**CGGWG---,,..Csyy{{((..//477777		8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 > 8 8g.22 	8 	8**CGGWG---,,..Csyy{{((..//477777		8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 , 8 8h.22 	8 	8**CGGhG///,,..Csyy{{((..//477777		8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 .22 	8 	8**CGGhG///,,..Csyy{{((..//477777		8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	88 8sL   A4CC	C	;A4E<<F 	F 	 A4H!!H%	(H%	<A4J==K	K	c            	      

   g d} i }d}t          |           D ]O\  }}t          j                            d                              d|                              |          ||<   Pt          |          }t                      }|                    |d           |	                                
                                }d|d         v sJ |                    |d	           |	                                
                                }d|d         vsJ |                    |d           |	                                
                                }t          j        d
|d                   sJ |j        d d d df                             |d           |	                                
                                }t          j        d
|d                   rJ g d} i }d}t          |           D ]O\  }}t          j                            d                              d|                              |          ||<   Pt          |          }| |_        t          ddgit          dgt                               }|                    |d           |	                                
                                }t          j        d
|d                   sJ |                    |d           |	                                
                                }t          j        d|d                   sJ |                                                                }	t'          |           |z  dz  |j        j        z   }
|	|
k    sJ t          j        |j        j                  dz   }|t          j        |                                          k    sJ |                                                                |                    d                                          k    sJ t          ddgdg                              d           t          ddgdg          j        j         t          dt1          j        dgt5          d          g          dg          }|j        j         |                    d           |j        j        j         |                    d                                          }|dk    sJ d S )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%% M M5)''**33AA3>>EEeLLQ	4B
**C GG$G'''
,,..
#
#
%
%Cs2w&&&& GG%G(((
,,..
#
#
%
%C3r7****GG$G'''
,,..
#
#
%
%C 8,c"g66666GAAArrENCd333
,,..
#
#
%
%C x0#b'::::: 433FDAf%% M M5)''**33AA3>>EEeLLQ	4BBJ$cA3ZueWF7S7S7STTT#D999
,,..
#
#
%
%C8,c"g66666#F;;;
,,..
#
#
%
%C8+SW55555 oo##%%G6{{Q"RX_4Hh gbj'((1,Gbgboo//000000 ??  ""boo4o&@&@&D&D&F&FFFFF ause,,,999EEEause,,,299	j-ueDkk.BCCcU
 
 
B HOOOO$OHO
//t/
$
$
(
(
*
*C777777r   z'on PyPy deep=True doesn't change result)reasonc                     t          ddgit          dgt                              } |                     dd                                          |                     d                                          k    sJ t          dt          dgt                    i          }|                    d                                          |                                                                k    sJ d S 	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    $cA3ZueWF7S7S7STTT))4)@@DDFF

+
+$
+
7
7
;
;
=
=	> 	> 	> 	> 3uF ; ; ;<==I!!t!,,0022Y5K5K5M5M5Q5Q5S5SSSSSSSr   z(on PyPy deep=True does not change resultc                     t          ddgit          dgt                              } |                     dd                                          |                     d                                          k    sJ t          dt          dgt                    i          }|                    d                                          |                                                                k    sJ d S r   r   r   s     r    test_info_memory_usage_deep_pypyr     s    $cA3ZueWF7S7S7STTT))4)@@DDFF,,4,88<<>>	? 	? 	? 	? 3uF ; ; ;<==I!!t!,,0022i6L6L6N6N6R6R6T6TTTTTTTr   z PyPy getsizeof() fails by designc            	         t          dt          j        dgt          d          g          dg          } |                     d                                          }|t          j        |           z
  }t          |          dk     sJ d S )	NrU   r   r   rN   r   Tr   r.   )	r   r   r   r   r   r   sys	getsizeofabs)r(   r   diffs      r   test_usage_via_getsizeofr     s    	j-ueDkk.BCCcU
 
 
B //t/
$
$
(
(
*
*C r"""Dt99s??????r   c           
      >   t                      }t          dt          d          g d          }|                    |           d|                                vsJ t                      }t          dt          d          t          t          d          t                              }|                    |           d|                                v sJ t                      }t          dt          d          t          t          d          d	                    }|                    |           | r t          rd|                                vsJ nd|                                v sJ t                      }t          dt          d          t          j	        t          d
          t          d
          g                    }|                    |           d|                                vsJ t                      }t          dt          d          t          j	        t          d
          ddgg                    }|                    |           | r!t          rd|                                vsJ d S d|                                v sJ d S )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     sd   
**C	1d4jj				:	:	:BGGGcllnn$$$$
**C	1d4jjd5kk0P0P0P	Q	Q	QBGGG#,,..    
**C	1d4jjd5kk0O0O0O	P	P	PBGGG %k %#,,..(((((cllnn$$$$
**C		4::Z%<eAhha=Q%R%R
 
 
B GGGcllnn$$$$
**C		4::Z%<eAhhPU=W%X%X
 
 
B GGG %k %#,,..((((((cllnn$$$$$$r   c                  
   d } d}t          t                    }t          j        t	          t                    t          d|          gddg          }t          dt          j        	                    d	          
                    ||z            i|
          }|                    d          }|j        j        |j        j        k    sJ  | |           | |          k    sJ  | |           | |          z
  dk     sJ d S )Nc                 R    |                      d                                          S )NTr   )r   r   )fs    r   r   z>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 A ABVn  E 
	")''**::1q5AAB%
 
 
B 

4  I9y/66666<ll9555555 <	""\\"%5%55<<<<<<r   c                      t          ddg          } t          t          j        d          | |           }t	                      }|                    |           d S )Nr   r   )r   r   r   r"   )r
   r   r   zerosr   r$   )idxr(   r#   s      r   test_info_categoricalr     sT    
C:
&
&C	28F##3	<	<	<B
**CGGGr   zGH 36579: fail on 32-bit systemc                    t          ddgddgdddg          }t                      }|                    d|	           |                                }t	          j        d
| r	t          rdnd d          }||k    sJ d S )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PPvv
	 
	 
	 H Xr   zTODO(infer_string)c                 &   t          ddg          }t          j        d           5  |                                }d d d            n# 1 swxY w Y   | r
t          rd}nt
          rdnd}t          |dg          }t          j        ||           d S )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     s     
#s	$	$	$B		#D	)	) # #""# # # # # # # # # # # # # # # "k "!eG9---H68,,,,,s   AAAc                  6   t          j        d          } t          | j                  t          d          k    r*t	                      rt          j        d| j                    t          ddgddgg          }t          dd	          5  t                      }|	                    |
           |
                                }d d d            n# 1 swxY w Y   t                      }|	                    |
           |
                                }||k    sJ d S )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   %  sD    ((Eu !!WV__449J9J4PU=NPPQQQ	QFQF#	$	$B	+T	2	2    jj
C                             
 **CGGG||~~HXs   	9C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                    t          dt          d          t          d                                        ddi          }t          j        |j        d<   t          d| d|          5  t                      5 }|                    ||           d	|	                                v |u sJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )
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  sV    
1eBiiuRyy	9	9	9	@	@!W	N	NBFBGDM	&@'
 
 < < ZZ 	<3GGG555#,,..0V;;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<< < < < < < < < < < < < < < < < < <s6   (C72B6*C6B:	:C=B:	>CCC)<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	     s         				 " " " " " " 



       - - - - - -                                   ' ' ' ' ' '       "   	 	' '	 	'   ,  	 	" "	 	", , ,, D$ $ $' 'P& &Q' 'P&$  ," " "$@ @ @  88 8 8DR R Rj D!JKKT T LKT t8$NOOU U POU D!CDD  ED"% "% "%J= = =2   t8$EFF  GF, %%''0DEE
- 
- FE
-   $ '
 

< 
<
 

< 
< 
<r   