U
    ÎZjö.  ã                   @   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/TRUCKING_PROJECT/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s‚t‚| d¡dks”t‚| d¡dks¦t‚| d¡dks¸t‚| d¡|jksÌt‚| d¡|jksàt‚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s€t‚q€tdƒD ]}|t|ƒksžt‚qžt| d¡t ƒsÈt‚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s†t‚W 5 Q R X tdd ƒ�" t||d�}dt|ƒks¸t‚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r˜t |j|j¡s´t‚nt |d j|d j¡s´t‚d|j	|< |rÖ|j	| dksòt‚n|j	| dksèt‚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   