3
Ud0                 @   s`  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mZ d dlmZmZmZmZmZmZmZmZ d dljZe
jdd Zdd	 Zd
d Zdd Z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 Z(e
j&j'e d dd!d" Z)e
j&j'ed#dd$d% Z*d&d' Z+d(d) Z,d*d+ Z-e
j&j.e d,dd-d. Z/dS )/    )StringION)ascii_uppercase)IS64PYPY)CategoricalIndex	DataFrame
MultiIndexSeries
date_rangeoption_contextreset_option
set_optionc               C   s   t tj S )a  
    Fixture for DataFrame of floats with DatetimeIndex

    Columns are ['A', 'B', 'C', 'D']

                       A         B         C         D
    2000-01-03 -1.122153  0.468535  0.122226  1.693711
    2000-01-04  0.189378  0.486100  0.007864 -1.216052
    2000-01-05  0.041401 -0.835752 -0.035279 -0.414357
    2000-01-06  0.430050  0.894352  0.090719  0.036939
    2000-01-07 -0.620982 -0.668211 -0.706153  1.466335
    2000-01-10 -0.752633  0.328434 -0.815325  0.699674
    2000-01-11 -2.236969  0.615737 -0.829076 -1.196106
    ...              ...       ...       ...       ...
    2000-02-03  1.642618 -0.579288  0.046005  1.385249
    2000-02-04 -0.544873 -1.160962 -0.284071 -1.418351
    2000-02-07 -2.656149 -0.601387  1.410148  0.444150
    2000-02-08 -1.201881 -1.289040  0.772992 -1.445300
    2000-02-09  1.377373  0.398619  1.008453 -0.928207
    2000-02-10  0.473194 -0.636677  0.984058  0.511519
    2000-02-11 -0.965556  0.408313 -1.312844 -0.381948

    [30 rows x 4 columns]
    )r   tmZgetTimeSeriesData r   r   U/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/io/formats/test_info.pydatetime_frame   s    r   c              C   s   d} t dtjjd| di}ttjtdjtjjdd| djd|d< |j	  t
 }|j|d	 ||d d
k }t
 }|j|d	 d S )Ni	  int64d   )sizeZ
abcdefghijr   
   category)bufd)r   nprandomrandintr	   arraylistZtakeastypeZisnar   info)ndfr   Zdf2r   r   r   test_info_categorical_column6   s    $
r"   c             C   sH   t  }| j|d |j|d ttjjdd}|j  |jdd d S )N)r         F)verbose)r   r   r   r   r   randn)Zfloat_framer   ioframer   r   r   	test_infoG   s    r)   c        
      C   s   t  } d}d}ttjjd|}|jd| d | j }d}||ksFt|jd| d | jd | j	 }t
|dksvtxFt|D ]:\}}||kr||| k rd||  d}	|j|	stqW d S )	Ni  r#   r$   T)r%   r   z+ #    Column  Dtype  
---   ------  -----  r    )r   r   r   r   r&   r   getvalueAssertionErrorseek	readlineslen	enumerate
startswith)
r   r   startr(   resheaderlinesilineZline_nrr   r   r   test_info_verboseR   s     
r8   c              C   sd   t dtddgddi} t }| j|d |j }t| j j }tj	d| d}||ks`t
d S )	Na      i8)dtype)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sumtextwrapdedentr,   )r!   r   resultbytesexpectedr   r   r   test_info_memoryh   s    
rF   c              C   s   t  } ttjjdd}|j| d t  } |j| dd | j }t|j dksTt	|}t
dd t  } |j| d ||kst	td d S )Nr#   e   )r   )r   max_colsr   zdisplay.max_info_columns)r   r   r   r   r&   r   r+   r/   
splitlinesr,   r   r   )r'   r!   rsZxpr   r   r   test_info_wide~   s    
rK   c              C   s4   t  } ttjjddddddgd}|j| d d S )Ni     r9   b)columns)r   )r   r   r   r   r&   r   )r'   r(   r   r   r   test_info_duplicate_columns   s    rO   c              C   s^   t  } tddggddgd}|j| d | jd | j }d|d ksJtd	|d
 ksZtd S )Nr:   g       @r9   )rN   )r   r   z% 0   a       1 non-null      int64  
r#   z% 1   a       1 non-null      float64
   )r   r   r   r-   r.   r,   )r'   r(   r5   r   r   r   0test_info_duplicate_columns_shows_correct_dtypes   s    
rQ   c        
   	   C   s   dddddddg} i }d}x.t | D ]"\}}tjjd	|d
j|||< q$W t|}t }|j|d |j }d}||ks|t	xBt | D ]6\}}d|dd|dd|dd| }	|	|kst	qW d S )Nr   float64zdatetime64[ns]ztimedelta64[ns]
complex128objectboolr   r;   )r   )r   zY #   Column  Non-Null Count  Dtype          
---  ------  --------------  -----          r*   r   z   z       z non-null     )
r0   r   r   r   r   r   r   r   r+   r,   )
dtypesdatar    r6   r=   r!   r   r3   r4   namer   r   r   test_info_shows_column_dtypes   s(    "rY   c              C   s  t tjjdd} x\dD ]T\}}tdd< t }| j||d |j }t|j	 j
d	|ksbtW d Q R X qW x\dD ]T\}}tdd< t }| j||d |j }t|j	 j
d	|kstW d Q R X qvW xdD ]\}}tdd> t }| j||d
 |j }t|j	 j
d	|ks tW d Q R X tdd> t }| j||d
 |j }t|j	 j
d	|ksntW d Q R X  qW d S )Nr   r#   F   TZmax_info_columnsrL   )r   r%   
)r   rH   r#   Nr#   FrZ   T)r\   r]   r^   rZ   Nr#   FrZ   T)r_   r`   ra   rZ   r#   r#   rL   )rb   rc   )r   r   r   r&   r   r   r   r+   r/   stripsplitr,   )r!   Zlen_r%   r   r3   rH   r   r   r   test_info_max_cols   s0    ((&rf   c              C   s  dddddddg} i }d}x.t | D ]"\}}tjjd	|d
j|||< q$W t|}t }|j|dd |j j	 }d|d kst
|j|dd |j j	 }d|d  kst
|j|dd |j j	 }tjd|d! st
|jd d d df j|dd |j j	 }tjd|d"  st
ddddg} i }d}x0t | D ]$\}}tjjd	|d
j|||< q<W t|}| |_tddgidgd}|j|dd |j j	 }tjd|d# st
|j|dd |j j	 }tjd|d$ st
|j j }	t| | d |jj }
|	|
kst
tj|jjd }|tj|j ksBt
|j j |jddj ksdt
tddgdgdjdd tddgdgdjj tdtjdgtdgdgd}|jj |jdd |jjj |jddj }|dkst
d S )%Nr   rR   zdatetime64[ns]ztimedelta64[ns]rS   rT   rU   r   r;   )r   T)r   r?   zmemory usage: r:   Fzmemory usage: [^+]+\+r#   r   r9   foo)indexdeepzmemory usage: [^+]+$   )ri   A)rh   rN   i  )rW   rh   rN   r   rl   rl   rl   rl   rl   )r0   r   r   r   r   r   r   r   r+   rI   r,   rematchZilocrN   r?   r@   r/   rh   nbytesr   valuesr   from_productrange)rV   rW   r    r6   r=   r!   r   r3   df_with_object_indexZdf_sizeZexp_sizeZsize_dfmemr   r   r   test_info_memory_usage   sl      "
ru   z'on PyPy deep=True doesn't change result)reasonc              C   sl   t ddgidgd} | jdddj | jddj ks:tt ddgi}|jddj |j j kshtd S )Nr9   r:   rg   )rh   T)rh   ri   )ri   )r   r?   r@   r,   )rs   	df_objectr   r   r   $test_info_memory_usage_deep_not_pypy8  s
    rx   z(on PyPy deep=True does not change resultc              C   sl   t ddgidgd} | jdddj | jddj ks:tt ddgi}|jddj |j j kshtd S )Nr9   r:   rg   )rh   T)rh   ri   )ri   )r   r?   r@   r,   )rs   rw   r   r   r    test_info_memory_usage_deep_pypyD  s
    ry   z PyPy getsizeof() fails by designc              C   sR   t dtjdgtdgdgd} | jddj }|tj|  }t|dk sNt	d S )	Nr:   r9   i  rk   )rW   rh   rN   T)ri   r   )
r   r   rq   rr   r?   r@   sys	getsizeofabsr,   )r!   rt   Zdiffr   r   r   test_usage_via_getsizeofP  s
    r}   c              C   s  t  } tdtddddgd}|j| d d| j ks:tt  } tdtdtdd}|j| d d| j ksrtt  } tdtdtjtdtdgd}|j| d d| j kstt  } tdtdtjtdd	d
ggd}|j| d d| j kstd S )Nr:   abr;   r$   )rN   rh   )r   +ABCrg   bar)	r   r   r   r   r+   r,   r   rq   rr   )r   r!   r   r   r    test_info_memory_usage_qualified\  s(    "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j	|| i|d
}|j
d}|jj|jjkspt| || |kst| || | dk std S )Nc             S   s   | j ddj S )NT)ri   )r?   r@   )fr   r   r   r?   }  s    z>test_info_memory_usage_bug_on_multiindex.<locals>.memory_usager   Z20160101)Zperiodsiddate)namesvalue)rh   i  )r/   	uppercaser   rq   r   r
   r   r   r   r&   Zunstackrp   ro   r,   )r?   NMrh   r!   Z	unstackedr   r   r   (test_info_memory_usage_bug_on_multiindexy  s    
r   c              C   s6   t ddg} ttjd| | d}t }|j|d d S )Nr9   rM   r;   )rh   rN   )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   sT   t ddgddgdddgd} t }| jd|d	 |j }tjd
}||ksPtd S )Nr:   r;   r$   )r:   r;   rk   B)rh   T)Znull_countsr   af          <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: 48.0+ bytes
        )r   r   r   r+   rA   rB   r,   )r!   r   rC   rE   r   r   r   test_info_int_columns  s    r   )0r'   r   rm   stringr   r   rz   rA   Znumpyr   ZpytestZpandas.compatr   r   Zpandasr   r   r   r	   r
   r   r   r   Zpandas._testingZ_testingr   Zfixturer   r"   r)   r8   rF   rK   rO   rQ   rY   rf   ru   markZskipifrx   ry   r}   r   r   r   Zxfailr   r   r   r   r   <module>   s6   (

#U	