U
    e.                     @   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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)option_context)
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ejde ed gd!ed gd"ed g igd#d$ Zd%d& Zd'd( Zd)d* Ze ejd+d, Zd-d. Zejd/d0d1d2gd3d4 Zd5d6 Z e!d7d8d9 Z"d:d; Z#d2S )<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   \/var/www/html/assets/scripts/venv/lib/python3.8/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 5 Q R X tjtd	d |d
 W 5 Q R X tjtdd |d  W 5 Q R X tjtdd | d  W 5 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 5 Q R X d S )Nzunhashable type: 'Index'r   )r    r!   	TypeErrorr   )r   r   r   r   r   test_column_contains_raisesE   s    z-TestDataFrameMisc.test_column_contains_raisesc                 C   s   t tdtdgtdd}tdD ]}|t|ks$tq$t|dtsNtt tdtdgtj	tt
ddd}tdD ]}|t|kstqtdD ]}|t|kstqt|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_completionI   s    z%TestDataFrameMisc.test_tab_completionc              	   C   s   dd t dD }t dt dg}t||d}dt|ks>tdt|ksNttdd2 t||d}d	t|ksvtd
t|kstW 5 Q R X tdd " t||d}dt|kstW 5 Q R X d S )Nc                 S   s   g | ]}d t | qS )a)str).0ir   r   r   
<listcomp>^   s     z@TestDataFrameMisc.test_display_max_dir_items.<locals>.<listcomp>i  r(   Za99Za100zdisplay.max_dir_itemsi,  Za299Za300Za419)ranger   r*   r   r   )r   r   valuesr0   r   r   r   test_display_max_dir_items\   s    z,TestDataFrameMisc.test_display_max_dir_itemsc              	   C   s\   t  }t dg}d}tjt|d t| W 5 Q R X tjt|d t| W 5 Q R X d S )Nr   zunhashable type: 'DataFrame'r   )r   r    r!   r%   hash)r   empty_framer0   msgr   r   r   test_not_hashableo   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colnamer0   r   r   r   +test_column_name_contains_unicode_surrogatey   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_index   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 5 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idxr=   r   r   r   test_get_agg_axis   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      @r3   bcr   r   r@   r   r   )r   emptyr   rA   arange)r   r   float_string_framer<   r0   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   r9   Z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   )sumrP   assert_series_equal)r   r   r#   rQ   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 }| D ]\}}|j|kstqd S rW   )Z_seriesitemsr   r   )r   rM   serieskvr   r   r   test_series_put_names   s    z'TestDataFrameMisc.test_series_put_namesc                 C   sd   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d S )	Nr   r   r@   )r   r   r3   rG   rH   d)r   rK   r   ZdropnaTr   r0   r   r   r   test_empty_nonzero   s    


z$TestDataFrameMisc.test_empty_nonzeror0   r   rJ   r(   c                 C   s   |j s
t|jj std S rW   )rK   r   ra   rb   r   r   r   test_empty_like   s    

z!TestDataFrameMisc.test_empty_likec                 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 dayrI   object)r   r   r	   ra   ZdtypesZvalue_countsr   rA   ZdtyperP   rT   )r   r0   trU   rQ   r   r   r   test_with_datetimelikes   s    


z)TestDataFrameMisc.test_with_datetimelikesc                 C   sF   t |}|d }d|d d < | D ]\}}|d | |ks$tq$d S )Nr   re   )r   r[   r   )r   r   cpr\   rE   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   r@      )r3   rG   rH   c                 S   s   || }|d kst d S rW   )r   )baser#   rU   r   r   r   _check_f   s    z<TestDataFrameMisc.test_inplace_return_self.<locals>._check_fc                 S   s   | j dddS )Nr3   Tinplace)	set_indexxr   r   r   <lambda>       z<TestDataFrameMisc.test_inplace_return_self.<locals>.<lambda>c                 S   s   | j ddS NTrp   Zreset_indexrs   r   r   r   ru      rv   r3   c                 S   s   | j ddS rw   )Zdrop_duplicatesrs   r   r   r   ru      rv   c                 S   s   | j dddS )NrG   Trp   )Zsort_valuesrs   r   r   r   ru     rv   c                 S   s   | j ddS rw   )Z
sort_indexrs   r   r   r   ru     rv   c                 S   s   | j dddS Nr   Trp   Zfillnars   r   r   r   ru   
  rv   c                 S   s   | j ddddS Nr   r   Trp   replacers   r   r   r   ru     rv   c                 S   s   | j ddiddS Nr   r   Trp   renamers   r   r   r   ru     rv   rH   c                 S   s   | j dddS )NT)rq   Zdroprx   rs   r   r   r   ru     rv   c                 S   s   | j dddS ry   rz   rs   r   r   r   ru     rv   c                 S   s   | j ddddS r{   r|   rs   r   r   r   ru   !  rv   c                 S   s   | j ddiddS r~   r   rs   r   r   r   ru   %  rv   )r   copyrr   )r   dataro   r#   r`   r   r   r   test_inplace_return_self   s:    "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 5 Q R X W 5 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.completerr   r   Zrun_coderP   assert_produces_warningr)   Z	CompleterZcompletions)r   ipframe_or_seriesr   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   r@   r   versionr(   )r   attrsr   r   r4   )r   r0   rU   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|tkrt|j|jstnt|d j|d jstd|j	|< |r|j	| dkstn|j	| dkstd|j	|< |jd|d}d	|j	|< |j	| dkstd S )
Nr   r   r   )r   r   r   )r   T)r   r   re   )
r   r   Z	set_flagsflagsr   r   rA   Zmay_share_memoryr9   Ziloc)r   r   r   Zusing_copy_on_writeobjr1   rU   r   r   r   test_set_flagsD  s2    

 
z TestDataFrameMisc.test_set_flagsc              	   C   sB   t  }d}tjt|d  |tdddd W 5 Q R X d S )Nz<'DataFrame' object has no attribute '_constructor_expanddim'r      r@   )r   r    r!   AttributeErrorZ_constructor_expanddimrA   rL   Zreshape)r   r0   r=   r   r   r   test_constructor_expanddimq  s    z,TestDataFrameMisc.test_constructor_expanddimZjinja2c              	   C   s*   t  }td  t| W 5 Q R X d S rW   )r   rP   r   inspect
getmembersrb   r   r   r   test_inspect_getmembers{  s    z)TestDataFrameMisc.test_inspect_getmembersc              	   C   s0   t dg}tt t|  W 5 Q R X d S )Nr   )r   rP   r   FutureWarningnext	iteritemsrb   r   r   r   #test_dataframe_iteritems_deprecated  s    
z5TestDataFrameMisc.test_dataframe_iteritems_deprecated)$__name__
__module____qualname__r   r$   r&   r2   r:   r>   r?   rC   rF   rN   rR   rV   rZ   r_   rc   r    markZparametrizer   rd   rh   rk   r   r   tdZcheck_file_leaksr   r   r   r   r   r   r   r   r   r   r   r
      sJ   
	


	
@
,

r
   )r   r   r   rX   numpyrA   r    Zpandas._config.configr   Zpandas.util._test_decoratorsutilZ_test_decoratorsr   r   r   Zpandasr-   r   r   r   r	   Zpandas._testingZ_testingrP   r
   r   r   r   r   <module>   s   