U
    ¾mœdŠ&  ã                   @   s†   d dl Z d dlZd dlZd dl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ej deeeg¡dd„ ƒZdS )	é    N)Ú
skip_if_no)Ú	DataFrameÚIndexÚSeriesÚ
date_rangec                '   @   s<  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zej	 
de d¡e d¡edddgd ƒe d¡e d¡e d¡e d¡e d¡e d¡e d¡eddgƒedd„ edƒD ƒƒej eddƒ¡ej eddddgdƒ¡g¡dd„ ƒZej	 
deed�edgƒg¡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/d0eg¡d1d2„ ƒZ%ej	 
d/d3d4g¡d5d6„ ƒZ&d7d8„ Z'e(d9ƒd:d;„ ƒZ)d<d=„ Z*ej	 
d>d?d@dAdBg¡dCdD„ ƒZ+dEdF„ Z,dGdH„ Z-ej	 
dIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmg$¡ej	 
d/e.e/e0eg¡dndo„ ƒƒZ1d3S )pÚTestSeriesMiscc                 C   s@   t tdƒƒ}dt|ƒkst‚dt|ƒks,t‚dt|ƒks<t‚d S )NÚabcdÚstrÚdtÚcat©r   ÚlistÚdirÚAssertionError©ÚselfÚs© r   úU/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/series/test_api.pyÚtest_tab_completion   s    z"TestSeriesMisc.test_tab_completionc                 C   sD   t tddd�ƒ}dt|ƒks t‚dt|ƒks0t‚dt|ƒks@t‚d S )Nú1/1/2015é   ©Úperiodsr
   r	   r   )r   r   r   r   r   r   r   r   Útest_tab_completion_dt   s    z%TestSeriesMisc.test_tab_completion_dtc                 C   sD   t tdƒdd�}dt|ƒks t‚dt|ƒks0t‚dt|ƒks@t‚d S )NZabbcdÚcategory©Údtyper   r	   r
   r   r   r   r   r   Útest_tab_completion_cat#   s    z&TestSeriesMisc.test_tab_completion_catc                 C   sJ   t tddd�ƒ d¡}dt|ƒks&t‚dt|ƒks6t‚dt|ƒksFt‚d S )Nr   r   r   r   r   r	   r
   )r   r   Úastyper   r   r   r   r   r   Útest_tab_completion_cat_str+   s    z*TestSeriesMisc.test_tab_completion_cat_strc                 C   s\   ddddddddd	d
dg}t tdƒƒ d¡}tdd„ |j ¡ D ƒƒ}t |tt|ƒƒ¡ d S )NÚ
categoriesÚcodesZorderedZset_categoriesZadd_categoriesZremove_categoriesZrename_categoriesZreorder_categoriesZremove_unused_categoriesZ
as_orderedZas_unorderedZaabbcder   c                 S   s   h | ]}|  d ¡s|’qS )Ú_)Ú
startswith)Ú.0Úrr   r   r   Ú	<setcomp>C   s     
 zFTestSeriesMisc.test_tab_completion_with_categorical.<locals>.<setcomp>)	r   r   r   Úsortedr   Ú__dir__ÚtmÚassert_almost_equalÚset)r   Z
ok_for_catr   Úresultsr   r   r   Ú$test_tab_completion_with_categorical2   s    õz3TestSeriesMisc.test_tab_completion_with_categoricalÚindexé
   ÚfooÚbarZbazé   TFc                 C   s   g | ]}d |› �‘qS )Úar   )r%   Úir   r   r   Ú
<listcomp>T   s     zTestSeriesMisc.<listcomp>ée   ZABCDZEFGHr   é   é   c                 C   sh   t |td�}t|ƒ}t|jjdd�ƒD ]<\}}|dk rVt|tƒrb| ¡ rb||ksbt	‚q&||ks&t	‚q&d S )N©r/   r   r   )Úleveléd   )
r   Úobjectr   Ú	enumerater/   ÚuniqueÚ
isinstancer	   Úisidentifierr   )r   r/   r   Zdir_sr5   Úxr   r   r   Útest_index_tab_completionF   s     z(TestSeriesMisc.test_index_tab_completionÚserr   c              	   C   s*   d}t jt|d�� t|ƒ W 5 Q R X d S )Nzunhashable type: 'Series'©Úmatch)ÚpytestÚraisesÚ	TypeErrorÚhash©r   rD   Úmsgr   r   r   Útest_not_hashablec   s    z TestSeriesMisc.test_not_hashablec                 C   s   t  |j|¡ d S ©N)r*   Zassert_contains_allr/   )r   Údatetime_seriesr   r   r   Útest_containsi   s    zTestSeriesMisc.test_containsc                 C   sj   t ddtjgƒ}t |jdd�|jdd�¡ | ¡  d¡dksBt‚| d¡dksTt‚| 	d¡dksft‚d S )Nr8   r3   Úrows)Zaxisr/   r9   r   )
r   ÚnpÚnanr*   Úassert_series_equalZdropnaÚsumr   Z_get_axis_numberZ_get_axis_namer   r   r   r   Útest_axis_aliasl   s
    zTestSeriesMisc.test_axis_aliasc                 C   s   t  tj¡st‚d S rN   )ÚpydocÚgetdocr   r/   r   )r   r   r   r   Útest_class_axiss   s    zTestSeriesMisc.test_class_axisc                 C   sP   t tj dd¡dddgtddd�d�}d	d
„ }| |¡}| ¡ }t ||¡ d S )Niè  r9   ÚAÚBÚCz1/1/2000r   )Úcolumnsr/   c                 S   s   | |   ¡  S rN   )Úidxmax)rB   r   r   r   Úf€   s    z-TestSeriesMisc.test_ndarray_compat.<locals>.f)	r   rR   ÚrandomÚrandnr   ÚapplyÚmaxr*   rT   )r   Ztsdfr_   ÚresultÚexpectedr   r   r   Útest_ndarray_compatx   s    
ý
z"TestSeriesMisc.test_ndarray_compatc                 C   s@   t tj d¡ƒ}t t |¡ƒ}t dtdƒdd�}t ||¡ d S )Nr0   r8   Zfloat64r:   )r   rR   r`   ra   Z	ones_likeÚranger*   rT   )r   r   rd   re   r   r   r   Útest_ndarray_compat_like_func‡   s    z,TestSeriesMisc.test_ndarray_compat_like_funcc                 C   s2   t tj d¡ƒ}t |jdd�|jjdd�¡ d S )Nr0   ÚF)Úorder)r   rR   r`   ra   r*   r+   ZravelÚvaluesr   r   r   r   Útest_ndarray_compat_ravelŽ   s    z(TestSeriesMisc.test_ndarray_compat_ravelc                 C   s   t td�}|jst‚d S )Nr   )r   r=   Úemptyr   )r   Zs_emptyr   r   r   Útest_empty_method“   s    
z TestSeriesMisc.test_empty_methodr   Zint64c                 C   s   t dg|d�}|jrt‚d S )Nr8   r:   )r   rm   r   )r   r   Zfull_seriesr   r   r   Útest_empty_method_full_series—   s    z,TestSeriesMisc.test_empty_method_full_seriesNZInt64c                 C   s"   t tdƒ|d�}|jdkst‚d S )Né	   r   )r   rg   Úsizer   )r   r   r   r   r   r   Útest_integer_series_sizeœ   s    z'TestSeriesMisc.test_integer_series_sizec                 C   sF   t ddgdd�}|ji kst‚d|jd< |d }|jddiksBt‚d S )Nr   r8   Úabc)ÚnameÚversion)r   Úattrsr   )r   r   rd   r   r   r   Ú
test_attrs¢   s
    
zTestSeriesMisc.test_attrsZjinja2c              	   C   s2   t td�}tjd dd�� t |¡ W 5 Q R X d S )Nr   F)Zcheck_stacklevel)r   r=   r*   Úassert_produces_warningÚinspectÚ
getmembers©r   rD   r   r   r   Útest_inspect_getmembers©   s    
z&TestSeriesMisc.test_inspect_getmembersc              	   C   s\   t jdddd�}ttjjdd�|d�}d|jks4t‚d}tj	t
|d	�� |j W 5 Q R X d S )
Nr   r0   Z1s)Ústartr   Úfreq)rq   )r/   r1   z&'Series' object has no attribute 'foo'rE   )ÚpdZtimedelta_ranger   rR   r`   ÚnormalÚ__dict__r   rG   rH   ÚAttributeErrorr1   )r   ZtdirD   rL   r   r   r   Útest_unknown_attribute°   s    z%TestSeriesMisc.test_unknown_attributeÚopÚyearÚdayÚsecondÚweekdayc              	   C   s4   d|› d�}t jt|d�� t||ƒ W 5 Q R X d S )Nz"'Series' object has no attribute 'ú'rE   )rG   rH   r‚   Úgetattr)r   r„   rO   rL   r   r   r   Ú&test_datetime_series_no_datelike_attrs¹   s    z5TestSeriesMisc.test_datetime_series_no_datelike_attrsc                 C   s>   t ddddœƒ}|jdkst‚|jdks,t‚|jdks:t‚d S )NéÐ  r8   r0   ©r…   Úmonthr†   )r   r…   r   rŽ   r†   r{   r   r   r   Ú)test_series_datetimelike_attribute_accessÀ   s    z8TestSeriesMisc.test_series_datetimelike_attribute_accessc              	   C   s8   t ddddœƒ}d}tjt|d�� |j W 5 Q R X d S )NrŒ   r8   r0   r�   z*'Series' object has no attribute 'weekday'rE   )r   rG   rH   r‚   rˆ   rK   r   r   r   Ú1test_series_datetimelike_attribute_access_invalidÇ   s    z@TestSeriesMisc.test_series_datetimelike_attribute_access_invalidzkernel, has_numeric_only)ZskewT)ÚvarT)ÚallF)ÚprodT)ÚanyF)ZidxminF)ÚquantileF)r^   F)ÚminT)ZsemT)ZmeanT)ZnuniqueF)rc   T)rU   T)ÚcountF)ZmedianT)ZstdT)ZbackfillF)ZrankT)Z
pct_changeF)ZcummaxF)ÚshiftF)ÚdiffF)ZcumsumF)ZcumminF)ZcumprodF)ÚfillnaF)ÚffillF)ÚpadF)ZbfillF)ÚsampleF)ÚtailF)ÚtakeF)ÚheadF)ÚcovF)ÚcorrFc           
   	   C   sT  t dddg|d�}|dkr"|f}nn|dkr2|f}n^|dkrB|f}nN|dkrPd}n@|d	kr^d
}n2|d	krld}n$|dkr~dgf}n|dkrŒd}nd}t||ƒ}|sÌd}tjt|d�� ||ddiŽ W 5 Q R X n„|tk�rd|› d�}tjt|d�� ||ddiŽ W 5 Q R X nD||ddiŽ}||ddiŽ}	t|	t ƒ�rBt ||	¡ n||	k�sPt	‚d S )Nr   r8   r   Zcorrwithr¢   r¡   Znth)r   rš   )T)r›   rŸ   r•   )g      à?r   zP(got an unexpected keyword argument 'numeric_only'|too many arguments passed in)rE   Znumeric_onlyTzSeries.z2 does not allow numeric_only=True with non-numericF)
r   rŠ   rG   rH   rI   r=   r@   r*   rT   r   )
r   ZkernelZhas_numeric_onlyr   rD   ÚargsÚmethodrL   rd   re   r   r   r   Útest_numeric_onlyÍ   sB    ,

ÿ
z TestSeriesMisc.test_numeric_only)2Ú__name__Ú
__module__Ú__qualname__r   r   r   r    r.   rG   ÚmarkÚparametrizer*   ZmakeStringIndexZmakeCategoricalIndexr   ZmakeDateIndexZmakePeriodIndexZmakeTimedeltaIndexZmakeIntIndexZmakeUIntIndexZmakeFloatIndexrg   r   Z
MultiIndexÚfrom_tuplesÚziprC   r   r=   rM   rP   rV   rY   rf   rh   rl   rn   ro   rr   rw   r   r|   rƒ   r‹   r�   r�   ÚboolÚintÚfloatr¥   r   r   r   r   r      s®   
òþ





	
Üþ)r   Ú	converterc              	   C   s4   t  t¡�  | tdgƒƒ| dƒks&t‚W 5 Q R X d S )Nr8   )r*   rx   ÚFutureWarningr   r   )r°   r   r   r   Útest_float_int_deprecated#  s    r²   )ry   rW   ÚnumpyrR   rG   Zpandas.util._test_decoratorsr   Zpandasr   r   r   r   r   Zpandas._testingZ_testingr*   r   r©   rª   r®   r¯   Úcomplexr²   r   r   r   r   Ú<module>   s     