o
    _~#g®/  ã                   @   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©Ú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ÚymdÚ
month_sumsÚresultÚexpectedÚmsgÚgb© r&   ú/var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/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#   Ú	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_r0   Úequalsr   r   )r   r   Úusing_copy_on_writer    Ú	new_indexÚchunkÚ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   r?   r@   r&   rB   r&   r&   r'   rD   R   rE   r   )r   Úget_level_valuesr   Úapplyr   r   r   r   )	r   r1   r2   ÚsÚgrouperÚgroupedÚ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ÚnamesrA   é   ©ÚaÚbÚcÚd)r   r   rO   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)r`   Ús2)Úf2ra   )rc   rb   )Úf3ra   )rd   rb   )r   rA   r)   rT   é   é   )é   é   é	   r5   é   é   r6   r   r   c                 S   s   | d dv S )Nr   )rc   rd   r&   )Úur&   r&   r'   rD   q   s    z:TestMultiLevel.test_groupby_level_no_obs.<locals>.<lambda>r   r   r   ©r   r	   rc   rd   )r   Úfrom_tuplesr   r0   r   Úmapr   r   r   r   r
   Úall)r   r]   r^   Údf1r$   rJ   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 )Nre   )éÐ  r   rg   )rs   r   r5   )r   Ú
isinstancer   r   rp   )r   r   r    r^   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   rA   r)   ))r   r   )r   rA   ©ÚBr)   ©Údatar   )rT   re   rf   ))ÚZr   )rz   rA   rv   éÿÿÿÿ)r   r   rn   r   Úunionr   r   r   )r   rC   ÚyÚresÚ	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   rA   )r   Úmeanr   rF   r   r   rS   )r   r   r    r"   Úk1Ú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+   rN   r-   )r.   rN   rA   )rT   rT   )r   r   r   )ÚTotalsÚ )	r   rn   r   rZ   r[   r\   Ústandard_normalr
   Ú_consolidate)r   r   r^   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+   rM   r   )r+   Úquxr   r   r   )r   r   r   r   rA   rA   )r   r   r   r   r   r   )rQ   rR   rA   rf   ©r   )rf   rT   rŒ   z^\(\('foo', 'bar', 0\), 2\)$r   )rŒ   rA   )©r+   r.   )r+   rM   )r+   r   r   )r   r   rZ   r[   r\   r‰   r   r0   r   Ú	droplevelr   r   ÚpytestÚraisesÚKeyErrorÚxsr   )r   r   Úseriesr2   r"   r…   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   rA   rg   rh   ri   r   rm   r   )r   r/   r   r   r   r0   r   )r   r1   r2   r"   r#   r&   r&   r'   Ú$test_reindex_level_partial_selectionâ   s   z3TestMultiLevel.test_reindex_level_partial_selectionrY   rT   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)rV   rW   rX   r   rA   r)   rU   rP   )r   rV   r   Úfirstr   r   r   Úassert_index_equal)r   rY   r>   r^   Ú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))Ú600809Ú20061231©rœ   Ú20070331)rœ   Ú20070630rž   )Údemor¡   r¡   r¡   ÚSTK_IDÚRPT_Date)rS   rŽ   r)   )r   rn   r   r   r   r˜   Úlen)r   Úidx_tpÚdtÚidxrH   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 )NrC   r   rV   rW   )rV   rX   ç        r6   )
rZ   Únanr   r   rn   ÚdtypesrV   rW   r   r   )r   ry   r   r^   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   r5   )r   rw   rT   rA   rj   rk   é   r   )Úorient)r   rA   r)   rT   )r5   rj   rk   r­   )r   r   r   r   rx   )ÚdatetimeÚdater   Ú	from_dictr   r   )r   Údata_dicr"   ry   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_1Úcol_1Úcol_2r6   r¸   r¹   r©   ))r   ÚFr»   r¼   )r   rZ   rª   Ú	set_indexÚatr   r   )r   r^   r#   r&   r&   r'   Útest_multiindex_with_na1  s*   ýú
ù
	üù
ø
z&TestMultiLevel.test_multiindex_with_naN)Ú__name__Ú
__module__Ú__qualname__r(   r4   r=   rL   r_   rr   ru   r   r†   r‹   r–   r—   r‘   ÚmarkÚ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   rw   ÚC)rX   rW   rV   )r   r   rA   r   r   rA   )r   rA   r   r   r   rA   ÚcolÚint64)r   ÚdtypeFT)r   rT   re   rA   ))rw   rV   )rw   rX   )rÆ   rV   )rÆ   rW   rw   rÆ   rV   rX   )r   r   Úranger¤   r   Úis_monotonic_increasingÚ
sort_indexrn   r0   ÚpdÚ
IndexSlicer   r   )r   r§   r^   Ú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¯   ÚnumpyrZ   r‘   ÚpandasrÍ   r   r   r   Úpandas._testingÚ_testingr   r   rÅ   r&   r&   r&   r'   Ú<module>   s      =