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   e/var/www/html/Deteccion_Ine/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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sJ 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|* t }|j|d | }t }|j||d | }||ks4J W d    d S 1 s?w   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 s'J |jd| d | d | 	 }t
|dks?J t|D ]!\}}||  krS|| k rdn qCd	||  d	}	||	sdJ qCd 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 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   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s0J 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s,J |}t
dd t  } |j| d |  }||ksGJ W d    d S 1 sRw   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s#J d	|d
 ks+J 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 s:J t | D ]\}}d|dd	|dd
|dd| }	|	|v sYJ 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 ]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sJ W d    n1 sw   Y  tdd	# t }| j||d | }t	|
 d|ksJ W d    n1 sw   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  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 rJ g d} i }d}t | D ]\}}tjdjd|d|||< qt|}| |_tddgitdgtdd}|j|dd |	 
 }td
|d sJ |j|dd |	 
 }td|d sJ |  }	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 )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s!J t dtdgtdi}|jdd |  ks<J 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     $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 )	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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sJ t  }tdtdt	t
d
ddggd}|j|d | rtrd| vsJ d S d| v sJ 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s;J | || |ksEJ | || | dk sQJ 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
| r&tr&dnd d}||ks2J 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 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
   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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 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|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 )
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


%	


