o
    �¨Êh—0  ã                   @   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
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)Úusing_pyarrow_string_dtype)Úoption_context)Ú	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e	j
jeƒ dd�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d-d.„ Zd/d0„ Zd1d2„ Ze	j
 d3g d4¢¡d5d6„ ƒZd7d8„ Z d9d:„ 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s'J ‚|jd d … }|j dks5J ‚d S )NÚAÚB)ÚnameÚpopÚloc)ÚselfÚfloat_frameÚsÚs2© r   úM/var/www/html/env/lib/python3.10/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s&J ‚|  d¡dks/J ‚| d¡dks8J ‚| d¡dksAJ ‚| d¡dksJJ ‚| d¡dksSJ ‚| d¡dks\J ‚| d¡|ju sfJ ‚| d¡|ju spJ ‚tjtdd�� |  d¡ W d   ƒ n1 s‡w   Y  tjtd	d�� | d
¡ W d   ƒ n1 s£w   Y  tjtdd�� | d ¡ W d   ƒ n1 s¿w   Y  tjtdd�� |  d ¡ W d   ƒ d S 1 sÜw   Y  d S )Nr   é   ÚindexÚrowsÚcolumnszNo axis named©Úmatché   zNo axis.*fooÚfoozNo axis.*None)Ú_get_axis_numberÚ_get_axis_nameÚ	_get_axisr   r   ÚpytestÚraisesÚ
ValueError)r   r   Úfr   r   r   Útest_get_axis#   s2   ÿÿÿ"ÿzTestDataFrameMisc.test_get_axisc                 C   s>   t jtdd�� |j|v  W d   ƒ d S 1 sw   Y  d S )Nzunhashable type: 'Index'r   )r!   r"   Ú	TypeErrorr   )r   r   r   r   r   Útest_column_contains_raises@   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ƒs'J ‚t tdƒtdƒgtj tt	ddƒƒ¡d�}tdƒD ]
}|t|ƒv sJJ ‚q@tdƒD ]
}|t|ƒvsYJ ‚qOt| d¡t ƒsdJ ‚d S )NÚabcdÚefghÚABCD©r   r
   ÚEFGH)
r   ÚlistÚdirÚ
isinstanceÚ__getitem__r   ÚpdÚ
MultiIndexÚfrom_tuplesÚzip)r   ÚdfÚkeyr   r   r   Útest_tab_completionD   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s'J ‚tddƒ� t||d�}d	t|ƒv s;J ‚d
t|ƒvsCJ ‚W d   ƒ n1 sMw   Y  tdd ƒ� t||d�}dt|ƒv sfJ ‚W d   ƒ d S 1 sqw   Y  d S )Nc                 S   s   g | ]}d t |ƒ ‘qS )Úa)Ústr)Ú.0Úir   r   r   Ú
<listcomp>Y   s    z@TestDataFrameMisc.test_display_max_dir_items.<locals>.<listcomp>i¤  r+   Úa99Úa100zdisplay.max_dir_itemsi,  Úa299Úa300Úa419)Úranger   r.   r   )r   r   Úvaluesr5   r   r   r   Útest_display_max_dir_itemsW   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 w   Y  tjt|d�� t|ƒ W d   ƒ d S 1 s<w   Y  d S )Nr   zunhashable type: 'DataFrame'r   )r   r!   r"   r&   Úhash)r   Úempty_framer5   Úmsgr   r   r   Útest_not_hashablej   s   

ÿ
"ÿz#TestDataFrameMisc.test_not_hashablezsurrogates not allowed)Úreasonc                 C   s6   d}t |g iƒ}|t|ƒvsJ ‚|jd |ksJ ‚d S )Nu   í ½r   )r   r.   r   )r   Úcolnamer5   r   r   r   Ú+test_column_name_contains_unicode_surrogatet   s   z=TestDataFrameMisc.test_column_name_contains_unicode_surrogatec                 C   sH   t tj d¡ d¡ƒ}t tj d¡ d¡ƒ}d|j_|jjd u s"J ‚d S )Nr   )r   é   r   )r   ÚnpÚrandomÚdefault_rngÚstandard_normalr   r   )r   Údf1Údf2r   r   r   Útest_new_empty_index}   s   z&TestDataFrameMisc.test_new_empty_indexc                 C   sr   |  d¡}||ju sJ ‚|  d¡}||ju sJ ‚d}tjt|d�� |  d¡ W d   ƒ d S 1 s2w   Y  d S )Nr   r   zAxis must be 0 or 1 \(got 2\)r   r   )Ú_get_agg_axisr   r   r!   r"   r#   )r   r   ÚcolsÚidxrG   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r*J ‚d S )N)g      ð?g       @g      @©r8   ÚbÚc©r
   r   rL   ©r   r
   )r   ÚemptyrM   Úarange)r   r   Úfloat_string_framerF   r5   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   rC   ÚreindexÚtmÚassert_almost_equal)r   r   Ú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   )Úaxisr   r   r   )Úsumrc   Ú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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 rm   )Ú_seriesÚitemsr   )r   r_   Ú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rJ ‚t ddgddgd� ¡ }|js)J ‚|jjs/J ‚d S )N)r   r   rL   r   )r   r   r8   rY   rZ   Úd)r   r]   ÚdropnaÚT©r   r5   r   r   r   Útest_empty_nonzero¹   s   


z$TestDataFrameMisc.test_empty_nonzeror5   r   r\   r+   c                 C   s   |j sJ ‚|jj sJ ‚d S rm   )r]   ry   rz   r   r   r   Útest_empty_likeÂ   s   

z!TestDataFrameMisc.test_empty_likec                 C   sT   t tddd�tddd�dœƒ}|j}|j ¡ }tt d¡didd�}t	 
||¡ d S )	NÚ20130101é
   )Úperiodsz1 dayr[   ÚobjectÚcount)r   )r   r   r   ry   ÚdtypesÚvalue_countsr   rM   Údtyperc   rj   )r   r5   Útrk   rf   r   r   r   Útest_with_datetimelikesÏ   s   

þÿ
z)TestDataFrameMisc.test_with_datetimelikesc                 C   s$   t |ƒ}d|jd< | |¡rJ ‚d S )Nr~   )r   r
   )r   r   Úequals)r   r   Úcpr   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   ÚbarÚbazÚqux)r   r   r   r   )r   r   rL   é   rX   c                 S   s   || ƒ}|d u s
J ‚d S rm   r   )Úbaser$   rk   r   r   r   Ú_check_fè   s   z<TestDataFrameMisc.test_inplace_return_self.<locals>._check_fc                 S   ó   | j ddd�S )Nr8   T©Úinplace)Ú	set_index©Úxr   r   r   Ú<lambda>ï   ó    z<TestDataFrameMisc.test_inplace_return_self.<locals>.<lambda>c                 S   ó   | j dd�S ©NTr‘   ©Úreset_indexr”   r   r   r   r–   ó   ó    r8   c                 S   r˜   r™   )Údrop_duplicatesr”   r   r   r   r–   ÷   rœ   c                 S   r�   )NrY   Tr‘   )Úsort_valuesr”   r   r   r   r–   û   r—   c                 S   r˜   r™   )Ú
sort_indexr”   r   r   r   r–   ÿ   rœ   c                 S   r�   ©Nr   Tr‘   ©Úfillnar”   r   r   r   r–     r—   c                 S   ó   | j dddd�S ©Nr   r   Tr‘   ©Úreplacer”   r   r   r   r–     ó    c                 S   ó   | j ddidd�S ©Nr   r   Tr‘   ©Úrenamer”   r   r   r   r–     ó    rZ   c                 S   s   | j ddd�S )NT)r’   Údroprš   r”   r   r   r   r–     r—   c                 S   r�   r    r¡   r”   r   r   r   r–     r—   c                 S   r£   r¤   r¥   r”   r   r   r   r–     r§   c                 S   r¨   r©   rª   r”   r   r   r   r–     r¬   )r   Úcopyr“   )r   Údatar�   r$   rw   r   r   r   Útest_inplace_return_selfá   s:   ÿz*TestDataFrameMisc.test_inplace_return_selfc              	   C   s´   t jddd� ddlm} |tu rd}nd}| |¡ tjd dd	��. |d
ƒ� t|j	 
dd¡ƒ W d   ƒ n1 s;w   Y  W d   ƒ d S W d   ƒ d S 1 sSw   Y  d S )NÚIPythonz6.0.0)Ú
minversionr   )Úprovisionalcompleterz/from pandas import DataFrame; obj = DataFrame()z5from pandas import Series; obj = Series(dtype=object)F)Úraise_on_extra_warningsÚignorezobj.r   )r!   ÚimportorskipÚIPython.core.completerr³   r   Úrun_cellrc   Úassert_produces_warningr-   Ú	CompleterÚ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s#J ‚d S )Nr
   r   rL   r   Úversionr+   ©r   Úattrsr«   r9   ©r   r5   rk   r   r   r   Ú
test_attrs2  s
   
zTestDataFrameMisc.test_attrsc                 C   sd   t dddgiƒ}|ji ksJ ‚ddh|jd< |jtd�}|j|jks$J ‚|jd |jd us0J ‚d S )Nr
   r   rL   ÚspamÚhamÚtagsr+   rÁ   rÃ   r   r   r   Útest_attrs_deepcopy:  s   z%TestDataFrameMisc.test_attrs_deepcopyÚallows_duplicate_labels)TFNc                 C   st  t dddgiƒ}d}|tu r|d }d}|j|d�}|d u r'|jjdu s&J ‚n|jj|u s/J ‚||us5J ‚|jjdu s=J ‚|tu rLt |j|j¡sKJ ‚nt |d j|d j¡sZJ ‚t 	|¡� d|j
|< W d   ƒ n1 sow   Y  |r€|j
| dksJ ‚n#|j
| dks‰J ‚t 	|¡� d|j
|< W d   ƒ n1 sžw   Y  |jd|d�}d	|j
|< |j
| dks¸J ‚d S )
Nr
   r   r   )r   r   r   )rÉ   T)r®   rÉ   r~   )r   r   Ú	set_flagsÚflagsrÉ   rM   Úmay_share_memoryrC   rc   Úassert_cow_warningÚiloc)r   rÉ   r½   Úusing_copy_on_writeÚwarn_copy_on_writeÚobjr6   rk   r   r   r   Útest_set_flagsC  s8   ÿÿÿ
z TestDataFrameMisc.test_set_flagsc                 C   sX   t ƒ }d}tjt|d�� | t d¡ ddd¡¡ W d   ƒ d S 1 s%w   Y  d S )Nz<'DataFrame' object has no attribute '_constructor_expanddim'r   é   rL   )r   r!   r"   ÚAttributeErrorÚ_constructor_expanddimrM   r^   Úreshape©r   r5   rG   r   r   r   Útest_constructor_expanddimv  s
   "ÿz,TestDataFrameMisc.test_constructor_expanddimc                 C   sT   t  d¡ tƒ }d}tjt|dd�� t |¡ W d   ƒ d S 1 s#w   Y  d S )NÚjinja2zDataFrame._data is deprecatedF)r   Úcheck_stacklevel)r!   r¶   r   rc   r¹   ÚDeprecationWarningÚinspectÚ
getmembersr×   r   r   r   Útest_inspect_getmembers€  s   
ÿ"ýz)TestDataFrameMisc.test_inspect_getmembersN)"Ú__name__Ú
__module__Ú__qualname__r   r%   r'   r7   rD   rH   r!   ÚmarkÚxfailr   rK   rS   rW   r`   rg   rl   rp   rv   r{   Úparametrizer   r|   r†   r‰   r°   r¿   rÄ   rÈ   rÒ   rØ   rÞ   r   r   r   r   r	      sH    

	


üþ
	@	
2
r	   )r®   r   rÜ   rn   ÚnumpyrM   r!   Úpandas._configr   Úpandas._config.configr   Úpandasr1   r   r   r   r   Úpandas._testingÚ_testingrc   r	   r   r   r   r   Ú<module>   s    