o
    ýòTi®/  ã                   @   s`   d dl Z d dlZd dlZd dlZd dlmZmZmZ d dl	m
Z G dd„ dƒZG dd„ dƒZdS )é    N)Ú	DataFrameÚ
MultiIndexÚSeriesc                   @   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ej dddg¡dd„ ƒZdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%S )&ÚTestMultiLevelc                 C   sø   |}|  d¡ ¡ }|j|jdd}|j dd d¡}t ||¡ |d j|jdd}|d j dd d¡}tj||dd d}tjt	|d	 |j
j ddd
}W d   ƒ n1 sYw   Y  | ¡ }|j|jdd}|j dd d¡j
}t ||¡ d S )NÚmonthé   ©ÚlevelÚsumÚAF©Zcheck_namesú+DataFrame.groupby with axis=1 is deprecated©Úmatch©Úaxis)Úcolumnsr	   )Úgroupbyr
   ÚreindexÚindexÚ	transformÚtmÚassert_frame_equalÚassert_series_equalÚassert_produces_warningÚFutureWarningÚT)ÚselfÚ/multiindex_year_month_day_dataframe_random_dataÚymdZ
month_sumsÚresultÚexpectedÚmsgÚgb© r$   ú\/var/www/html/evchargy.com/venv/lib/python3.10/site-packages/pandas/tests/test_multilevel.pyÚtest_reindex_level   s    ÿz!TestMultiLevel.test_reindex_levelc                 C   s0   |}|j ddg }|jddg }t ||¡ d S )Nr   é   ©ÚfooÚone©Úbarr*   )ÚilocÚlocr   r   )r   Ú multiindex_dataframe_random_dataÚframer!   Z	reindexedr$   r$   r%   Útest_reindex)   s   zTestMultiLevel.test_reindexc                 C   s¸   |}|j d d d… }| |¡}|r|j  |¡sJ ‚n|j |u s!J ‚|j| }|j  |¡s.J ‚|j}|j|d}|rB|j |¡sAJ ‚n|j|u sIJ ‚|jd d …|f }|j |¡sZJ ‚d S )Né
   ©r   )r   r   Úis_r.   Úequalsr   r   )r   r   Zusing_copy_on_writer   Z	new_indexÚchunkZymdTr$   r$   r%   Útest_reindex_preserve_levels0   s   

z+TestMultiLevel.test_reindex_preserve_levelsc           	      C   sb   |}|d }|j  d¡}|j|dd}| dd„ ¡}| dd„ ¡}| |j ¡}tj||dd d S )	Nr   r   F)Ú
group_keysc                 S   ó   | d S ©Né   r$   ©Úxr$   r$   r%   Ú<lambda>Q   ó    z7TestMultiLevel.test_groupby_transform.<locals>.<lambda>c                 S   r9   r:   r$   r<   r$   r$   r%   r>   R   r?   r   )r   Úget_level_valuesr   Úapplyr   r   r   r   )	r   r/   r0   ÚsZgrouperÚgroupedZappliedr!   r    r$   r$   r%   Útest_groupby_transformI   s   z%TestMultiLevel.test_groupby_transformc                 C   s\   t dgdgdggdgdgdggg d¢d}ttj d¡ d¡gg d	¢|d
}|jdd d S )Nr)   r,   Úbazr   )r*   ÚtwoÚthree©ÚlevelsÚcodesÚnamesr;   é   ©ÚaÚbÚcÚd)r   r   rG   r   )r   r   ÚnpÚrandomÚdefault_rngr   )r   ÚmidxÚdfr$   r$   r%   Útest_groupby_cornerV   s   ýýz"TestMultiLevel.test_groupby_cornerc                 C   s¤   t  g d¢¡}tg d¢g d¢g|d}|jdd|j dd„ ¡ }d	}tjt|d
 |j	ddd}W d   ƒ n1 s<w   Y  | 
¡ }|jddgk ¡ sPJ ‚d S )N))Úf1Ús1)rX   Ús2)Úf2rY   )r[   rZ   )Úf3rY   )r\   rZ   )r   r;   r'   rL   é   é   )é   é   é	   r2   é   é   r3   r   r   c                 S   s   | d dv S )Nr   )r[   r\   r$   )Úur$   r$   r%   r>   q   s    z:TestMultiLevel.test_groupby_level_no_obs.<locals>.<lambda>r   r   r   ©r   r	   r[   r\   )r   Úfrom_tuplesr   r.   r   Úmapr   r   r   r   r
   Úall)r   rU   rV   Zdf1r"   rC   r    r$   r$   r%   Útest_groupby_level_no_obsd   s   ÿ
ÿz(TestMultiLevel.test_groupby_level_no_obsc                 C   sJ   |}|d d… j }|d |d< t|jtƒsJ ‚|d |d k ¡ s#J ‚d S )Nr]   )éÐ  r   r_   )rj   r   r2   )r   Ú
isinstancer   r   rh   )r   r   r   rV   r$   r$   r%   Ú.test_setitem_with_expansion_multiindex_columnsy   s
   z=TestMultiLevel.test_setitem_with_expansion_multiindex_columnsc                 C   s¸   t g d¢t g d¢¡d}t g d¢t g d¢¡d}|| }|j |j¡}| |¡| |¡ }t ||¡ |d d d… |d d d…  }|j |j¡}| |¡| |¡ }t ||¡ d S )N)r   r;   r'   ))r   r   )r   r;   ©ÚBr'   ©Údatar   )rL   r]   r^   ))ÚZr   )rq   r;   rm   éÿÿÿÿ)r   r   rf   r   Úunionr   r   r   )r   r=   ÚyÚresZ	exp_indexÚexpr$   r$   r%   Útest_alignmentƒ   s   ÿÿzTestMultiLevel.test_alignmentc                 C   sš   |}|j ddgd ¡ }|j d¡}|j d¡}|  ||g¡ ¡ }tj||dd |jj|jjd d… ks7J ‚|j |jjd d… d ¡ }t ||¡ d S )Nr   r   r   Fr   r;   )r   Úmeanr   r@   r   r   rK   )r   r   r   r    Zk1Zk2r!   Úresult2r$   r$   r%   Útest_groupby_multilevel—   s   z&TestMultiLevel.test_groupby_multilevelc                 C   sD   t  g d¢¡}ttj d¡ d¡||d}| d¡|d< | ¡ }d S )N)r(   )r)   rF   r+   )r,   rF   r;   )rL   rL   )r   r   r   )ZTotalsÚ )	r   rf   r   rR   rS   rT   Ústandard_normalr
   Z_consolidate)r   r   rV   r$   r$   r%   Útest_multilevel_consolidate¨   s   ÿÿz*TestMultiLevel.test_multilevel_consolidatec                 C   sþ  t g d¢ddggg d¢g d¢gd}ttj d¡ d¡|d	}ttj d¡ d
¡|d	}|d }|jd }|d d… }|j 	d¡|_t
 ||¡ t
 ||¡ tjtdd |d  W d   ƒ n1 sdw   Y  |jd }| d¡}|d d… }|j 	d¡|_t
 ||¡ t
 ||¡ t g d¢ddggg d¢g d¢gd}ttj d¡ d¡|d	}ttj d¡ d
¡|d	}|d }|jd }|d d… }|j 	d¡|_t
 ||¡ t
 ||¡ |jd }| d¡}|d d… }|j 	d¡|_t
 ||¡ t
 ||¡ d S )N)©r)   r,   r   )r)   rE   r   )r)   Úquxr   r   r   )r   r   r   r   r;   r;   )r   r   r   r   r   r   )rI   rJ   r;   r^   ©r   )r^   rL   r~   z^\(\('foo', 'bar', 0\), 2\)$r   )r~   r;   )©r)   r,   )r)   rE   )r)   r   r   )r   r   rR   rS   rT   r|   r   r.   r   Z	droplevelr   r   ÚpytestZraisesÚKeyErrorZxsr   )r   r   Zseriesr0   r    ry   r!   r$   r$   r%   Útest_level_with_tuples²   sN   þ

ÿ

þ


z%TestMultiLevel.test_level_with_tuplesc                 C   sº   |}|j ddgdd}|jg d¢ }t ||¡ |jj ddgddd}t ||j¡ |jddg }t ||¡ |d jddg }t ||d ¡ |jjd d …ddgf }t ||j¡ d S )	Nr)   r   r   r   )r   r   r;   r_   r`   ra   r   re   r   )r   r-   r   r   r   r.   r   )r   r/   r0   r    r!   r$   r$   r%   Ú$test_reindex_level_partial_selectionâ   s   z3TestMultiLevel.test_reindex_level_partial_selectionrQ   rL   c                 C   st   g d¢}t dgdgdg|gdœƒ}||jdk  |¡}| ¡ j}tdgdgdggg g g gg d¢d}t ||¡ d S )N)rN   rO   rP   r   r;   r'   rM   rH   )r   rN   r   Úfirstr   r   r   Zassert_index_equal)r   rQ   r8   rV   Úgr    r!   r$   r$   r%   Ú+test_empty_frame_groupby_dtypes_consistencyõ   s   
ÿz:TestMultiLevel.test_empty_frame_groupby_dtypes_consistencyc                 C   sR   g d¢}g d¢}t j|ddgd}t||d}| |j¡ ¡ }t|ƒdks'J ‚d S )N))Ú600809Z20061231©r‰   Z20070331)r‰   Z20070630rŠ   )Údemor‹   r‹   r‹   ZSTK_IDZRPT_Date)rK   r€   r'   )r   rf   r   r   r   r†   Úlen)r   Zidx_tpÚdtÚidxrB   r    r$   r$   r%   Útest_duplicate_groupby_issues  s   z,TestMultiLevel.test_duplicate_groupby_issuesc                 C   sP   ddgg}ddt jfdg}t|t |¡d}|jjj}|jjj}t 	||¡ d S )Nr=   r   rN   rO   )rN   rP   ç        r3   )
rR   Únanr   r   rf   ZdtypesrN   rO   r   r   )r   rp   r   rV   r!   r    r$   r$   r%   Útest_subsets_multiindex_dtype  s   


z,TestMultiLevel.test_subsets_multiindex_dtypec                 C   sÜ   dt  ddd¡fdddœdt  ddd¡fdd	dœdt  ddd¡fdd
dœdt  ddd¡fdddœi}tj|dd}g d¢g d¢dœ}g d¢t  ddd¡t  ddd¡t  ddd¡t  ddd¡gg}t||d}t ||¡ d S )Nr   iâ  r'   r   r2   )r   rn   rL   r;   rb   rc   é   r   )Zorient)r   r;   r'   rL   )r2   rb   rc   r“   )r   r   r   r   ro   )ÚdatetimeÚdater   Ú	from_dictr   r   )r   Zdata_dicr    rp   r   r!   r$   r$   r%   Útest_datetime_object_multiindex  s    üüþ	z.TestMultiLevel.test_datetime_object_multiindexc                 C   sŠ   t dtjddgg d¢g d¢gg d¢d dd	g¡}d
|jd< t dtjddgg d¢g d¢ddtjd
ggg d¢d dd	g¡}t ||¡ d S )Nr   ç®Gáz®ó?ç=
×£p=@)r   ÚGr˜   r™   )r   ÚDg=
×£p½#@g®Gáz%@)Úpivot_0Úpivot_1Zcol_1Úcol_2r3   rœ   r   r   ))r   ÚFrž   rŸ   )r   rR   r‘   Z	set_indexÚatr   r   )r   rV   r!   r$   r$   r%   Útest_multiindex_with_na1  s*   ýú
ù
	üù
ø
z&TestMultiLevel.test_multiindex_with_naN)Ú__name__Ú
__module__Ú__qualname__r&   r1   r7   rD   rW   ri   rl   rw   rz   r}   r„   r…   r‚   ÚmarkZparametrizerˆ   r   r’   r—   r¡   r$   r$   r$   r%   r      s&    

0
	r   c                   @   s   e Zd ZdZdd„ ZdS )Ú
TestSortedz+everything you wanted to test about sortingc                 C   s¸   t g d¢g d¢gg d¢g d¢gƒ}tdtt|ƒƒi|dd}|jjdu s&J ‚| ¡ }|jjd	u s2J ‚tdg d
¢it  g d¢¡dd}|jt	j
dd…dd…f d d …f }t ||¡ d S )N)r   rn   ÚC)rP   rO   rN   )r   r   r;   r   r   r;   )r   r;   r   r   r   r;   ÚcolZint64)r   ZdtypeFT)r   rL   r]   r;   ))rn   rN   )rn   rP   )r§   rN   )r§   rO   rn   r§   rN   rP   )r   r   ÚrangerŒ   r   Zis_monotonic_increasingZ
sort_indexrf   r.   ÚpdZ
IndexSlicer   r   )r   rŽ   rV   Úsortedr!   r    r$   r$   r%   Útest_sort_non_lexsortedM  s    ÿ
ÿû$z"TestSorted.test_sort_non_lexsortedN)r¢   r£   r¤   Ú__doc__r¬   r$   r$   r$   r%   r¦   J  s    r¦   )r”   ÚnumpyrR   r‚   Zpandasrª   r   r   r   Zpandas._testingZ_testingr   r   r¦   r$   r$   r$   r%   Ú<module>   s      =