U
    ÎZj§(  ã                   @   sj   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dS )é    N)Ú
skip_if_no)Ú	DataFrameÚIndexÚSeriesÚ
date_rangec                '   @   sD  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-dIdJ„ Z.ej	 
dKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndog$¡ej	 
d/e/e0e1eg¡dpdq„ ƒƒZ2d3S )rÚ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   ú_/var/www/html/TRUCKING_PROJECT/venv/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ÚcodesÚ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©r0   r   r   )Úleveléd   )
r   Úobjectr   Ú	enumerater0   ÚuniqueÚ
isinstancer	   Úisidentifierr   )r   r0   r   Zdir_sr6   Ú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   rE   Úmsgr   r   r   Útest_not_hashablec   s    z TestSeriesMisc.test_not_hashablec                 C   s   t  |j|¡ d S ©N)r+   Zassert_contains_allr0   )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 )Nr9   r4   Úrows)Zaxisr0   r:   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 rO   )ÚpydocÚgetdocr   r0   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è  r:   ÚAÚBÚCz1/1/2000r   )Úcolumnsr0   c                 S   s   | |   ¡  S rO   )Úidxmax)rC   r   r   r   Úf�   s    z-TestSeriesMisc.test_ndarray_compat.<locals>.f)	r   rS   ÚrandomÚrandnr   ÚapplyÚmaxr+   rU   )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 )Nr1   r9   Zfloat64r;   )r   rS   ra   rb   Z	ones_likeÚranger+   rU   )r   r   re   rf   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 )Nr1   ÚF)Úorder)r   rS   ra   rb   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 )Nr9   r;   )r   rn   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   rh   Ú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   r9   Úabc)ÚnameÚversion)r   Úattrsr   )r   r   re   r   r   r   Ú
test_attrs£   s
    
zTestSeriesMisc.test_attrsZjinja2c              	   C   s2   t td�}tjtdd�� t |¡ W 5 Q R X d S )Nr   F)Zcheck_stacklevel)r   r>   r+   Úassert_produces_warningÚFutureWarningÚinspectÚ
getmembers©r   rE   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s8t‚d}t	j
t|d	�� |j W 5 Q R X d S )
Nr   r1   Z1s)Ústartr   Úfreq)rr   )r0   r2   z&'Series' object has no attribute 'foo'rF   )ÚpdZtimedelta_ranger   rS   ra   ÚnormalÚ__dict__Úkeysr   rH   rI   ÚAttributeErrorr2   )r   ZtdirE   rM   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 'ú'rF   )rH   rI   r…   Úgetattr)r   r‡   rP   rM   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éÐ  r9   r1   ©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�   r9   r1   r�   z*'Series' object has no attribute 'weekday'rF   )r   rH   rI   r…   r‹   rL   r   r   r   Ú1test_series_datetimelike_attribute_access_invalidÊ   s    z@TestSeriesMisc.test_series_datetimelike_attribute_access_invalidc              	   C   s0   t dgƒ}t t¡� t| ¡ ƒ W 5 Q R X d S )Nr9   )r   r+   ry   rz   ÚnextÚ	iteritemsr}   r   r   r   Ú test_series_iteritems_deprecatedÐ   s    
z/TestSeriesMisc.test_series_iteritems_deprecatedzkernel, has_numeric_only)ZskewT)ÚvarT)ÚallF)ÚprodT)ÚanyF)ZidxminF)ÚquantileF)r_   F)ÚminT)ZsemT)ZmeanT)ZnuniqueF)rd   T)rV   T)ÚcountF)ZmedianT)ZstdT)ZbackfillF)Ú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   s²  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�rj|dk�rd}tjt|d�� ||ddiŽ W 5 Q R X nZd|› d�}d|› d�}	tjt|d��. tjt	|	d�� ||ddiŽ W 5 Q R X W 5 Q R X nD||ddiŽ}
||ddiŽ}t
|t ƒ�r t |
|¡ n|
|k�s®t‚d S )Nr   r9   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)rF   Znumeric_onlyTrž   z;Calling Series.rank with numeric_only=True and dtype objectzCalling Series.z( with numeric_only=True and dtype objectzSeries.z  does not implement numeric_onlyF)r   r�   rH   rI   rJ   r>   r+   ry   rz   ÚNotImplementedErrorrA   rU   r   )r   ZkernelZhas_numeric_onlyr   rE   ÚargsÚmethodrM   Zwarn_msgÚerr_msgre   rf   r   r   r   Útest_numeric_onlyÕ   sP    ,

ÿ


ÿ$z TestSeriesMisc.test_numeric_only)3Ú__name__Ú
__module__Ú__qualname__r   r   r   r    r/   rH   ÚmarkZparametrizer+   ZmakeStringIndexZmakeCategoricalIndexr   ZmakeDateIndexZmakePeriodIndexZmakeTimedeltaIndexZmakeIntIndexZmakeUIntIndexZmakeFloatIndexrh   r�   Z
MultiIndexÚfrom_tuplesÚziprD   r   r>   rN   rQ   rW   rZ   rg   ri   rm   ro   rp   rs   rx   r   r~   r†   rŽ   r’   r“   r–   ÚboolÚintÚfloatr®   r   r   r   r   r      s°   
òþ





	
Üþ)r   )r{   rX   ÚnumpyrS   rH   Zpandas.util._test_decoratorsr   Zpandasr�   r   r   r   r   Zpandas._testingZ_testingr+   r   r   r   r   r   Ú<module>   s   