o
    ŀgl                     @   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*   b/var/www/html/myenv/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 sw   Y  tjtdd t|t||g W d    n1 sw   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 sw   Y  tjt|d t	|
t	||g W d    n	1 sw   Y  tjt|d tt	||g W d    n	1 sw   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sJ t	|jd t jsJ 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    



