o
    Û­j¦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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_string_dtype)Úoption_context)ÚHAS_PYARROW)Ú	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ƒ o#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   úX/var/www/html/CropPilot/venv/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_raisesB   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_completionF   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>[   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   Úvaluesr6   r   r   r   Útest_display_max_dir_itemsY   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_framer6   Úmsgr   r   r   Útest_not_hashablel   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   Úcolnamer6   r   r   r   Ú+test_column_name_contains_unicode_surrogatev   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ÚidxrH   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      @©r9   ÚbÚc©r   r   rM   ©r   r   )r   ÚemptyrN   Úarange)r   r   Úfloat_string_framerG   r6   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   rD   Ú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   )Úsumrd   Úassert_series_equal)r   r   r%   rg   Ú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 rn   )Ú_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   rM   r   )r   r   r9   rZ   r[   Úd)r   r^   ÚdropnaÚT©r   r6   r   r   r   Útest_empty_nonzero½   s   


z$TestDataFrameMisc.test_empty_nonzeror6   r   r]   r,   c                 C   s   |j sJ ‚|jj sJ ‚d S rn   )r^   rz   r{   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	   rz   ÚdtypesÚvalue_countsr   rN   Údtyperd   rk   )r   r6   Útrl   rg   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   rM   é   rY   c                 S   s   || ƒ}|d u s
J ‚d S rn   r   )Úbaser%   rl   r   r   r   Ú_check_fì   s   z<TestDataFrameMisc.test_inplace_return_self.<locals>._check_fc                 S   ó   | j ddd�S )Nr9   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—   ÷   ó    r9   c                 S   r™   rš   )Údrop_duplicatesr•   r   r   r   r—   û   r�   c                 S   r‘   )NrZ   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—     ó    r[   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%   rx   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_cellrd   Ú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   rM   r   Úversionr,   ©r   Úattrsr¬   r:   ©r   r6   rl   r   r   r   Ú
test_attrs6  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   rM   Ú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Ê   rN   Úmay_share_memoryrD   rd   Úassert_cow_warningÚiloc)r   rÊ   r¾   Úusing_copy_on_writeÚwarn_copy_on_writeÚobjr7   rl   r   r   r   Útest_set_flagsG  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   é   rM   )r   r"   r#   ÚAttributeErrorÚ_constructor_expanddimrN   r_   Úreshape©r   r6   rH   r   r   r   Útest_constructor_expanddimz  s
   "ÿz,TestDataFrameMisc.test_constructor_expanddimc                 C   sJ   t ƒ }d}tjt|dd�� t |¡ W d   ƒ d S 1 sw   Y  d S )NzDataFrame._data is deprecatedF)r   Úcheck_stacklevel)r   rd   rº   ÚDeprecationWarningÚinspectÚ
getmembersrØ   r   r   r   Útest_inspect_getmembers„  s   ÿ"ýz)TestDataFrameMisc.test_inspect_getmembersN)#Ú__name__Ú
__module__Ú__qualname__r   r&   r(   r8   rE   rI   r"   ÚmarkÚxfailr   r   rL   rT   rX   ra   rh   rm   rq   rw   r|   Úparametrizer   r}   r‡   rŠ   r±   rÀ   rÅ   rÉ   rÓ   rÙ   rÞ   r   r   r   r   r
      sL    

ÿ
	


üþ
	@	
2
r
   )r¯   r   rÜ   ro   ÚnumpyrN   r"   Úpandas._configr   Úpandas._config.configr   Úpandas.compatr   Úpandasr2   r   r   r   r	   Úpandas._testingÚ_testingrd   r
   r   r   r   r   Ú<module>   s    