a
    oÝEb£,  ã                   @   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dd „ Zd!d"„ Zd#d$„ Zeƒ ejd%d&„ ƒƒZd'd(„ Zej d)g d*¢¡d+d,„ ƒZd-d.„ Zed/ƒd0d1„ ƒZ d2S )3Ú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   ú[/home/ja/django-apps/lartica_env/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s‚J ‚| d¡dks”J ‚| d¡dks¦J ‚| d¡dks¸J ‚| d¡|ju sÌJ ‚| d¡|ju sàJ ‚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 �s„0    Y  tjtdd�� |  d ¡ W d   ƒ n1 �s¾0    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 s€J ‚q€tdƒD ]}|t|ƒvsžJ ‚qžt| d¡t ƒsÈJ ‚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s†J ‚W d   ƒ n1 sš0    Y  tdd ƒ�, t||d�}dt|ƒv sÌJ ‚W d   ƒ n1 sà0    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   s¨   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 ‚t ƒ t dgd�t dgd	�t dg iƒg}|D ]}|js–J ‚|jjsˆJ ‚qˆd S )
N)r   r   rA   r   )r   r   r3   rI   rJ   ÚdrL   r(   )r   rM   ZdropnaÚT)r   r0   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 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   re   )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 ©NTrp   ©Zreset_indexrs   r   r   r   ru   ö   r8   r3   c                 S   s   | j dd�S rv   )Zdrop_duplicatesrs   r   r   r   ru   ú   r8   c                 S   s   | j ddd�S )NrI   Trp   )Zsort_valuesrs   r   r   r   ru   þ   r8   c                 S   s   | j dd�S rv   )Z
sort_indexrs   r   r   r   ru     r8   c                 S   s   | j ddd�S ©Nr   Trp   ©Zfillnars   r   r   r   ru     r8   c                 S   s   | j dddd�S ©Nr   r   Trp   ©Úreplacers   r   r   r   ru   
  r8   c                 S   s   | j ddidd�S ©Nr   r   Trp   ©Úrenamers   r   r   r   ru     r8   rJ   c                 S   s   | j ddd�S )NT)rq   Zdroprw   rs   r   r   r   ru     r8   c                 S   s   | j ddd�S rx   ry   rs   r   r   r   ru     r8   c                 S   s   | j dddd�S rz   r{   rs   r   r   r   ru     r8   c                 S   s   | j ddidd�S r}   r~   rs   r   r   r   ru   !  r8   )r   Úcopyrr   )r   Údataro   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 s–0    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_attrs8  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 ‚d|j|< |j| dks–J ‚|jd|d�}d	|j|< |j| dksÀJ ‚d S )
Nr   r   r   )r   r   r   )r�   T)r€   r�   re   )r   r   Z	set_flagsÚflagsr�   Ziloc)r   r�   r‡   Úobjr1   rW   r   r   r   Útest_set_flags@  s$    
ÿ
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_expanddima  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Ú
getmembers)r   r0   r   r   r   Útest_inspect_getmembersk  s    z)TestDataFrameMisc.test_inspect_getmembersN)!Ú__name__Ú
__module__Ú__qualname__r   r#   r%   r2   r;   r?   r@   rD   rG   rP   rT   rX   r\   ra   rd   rh   rk   r‚   r   ÚtdZcheck_file_leaksr‰   rŒ   r   ÚmarkZparametrizer�   r“   r   r–   r   r   r   r   r
      s6   
@
 
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   