o
    �¨ÊhÚl  ã                   @   s   d dl Zd dlZd dlZd dlmZmZmZmZ d dl	m
Z ejeg d¢g d¢dejdgeg d¢ƒg d¢e d	¡e d
¡e d¡gejd	dd�ejd
dd�ejddd�ge d¡e d¡e d¡gejddd�ejddd�ejddd�gdœ	 ¡ ƒd�dd„ ƒZejdd„ ƒZG dd„ dƒZdS )é    N)ÚCategoricalÚ	DataFrameÚIndexÚSeries)TFT©é   é   é   gš™™™™™ñ?gffffff
@)ÚXÚYÚZ©ÚaÚbÚcú
2011-01-01ú
2011-01-02z
2011-01-03ú
US/Eastern©Útzú1 daysú2 daysz3 daysú2011-01ÚM©Úfreqú2011-02z2011-03)	ÚboolÚint64Úfloat64ÚcategoryÚobjectzdatetime64[ns]údatetime64[ns, US/Eastern]útimedelta64[ns]z	period[M])Úparamsc                 C   s   | j \}}||fS ©N)Úparam)ÚrequestÚkeyÚdata© r*   ú`/var/www/html/env/lib/python3.10/site-packages/pandas/tests/reshape/concat/test_append_common.pyÚitem   s   
 r,   c                 C   s   | S r%   r*   )r,   r*   r*   r+   Úitem22   s   r-   c                   @   sº   e Zd ZdZdd„ Zdd„ Zdd„ Zd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d„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*S )+ÚTestConcatAppendCommonzE
    Test common dtype coercion rules between concat and append.
    c                 C   sx   |\}}||ƒ}|dkr|rd}t |tƒr|j|ksJ ‚d S t |tƒr8| d¡r1|jdks/J ‚d S |j|ks:J ‚d S d S )Nr!   ÚstringÚperiodz	Period[M])Ú
isinstancer   Údtyper   Ú
startswith)Úselfr,   Úindex_or_seriesÚusing_infer_stringÚtypÚvalsÚobjr*   r*   r+   Útest_dtypes<   s   


üz"TestConcatAppendCommon.test_dtypesc                 C   s4  |\}}|}|}|dkr%t t|ƒt|ƒ ƒ}t t|ƒt|ƒ t|ƒ ƒ}n
|| }|| | }t|ƒ t|ƒ¡}t|ƒ}	t ||	¡ t|ƒ t|ƒt|ƒg¡}t|ƒ}	t ||	¡ t|dd�}
t|dd�}|
 |¡}t|ƒ}	t ||	¡ t|dd�}
t|dd�}|
 |¡}t|dd�}	t ||	¡ tjtdd�� t|ƒ |¡ W d   ƒ n1 sªw   Y  tjtdd�� t|ƒ t|ƒ|g¡ W d   ƒ n1 sÌw   Y  t	|ƒj
t	|ƒdd�}t	|ƒ}	tj||	dd	� tjt	|ƒt	|ƒgdd�}tj||	dd	� t	|ƒj
t	|ƒt	|ƒgdd�}t	|ƒ}	t ||	¡ tjt	|ƒt	|ƒt	|ƒgdd�}t ||	¡ t	|dd�}t	|dd�}|j
|dd�}t	|ƒ}	tj||	dd	� tj||gdd�}tj||	dd	� t	|dd�}t	|dd�}|j
|dd�}t	|dd�}	tj||	dd	� tj||gdd�}tj||	dd	� d
}tjt|d�� t	|ƒ 
|¡ W d   ƒ n	1 �sªw   Y  tjt|d�� t	|ƒ 
t	|ƒ|g¡ W d   ƒ n	1 �sÍw   Y  tjt|d�� t t	|ƒ|g¡ W d   ƒ n	1 �sîw   Y  tjt|d�� t t	|ƒt	|ƒ|g¡ W d   ƒ d S 1 �sw   Y  d S )Nr    Úx)ÚnameÚyzall inputs must be Index©ÚmatchT©Úignore_index©Úcheck_index_typezPcannot concatenate object of type '.+'; only Series and DataFrame objs are valid)r   Úlistr   ÚappendÚtmÚassert_index_equalÚpytestÚraisesÚ	TypeErrorr   Ú_appendÚassert_series_equalÚpdÚconcat)r4   r,   Útyp1Úvals1Úvals2Úvals3Úexp_dataÚ	exp_data3ÚresÚexpÚi1Úi2Ús1Ús2Úmsgr*   r*   r+   Útest_concatlike_same_dtypesJ   sŽ   

ÿÿþÿÿÿÿ$ÿz2TestConcatAppendCommon.test_concatlike_same_dtypesc                 C   sð  |\}}|\}}|}d }	d }
||krt  d¡ n|dks |dkr%t  d¡ |dkr<|dv r<|}
t jjdd�}| |¡ n#|dkrS|dv rS|}
t jjdd�}| |¡ n|dv s[|dv r_t}	t}
|| }|| | }t|ƒ t|ƒ¡}t||	d	�}t 	||¡ t|ƒ t|ƒt|ƒg¡}t||	d	�}t 	||¡ t
|ƒjt
|ƒd
d�}t
||
d	�}tj||d
d� tjt
|ƒt
|ƒgd
d�}tj||d
d� t
|ƒjt
|ƒt
|ƒgd
d�}t
||
d	�}t ||¡ tjt
|ƒt
|ƒt
|ƒgd
d�}t ||¡ d S )Nz3same dtype is tested in test_concatlike_same_dtypesr    z!categorical type tested elsewherer   )r   r   zGH#39187 casting to object)Úreason>   r#   r"   ©r2   Tr@   rB   )rH   ÚskipÚmarkÚxfailÚapplymarkerr!   r   rE   rF   rG   r   rK   rL   rM   rN   )r4   r,   r-   r'   rO   rP   Útyp2rQ   rR   Úexp_index_dtypeÚexp_series_dtyper`   rS   rT   rU   rV   r*   r*   r+   Útest_concatlike_dtypes_coercion´   sR   
þz6TestConcatAppendCommon.test_concatlike_dtypes_coercionc                 C   s6  t  ddg¡}t  ddg¡}tt  d¡t  d¡t  d¡t  d¡gƒ}| |¡}t ||¡ t	|d t jƒs7J ‚t	|d t jƒsAJ ‚t
|ƒ}t
|ƒ}| |¡}t |t
|g d¢d�¡ t	|jd t jƒseJ ‚t	|jd t jƒspJ ‚t  ||g¡}t |t
|g d¢d�¡ t	|jd t jƒsŽJ ‚t	|jd t jƒs™J ‚d S )	Nr   r   r   r   r   éÿÿÿÿ©r   r   r   r   ©Úindex)rM   ÚDatetimeIndexÚTimedeltaIndexr   Ú	TimestampÚ	TimedeltarE   rF   rG   r1   r   rK   rL   ÚilocrN   )r4   ÚdtiÚtdirV   rU   ÚdtsÚtdsr*   r*   r+   Ú.test_concatlike_common_coerce_to_pandas_object   s.   üÿ
	
zETestConcatAppendCommon.test_concatlike_common_coerce_to_pandas_objectc           	      C   s¬   |}t jddg|d�}t jddg|d�}t jg d¢|d�}| |¡}t ||¡ t|ƒ}t|ƒ}| |¡}t |t|g d¢d�¡ t  ||g¡}t |t|g d¢d�¡ d S )	Nr   r   r   ú
2012-01-01ú
2012-01-02)r   r   ru   rv   rh   ri   )	rM   rk   rE   rF   rG   r   rK   rL   rN   )	r4   Útz_aware_fixturer   Údti1Údti2rV   rU   Údts1Údts2r*   r*   r+   Útest_concatlike_datetimetz   s   ÿ

z1TestConcatAppendCommon.test_concatlike_datetimetzr   )ÚUTCr   z
Asia/TokyoÚEST5EDTc                 C   sž   t jddd|d�}t jddg|d�}td|d	d
gd�}td|d	d
gd�}t jg d¢|d� d¡}td|d	d
gd�}t | |¡|¡ t t  ||g¡|¡ d S )Nú
2014-07-15ú
2014-07-17ÚD)ÚstartÚendr   r   ú
2014-07-11ú
2014-07-21r   r   ÚAÚB)rj   Úcolumns)r   z
2014-07-16r€   r„   r…   Úns)	rM   Ú
date_rangerk   r   Úas_unitrF   Úassert_frame_equalrK   rN   )r4   r   Úix1Úix2Údf1Údf2Úexp_idxrV   r*   r*   r+   Ú test_concatlike_datetimetz_short5  s   þýz7TestConcatAppendCommon.test_concatlike_datetimetz_shortc                 C   s†  |}t jddg|d�}t  ddg¡}tt jd|d�t jd|d�t  d¡t  d¡gtd�}| |¡}t ||¡ t|ƒ}t|ƒ}| 	|¡}t 
|t|g d¢d�¡ t  ||g¡}t 
|t|g d¢d�¡ t jddgd	d�}	tt jd|d�t jd|d�t jdd	d�t jdd	d�gtd�}| |	¡}t ||¡ t|ƒ}t|	ƒ}
| 	|
¡}t 
|t|g d¢d�¡ t  ||
g¡}t 
|t|g d¢d�¡ d S )
Nr   r   r   ru   rv   r^   rh   ri   z
US/Pacific)rM   rk   r   rm   r!   rE   rF   rG   r   rK   rL   rN   )r4   rw   r   rx   ry   rV   rU   rz   r{   Údti3Údts3r*   r*   r+   Ú$test_concatlike_datetimetz_to_objectF  sH   üù


üù


z;TestConcatAppendCommon.test_concatlike_datetimetz_to_objectc                 C   s¨   t jddgdd�}t jddgdd�}t jg d¢dd�}| |¡}t ||¡ t|ƒ}t|ƒ}| |¡}t |t|g d¢d	�¡ t  ||g¡}t |t|g d¢d	�¡ d S )
Nr   r   r   r   ú2012-01ú2012-02)r   r   r–   r—   rh   ri   )	rM   ÚPeriodIndexrE   rF   rG   r   rK   rL   rN   ©r4   Úpi1Úpi2rV   rU   Úps1Úps2r*   r*   r+   Útest_concatlike_common_period{  s   

z4TestConcatAppendCommon.test_concatlike_common_periodc                 C   sÒ   t jddgdd�}t jddgdd�}tt jddd�t jddd�t jddd�t jddd�gtd�}| |¡}t ||¡ t|ƒ}t|ƒ}| 	|¡}t 
|t|g d	¢d
�¡ t  ||g¡}t 
|t|g d	¢d
�¡ d S )Nr   r   r   r   ru   z
2012-02-01r�   r^   rh   ri   )rM   r˜   r   ÚPeriodr!   rE   rF   rG   r   rK   rL   rN   r™   r*   r*   r+   Ú1test_concatlike_common_period_diff_freq_to_object�  s$   üù


zHTestConcatAppendCommon.test_concatlike_common_period_diff_freq_to_objectc                 C   sh  t jddgdd�}t  ddg¡}tt jddd�t jddd�t  d¡t  d¡gtd�}| |¡}t 	||¡ t
|ƒ}t
|ƒ}| |¡}t |t
|g d¢d	�¡ t  ||g¡}t |t
|g d¢d	�¡ tt  d¡t  d¡t jddd�t jddd�gtd�}| |¡}t 	||¡ t
|ƒ}t
|ƒ}| |¡}t |t
|g d¢d	�¡ t  ||g¡}t |t
|g d¢d	�¡ d S )
Nr   r   r   r   r   r   r^   rh   ri   )rM   r˜   rl   r   rŸ   rn   r!   rE   rF   rG   r   rK   rL   rN   )r4   rš   rq   rV   rU   rœ   rs   r*   r*   r+   Ú0test_concatlike_common_period_mixed_dt_to_object§  sD   üù


üù


zGTestConcatAppendCommon.test_concatlike_common_period_mixed_dt_to_objectc                 C   sH  t ddtjgdd�}t g d¢dd�}t ddtjdddgdd�}t tj||gdd�|¡ t |j|dd�|¡ t ddgdd�}t ddgdd�}t g d	¢ƒ}t tj||gdd�|¡ t |j|dd�|¡ t d
dtjgdd�}t tjdddgdd�}t d
dtjtjdddgtjd�}t tj||gdd�|¡ t |j|dd�|¡ d S )Nr   r   r    r^   ©r   r   r   Tr@   r	   ©r	   r   r   r   é
   é   )	r   ÚnpÚnanrF   rL   rM   rN   rK   r   ©r4   rY   rZ   rV   r*   r*   r+   Útest_concat_categorical×  s    z.TestConcatAppendCommon.test_concat_categoricalc                 C   sj   t tg d¢g d¢d�ƒ}t tg d¢g d¢d�ƒ}tj||gdd�}t tg d¢g d¢d�ƒ}t ||¡ d S )Nr   ©Ú
categories)r   r   r   Tr@   )r   r   r   r   r   r   )r   r   rM   rN   rF   rL   )r4   r   r   ÚresultÚexpectedr*   r*   r+   Ú6test_union_categorical_same_categories_different_orderò  s   ÿzMTestConcatAppendCommon.test_union_categorical_same_categories_different_orderc                 C   sh  t ddtjgdd�}t g d¢ƒ}t ddtjdddgtjd�}t tj||gdd�|¡ t |j|dd�|¡ t dddddtjgtjd�}t tj||gdd�|¡ t |j|dd�|¡ t ddgdd�}t ddgƒ}t g d	¢ƒ}t tj||gdd�|¡ t |j|dd�|¡ t g d
¢ƒ}t tj||gdd�|¡ t |j|dd�|¡ t ddtjgdd�}t g d¢ƒ}t ddtjdddgtjd�}t tj||gdd�|¡ t |j|dd�|¡ t dddddtjgtjd�}t tj||gdd�|¡ t |j|dd�|¡ t ddtjgdd�}t g d¢ƒ}t ddtjdddgƒ}t tj||gdd�|¡ t |j|dd�|¡ t dddddtjgƒ}t tj||gdd�|¡ t |j|dd�|¡ t ddgdd�}t tjtjtjgƒ}t ddtjtjtjgƒ}t tj||gdd�|¡ t |j|dd�|¡ t tjtjtjddgƒ}t tj||gdd�|¡ t |j|dd�|¡ d S )Nr   r   r    r^   r¢   Tr@   r	   r£   )r   r   r	   r   r¤   r¥   ©r   r	   r   r   r   r   r   )	r   r¦   r§   r   rF   rL   rM   rN   rK   r¨   r*   r*   r+   Ú test_concat_categorical_coercionü  sP   z7TestConcatAppendCommon.test_concat_categorical_coercionc                 C   sT  t ddtjgdd�}t g d¢dd�}t ddddtjgƒ}t ddtjdddddddtjgdd�}t tj|||gdd�|¡ t |j||gdd�|¡ t ddddtjddtjdddgdd�}t tj|||gdd�|¡ t |j||gdd�|¡ t g d	¢dd�}t g d
¢dd�}t g d¢ƒ}t g d¢ƒ}t tj|||gdd�|¡ t |j||gdd�|¡ t g d¢ƒ}t tj|||gdd�|¡ t |j||gdd�|¡ t g d	¢dd�}t g d
¢dd�}t g d¢ƒ}t g d¢ƒ}t tj|||gdd�|¡ t |j||gdd�|¡ t g d¢ƒ}t tj|||gdd�|¡ t |j||gdd�|¡ d S )Nr   r   r    r^   r¢   ÚfloatTr@   )é   é   é   r   )r   r	   r²   )	r²   r³   r´   r   r   r	   r   r	   r²   )	r   r	   r²   r²   r³   r´   r   r   r	   )r¤   r¥   é   )	r²   r³   r´   r   r   r	   r¤   r¥   rµ   )	r¤   r¥   rµ   r²   r³   r´   r   r   r	   )r   r¦   r§   rF   rL   rM   rN   rK   )r4   rY   rZ   Ús3rV   r*   r*   r+   Ú&test_concat_categorical_3elem_coercion<  s6   &&z=TestConcatAppendCommon.test_concat_categorical_3elem_coercionc           	      C   s:  t ddgdd�}t ddgdd�}t ddgƒ}t ddgdd�}t dtjgƒ}t g d¢dd�}t dddddddddtjdddgƒ}tj||||||gdd	�}t ||¡ |j|||||gdd	�}t ||¡ t ddddtjddddddddgƒ}tj||||||gdd	�}t ||¡ |j|||||gdd	�}t ||¡ d S )
Nr   r	   r    r^   r²   r   r¯   Tr@   )r   r¦   r§   rM   rN   rF   rL   rK   )	r4   rY   rZ   r¶   Ús4Ús5Ús6rV   rU   r*   r*   r+   Ú&test_concat_categorical_multi_coercionf  s    $$z=TestConcatAppendCommon.test_concat_categorical_multi_coercionc                 C   sÚ   t tddtjgdd�ƒ}t tg d¢dd�ƒ}t tddtjdddgdd�ƒ}t tj||gdd�|¡ t |j|dd�|¡ t tddtjdddddtjg	dd�ƒ}t tj|||gdd�|¡ t |j||gdd�|¡ d S )Nr   r   T)Úorderedr¢   r@   )	r   r   r¦   r§   rF   rL   rM   rN   rK   r¨   r*   r*   r+   Útest_concat_categorical_ordered}  s   &z6TestConcatAppendCommon.test_concat_categorical_orderedc                 C   sô  t tjtjtjgtjd�dd�}t tjdgƒ}t tjtjtjdgƒ}t tj||gdd�|¡ t |j	|dd�|¡ t dtjgdd�}t tjtjgƒ}t dtjtjtjgdd�}t tj||gdd�|¡ t |j	|dd�|¡ t tjtjgdd�}t tjtjgƒ}t tjtjtjtjgƒ}t tj||gdd�|¡ t |j	|dd�|¡ t tj||gdd�|¡ t |j	|dd�|¡ t tjtjgdd�}t tjtjgdd�}t tjtjtjtjgdd�}t tj||gdd�|¡ t |j	|dd�|¡ d S )Nr^   r    r   Tr@   r±   )
r   r¦   Úarrayr§   r   rF   rL   rM   rN   rK   r¨   r*   r*   r+   Ú$test_concat_categorical_coercion_nan‹  s,    z;TestConcatAppendCommon.test_concat_categorical_coercion_nanc                 C   sŽ  t g dd�}t ddgdd�}d}tjt|d��  t tj||gdd�|¡ t |j|dd�|¡ W d   ƒ n1 s:w   Y  tjt|d��  t tj||gdd�|¡ t |j|dd�|¡ W d   ƒ n1 siw   Y  t g dd�}t g dd�}t tj||gdd�|¡ t |j|dd�|¡ t g dd�}t g d	d�}t tj||gdd�|¡ t |j|dd�|¡ t tj||gdd�|¡ t |j|dd�|¡ t g dd�}t tj	tj	gƒ}t tj	tj	gƒ}tjt|d��  t tj||gdd�|¡ t |j|dd�|¡ W d   ƒ n	1 �sw   Y  tjt|d��! t tj||gdd�|¡ t |j|dd�|¡ W d   ƒ d S 1 �s@w   Y  d S )
Nr    r^   r   r   zDThe behavior of array concatenation with empty entries is deprecatedr>   Tr@   r!   )
r   rF   Úassert_produces_warningÚFutureWarningrL   rM   rN   rK   r¦   r§   )r4   rY   rZ   r[   rV   r*   r*   r+   Útest_concat_categorical_empty±  s@   þþþ$þz4TestConcatAppendCommon.test_concat_categorical_emptyc                 C   s  t ddgddgd�}ddg}t||dœƒ}t g d¢ddgd�}g d¢}t||dœtg d	¢ƒd
�}t t ||g¡|¡ t | |¡|¡ t ddgg d¢d�}ddg}t||dœƒ}	tj||	gdd�}
ttdƒg d¢dœƒ}t |
|¡ |j|	dd�}
t |
|¡ d S )Nr   r   rª   r   r   )Úcatsr8   )r   r   r   r   )r   r   r   r   rh   ri   r   Tr@   Úabab)	r   r   r   rF   rŒ   rM   rN   rK   rD   )r4   Úcatr8   ÚdfÚcat2rQ   rV   Úcat3rR   Údf_different_categoriesrU   r*   r*   r+   Útest_categorical_concat_appendÜ  s    z5TestConcatAppendCommon.test_categorical_concat_appendN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r:   r\   rf   rt   r|   rH   r`   Úparametrizer’   r•   rž   r    r¡   r©   r®   r°   r·   r»   r½   r¿   rÂ   rÊ   r*   r*   r*   r+   r.   7   s,    jL 
50
@*&+r.   )Únumpyr¦   rH   ÚpandasrM   r   r   r   r   Úpandas._testingÚ_testingrF   ÚfixturerD   r§   rm   rn   rŸ   Úitemsr,   r-   r.   r*   r*   r*   r+   Ú<module>   sH    

ýýýýëåÿ

