a
    j=ic.                     @   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/g d0d1d2 Zd3d4 Z e!d5d6d7 Z"d8d9 Z#d:S );TestDataFrameMiscc                 C   sn   |d }|j dksJ |d}|j dks.J |jd d df }|j dksNJ |jd d  }|j dksjJ d S )NAB)namepoploc)selffloat_framess2 r   l/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/pandas/tests/frame/test_api.pytest_getitem_pop_assign_name   s    
z.TestDataFrameMisc.test_getitem_pop_assign_namec                 C   s  |}| ddksJ | ddks(J | ddks:J | ddksLJ | ddks^J |ddkspJ |ddksJ |ddksJ |ddksJ |ddksJ |d|ju sJ |d|ju sJ tjtdd | d W d    n1 s0    Y  tjtd	d |d
 W d    n1 sJ0    Y  tjtdd |d  W d    n1 s0    Y  tjtdd | d  W d    n1 s0    Y  d S )Nr      indexrowscolumnszNo axis namedmatch   zNo axis.*foofoozNo axis.*None)Z_get_axis_numberZ_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|v  W d    n1 s.0    Y  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|v s$J q$t|dtsNJ t tdtdgtjtt	ddd}tdD ]}|t|v sJ qtdD ]}|t|vsJ qt|dt sJ d S )NabcdZefghABCDr   r   ZEFGH)
r   listdir
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|v s>J dt|vsNJ tdd< t||d}d	t|v svJ d
t|vsJ W d    n1 s0    Y  tdd , t||d}dt|v sJ W d    n1 s0    Y  d S )Nc                 S   s   g | ]}d t | qS )a)str).0ir   r   r   
<listcomp>^       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   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 d    n1 s@0    Y  tjt|d t| W d    n1 sv0    Y  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|vs J |jd |ks2J d S )Nu   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 u s<J d S )Nr      r   )r   nprandomZrandnr   r   )r   Zdf1Zdf2r   r   r   test_new_empty_index   s    z&TestDataFrameMisc.test_new_empty_indexc                 C   sp   | d}||ju sJ | d}||ju s0J d}tjt|d | d W d    n1 sb0    Y  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   colsidxr>   r   r   r   test_get_agg_axis   s    

z#TestDataFrameMisc.test_get_agg_axisc                 C   sX   t  }|jsJ |jrJ |jr$J t g dg ddtdd}|d= |jrTJ d S )N)g      ?g       @g      @r3   bcr   r   rA   r   r   )r   emptyrB   arange)r   r   float_string_framer=   r0   r   r   r   
test_empty   s    


 zTestDataFrameMisc.test_emptyc                 C   sF   t |t |jksJ |ddg j}|jddgdj}t|| d S )Nr   r   r(   )lenr   r:   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   )sumrR   assert_series_equal)r   r   r"   rS   resultr   r   r   test_axis_aliases   s    z#TestDataFrameMisc.test_axis_aliasesc                 C   s$   t tjsJ t tjs J d S N)pydocgetdocr   r   r   )r   r   r   r   test_class_axis   s    z!TestDataFrameMisc.test_class_axisc                 C   s*   |j }| D ]\}}|j|ksJ qd S rY   )Z_seriesitemsr   )r   rO   serieskvr   r   r   test_series_put_names   s    z'TestDataFrameMisc.test_series_put_namesc                 C   sb   t g d}|jrJ t dgdgd}|jr0J t ddgddgd }|jsRJ |jjs^J d S )N)r   r   rA   r   )r   r   r3   rI   rJ   d)r   rM   ZdropnaTr   r0   r   r   r   test_empty_nonzero   s    


z$TestDataFrameMisc.test_empty_nonzeror0   r   rL   r(   c                 C   s   |j s
J |jj sJ d S rY   )rM   rc   rd   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 dayrK   object)r   r   r	   rc   ZdtypesZvalue_countsr   rB   ZdtyperR   rV   )r   r0   trW   rS   r   r   r   test_with_datetimelikes   s    


z)TestDataFrameMisc.test_with_datetimelikesc                 C   sF   t |}|d }d|d d < | D ]\}}|d | |ks$J q$d S )Nr   rg   )r   r]   )r   r   cpr^   rF   valuer   r   r   test_deepcopy   s
    zTestDataFrameMisc.test_deepcopyc                 C   sD  t g dg 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 }|| | d S )N)r   barZbazZqux)r   r   r   r   )r   r   rA      rH   c                 S   s   || }|d u sJ d S rY   r   )baser"   rW   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>   r8   z<TestDataFrameMisc.test_inplace_return_self.<locals>.<lambda>c                 S   s   | j ddS NTrr   Zreset_indexru   r   r   r   rw      r8   r3   c                 S   s   | j ddS rx   )Zdrop_duplicatesru   r   r   r   rw      r8   c                 S   s   | j dddS )NrI   Trr   )Zsort_valuesru   r   r   r   rw     r8   c                 S   s   | j ddS rx   )Z
sort_indexru   r   r   r   rw     r8   c                 S   s   | j dddS Nr   Trr   Zfillnaru   r   r   r   rw   
  r8   c                 S   s   | j ddddS Nr   r   Trr   replaceru   r   r   r   rw     r8   c                 S   s   | j ddiddS Nr   r   Trr   renameru   r   r   r   rw     r8   rJ   c                 S   s   | j dddS )NT)rs   Zdropry   ru   r   r   r   rw     r8   c                 S   s   | j dddS rz   r{   ru   r   r   r   rw     r8   c                 S   s   | j ddddS r|   r}   ru   r   r   r   rw   !  r8   c                 S   s   | j ddiddS r   r   ru   r   r   r   rw   %  r8   )r   copyrt   )r   datarq   r"   rb   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u r(d}nd}||I d H  td J |d" t|j	
d	d
 W d    n1 sx0    Y  W d    n1 s0    Y  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_coderR   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J d|jd< |jtd}|jddiksFJ d S )Nr   r   rA   r   versionr(   )r   attrsr   r4   )r   r0   rW   r   r   r   
test_attrs<  s
    
zTestDataFrameMisc.test_attrsallows_duplicate_labels)TFNc                 C   s"  t dddgi}d}|tu r(|d }d}|j|d}|d u rN|jjdu s^J n|jj|u s^J ||usjJ |jjdu szJ |tu rt|j|jsJ nt|d j|d jsJ d|j|< |r|j| dksJ n|j| dksJ d|j|< |jd|d}d	|j|< |j| dksJ d S )
Nr   r   r   )r   r   r   )r   T)r   r   rg   )	r   r   Z	set_flagsflagsr   rB   Zmay_share_memoryr:   Ziloc)r   r   r   Zusing_copy_on_writeobjr1   rW   r   r   r   test_set_flagsD  s0    


z TestDataFrameMisc.test_set_flagsc                 C   sV   t  }d}tjt|d* |tdddd W d    n1 sH0    Y  d S )Nz<'DataFrame' object has no attribute '_constructor_expanddim'r      rA   )r   r   r    AttributeErrorZ_constructor_expanddimrB   rN   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 d    n1 s00    Y  d S rY   )r   rR   r   inspect
getmembersrd   r   r   r   test_inspect_getmembers{  s    z)TestDataFrameMisc.test_inspect_getmembersc                 C   sD   t dg}tt t|  W d    n1 s60    Y  d S )Nr   )r   rR   r   FutureWarningnext	iteritemsrd   r   r   r   #test_dataframe_iteritems_deprecated  s    
z5TestDataFrameMisc.test_dataframe_iteritems_deprecatedN)$__name__
__module____qualname__r   r#   r%   r2   r;   r?   r@   rD   rG   rP   rT   rX   r\   ra   re   r   markZparametrizer   rf   rj   rm   r   r   tdZcheck_file_leaksr   r   r   r   r   r   r   r   r   r   r   r
      sJ   
	


	
@
,

r
   )r   r   r   rZ   numpyrB   r   Zpandas._config.configr   Zpandas.util._test_decoratorsutilZ_test_decoratorsr   r   r   Zpandasr-   r   r   r   r	   Zpandas._testingZ_testingrR   r
   r   r   r   r   <module>   s   