o
    Û­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   úa/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/frame/methods/test_info.pyÚduplicate_columns_frame    s   þr   c                  C   s:   t ƒ } tƒ }| j|d� | ¡ }t 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Ú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ÚdtypeÚ
abcdefghijr   é
   Úcategoryr   Úd)r
   r   r   r   ÚintegersÚintr   ÚarrayÚlistÚtakeÚastypeÚisnar   r    )Únr$   r   Údf2r   r   r   Ú'test_info_categorical_column_smoke_test8   s    ÿÿür9   Úfixture_func_name)Ú	int_frameÚfloat_frameÚdatetime_framer   Úfloat_string_framec                 C   sP   |  | ¡}tƒ }|j|d� | ¡  ¡ }t|ƒdksJ ‚tƒ }|j|dd� d S )Nr   r-   F©r   Úverbose)Úgetfixturevaluer   r    r!   Ú
splitlinesÚlen)r:   ÚrequestÚframer   r%   r   r   r   Útest_info_smoke_testI   s   
rF   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©r@   r   ÚBr   )r   Úreindexr    r
   )r<   r   r   r   r   Útest_info_smoke_test2^   s   rK   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|ƒ�* tƒ }|j|d� | ¡ }tƒ }|j||d� | ¡ }||ks4J ‚W d   ƒ d S 1 s?w   Y  d S )Nr   é   údisplay.max_info_columnsr   r?   )	r
   r   r   r   r   r   r   r    r!   )Únum_columnsÚmax_info_columnsr@   rE   Ú
io_defaultr%   Úio_explicitr&   r   r   r   Ú#test_info_default_verbose_selectionh   s   "÷rU   c            
      C   sÎ   t ƒ } d}d}ttj d¡ d|f¡ƒ}|jd| d� |  ¡ }d}||v s'J ‚|jd| d� |  d¡ |  	¡ }t
|ƒdks?J ‚t|ƒD ]!\}}||  krS|| k rdn qCd	|| › d	�}	| |	¡sdJ ‚qCd S )
Néé  rO   r   é   TrH   z- #     Column  Dtype  
---    ------  -----  r   ú )r   r
   r   r   r   r   r    r!   ÚseekÚ	readlinesrC   Ú	enumerateÚ
startswith)
r   r*   ÚstartrE   ÚresÚheaderÚlinesÚiÚlineÚline_nrr   r   r   Ú-test_info_verbose_check_header_separator_body€   s$   
€ýrd   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)rL   re   rf   rg   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)rV   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 s)w   Y  |dd… }|�^}	}
}}}|	|ksBJ ‚|
|ksHJ ‚||ksNJ ‚||ksTJ ‚dS )zETest header column, spacer, first line and last line in verbose mode.r   rW   T)r@   Úshow_countsr   Néþÿÿÿ)	r
   r   r   r   r   r   r    r!   rB   )r*   Ú
header_expÚseparator_expÚfirst_line_expÚlast_line_exprE   r   Ú	all_linesÚtabler_   Ú	separatorÚ
first_lineÚrestÚ	last_liner   r   r   Ú%test_info_verbose_with_counts_spacing–   s   ,þru   c                  C   sd   t dtddgdd�iƒ} tƒ }| j|d� | ¡ }t|  ¡  ¡ ƒ}t 	d|› d�¡}||ks0J ‚d S )	Nr   rN   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   øÿr|   c                  C   s²   t ƒ } ttj d¡ d¡ƒ}|j| d� t ƒ } |j| dd� |  ¡ }t| 	¡ ƒdks,J ‚|}t
ddƒ� t ƒ } |j| d� |  ¡ }||ksGJ ‚W d   ƒ d S 1 sRw   Y  d S )Nr   )rO   rh   r   rh   ©r   Úmax_colsr)   rP   )r   r
   r   r   r   r   r    r!   rC   rB   r   )Úior$   r%   r&   r   r   r   Útest_info_wideæ   s   "ür€   c                  C   sZ   t ƒ } tddggddgd�}|j| d� |  ¡  d¡}d|d ks#J ‚d	|d
 ks+J ‚d S )NrN   g       @r   r   r   Tz% 0   a       1 non-null      int64  
rO   z% 1   a       1 non-null      float64
é   )r   r
   r    r!   rB   )r   rE   r`   r   r   r   Ú0test_info_duplicate_columns_shows_correct_dtypesø   s   r‚   c            
   	   C   s¸   g d¢} i }d}t | ƒD ]\}}tj d¡jd|d� |¡||< qt|ƒ}tƒ }|j|d� | 	¡ }d}||v s:J ‚t | ƒD ]\}}d|d›d	|d›d
|d›d|› �}	|	|v sYJ ‚q>d S )N©r(   Úfloat64zdatetime64[ns]ztimedelta64[ns]Ú
complex128ÚobjectÚboolr-   r   ©r*   r   zY #   Column  Non-Null Count  Dtype          
---  ------  --------------  -----          rX   r/   z   z       z non-null     )
r[   r   r   r   r0   r5   r
   r   r    r!   )
ÚdtypesÚdatar7   ra   r+   r$   r   r^   r_   Únamer   r   r   Útest_info_shows_column_dtypes  s    	"ÿ"þrŒ   c               	   C   sÄ  t tj d¡ d¡ƒ} dD ]4\}}tddƒ�# tƒ }| j||d� | ¡ }t	| 
¡  d¡ƒ|ks2J ‚W d   ƒ n1 s<w   Y  qdD ]4\}}tdd	ƒ�# tƒ }| j||d� | ¡ }t	| 
¡  d¡ƒ|ksiJ ‚W d   ƒ n1 ssw   Y  qDd
D ]d\}}tddƒ�# tƒ }| j||d� | ¡ }t	| 
¡  d¡ƒ|ks J ‚W d   ƒ n1 sªw   Y  tdd	ƒ�# tƒ }| j||d� | ¡ }t	| 
¡  d¡ƒ|ksÐJ ‚W d   ƒ n1 sÚw   Y  q{d S )Nr   )r-   rO   ))rO   N©rO   F©é   TrR   r   r?   Ú
))r�   Nr�   rŽ   rO   ))r�   rO   )rO   r   r}   )r
   r   r   r   r   r   r   r    r!   rC   ÚstripÚsplit)r$   Úlen_r@   r   r^   r~   r   r   r   Útest_info_max_cols  s@   ü€ü€üü€÷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 s=J ‚|j|d	d� | 	¡  
¡ }d|d vsRJ ‚|j|dd� | 	¡  
¡ }t d
|d ¡siJ ‚|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�srJ ‚d S )Nrƒ   r-   r   rˆ   T)r   ry   zmemory usage: éÿÿÿÿFzmemory usage: [^+]+\+rO   )r(   r(   r(   r„   r)   r   rN   Úfoorw   ©ÚindexÚdeepzmemory usage: [^+]+$é   ©r™   rG   ©r˜   r   éè  ©rŠ   r˜   r   r   )r[   r   r   r   r0   r5   r
   r   r    r!   rB   ÚreÚmatchÚilocr   r   r†   ry   rz   rC   r˜   Únbytesr*   Úvaluesr   Úfrom_productÚrange)r‰   rŠ   r7   ra   r+   r$   r   r^   Údf_with_object_indexÚdf_sizeÚexp_sizeÚ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s!J ‚t dtdgtd�iƒ}|jdd� ¡ | ¡  ¡ ks<J ‚d S ©	Nr   rN   r–   rw   r—   T)r˜   r™   r›   ©r
   r   r†   ry   rz   r   ©r¦   Ú	df_objectr   r   r   Ú$test_info_memory_usage_deep_not_pypy•  ó   ÿ$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s!J ‚t dtdgtd�iƒ}|jdd� ¡ | ¡  ¡ ks<J ‚d S r­   r®   r¯   r   r   r   Ú test_info_memory_usage_deep_pypy¡  r²   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 s'J ‚d S )	NrN   r   r�   rG   rž   Tr›   r)   )	r
   r   r¤   r¥   ry   rz   Ú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sJ ‚t ƒ }tdtdƒttdƒtd�d�}|j|d� d| ¡ v s<J ‚t ƒ }tdtdƒttdƒd	d�d�}|j|d� | ratrad| ¡ vs`J ‚nd| ¡ v siJ ‚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� | rµtrµd| ¡ vs³J ‚d S d| ¡ v s½J ‚d S )NrN   Úab)rN   r   rW   ©r   r˜   r   ú+ÚABCrw   ÚstrrW   r–   Úbar)r   r
   r3   r    r!   r   r†   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s;J ‚| |ƒ| |ƒksEJ ‚| |ƒ| |ƒ dk sQJ ‚d S )Nc                 S   s   | j dd� ¡ S )NTr›   )ry   rz   )Úfr   r   r   ry   â  s   z>test_info_memory_usage_bug_on_multiindex.<locals>.memory_usager)   Ú20160101)ÚperiodsÚidÚdate)ÚnamesÚvaluer   r—   iÐ  )rC   r   r   r¤   r3   r   r
   r   r   r   r   Úunstackr£   r¢   )ry   ÚNÚMr˜   r$   Ú	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   Ú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
| r&tr&dnd› d�¡}||ks2J ‚d S )NrN   r   rW   )rN   r   rG   rI   r—   T)ri   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 sw   Y  | r'tr'd}ntr+dnd}t|dgd�}t ||¡ d S )Nr   r   r—   é   é   rš   r   )r
   ÚtmÚassert_produces_warningry   r   r   r   Ú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rtƒ rt  d| j› �¡ tddgddggƒ}tdd	ƒ� tƒ }|j	|d
� | 
¡ }W d   ƒ n1 sAw   Y  tƒ }|j	|d
� | 
¡ }||ksYJ ‚d S )NÚnumbaz0.61z&Segfaults on ARM platforms with numba rN   r   rW   r   zcompute.use_numbaTr   )ÚpytestÚ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)rO   rO   NF)rO   rO   TF)rO   rO   FFc              	   C   s¸   t dtdƒtdƒd� ddi¡}tj|jd< td| d|ƒ�5 tƒ �}|j||d� d	| 	¡ v |u s3J ‚W d   ƒ n1 s=w   Y  W d   ƒ d S W d   ƒ d S 1 sUw   Y  d S )
NrN   r-   rº   rx   )rN   rN   zdisplay.max_info_rowsrP   )r   ri   znon-null)
r
   r¥   r5   r   Únanr¡   r   r   r    r!   )Úrowr   ri   r%   r$   r   r   r   r   Útest_info_show_counts8  s    ÿþý"ýrà   )<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'   r9   ÚmarkÚparametrizerF   rK   rU   rd   ru   r|   r€   r‚   rŒ   r”   r«   Úskipifr±   Úxfailr³   r¸   rÀ   rÌ   rÏ   rÐ   rÖ   Ú
single_cpurÜ   rà   r   r   r   r   Ú<module>   s‚    $	
þ


þ

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