a
    é´«jóC  ã                   @   sx   d dl m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mZ d dlmZ G dd„ dƒZG dd„ dƒZdS )	é    )ÚdeepcopyN)ÚPerformanceWarning)Ú	DataFrameÚIndexÚ
MultiIndexÚSeriesÚconcatc                   @   sV   e Zd Zdd„ Zej dg d¢¡dd„ ƒZdd„ Zd	d
„ Z	dd„ Z
dd„ Zdd„ ZdS )ÚTestIndexConcatc                 C   s¸   t g d¢g d¢g d¢dœƒ}t dg d¢iƒ}tg d¢ƒ|_tg d¢ƒ|_t||gd	d
|d�}tj}t |||dgg d¢g d¢ddd|ggtg d¢ƒd�}|s¨|jg d¢ }t ||¡ d S )N©ÚaÚbÚc©é   é   é   )ç      @çš™™™™™	@ç333333ó?)Ztest1Ztest2Útest3r   )çÍÌÌÌÌÌ@çš™™™™™@ç333333@©ÚxÚyÚz)r   r   Úqr   T)ÚaxisÚignore_indexÚsortr   )r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   ©Úindex)r   r   r   r   )	r   r   r"   r   ÚnpÚnanÚlocÚtmÚassert_frame_equal)Úselfr    Zframe1Zframe2Úv1r$   Úexpected© r+   úe/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/reshape/concat/test_index.pyÚtest_concat_ignore_index   s&    ÿ

ü
ù	z(TestIndexConcat.test_concat_ignore_indexz#name_in1,name_in2,name_in3,name_out))Úidxr.   r.   r.   )r.   r.   NN)r.   NNN)Úidx1Úidx2NN)r/   r/   r0   N)r/   r0   Zidx3N)NNNNc           
      C   s°   t g d¢|d�t g d¢|d�t g d¢|d�g}dd„ t|g d¢ƒD ƒ}t|dd	�}t g d
¢|d�}tdddtjtjgtjdddtjgtjtjdddgdœ|d�}	t ||	¡ d S )Nr
   ©Úname)r   r   Úd)r   r3   Úec                 S   s$   g | ]\}}t |g d ¢i|d�‘qS ))r   r   r   r!   )r   )Ú.0Úir   r+   r+   r,   Ú
<listcomp>@   s   z@TestIndexConcat.test_concat_same_index_names.<locals>.<listcomp>r   r   ©r   )r   r   r   r3   r4   r   r   r!   )r   Úzipr   r   r#   r$   r&   r'   )
r(   Zname_in1Zname_in2Zname_in3Zname_outÚindicesÚframesÚresultZexp_indr*   r+   r+   r,   Útest_concat_same_index_names-   s"    ýÿýú	z,TestIndexConcat.test_concat_same_index_namesc                 C   sÒ   t tj d¡ d¡tdƒttdƒdd�d�}t tj d¡ d¡tdƒttdƒdd�d�}t||gd	d
gddgd�}t||gd	d
gdgd�}t|jjƒ}d|d< |jj	|dd� t
 ||¡ |jj|jjksÎJ ‚d S )Nr   )r   r   ÚABCÚabcZindex_ar1   )Úcolumnsr"   Zindex_bÚkey0Úkey1Zlvl0Zlvl1©ÚkeysÚnamesr   T)Zinplace)r   r#   ÚrandomÚdefault_rngÚlistr   r   r"   rE   Z	set_namesr&   r'   )r(   r   r   r<   ÚexprE   r+   r+   r,   Útest_concat_rename_indexQ   s"    ýýz(TestIndexConcat.test_concat_rename_indexc                 C   sP   t ddgƒ}t||g|dd�}|r*|dv r<|j|jusLJ ‚n|j|ju sLJ ‚d S )Nr   r   T©r   Úcopy©r   r"   )r   r   r"   )r(   r   Úusing_copy_on_writeZserÚcombr+   r+   r,   Útest_concat_copy_index_seriesg   s
    z-TestIndexConcat.test_concat_copy_index_seriesc                 C   s¶   t ddgddggddgd�}t||g|dd	�}|sX|j |j¡rDJ ‚|j |j¡r²J ‚nZ|d
v r†|j |j¡rrJ ‚|j |j¡s²J ‚n,|dv r²|j |j¡s J ‚|j |j¡r²J ‚d S )Nr   r   r   é   r   r   ©r@   TrK   rM   )r   r@   )r   r   r"   Úis_r@   )r(   r   rN   ÚdfrO   r+   r+   r,   Útest_concat_copy_index_framep   s    z,TestIndexConcat.test_concat_copy_index_framec                 C   s˜  t g d¢dd�}t g d¢dd�}t||gddd�}t|jtjƒsDJ ‚tdd	gd
dgddggƒ}tj||ddd� t g d¢ƒ}t g d¢ƒ}t||gddd�}t|jtjƒs¬J ‚tdd	gd
dgddggƒ}t d
¡|_tj||ddd� tdd
gddgdœƒ}tdd	gddgdœƒ}t||gddd�}tddgd
dgddgd	dggddgd�}tj||ddd� t||gddd�}tg d¢g d¢gƒ}tj||ddd� d S )Nr   r   r1   )rQ   é   é   r   r   T)r   r   rQ   r   rV   r   rW   ©Zcheck_index_typeZcheck_column_typeF)ÚAÚBé   é   r   rY   rZ   rR   )r   rV   r   r[   )r   rW   rQ   r\   )	r   r   Ú
isinstancer@   ÚpdÚ
RangeIndexr   r&   r'   )r(   Ús1Ús2ÚresrI   Údf1Údf2r+   r+   r,   Útest_default_index~   s*    (z"TestIndexConcat.test_default_indexc                 C   s,  t tj d¡jdddd� dd¡g d¢d�}t||gd	d
�}t |j	d d …d d…f |¡ t |j	d d …dd …f |¡ t||gdd
�}t |j	d d… |¡ t |j	dd … |¡ tt tj d¡ 
d¡g d¢d�t tj d¡jdddd� dd¡ddgd�gd	d
�}t||gd	d
�}t |j	d d …d d…f |¡ t |j	d d …dd …f |¡ t||gdd
�}t |j	d d… |¡ t |j	dd … |¡ |j	dd…d d …f  |j	dd … ¡}t ||¡ |j	dd…d d …f  |j	dd… ¡ |j	dd… ¡}t ||¡ t||gdd
�}| |¡}t ||¡ d S )Nr   r   é
   é(   )ÚsizerQ   )rY   rY   ÚCri   rR   r   r8   )rf   rQ   )rY   rY   rZ   rZ   é   rY   ri   rW   r\   é	   )r   r#   rF   rG   ZintegersZreshaper   r&   r'   ÚilocÚstandard_normalÚ_append)r(   rT   r<   r*   r+   r+   r,   Útest_dups_indexž   sF    þþþû
õ&6
zTestIndexConcat.test_dups_indexN)Ú__name__Ú
__module__Ú__qualname__r-   ÚpytestÚmarkÚparametrizer=   rJ   rP   rU   re   ro   r+   r+   r+   r,   r	      s   þ
	 r	   c                   @   sH  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	d
ge
dƒgdge dd¡gdgddggdgejdddd�gg¡ej 	dd
ge
dƒgdge dd¡gdgddggdgejdddd�gg¡eedœdd„ƒƒZdd„ Zdd„ Zdd„ Zej 	d d!d"ggg d#¢gg¡d$d%„ ƒZd&d'„ Zd(d)„ Zd*d+„ Zej 	d,g d-¢¡d.d/„ ƒZd0d1„ Zd2S )3ÚTestMultiIndexConcatc                 C   sp   |}|j }t||gddgdgd�}|j jd|j ks8J ‚t |jd |¡ t |jd |¡ |j jdkslJ ‚d S )Nr   r   Ú	iterationrC   )rw   r   )r"   r   rE   r&   r'   r%   Znlevels)r(   Z multiindex_dataframe_random_dataÚframer"   r<   r+   r+   r,   Ú test_concat_multiindex_with_keysÓ   s    z5TestMultiIndexConcat.test_concat_multiindex_with_keysc           	      C   s6  t jdgtdƒgdd gd�}tdtdƒi|tjd�}t||gddgdgd	�}t jddgdgtdƒgg d
¢d�}tdttdƒƒd i|tjd�}t 	||¡ t||d d… gddgdgd	�}dgd dgd  }dgd }ttdƒƒttdƒƒ }tt
|||ƒƒ}t j|g d
¢d�}td|i|tjd�}t 	||¡ d S )Nr   rV   Úlevel1©rE   Úcol)r"   Údtyper   Úlevel2rC   )r~   rz   Nr[   )r   Úfrom_productÚranger   r#   Zint32r   rH   r&   r'   r9   Úfrom_tuples)	r(   r"   rT   r<   r*   r~   rz   Zno_nameZtuplesr+   r+   r,   Ú/test_concat_multiindex_with_none_in_index_namesÝ   s     ÿ  
zDTestMultiIndexConcat.test_concat_multiindex_with_none_in_index_namesc                 C   s¨   t tj d¡ d¡ƒ}tt d¡t d¡gt t 	d¡d¡t 
t 	d¡d¡gd�|_t|jg d¢d d …f |jdgd d …f gƒ}|jg d¢d d …f }t ||¡ d S )Nr   )rk   r   r   ©ÚlevelsÚcodes)r   r   rQ   rV   )r   r   rQ   rV   )r   r#   rF   rG   rm   r   r^   r_   ÚrepeatÚarangeZtiler"   r   rl   r&   r'   )r(   rT   rb   rI   r+   r+   r,   Ú!test_concat_multiindex_rangeindexò   s    "þ.z6TestMultiIndexConcat.test_concat_multiindex_rangeindexc           
      C   sÎ   t  dgdgg¡}tdg|d�}t  dgdgg¡}tdg|d�}||dœ}t dd	gdgddggddgddgddggg d
¢d�}tdgdgg|d�}tt|ƒdgd�}t ||¡ t|dgd�}	t |	|¡ d S )Nr   r   r   r!   r   r   )r`   ra   r`   ra   )ÚtestnameNN)r„   r…   rE   r‰   r{   )r   r   r   r   r   r&   r'   )
r(   Zexample_multiindex1Zexample_dataframe1Zexample_multiindex2Zexample_dataframe2Zexample_dictÚexpected_indexr*   Zresult_copyZresult_no_copyr+   r+   r,   Ú(test_concat_multiindex_dfs_with_deepcopy  s    
ýz=TestMultiIndexConcat.test_concat_multiindex_dfs_with_deepcopyÚmi1_listr   r   r   g       @g      @r   rY   rZ   r3   Z2017Z2018)ÚstartÚendZperiodsÚmi2_list)rŒ   r�   c           
      C   s$  t  |¡}t  |¡}tt dt|ƒf¡|d�}tt dt|ƒf¡|d�}|d |d kr‚t |d t|d ƒgg d¢g d¢gd�}n<t |d |d  t|d ƒt|d ƒ gg d¢g d¢gd�}tt dt|ƒf¡|d�}t d ¡�  t	||fdd	�}	W d   ƒ n1 �s
0    Y  t 
||	¡ d S )
Nr   rR   r   )r   r   r   r   )r   r   r   r   rƒ   )r   r   r   r   )r   r   r   r   r8   )r   r   r   r#   ZzerosÚlenrH   r&   Úassert_produces_warningr   r'   )
r(   rŒ   r�   Zmi1Zmi2rc   rd   Zexpected_miÚexpected_dfÚ	result_dfr+   r+   r,   Ú*test_concat_with_various_multiindex_dtypes  s&    

þþû0z?TestMultiIndexConcat.test_concat_with_various_multiindex_dtypesc                 C   s€   t dg d¢ig d¢d�}t|gdgd�}dgg d¢g}|j}t |¡}t ||¡ |}t dg d¢it |¡d�}t ||¡ d S )Nr|   r
   )Ú1Ú2r–   r!   ÚX©rD   )r   r   r"   r   r   r&   Úassert_index_equalr'   )r(   rT   Ú	iterablesZresult_indexrŠ   r“   r’   r+   r+   r,   Útest_concat_multiindex_F  s    
ÿz,TestMultiIndexConcat.test_concat_multiindex_c                 C   sì  t ddgiƒ}t ddgiƒ}t ddgiƒ}t|||gg d¢d�}tjtdd��" |jd	d d …f }W d   ƒ n1 sv0    Y  t dg d
¢itg d¢ƒd�}tjtdd�� |jd	 }W d   ƒ n1 sÊ0    Y  t ||¡ t dg d¢iƒ}t dddgiƒ}t dddgiƒ}t|||gg d¢d�}tjtdd��" |jd	d d …f }W d   ƒ n1 �s^0    Y  t g d¢g d¢tdƒdœƒ 	ddg¡}d d g|j
_tjtdd��" |jd	d d …f }W d   ƒ n1 �sÒ0    Y  t ||¡ d S )Nr2   r   r   r   )r   r   r   r˜   zindexing past lexsort depth©Úmatch©r   r   r   )rž   )r   r   rž   r!   )r   r   r   r   r   r   r3   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   Zaababcd)r   r   r2   )r   r   r&   r‘   r   r%   r   r'   rH   Z	set_indexr"   rE   )r(   rc   rd   Zdf3Zdf_aZout_aZdf_bZout_br+   r+   r,   Útest_concat_with_key_not_uniqueW  sL    ÿ0ÿÿ(ÿ2ýÿúÿ2z4TestMultiIndexConcat.test_concat_with_key_not_uniquec                 C   sz   t ddgidgd�}t ddgidgd�}d}tjt|d��, t||gddgg d¢gd	� W d   ƒ n1 sl0    Y  d S )
NrY   r   r   r!   r   z*Level values not unique: \['x', 'y', 'y'\]rœ   ©r   r   r   )rD   r„   ©r   rs   ZraisesÚ
ValueErrorr   )r(   rc   rd   Úmsgr+   r+   r,   Ú"test_concat_with_duplicated_levels…  s
    z7TestMultiIndexConcat.test_concat_with_duplicated_levelsr„   r   r   r    c                 C   sn   t ddgidgd�}t ddgidgd�}d}tjt|d��  t||g|d� W d   ƒ n1 s`0    Y  d S )	NrY   r   r   r!   r   z+levels supported only when keys is not Nonerœ   )r„   r¡   )r(   r„   rc   rd   r£   r+   r+   r,   Ú&test_concat_with_levels_with_none_keys�  s
    z;TestMultiIndexConcat.test_concat_with_levels_with_none_keysc                 C   sv   t dddgiƒ}t dddgiƒ}t||gddd�}t ddgddgdœƒ}t ||¡ t dd¡}tj|j|dd	� d S )
Nr   r   r   r   T)r    r   )r   r   r   )Úexact)r   r   r&   r'   r^   r_   r™   r"   )r(   rc   rd   r<   r*   rŠ   r+   r+   r,   Útest_concat_range_index_result•  s    z3TestMultiIndexConcat.test_concat_range_index_resultc                 C   sˆ   t g d¢gtg d¢dd�d�}t ddggtddgdd�d�}t||gd	d
d	d�}t g d¢ddtjggtg d¢dd�d�}t ||¡ d S )N©r   r   r   r   Úobject©r}   rR   r   r   r   TÚouter©r   Újoinr    ©r   r   g      ð?©r   r   r   r#   r$   r&   r'   )r(   rc   rd   r<   r*   r+   r+   r,   Útest_concat_index_keep_dtype   s     ÿz1TestMultiIndexConcat.test_concat_index_keep_dtypec                 C   sˆ   t g d¢gtg d¢|d�d�}t ddggtddg|d�d�}t||gdd	dd
�}t g d¢ddtjggtg d¢|d�d�}t ||¡ d S )Nr¨   r   rª   rR   r   r   r   Tr«   r¬   r®   r¯   )r(   Zany_numeric_ea_dtyperc   rd   r<   r*   r+   r+   r,   Ú'test_concat_index_keep_dtype_ea_numericª  s    ÿþz<TestMultiIndexConcat.test_concat_index_keep_dtype_ea_numericr}   )ZInt8ZInt16ÚInt32c                 C   sˆ   t g d¢gtg d¢|d�d�}t ddggtddgdd�d�}t||gd	d
d	d�}t g d¢ddtjggtg d¢dd�d�}t ||¡ d S )Nr¨   r   rª   rR   r   r   r   r²   Tr«   r¬   r®   r¯   )r(   r}   rc   rd   r<   r*   r+   r+   r,   Útest_concat_index_find_common·  s     ÿz2TestMultiIndexConcat.test_concat_index_find_commonc                 C   sÀ   t g d¢ƒ}t ddgƒ}t g d¢ƒ}t g |s0tndd�}t||||gdddd	d
�}tdgd tjg dgd tjg dtjgd tjgd dg tjg g|s¢tndd�}tj||ddd� d S )Nr
   r   r   )r   r   r   r3   Ústrrª   Fr«   r   )r    r­   r   r   r   r   r   r3   TrX   )r   r©   r   r   r#   r$   r&   r'   )r(   Zusing_infer_stringr`   ra   Zs3Zs4r<   r*   r+   r+   r,   Ú(test_concat_axis_1_sort_false_rangeindexÂ  s$    ÿü
ù	ÿz=TestMultiIndexConcat.test_concat_axis_1_sort_false_rangeindexN)rp   rq   rr   ry   r‚   rˆ   r‹   rs   rt   ru   r€   r#   r‡   r^   Z
date_rangerH   r”   r›   rŸ   r¤   r¥   r§   r°   r±   r³   rµ   r+   r+   r+   r,   rv   Ò   sB   
üþ	üþ
ÿ.



rv   )rL   r   Únumpyr#   rs   Zpandas.errorsr   Zpandasr^   r   r   r   r   r   Zpandas._testingZ_testingr&   r	   rv   r+   r+   r+   r,   Ú<module>   s    @