a
    é´«jF  ã                
   @   s0  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d	„ ƒZd
d„ Z dd„ Z!e	j" #dg d¢¡dd„ ƒZ$dd„ Z%e	j" #dg d¢¡dd„ ƒZ&dd„ Z'e	j" #dg d¢¡dd„ ƒZ(dd„ Z)d d!„ Z*d"d#„ Z+d$d%„ Z,d&d'„ Z-d(d)„ Z.e	j"j/ed*d+�d,d-„ ƒZ0e	j"j1e d.d+�d/d0„ ƒZ2e	j"j/ed1d+�d2d3„ ƒZ3d4d5„ Z4d6d7„ Z5d8d9„ Z6e	j"j1e d:d+�d;d<„ ƒZ7e	j"j1eƒ d=d+�d>d?„ ƒZ8e	j"j9d@dA„ ƒZ:e	j" #dBg dC¢g dD¢g dE¢g dF¢g dG¢g dH¢g¡dIdJ„ ƒZ;dS )Ké    )ÚStringION)Úascii_uppercase)Úusing_string_dtype)ÚHAS_PYARROWÚIS64ÚPYPYÚis_platform_arm)ÚCategoricalIndexÚ	DataFrameÚIndexÚ
MultiIndexÚSeriesÚ
date_rangeÚoption_context)ÚVersionc                   C   s   t tj d¡ d¡g d¢d�S )z&Dataframe with duplicate column names.é   )iÜ  é   )Úar   Úbr   ©Úcolumns)r
   ÚnpÚrandomÚdefault_rngÚstandard_normal© r   r   úc/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/frame/methods/test_info.pyÚduplicate_columns_frame    s    þr   c                  C   s:   t ƒ } tƒ }| j|d� | ¡ }t d¡}||ks6J ‚d S )N©Úbufzd        <class 'pandas.core.frame.DataFrame'>
        RangeIndex: 0 entries
        Empty DataFrame
)r
   r   ÚinfoÚgetvalueÚtextwrapÚdedent)Údfr   ÚresultÚexpectedr   r   r   Útest_info_empty)   s    ÿr'   c               	   C   sœ   d} t dtj d¡jd| td�iƒ}tt tdƒ¡ 	tj d¡jdd| td�¡ƒ 
d	¡|d	< | ¡  tƒ }|j|d
� ||d	 dk }tƒ }|j|d
� d S )NiÄ	  Úint64r   éd   )ÚsizeÚdtypeZ
abcdefghijr   é
   Úcategoryr   Úd)r
   r   r   r   ÚintegersÚintr   ÚarrayÚlistZtakeÚastypeZisnar   r    )Únr$   r   Zdf2r   r   r   Ú'test_info_categorical_column_smoke_test8   s     ÿÿür5   Úfixture_func_name)Z	int_frameÚfloat_frameZdatetime_framer   Zfloat_string_framec                 C   sP   |  | ¡}tƒ }|j|d� | ¡  ¡ }t|ƒdks8J ‚tƒ }|j|dd� d S )Nr   r,   F©r   Úverbose)Zgetfixturevaluer   r    r!   Ú
splitlinesÚlen)r6   ÚrequestÚframer   r%   r   r   r   Útest_info_smoke_testI   s    
r>   c                 C   sJ   t ƒ }| jdgd�jd|d� | jddgd�jd|d� tƒ j|d� d S )NÚAr   F©r9   r   ÚBr   )r   Zreindexr    r
   )r7   r   r   r   r   Útest_info_smoke_test2^   s    rB   z&num_columns, max_info_columns, verbose))r,   r)   T)r,   é   T)r,   r,   T)r,   é	   F)r,   é   Fc                 C   sŠ   t tj d¡ d| f¡ƒ}td|ƒ�R tƒ }|j|d� | ¡ }tƒ }|j||d� | ¡ }||kshJ ‚W d   ƒ n1 s|0    Y  d S )Nr   é   údisplay.max_info_columnsr   r8   )	r
   r   r   r   r   r   r   r    r!   )Znum_columnsÚmax_info_columnsr9   r=   Z
io_defaultr%   Zio_explicitr&   r   r   r   Ú#test_info_default_verbose_selectionh   s    rI   c            
      C   sÎ   t ƒ } d}d}ttj d¡ d|f¡ƒ}|jd| d� |  ¡ }d}||v sNJ ‚|jd| d� |  d¡ |  	¡ }t
|ƒdks~J ‚t|ƒD ]B\}}||  kr¦|| k r†n q†d	|| › d	�}	| |	¡s†J ‚q†d S )
Néé  rF   r   é   Tr@   z- #     Column  Dtype  
---    ------  -----  r   ú )r   r
   r   r   r   r   r    r!   ÚseekÚ	readlinesr;   Ú	enumerateÚ
startswith)
r   r*   Ústartr=   ÚresÚheaderÚlinesÚiÚlineZline_nrr   r   r   Ú-test_info_verbose_check_header_separator_body€   s     
rW   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)rC   rX   rY   rZ   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)rJ   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                 C   s¬   t tj d¡ d| f¡ƒ}tƒ �,}|jdd|d� | ¡  ¡ }W d  ƒ n1 sR0    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   rK   T)r9   Úshow_countsr   Néþÿÿÿ)	r
   r   r   r   r   r   r    r!   r:   )r*   Z
header_expZseparator_expZfirst_line_expZlast_line_expr=   r   Ú	all_linesÚtablerS   Ú	separatorÚ
first_lineÚrestÚ	last_liner   r   r   Ú%test_info_verbose_with_counts_spacing–   s    ,*rd   c                  C   sd   t dtddgdd�iƒ} tƒ }| j|d� | ¡ }t|  ¡  ¡ ƒ}t 	d|› d�¡}||ks`J ‚d S )	Nr   rE   r   Úi8©r+   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&   r   r   r   Útest_info_memoryÐ   s    øÿrk   c                  C   s°   t ƒ } ttj d¡ d¡ƒ}|j| d� t ƒ } |j| dd� |  ¡ }t| 	¡ ƒdksXJ ‚|}t
ddƒ�6 t ƒ } |j| d� |  ¡ }||ksŽJ ‚W d   ƒ n1 s¢0    Y  d S )Nr   )rF   r[   r   r[   ©r   Úmax_colsr)   rG   )r   r
   r   r   r   r   r    r!   r;   r:   r   )Úior$   r%   r&   r   r   r   Útest_info_wideæ   s    ro   c                  C   sZ   t ƒ } tddggddgd�}|j| d� |  ¡  d¡}d|d ksFJ ‚d	|d
 ksVJ ‚d S )NrE   g       @r   r   r   Tz% 0   a       1 non-null      int64  
rF   z% 1   a       1 non-null      float64
é   )r   r
   r    r!   r:   )rn   r=   rT   r   r   r   Ú0test_info_duplicate_columns_shows_correct_dtypesø   s    rq   c            
   	   C   s¸   g d¢} i }d}t | ƒD ](\}}tj d¡jd|d� |¡||< qt|ƒ}tƒ }|j|d� | 	¡ }d}||v stJ ‚t | ƒD ]6\}}d|d›d	|d›d
|d›d|› �}	|	|v s|J ‚q|d S )N©r(   Úfloat64zdatetime64[ns]ztimedelta64[ns]Z
complex128ÚobjectÚboolr,   r   ©r*   r   zY #   Column  Non-Null Count  Dtype          
---  ------  --------------  -----          rL   r.   z   z       z non-null     )
rO   r   r   r   r/   r3   r
   r   r    r!   )
ÚdtypesÚdatar4   rU   r+   r$   r   rR   rS   Únamer   r   r   Útest_info_shows_column_dtypes  s    	"ÿ"rz   c               	   C   sÌ  t tj d¡ d¡ƒ} dD ]h\}}tddƒ�F tƒ }| j||d� | ¡ }t	| 
¡  d¡ƒ|ksdJ ‚W d   ƒ q1 sx0    Y  qdD ]h\}}tdd	ƒ�F tƒ }| j||d� | ¡ }t	| 
¡  d¡ƒ|ksÒJ ‚W d   ƒ qˆ1 sæ0    Y  qˆd
D ]Ð\}}tddƒ�H tƒ }| j||d� | ¡ }t	| 
¡  d¡ƒ|k�sBJ ‚W d   ƒ n1 �sX0    Y  tdd	ƒ�H tƒ }| j||d� | ¡ }t	| 
¡  d¡ƒ|k�s¦J ‚W d   ƒ qö1 �s¼0    Y  qöd S )Nr   )r,   rF   ))rF   N©rF   F©é   TrH   r   r8   Ú
))r}   Nr{   r|   rF   ))r}   rF   )rF   r   rl   )r
   r   r   r   r   r   r   r    r!   r;   ÚstripÚsplit)r$   Zlen_r9   r   rR   rm   r   r   r   Útest_info_max_cols  s0    ::<r�   c                  C   sð  g d¢} i }d}t | ƒD ](\}}tj d¡jd|d� |¡||< qt|ƒ}tƒ }|j|dd� | 	¡  
¡ }d|d v szJ ‚|j|d	d� | 	¡  
¡ }d|d vs¤J ‚|j|dd� | 	¡  
¡ }t d
|d ¡sÒJ ‚|jd d …d d…f j|dd� | 	¡  
¡ }t d
|d ¡�rJ ‚g d¢} i }d}t | ƒD ]*\}}tj d¡jd|d� |¡||< �q,t|ƒ}| |_tddgitdgtd�d�}|j|dd� | 	¡  
¡ }t d
|d ¡�s²J ‚|j|dd� | 	¡  
¡ }t d|d ¡�sâJ ‚| ¡  ¡ }	t| ƒ| d |jj }
|	|
k�sJ ‚t |jj¡d }|t | ¡ ¡k�s>J ‚| ¡  ¡ |jdd� ¡ k�s`J ‚tddgdgd�jdd� tddgdgd�jj tdt dgtdƒg¡dgd�}|jj |jdd� |jjj |jdd� ¡ }|dk�sìJ ‚d S )Nrr   r,   r   rv   T)r   rh   zmemory usage: éÿÿÿÿFzmemory usage: [^+]+\+rF   )r(   r(   r(   rs   r)   r   rE   Úfoorf   ©ÚindexÚdeepzmemory usage: [^+]+$é   ©r†   r?   ©r…   r   éè  ©rx   r…   r   r   )rO   r   r   r   r/   r3   r
   r   r    r!   r:   ÚreÚmatchÚilocr   r   rt   rh   ri   r;   r…   Únbytesr*   Úvaluesr   Úfrom_productÚrange)rw   rx   r4   rU   r+   r$   r   rR   Údf_with_object_indexZdf_sizeZexp_sizeZsize_dfÚmemr   r   r   Útest_info_memory_usage@  sb    	" $"ÿ
r•   z'on PyPy deep=True doesn't change result)Úreasonc                  C   s|   t ddgitdgtd�d�} | jddd� ¡ | jdd� ¡ ksBJ ‚t dtdgtd�iƒ}|jdd� ¡ | ¡  ¡ ksxJ ‚d S ©	Nr   rE   rƒ   rf   r„   T)r…   r†   rˆ   ©r
   r   rt   rh   ri   r   ©r“   Z	df_objectr   r   r   Ú$test_info_memory_usage_deep_not_pypy•  s    ÿÿrš   z(on PyPy deep=True does not change resultc                  C   s|   t ddgitdgtd�d�} | jddd� ¡ | jdd� ¡ ksBJ ‚t dtdgtd�iƒ}|jdd� ¡ | ¡  ¡ ksxJ ‚d S r—   r˜   r™   r   r   r   Ú test_info_memory_usage_deep_pypy¡  s    ÿÿr›   z PyPy getsizeof() fails by designc                  C   sR   t dt dgtdƒg¡dgd�} | jdd� ¡ }|t | ¡ }t|ƒdk sNJ ‚d S )	NrE   r   rŠ   r?   r‹   Trˆ   r)   )	r
   r   r‘   r’   rh   ri   ÚsysÚ	getsizeofÚabs)r$   r”   Údiffr   r   r   Útest_usage_via_getsizeof­  s    ÿr    c                 C   s†  t ƒ }tdtdƒg d¢d�}|j|d� d| ¡ vs8J ‚t ƒ }tdtdƒttdƒtd�d�}|j|d� d| ¡ v sxJ ‚t ƒ }tdtdƒttdƒd	d�d�}|j|d� | rÂtrÂd| ¡ vsÒJ ‚nd| ¡ v sÒJ ‚t ƒ }tdtdƒt 	t
d
ƒt
d
ƒg¡d�}|j|d� d| ¡ v�sJ ‚t ƒ }tdtdƒt 	t
d
ƒddgg¡d�}|j|d� | �rpt�rpd| ¡ v�s‚J ‚nd| ¡ v �s‚J ‚d S )NrE   Úab)rE   r   rK   ©r   r…   r   ú+ÚABCrf   ÚstrrK   rƒ   Úbar)r   r
   r2   r    r!   r   rt   r   r   r‘   r’   )Úusing_infer_stringr   r$   r   r   r   Ú test_info_memory_usage_qualified¹  s8    ÿÿr¨   c                  C   s¦   dd„ } d}t tƒ}tjttƒtd|d�gddgd�}td	tj 	d
¡ 
|| ¡i|d�}| d¡}|jj|jjksvJ ‚| |ƒ| |ƒksŠJ ‚| |ƒ| |ƒ dk s¢J ‚d S )Nc                 S   s   | j dd� ¡ S )NTrˆ   )rh   ri   )Úfr   r   r   rh   â  s    z>test_info_memory_usage_bug_on_multiindex.<locals>.memory_usager)   Z20160101)ZperiodsÚidÚdate)ÚnamesÚvaluer   r„   iÐ  )r;   r   r   r‘   r2   r   r
   r   r   r   r   Zunstackr�   r�   )rh   ÚNÚMr…   r$   Z	unstackedr   r   r   Ú(test_info_memory_usage_bug_on_multiindexÞ  s    þÿ
r°   c                  C   s6   t ddgƒ} tt d¡| | d�}tƒ }|j|d� d S )Nr   r   )r   r   r‰   r   )r	   r
   r   Zzerosr   r    )Úidxr$   r   r   r   r   Útest_info_categorical÷  s    r²   zGH 36579: fail on 32-bit systemc                 C   sh   t ddgddgdœddgd�}tƒ }|jd|d	� | ¡ }t d
| rLtrLdnd› d�¡}||ksdJ ‚d S )NrE   r   rK   )rE   r   r?   rA   r„   T)r\   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&   r   r   r   Útest_info_int_columns   s    	÷ÿr³   zTODO(infer_string)c                 C   sx   t ddgd�}t d ¡� | ¡ }W d   ƒ n1 s60    Y  | rNtrNd}ntrVdnd}t|dgd�}t ||¡ d S )Nr   r   r„   é   é   r‡   r   )r
   ÚtmZassert_produces_warningrh   r   r   r   Zassert_series_equal)r§   r$   r%   r­   r&   r   r   r   Ú"test_memory_usage_empty_no_warning  s    &r·   c                  C   s¶   t  d¡} t| jƒtdƒkr4tƒ r4t  d| j› �¡ tddgddggƒ}tdd	ƒ�* tƒ }|j	|d
� | 
¡ }W d   ƒ n1 s‚0    Y  tƒ }|j	|d
� | 
¡ }||ks²J ‚d S )NÚnumbaz0.61z&Segfaults on ARM platforms with numba rE   r   rK   r   zcompute.use_numbaTr   )ÚpytestZimportorskipr   Ú__version__r   Úskipr
   r   r   r    r!   )r¸   r$   r   r%   r&   r   r   r   Útest_info_compute_numba%  s    
&r¼   z!row, columns, show_counts, result)é   r½   NT)r½   r½   TT)r½   r½   FF)rF   rF   NF)rF   rF   TF)rF   rF   FFc              	   C   s¦   t dtdƒtdƒd� ddi¡}tj|jd< td| d|ƒ�X tƒ �2}|j||d� d	| 	¡ v |u sfJ ‚W d   ƒ n1 sz0    Y  W d   ƒ n1 s˜0    Y  d S )
NrE   r,   r¢   rg   )rE   rE   zdisplay.max_info_rowsrG   )r   r\   znon-null)
r
   r’   r3   r   ÚnanrŽ   r   r   r    r!   )Úrowr   r\   r%   r$   r   r   r   r   Útest_info_show_counts8  s     ÿrÀ   )<rn   r   rŒ   Ústringr   rœ   r"   Únumpyr   r¹   Zpandas._configr   Zpandas.compatr   r   r   r   Zpandasr	   r
   r   r   r   r   r   Zpandas._testingZ_testingr¶   Zpandas.util.versionr   Zfixturer   r'   r5   ÚmarkZparametrizer>   rB   rI   rW   rd   rk   ro   rq   rz   r�   r•   Zskipifrš   Zxfailr›   r    r¨   r°   r²   r³   r·   Z
single_cpur¼   rÀ   r   r   r   r   Ú<module>   s€   $	
þ


þ

þ(

"U


%	


úþ