B
    Z0d)                 @   s   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  m	Z
 d dlmZmZ d dlZd dlmZmZmZmZ d dlmZ G dd dZdS )    )deepcopyN)
async_mark
skip_if_no)	DataFrameSeries
date_rangetimedelta_rangec               @   s   e Z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dd Zdd Zdd Zdd Zdd Zdd  Zd!d" Ze ejd#d$ Zd%d& Zejejd'd(d)d*gd+d, Zd-d. Zed/d0d1 Z d*S )2TestDataFrameMiscc             C   sn   |d }|j dkst|d}|j dks.t|jd d df }|j dksNt|jd d  }|j dksjtd S )NAB)nameAssertionErrorpoploc)selffloat_framess2 r   M/var/www/html/venv/lib/python3.7/site-packages/pandas/tests/frame/test_api.pytest_getitem_pop_assign_name   s    
z.TestDataFrameMisc.test_getitem_pop_assign_namec          	   C   st  |}| ddkst| ddks(t| ddks:t| ddksLt| ddks^t|ddkspt|ddkst|ddkst|ddkst|ddkst|d|jkst|d|jksttjtdd | d W d Q R X tjtd	d |d
 W d Q R X tjtdd |d  W d Q R X tjtdd | d  W d Q R X d S )Nr      indexrowscolumnszNo axis named)match   zNo axis.*foofoozNo axis.*None)	Z_get_axis_numberr   Z_get_axis_nameZ	_get_axisr   r   pytestraises
ValueError)r   r   fr   r   r   test_get_axis&   s*    zTestDataFrameMisc.test_get_axisc          	   C   s(   t jtdd |j|k W d Q R X d S )Nzunhashable type: 'Index')r   )r   r   	TypeErrorr   )r   r   r   r   r   test_column_contains_raisesC   s    z-TestDataFrameMisc.test_column_contains_raisesc             C   s   t tdtdgtdd}x tdD ]}|t|ks&tq&W t|dtsRtt tdtdgtj	tt
ddd}x tdD ]}|t|kstqW x tdD ]}|t|kstqW t|dt std S )NabcdZefghZABCD)r   r
   ZEFGH)r   listdirr   
isinstance__getitem__r   pdZ
MultiIndexfrom_tupleszip)r   dfkeyr   r   r   test_tab_completionG   s    z%TestDataFrameMisc.test_tab_completionc          	   C   s\   t  }t dg}d}tjt|d t| W d Q R X tjt|d t| W d Q R X d S )Nr   zunhashable type: 'DataFrame')r   )r   r   r   r#   hash)r   empty_framer-   msgr   r   r   test_not_hashableZ   s    
z#TestDataFrameMisc.test_not_hashablec             C   s6   d}t |g i}|t|ks t|jd |ks2td S )Nu   r   )r   r'   r   r   )r   Zcolnamer-   r   r   r   +test_column_name_contains_unicode_surrogated   s    z=TestDataFrameMisc.test_column_name_contains_unicode_surrogatec             C   s@   t tjdd}t tjdd}d|j_|jjd ks<td S )Nr      r   )r   nprandomZrandnr   r   r   )r   Zdf1Zdf2r   r   r   test_new_empty_indexl   s    z&TestDataFrameMisc.test_new_empty_indexc          	   C   s\   | d}||jkst| d}||jks0td}tjt|d | d W d Q R X d S )Nr   r   zAxis must be 0 or 1 \(got 2\))r   r   )Z_get_agg_axisr   r   r   r   r   r    )r   r   colsidxr2   r   r   r   test_get_agg_axisr   s    

z#TestDataFrameMisc.test_get_agg_axisc             C   s\   t  }|jst|jrt|jr$tt dddgdddgdtdd	}|d
= |jrXtd S )Ng      ?g       @g      @abc)r
   r   r5   )r   r
   )r   emptyr   r6   arange)r   r   float_string_framer1   r-   r   r   r   
test_empty}   s    


$zTestDataFrameMisc.test_emptyc             C   sF   t |t |jkst|ddg j}|jddgdj}t|| d S )Nr
   r   )r   )lenr   r   valuesZreindextmZassert_almost_equal)r   r   Zarrexpectedr   r   r   test_len   s    zTestDataFrameMisc.test_lenc             C   sP   |}|j dd}|j dd}t|| |j dd}|j dd}t|| d S )Nr   )Zaxisr   r   r   )sumrE   assert_series_equal)r   r   r!   rF   resultr   r   r   test_axis_aliases   s    z#TestDataFrameMisc.test_axis_aliasesc             C   s$   t tjstt tjs td S )N)pydocgetdocr   r   r   r   )r   r   r   r   test_class_axis   s    z!TestDataFrameMisc.test_class_axisc             C   s.   |j }x"| D ]\}}|j|kstqW d S )N)Z_seriesitemsr   r   )r   rA   serieskvr   r   r   test_series_put_names   s    z'TestDataFrameMisc.test_series_put_namesc             C   s   t dddg}|jrtt dgdgd}|jr2tt ddgddgd }|jsTt|jjs`tt  t dgd	t dgd
t dg ig}x"|D ]}|jst|jjstqW d S )Nr   r   r5   )r   r   r<   r=   r>   d)r   )r   )r   r?   r   ZdropnaT)r   r-   Zempty_framesr   r   r   test_empty_nonzero   s    






z$TestDataFrameMisc.test_empty_nonzeroc             C   sP   t tdddtdddd}|j}|j }ttddi}t	
|| d S )NZ20130101
   )Zperiodsz1 day)r
   r   object)r   r   r   rU   ZdtypesZvalue_countsr   r6   ZdtyperE   rI   )r   r-   trJ   rF   r   r   r   test_with_datetimelikes   s    

z)TestDataFrameMisc.test_with_datetimelikesc             C   sJ   t |}|d }d|d d < x(| D ]\}}|d | |ks&tq&W d S )Nr
   rW   )r   rO   r   )r   r   cprP   r:   valuer   r   r   test_deepcopy   s
    zTestDataFrameMisc.test_deepcopyc             C   sP  t ddddgddddgdddd	gd
}dd }dd }|| | dd }||d| dd }|| | dd }|| | dd }|| | dd }|| | dd }|| | dd }|| | | d }dd }||dd | dd }|| | dd }|| | dd }|| | d S )Nr   barZbazZquxr   r   r   r5      )r<   r=   r>   c             S   s   || }|d kst d S )N)r   )baser!   rJ   r   r   r   _check_f   s    z<TestDataFrameMisc.test_inplace_return_self.<locals>._check_fc             S   s   | j dddS )Nr<   T)inplace)	set_index)xr   r   r   <lambda>       z<TestDataFrameMisc.test_inplace_return_self.<locals>.<lambda>c             S   s   | j ddS )NT)rb   )reset_index)rd   r   r   r   re      rf   r<   c             S   s   | j ddS )NT)rb   )Zdrop_duplicates)rd   r   r   r   re      rf   c             S   s   | j dddS )Nr=   T)rb   )Zsort_values)rd   r   r   r   re      rf   c             S   s   | j ddS )NT)rb   )Z
sort_index)rd   r   r   r   re      rf   c             S   s   | j dddS )Nr   T)rb   )fillna)rd   r   r   r   re      rf   c             S   s   | j ddddS )Nr   r   T)rb   )replace)rd   r   r   r   re      rf   c             S   s   | j ddiddS )Nr   r   T)rb   )rename)rd   r   r   r   re      rf   r>   c             S   s   | j dddS )NT)rb   Zdrop)rg   )rd   r   r   r   re      rf   c             S   s   | j dddS )Nr   T)rb   )rh   )rd   r   r   r   re     rf   c             S   s   | j ddddS )Nr   r   T)rb   )ri   )rd   r   r   r   re     rf   c             S   s   | j ddiddS )Nr   r   T)rb   )rj   )rd   r   r   r   re     rf   )r   copyrc   )r   datara   r!   rT   r   r   r   test_inplace_return_self   s8    &z*TestDataFrameMisc.test_inplace_return_selfc          
      s|   t jddd ddlm} |tkr(d}nd}||I d H  td , |d t|j	
d	d
 W d Q R X W d Q R X d S )NZIPythonz6.0.0)Z
minversionr   )provisionalcompleterz/from pandas import DataFrame; obj = DataFrame()z5from pandas import Series; obj = Series(dtype=object)ignorezobj.r   )r   ZimportorskipZIPython.core.completerrn   r   Zrun_coderE   assert_produces_warningr&   Z	CompleterZcompletions)r   ipframe_or_seriesrn   coder   r   r   test_tab_complete_warning  s    
z+TestDataFrameMisc.test_tab_complete_warningc             C   sJ   t dddgi}|ji kstd|jd< |jtd}|jddiksFtd S )Nr
   r   r5   r   version)r   )r   attrsr   rj   str)r   r-   rJ   r   r   r   
test_attrs#  s
    
zTestDataFrameMisc.test_attrsallows_duplicate_labelsTFNc             C   s   t dddgi}d}|tkr(|d }d}|j|d}|d krN|jjdks^tn|jj|ks^t||k	sjt|jjdksztd|j|< |j| dkst|jd|d}d	|j|< |j| dkstd S )
Nr
   r   r   )r   r   r   )ry   T)rk   ry   rW   )r   r   Z	set_flagsflagsry   r   Ziloc)r   ry   rr   objr.   rJ   r   r   r   test_set_flags+  s"    


z TestDataFrameMisc.test_set_flagsc          	   C   sB   t  }d}tjt|d  |tdddd W d Q R X d S )Nz<'DataFrame' object has no attribute '_constructor_expanddim')r      r5   )r   r   r   AttributeErrorZ_constructor_expanddimr6   r@   Zreshape)r   r-   r2   r   r   r   test_constructor_expanddimM  s    z,TestDataFrameMisc.test_constructor_expanddimZjinja2c          	   C   s*   t  }td  t| W d Q R X d S )N)r   rE   rp   inspect
getmembers)r   r-   r   r   r   test_inspect_getmembersW  s    z)TestDataFrameMisc.test_inspect_getmembers)!__name__
__module____qualname__r   r"   r$   r/   r3   r4   r8   r;   rB   rG   rK   rN   rS   rV   rZ   r]   rm   r   tdZcheck_file_leaksrt   rx   Z&skip_array_manager_not_yet_implementedr   markZparametrizer|   r   r   r   r   r   r   r   r	      s0   
@!
r	   )rk   r   r   rL   numpyr6   r   Zpandas.util._test_decoratorsutilZ_test_decoratorsr   r   r   Zpandasr*   r   r   r   r   Zpandas._testingZ_testingrE   r	   r   r   r   r   <module>   s   