a
    Pfl                     @   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*   g/var/www/ai-form-bot/venv/lib/python3.9/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   sp   |\}}||}|dkr |r d}t |tr:|j|kslJ n2t |trl|dr^|jdkslJ n|j|kslJ d S )Nr!   stringZperiodz	Period[M])
isinstancer   dtyper   
startswith)selfr,   Zindex_or_seriesZusing_infer_stringtypvalsobjr*   r*   r+   test_dtypes<   s    


z"TestConcatAppendCommon.test_dtypesc                 C   s6  |\}}|}|}|dkrJt 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 sV0    Y  tjtdd& t|t||g W d    n1 s0    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 sX0    Y  tjt|d& t	|
t	||g W d    n1 s0    Y  tjt|d" tt	||g W d    n1 s0    Y  tjt|d( tt	|t	||g W d    n1 s(0    Y  d S )Nr    x)nameyzall inputs must be IndexmatchTZignore_indexZcheck_index_typezPcannot concatenate object of type '.+'; only Series and DataFrame objs are valid)r   listr   appendtmassert_index_equalpytestZraises	TypeErrorr   _appendassert_series_equalpdconcat)r3   r,   typ1vals1vals2vals3exp_data	exp_data3resexpi1i2s1s2msgr*   r*   r+   test_concatlike_same_dtypesJ   s    

.6.62z2TestConcatAppendCommon.test_concatlike_same_dtypesc                 C   s  |\}}|\}}|}d }	d }
||kr0t d n|dks@|dkrJt d |dkrx|dv rx|}
t jjdd}|| nF|dkr|dv r|}
t jjdd}|| n|dv s|dv rt}	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"   r1   Tr=   r>   )rC   skipmarkZxfailZapplymarkerr!   r   r@   rA   rB   r   rE   rF   rG   rH   )r3   r,   r-   r'   rI   rJ   Ztyp2rK   rL   Zexp_index_dtypeZexp_series_dtyperZ   rM   rN   rO   rP   r*   r*   r+   test_concatlike_dtypes_coercion   sR    
z6TestConcatAppendCommon.test_concatlike_dtypes_coercionc                 C   s:  t ddg}t ddg}tt dt dt dt dg}||}t|| t	|d t jsnJ t	|d t jsJ t
|}t
|}||}t|t
|g dd t	|jd t jsJ t	|jd t jsJ t ||g}t|t
|g dd t	|jd t jsJ t	|jd t js6J d S )	Nr   r   r   r   r   r   r   r   r   index)rG   DatetimeIndexTimedeltaIndexr   	Timestamp	Timedeltar@   rA   rB   r0   r   rE   rF   ZilocrH   )r3   ZdtitdirP   rO   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   rh   ri   r]   r^   )	rG   r`   r@   rA   rB   r   rE   rF   rH   )	r3   tz_aware_fixturer   dti1dti2rP   rO   dts1dts2r*   r*   r+   test_concatlike_datetimetz   s    

z1TestConcatAppendCommon.test_concatlike_datetimetzr   )UTCr   z
Asia/TokyoZ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)r_   columns)rq   z
2014-07-16rr   rv   rw   ns)	rG   Z
date_ranger`   r   Zas_unitrA   assert_frame_equalrE   rH   )r3   r   Zix1Zix2Zdf1Zdf2Zexp_idxrP   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   rh   ri   rX   r]   r^   z
US/Pacific)rG   r`   r   rb   r!   r@   rA   rB   r   rE   rF   rH   )r3   rj   r   rk   rl   rP   rO   rm   rn   Zdti3Z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   r]   r^   )	rG   PeriodIndexr@   rA   rB   r   rE   rF   rH   r3   pi1Zpi2rP   rO   ps1Z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   rh   z
2012-02-01rs   rX   r]   r^   )rG   r   r   Periodr!   r@   rA   rB   r   rE   rF   rH   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   rX   r]   r^   )rG   r   ra   r   r   rc   r!   r@   rA   rB   r   rE   rF   rH   )r3   r   rd   rP   rO   r   rf   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    rX   r   r   r   Tr=   r	   r	   r   r   r   
      )	r   npnanrA   rF   rG   rH   rE   r   r3   rS   rT   rP   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   rG   rH   rA   rF   )r3   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    rX   r   Tr=   r	   r   )r   r   r	   r   r   r   r   r	   r   r   r   r   r   )	r   r   r   r   rA   rF   rG   rH   rE   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    rX   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   rA   rF   rG   rH   rE   )r3   rS   rT   s3rP   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    rX   r   r   r   Tr=   )r   r   r   rG   rH   rA   rF   rE   )	r3   rS   rT   r   Zs4Zs5Zs6rP   rO   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   rA   rF   rG   rH   rE   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 )NrX   r    r   Tr=   r   )
r   r   arrayr   r   rA   rF   rG   rH   rE   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 st0    Y  tjt|d@ ttj||gdd| t|j|dd| W d    n1 s0    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0    Y  tjt|d@ ttj||gdd| t|j|dd| W d    n1 s~0    Y  d S )
Nr    rX   r   r   zDThe behavior of array concatenation with empty entries is deprecatedr;   Tr=   r!   )
r   rA   Zassert_produces_warningFutureWarningrF   rG   rH   rE   r   r   )r3   rS   rT   rU   rP   r*   r*   r+   test_concat_categorical_empty  s8    446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   )Zcatsr5   )r   r   r   r   )r   r   r   r   r]   r^   r   Tr=   Zabab)	r   r   r   rA   r|   rG   rH   rE   r?   )r3   catr5   Zdfcat2rK   rP   Zcat3rL   Zdf_different_categoriesrO   r*   r*   r+   test_categorical_concat_append  s     z5TestConcatAppendCommon.test_categorical_concat_appendN)__name__
__module____qualname____doc__r7   rV   r[   rg   ro   rC   rZ   Z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   rC   ZpandasrG   r   r   r   r   Zpandas._testingZ_testingrA   Zfixturer?   r   rb   rc   r   itemsr,   r-   r.   r*   r*   r*   r+   <module>   sD   



