o
    Û­j   ã                   @   s  d dl mZmZ d dlmZ d dlmZ d dlmZ d dlZ	d dl
Z
d dlmZ d dlmZ d dlm  mZ d dlZd dlmZmZmZmZmZmZmZ d dlmZ d d	lm Z  d d
l!m"Z" G dd„ dƒZ#dd„ Z$e
j% &deeg¡dd„ ƒZ'dd„ Z(dd„ Z)dd„ Z*e
j% &dg d¢g d¢g¡dd„ ƒZ+dd„ Z,e
j% -d¡e
j% &d e .d!e	 /d d"¡i¡ej0e	 /d d"¡d!d#�g¡d$d%„ ƒƒZ1d&d'„ Z2d(d)„ Z3e
j% &d*g d+¢¡d,d-„ ƒZ4e
j% &d.d/gd0 d1fd/gd0 d2fg d3¢d2fg d3¢d1fg¡d4d5„ ƒZ5d6d7„ Z6d8d9„ Z7e
j% &d:ed;d<gd=�ed>d;d<gid=�ee8d?�ee8d?�g¡d@dA„ ƒZ9e
j% &d:ed;d<gd=�ed>d;d<gid=�ee8d?�ee8d?�g¡dBdC„ ƒZ:ej;e
j% &dDg dE¢¡e
j% &dFg dG¢¡dHdI„ ƒƒƒZ<ej;e
j% &dDg dE¢¡e
j% &dFg dG¢¡dJdK„ ƒƒƒZ=ej;dLdM„ ƒZ>dNdO„ Z?dPdQ„ Z@dRdS„ ZAdTdU„ ZBdS )Vé    )ÚabcÚdeque)ÚIterator)Údatetime)ÚDecimalN)Úusing_string_dtype)ÚInvalidIndexError)Ú	DataFrameÚIndexÚ
MultiIndexÚPeriodIndexÚSeriesÚconcatÚ
date_range)ÚSparseArray)Ú
to_decimalc                   @   sø   e Zd Zdd„ Zejjeƒ dd�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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/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Z d7S )8ÚTestConcatenatec                 C   s”   t dddd�}t dddd�}ttj d¡ d¡|ƒ}ttj d¡ d¡|ƒ}| ¡ }| ¡ }t||gƒ}t|j	t
ƒs<J ‚|j	d	 |j	d	 ksHJ ‚d S )
Nz
12/31/1990z
12/31/1999zYE-DEC)Úfreqz
12/31/2000z
12/31/2009é   é
   r   )r   r   ÚnpÚrandomÚdefault_rngÚstandard_normalÚ	to_periodr   Ú
isinstanceÚindexr   )ÚselfÚd1Úd2Ús1Ús2Úresult© r#   úd/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/reshape/concat/test_concat.pyÚtest_append_concat!   s   z"TestConcatenate.test_append_concatzTODO(infer_string))Úreasonc                    s@  t tj d¡ d¡ƒ}t tj d¡jdddd� dd¡ƒ}t dd	itdƒd
�}t|||gddd�}|sK|j	j
D ]‰ t‡ fdd„|||fD ƒƒrIJ ‚q7n|j	j
D ]	‰ ˆ jd usXJ ‚qOt|||gddd�}|j	j
D ]H‰ ˆ jjdkr|ˆ j|j	j
d ju s{J ‚qgˆ jjdv r�ˆ j|j	j
d ju sŽJ ‚qgˆ jtkr¯|r¡ˆ |j	j
d u s J ‚nˆ jd us¨J ‚ˆ jd us¯J ‚qgt tj d¡ d¡ƒ}t||||gddd�}|j	j
D ]S‰ ˆ jjdkrò|sÖ|rêt‡ fdd„|j	j
|j	j
 D ƒƒséJ ‚qÊˆ jd u sñJ ‚qÊˆ jjdv �rˆ j|j	j
d ju �sJ ‚qÊˆ jtk�rt‡ fdd„|j	j
D ƒƒ�sJ ‚qÊd S )Nr   ©é   é   r   r   r(   )Úsizeé   é   Úfoo©r   T)ÚaxisÚcopyc                 3   s*   � | ]}|j jD ]	}t ˆ |¡V  qqd S ©N)Ú_mgrÚarraysr   Úshares_memory)Ú.0ÚxÚy©Úarrr#   r$   Ú	<genexpr>=   s   € ý
þÿz3TestConcatenate.test_concat_copy.<locals>.<genexpr>FÚf)ÚiÚu)r(   r+   c                 3   ó   � | ]	}t  ˆ |¡V  qd S r1   ©r   r4   ©r5   Úotherr8   r#   r$   r:   ]   s
   € 
ÿ
ÿc                 3   r>   r1   r?   r@   r8   r#   r$   r:   h   s   € )r	   r   r   r   r   ÚintegersÚreshapeÚranger   r2   r3   ÚanyÚbaseÚdtypeÚkindÚobject)r   Úusing_array_managerÚusing_copy_on_writeÚdfÚdf2Údf3r"   Údf4r#   r8   r$   Útest_concat_copy2   sN   $þÿ
€þ €ñz TestConcatenate.test_concat_copyc                 C   st  t tj d¡ d¡ƒ}t tj d¡ d¡ƒ}t||gddgd�}t g d¢g d¢g¡}t tj|j	|j	f |d	�}t
 ||¡ t||gddgd�}t g d
¢g d¢g¡}t tj|j	|j	f |d	�}t
 ||¡ t tj d¡ d¡ƒ}t tj d¡ d¡ƒ}t||gddgdd�}t tj|j	|j	f |d�}t
 ||¡ t||gddgdd�}t tj|j	|j	f |d�}t
 ||¡ d S )Nr   )r)   r(   )r(   r(   r   r+   ©Úkeys)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'   ©rR   r/   ©Úcolumns)r	   r   r   r   r   r   r   Úfrom_arraysÚr_ÚvaluesÚtmÚassert_frame_equalÚc_)r   rL   rM   r"   Ú	exp_indexÚexpectedÚ
exp_index2r#   r#   r$   Útest_concat_with_group_keysj   s(   ÿz+TestConcatenate.test_concat_with_group_keysc                 C   sÄ   t tj d¡ d¡ƒ}|jd d …ddgf |jd d …dgf |jd d …dgf g}g d¢}t|dg d¢|gdgd	�}t |j	j
d t|dd
�¡ t |j	j
d tg d¢ƒ¡ |j	jdd gks`J ‚d S )Nr   ©r   r(   r   r+   r)   )ÚthreeÚtwoÚoneÚzero)rc   rb   ra   Ú	group_key)r/   rR   ÚlevelsÚnames©Úname)r   r+   r   r)   )r	   r   r   r   r   Úilocr   rY   Úassert_index_equalrU   rf   r
   rg   )r   rL   ÚpiecesÚlevelr"   r#   r#   r$   Ú test_concat_keys_specific_levels‡   s   <ûz0TestConcatenate.test_concat_keys_specific_levelsÚmappingÚdictc                    s  |dkrt n|}|ttj d¡ d¡ƒttj d¡ d¡ƒttj d¡ d¡ƒttj d¡ d¡ƒdœƒ‰ tˆ  ¡ ƒ}tˆ ƒ}t‡ fdd„|D ƒ|d�}t	 
||¡ tˆ dd	�}t‡ fd
d„|D ƒ|dd�}t	 
||¡ g d¢}tˆ |d�}t‡ fdd„|D ƒ|d�}t	 
||¡ d S )Nrp   r   r'   )r-   ÚbarÚbazÚquxc                    ó   g | ]}ˆ | ‘qS r#   r#   ©r5   Úk©Úframesr#   r$   Ú
<listcomp>§   ó    z7TestConcatenate.test_concat_mapping.<locals>.<listcomp>rQ   r+   ©r/   c                    rt   r#   r#   ru   rw   r#   r$   ry   «   rz   rS   )rr   r-   rq   c                    rt   r#   r#   ru   rw   r#   r$   ry   °   rz   )rp   r	   r   r   r   r   ÚlistrR   r   rY   rZ   )r   ro   Únon_dict_mapping_subclassÚconstructorÚsorted_keysr"   r]   rR   r#   rw   r$   Útest_concat_mapping˜   s&   üÿ	z#TestConcatenate.test_concat_mappingc                 C   s,  t tj d¡ d¡ƒ}t tj d¡ d¡ƒ}ddgddgg}dd	g}t||||gg d
¢||d�}t||||gƒ}t|dgg g d¢g d¢g d¢g|d g d�}||_t 	||¡ t||||gg d
¢|d�}|jj
dksmJ ‚t||||gg d
¢dd	gd�}|jj
dks„J ‚t |jjd tddgdd�¡ d S )Nr   ©r+   r)   ©r+   r(   r-   rr   rc   rb   ÚfirstÚsecond))r-   rc   )r-   rb   )rr   rc   )rr   rb   )rR   rf   rg   r   )r   r   r+   r+   )r   r+   r   r+   ©r   r   r   r   )rf   Úcodesrg   ©rR   rf   )NNN©rR   rg   )rƒ   r„   Nrh   )r	   r   r   r   r   r   r   r   rY   rZ   rg   rk   rf   r
   )r   rL   rM   rf   rg   r"   r]   r\   r#   r#   r$   Útest_concat_keys_and_levels³   sB   
ü
ý
ý
ýÿz+TestConcatenate.test_concat_keys_and_levelsc                 C   sÚ   t tj d¡ d¡dgd�}t tj d¡ d¡dgd�}d}tjt|d�� t||gd	d
gg d¢gd� W d   ƒ n1 s>w   Y  d}tjt|d�� t||gd	d
gg d¢gd� W d   ƒ d S 1 sfw   Y  d S )Nr   r�   Úar.   r‚   Úbz Values not found in passed level©Úmatchrc   rb   )r-   rq   rr   r‡   zKey one not in level)	r	   r   r   r   r   ÚpytestÚraisesÚ
ValueErrorr   )r   rL   rM   Úmsgr#   r#   r$   Ú"test_concat_keys_levels_no_overlapÜ   s   ÿ"ÿz2TestConcatenate.test_concat_keys_levels_no_overlapc                 C   sD  g d¢}t tjg d¢dd�tjg d¢dd�tjg d¢dd�tjg d¢dd�dœ|d�}t tjg d¢dd�tjg d¢dd�tjg d¢dd�tjg d¢dd�dœ|d�}t||gdd�}t tj|j|jgd	d
�|d�}t ||¡ t tj 	d¡ 
d¡dgd�}t tj 	d¡ 
d¡dgd�}t||gddgddgd�}|jjdks J ‚d S )N)ÚAÚBÚCÚD©r+   r   r)   r(   Úf8©rG   Úi8rT   T©Úignore_indexr   r{   r   r�   rŠ   r.   r‚   r‹   rc   rb   rƒ   r„   rˆ   )rƒ   r„   )r	   r   Úarrayr   ÚconcatenaterX   rY   rZ   r   r   r   r   rg   )r   rU   Údf1rM   Úappendedr]   rL   r"   r#   r#   r$   Ú test_crossed_dtypes_weird_corneré   s4   üù
üù
ÿz0TestConcatenate.test_crossed_dtypes_weird_cornerc                 C   s@   t dddœtdƒd�}t dddœtdƒd�}t||g|d� d S )Nr-   rq   )r“   ©r”   r+   r   r.   )r”   r¢   ©Úsort)r	   rD   r   )r   r¤   rŸ   rM   r#   r#   r$   Útest_with_mixed_tuples
  s   z&TestConcatenate.test_with_mixed_tuplesc                 C   s  t dddd�}tjddd�}t||d�}t||d�}t| dd	¡|d�}tt |d
¡ dd
¡|ddgd�}t||gd	d�}t 	||¡ tt |d
¡ dd
¡|dd	gd�}t||gd	d�}t 	||¡ tt |d¡ dd¡|g d¢d�}t|||gd	d�}t 	||¡ tt |d¡ dd¡|g d¢d�}t|||||gd	d�}t 	||¡ d|_
tt |d¡ dd¡|g d¢d�}t|||gd	d�}t 	||¡ d|_
tt |d¡ dd¡|g d¢d�}t|||gd	d�}t 	||¡ tt |d¡ dd¡|g d¢d�}t|||gd	dd�}t 	||¡ d S )Nú01-Jan-2013r   Úh©Úperiodsr   Úint64r™   r.   éÿÿÿÿr+   r   r   ©r   rU   r{   r)   ©r   r+   r   r,   )r   r   r+   r   r)   r-   )r-   r   r   rq   ©r-   r   rq   T)r/   rœ   )r   r   Úaranger   r	   rC   Úrepeatr   rY   rZ   ri   ©r   r   r9   r    r!   rL   r]   r"   r#   r#   r$   Útest_concat_mixed_objs_columns  sT   ÿÿÿÿÿÿÿz.TestConcatenate.test_concat_mixed_objs_columnsc                 C   sŽ   t dddd�}tjddd�}t||d�}t||d�}t| dd	¡|d�}tt |d
¡ dd	¡| ¡ d
 dgd�}t|||gƒ}t	 
||¡ d S )Nr¦   r   r§   r¨   rª   r™   r.   r«   r+   r)   r   r¬   )r   r   r¯   r   r	   rC   ÚtileÚtolistr   rY   rZ   r±   r#   r#   r$   Útest_concat_mixed_objs_indexK  s    ÿz,TestConcatenate.test_concat_mixed_objs_indexc                 C   sà   t dddd�}tjddd�}t||dd�}t||d	d�}t| d
d¡|d�}tt t t d¡dkdtj	¡|¡j
| ¡ d g d¢d�}t|||gƒ}t ||¡ tt |d¡ d
d¡dgd�}t|||gdd�}t ||¡ d S )Nr¦   r   r§   r¨   rª   r™   r-   )r   ri   rq   r«   r+   r.   r)   r®   r¬   r   rT   Tr›   )r   r   r¯   r   r	   rC   ÚkronÚwhereÚidentityÚnanÚTr´   r   rY   rZ   r³   r±   r#   r#   r$   Ú"test_concat_mixed_objs_index_names[  s   "
ýz2TestConcatenate.test_concat_mixed_objs_index_namesc                 C   sÞ   t dt d¡ d¡tjgiƒ}t|jdg |jdg gƒ}t |j	|j	¡ t dt
dddƒt
dddƒgiƒ}t|jdg |jdg gƒ}t |j	|j	¡ t d	d
gd gd  iƒ}t|jdg |jdg gƒ}t |j	|j	¡ d S )NÚdateÚ20130101ÚUTCr   r+   iÜ  iô  r   Útextz
some wordsé	   )r	   ÚpdÚ	TimestampÚtz_localizeÚNaTr   rj   rY   Úassert_series_equalÚdtypesr   )r   rL   r"   r#   r#   r$   Útest_dtype_coercionr  s    z#TestConcatenate.test_dtype_coercionc                 C   sR   t tj d¡ d¡ƒ}t|gdgd�}t||gddgd�}t ||d d… ¡ d S )Nr   r`   r-   rQ   rq   r   )r	   r   r   r   r   r   rY   rZ   )r   rL   r"   r]   r#   r#   r$   Útest_concat_single_with_keyƒ  s   z+TestConcatenate.test_concat_single_with_keyc                 C   s<   t jtdd�� tg ƒ W d   ƒ d S 1 sw   Y  d S )NzNo objects to concatenaterŒ   )rŽ   r�   r�   r   ©r   r#   r#   r$   Útest_concat_no_items_raisesŠ  s   
"ÿz+TestConcatenate.test_concat_no_items_raisesc                 C   s†   t tj d¡ d¡ƒ}|d d… d d |dd … g}t|ƒ}t ||¡ tj	t
dd�� td d gƒ W d   ƒ d S 1 s<w   Y  d S )Nr   r`   r,   zAll objects passed were NonerŒ   )r	   r   r   r   r   r   rY   rZ   rŽ   r�   r�   )r   rL   rl   r"   r#   r#   r$   Útest_concat_exclude_noneŽ  s   "ÿz(TestConcatenate.test_concat_exclude_nonec                 C   sÎ   t g d¢g d¢g d¢gƒ}td ||d d… |d d… |dœƒ}t||d d… |d d… |dœƒ}t ||¡ td ||d d… |d d… |gg d¢d�}t||d d… |d d… |gg d¢d�}t ||¡ d S )N)r   é   é   r   r+   )rŠ   r‹   ÚcÚdÚe)r‹   rÎ   rÏ   rÐ   rQ   ©r	   r   rY   rZ   )r   Údf0r"   r]   r#   r#   r$   Útest_concat_keys_with_none—  s   $""ÿ(z*TestConcatenate.test_concat_keys_with_nonec                 C   sn   t tjdtjd�tddd�d�}| ¡ d d d… }t||gddd	�}t||gddd	�}t|ƒt|ƒks5J ‚d S )
Nr   r™   z
2020-01-01)r©   r.   r   Úouterr+   )Újoinr/   )r   r   r¯   Úfloat64r   r0   r   Úlen)r   Úts1Úts2ÚleftÚrightr#   r#   r$   Útest_concat_bug_1719¥  s   ÿz$TestConcatenate.test_concat_bug_1719c                 C   s`   t t d¡ƒ}t t d¡ƒ}d |_|_t||gdd�}t||dœƒ}ddg|_t 	||¡ d S )Nr,   z	same namer+   r{   ©r   r+   )
r   r   ÚzerosÚonesri   r   r	   rU   rY   rZ   )r   Úts0rØ   r"   r]   r#   r#   r$   Útest_concat_bug_2972²  s   
z$TestConcatenate.test_concat_bug_2972c                 C   s‚   t g d¢g d¢g d¢dœƒ}t g d¢g d¢g d¢dœƒ}t g d¢g d	¢g d
¢g d¢gƒ}g d¢|_t||gdd�}t ||¡ d S )Nr…   )é   râ   râ   râ   )Úrrrrã   rã   rã   )ÚfirmNoÚprcÚ	stringvar)rÀ   r   é   é   r—   )r•   Úmiscrå   )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	   rU   r   rY   rZ   )r   rŸ   rM   r]   r"   r#   r#   r$   Útest_concat_bug_3602¼  s&   ýÿÿüÿ
z$TestConcatenate.test_concat_bug_3602c                    sî   t g d¢ƒ‰ t g d¢ƒ‰t g d¢ƒ}t tˆ ˆfdd�|¡ t tˆ ˆgdd�|¡ t tdd„ ˆ ˆfD ƒdd�|¡ t ttˆ ˆfƒdd�|¡ G ‡ ‡fdd	„d	ƒ}t t|ƒ dd�|¡ G ‡ ‡fd
d„dtjƒ}t t|ƒ dd�|¡ d S )N©r+   r   r)   ©r(   r,   râ   ©r+   r   r)   r(   r,   râ   Tr›   c                 s   ó   � | ]}|V  qd S r1   r#   )r5   rL   r#   r#   r$   r:   Þ  ó   € z8TestConcatenate.test_concat_iterables.<locals>.<genexpr>c                       s(   e Zd Zdefdd„Z‡ ‡fdd„ZdS )z>TestConcatenate.test_concat_iterables.<locals>.CustomIterator1Úreturnc                 S   s   dS )Nr   r#   rÉ   r#   r#   r$   Ú__len__ã  s   zFTestConcatenate.test_concat_iterables.<locals>.CustomIterator1.__len__c              
      s0   zˆ ˆdœ| W S  t y } zt|‚d }~ww )NrÝ   )ÚKeyErrorÚ
IndexError)r   r   Úerr©rŸ   rM   r#   r$   Ú__getitem__æ  s   €ÿzJTestConcatenate.test_concat_iterables.<locals>.CustomIterator1.__getitem__N)Ú__name__Ú
__module__Ú__qualname__Úintrñ   rö   r#   rõ   r#   r$   ÚCustomIterator1â  s    rû   c                       s    e Zd Zdef‡ ‡fdd„ZdS )z>TestConcatenate.test_concat_iterables.<locals>.CustomIterator2rð   c                 3   s   � ˆ V  ˆV  d S r1   r#   rÉ   rõ   r#   r$   Ú__iter__ï  s   €
zGTestConcatenate.test_concat_iterables.<locals>.CustomIterator2.__iter__N)r÷   rø   rù   r   rü   r#   rõ   r#   r$   ÚCustomIterator2î  s    rý   )r	   rY   rZ   r   r   r   ÚIterable)r   r]   rû   rý   r#   rõ   r$   Útest_concat_iterablesÕ  s   ÿ
z%TestConcatenate.test_concat_iterablesc                 C   sV   t tdƒg d¢d�g}|dd„ tdƒD ƒ7 }t|dd�j}tg d	¢ƒ}t ||¡ d S )
Nr)   )rŠ   r+   Nr¬   c                 S   s    g | ]}t td ƒg d¢d�‘qS )r)   )Nr+   rŠ   r¬   )r	   rD   )r5   Ú_r#   r#   r$   ry   ø  s     z5TestConcatenate.test_concat_order.<locals>.<listcomp>éd   Tr£   )r+   rŠ   N)r	   rD   r   rU   r
   rY   rk   )r   Údfsr"   r]   r#   r#   r$   Útest_concat_orderõ  s
   z!TestConcatenate.test_concat_orderc                 C   sb   t tjddgdd�ƒ}t tddgƒƒ}t||gdd�}t ddtdƒtdƒgtd�}t ||¡ d S )Nr+   r   ÚInt64r™   Tr›   )	r   rÁ   r�   r   r   r   rI   rY   rÅ   )r   rŠ   r‹   r"   r]   r#   r#   r$   Ú.test_concat_different_extension_dtypes_upcastsþ  s
   z>TestConcatenate.test_concat_different_extension_dtypes_upcastsc                 C   sR   t ttdƒƒttdƒƒgddgd�}t ttdƒƒttdƒƒdœƒ}t ||¡ d S )Nr)   r(   ÚFirstÚAnotherrQ   )r  r  )r   r   rD   rY   rÅ   )r   r]   r"   r#   r#   r$   Útest_concat_ordered_dict  s
   ÿz(TestConcatenate.test_concat_ordered_dictc                 C   sŒ   t tj d¡ d¡g d¢dgd�}t tj d¡ d¡g d¢dgd�}d}tjt|d	�� t||gd
d� W d   ƒ d S 1 s?w   Y  d S )Nr   r,   )r   r+   r   r)   r)   rŠ   r¬   )r   r+   r   r   r(   r‹   z8Reindexing only valid with uniquely valued Index objectsrŒ   r+   r{   )	r	   r   r   r   r   rŽ   r�   r   r   )r   rŸ   rM   r‘   r#   r#   r$   Ú#test_concat_duplicate_indices_raise  s   ýý"ÿz3TestConcatenate.test_concat_duplicate_indices_raiseN)!r÷   rø   rù   r%   rŽ   ÚmarkÚxfailr   rP   r_   rn   Úparametrizer€   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       s8    
7
)!	8	
 	r   c                 C   sn   |t d�j}| }|tjdg||d�ƒ|tjtjg||d�ƒ|tjdg||d�ƒg}t|ƒ}|jj|ks5J ‚d S )Nr™   r+   ©rG   Úndminr,   )rI   Úndimr   r�   r¹   r   rX   rG   )Úfloat_numpy_dtypeÚframe_or_seriesÚdimsÚdtr  r6   r#   r#   r$   Ú!test_concat_no_unnecessary_upcast   s   ýr  Úpdtc                 C   sh   |}| ƒ j }| tjdg||d�ƒ| tjtjg|d�ƒ| tjdg||d�ƒg}t|ƒ}|jjdks2J ‚d S )Nr+   r  )r  r,   rÖ   )r  r   r�   r¹   r   rX   rG   )r  Úany_signed_int_numpy_dtyper  r  r  r6   r#   r#   r$   Útest_concat_will_upcast.  s   ýr  c                  C   sD   t ddgiƒ} t dg iƒ}t ddgiƒ}t| |gƒ}t ||¡ d S )Nr-   r+   g      ð?rÑ   )rŸ   rM   r]   r"   r#   r#   r$   Ú0test_concat_empty_and_non_empty_frame_regression;  s
   r  c                  C   s\   t tg d¢ƒƒ} tddgddgddggd� t tjd¡¡}t| | gdd�}t	 
||¡ d S )Nr­   r   r+   r   ©Údatar{   )r   r   r	   ÚastyperÁ   ÚSparseDtyper   rª   r   rY   rZ   )rŠ   r]   r"   r#   r#   r$   Útest_concat_sparseD  s   ÿr  c                  C   sn   t  tjd ¡} tt j dd g¡| d�}tdgtd�}tg d¢g d¢d� | ¡}t	||gdd�}t
 ||¡ d S )Nr+   r™   )r+   Nr+   )r   r+   r   ©r  r   r   r{   )rÁ   r  r   rÖ   r   r3   r   Úfloatr  r   rY   rÅ   )rG   rŠ   r‹   r]   r"   r#   r#   r$   Útest_concat_dense_sparseN  s   r   rR   )rÐ   r;   r;   )r;   rÐ   r;   c                 C   s®   t g d¢g d¢dœƒ}tg d¢dd�}tg d¢dd�}t|||gd	| d
�}g d¢g d¢g d¢g}t | d df| d df| d	 df| d dfg¡}t ||d�}t ||¡ d S )Nrë   rì   ©rŠ   r‹   )é   é   rÀ   rÎ   rh   )r   rç   rè   rÏ   r+   ©r/   rR   )r+   r(   r"  r   )r   r,   r#  rç   )r)   râ   rÀ   rè   r   rŠ   r‹   r   rT   )r	   r   r   r   Úfrom_tuplesrY   rZ   )rR   rL   r    r!   r"   Úexpected_valuesÚexpected_columnsr]   r#   r#   r$   Útest_duplicate_keysX  s   *ÿr(  c                  C   s”   ddg} t g d¢g d¢dœƒ}t||gd| d�}g d¢g d¢g d	¢g}t | d
 df| d
 df| d df| d dfg¡}t ||d�}t ||¡ d S )NrÐ   rë   rì   r!  r+   r$  )r+   r(   r+   r(   )r   r,   r   r,   )r)   râ   r)   râ   r   rŠ   r‹   rT   )r	   r   r   r%  rY   rZ   )rR   rL   r"   r&  r'  r]   r#   r#   r$   Útest_duplicate_keys_same_frameg  s   *ÿr)  zMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningÚobjr“   r   rh   c                 C   s"   t | | gƒ}t|t| ƒƒsJ ‚d S r1   )r   r   Útype)r*  r"   r#   r#   r$   Útest_concat_preserves_subclasst  s   r,  c                  C   s”   t dtjg d¢dd�iƒ} t dt g d¢¡iƒ}t| |gdd�}t dg d¢idd�}t ||¡ t|| gdd�}t dg d	¢idd�}t ||¡ d S )
NrŠ   rë   r  r™   rì   Tr›   rí   )r(   r,   râ   r+   r   r)   )r	   rÁ   r�   r   r   rY   rZ   ©rŸ   rM   r"   r]   r#   r#   r$   Ú(test_concat_frame_axis0_extension_dtypes…  s   r.  c                  C   s^   t ddgidd�} t ddgidd�}t| |gdd�}t dd gd dgd	œdd�}t ||¡ d S )
NrŠ   r«   r  r™   r‹   r+   Tr›   r!  rÑ   )Údf_aÚdf_br"   r]   r#   r#   r$   Ú+test_concat_preserves_extension_int64_dtype“  s
   r1  zdtype1,dtype2,expected_dtype))Úboolr2  r2  )Úbooleanr2  r3  )r2  r3  r3  )r3  r3  r3  c                 C   sP   t ddg| d�}t ddg|d�}t||gdd�}t g d¢|d�}t ||¡ d S )NTFr™   r›   )TFFT)r   r   rY   rÅ   )Údtype1Údtype2Úexpected_dtypeÚser1Úser2r"   r]   r#   r#   r$   Útest_concat_bool_typesœ  s
   r9  )rR   Ú	integrityÚredr)   TF)r;  Úbluer;  c                 C   sh   t ddiƒt ddiƒt ddiƒg}t|| |d�}tt| g d¢ƒƒ}t g d	¢t |¡d
�}t ||¡ d S )NrŠ   r+   r‹   r   rÎ   r)   )rR   Úverify_integrity)rŠ   r‹   rÎ   rë   r.   )r   r   r|   Úzipr   r%  rY   rÅ   )rR   r:  Úseries_listr"   Útuplesr]   r#   r#   r$   Útest_concat_repeated_keys®  s
   "rA  c                  C   s²   t jdgddd�} tddgi| d�}td gdd	d�}td gtjgd
œ|d�}t||gdd�}td | d gtd�}ttjd tjgtd�tjtjgtjdgdœ|d�}t	 
||¡ d S )Nz2021-04-08 21:21:14+00:00zdatetime64[ns, UTC]z
Time (UTC))rG   ri   r•   gÿ!ýöuàà?r  rI   zMaybe Time (UTC))r“   r”   rU   r{   r   r™   ©r“   r”   r•   r.   )rÁ   ÚDatetimeIndexr	   r
   r   r¹   r   rI   r�   rY   rZ   )ÚdtirÛ   ÚidxrÚ   r"   r\   r]   r#   r#   r$   Ú test_concat_null_object_with_dtiÀ  s    ÿ
ýúrF  c                  C   sl   t  ddg¡} tddgg| d�}tdgt d¡d�}t||gƒ}tddgtjtjgg| d�}t 	||¡ d S )Nr¢   )r•   r+   r+   r   rT   r   r¬   )
r   r%  r	   rÁ   Ú
RangeIndexr   r   r¹   rY   rZ   )ÚmirŸ   rM   r"   r]   r#   r#   r$   Ú,test_concat_multiindex_with_empty_rangeindexØ  s   rI  r  r+   r   r  Úcol1r™   c                 C   sF   |   ¡ }ddi|_|   ¡ }ddi|_t||gƒ}t|jƒdks!J ‚d S )Nr+   r   r   )r0   Úattrsr   r×   ©r  rŸ   rM   rL   r#   r#   r$   Útest_concat_drop_attrsã  ó   

rM  c                 C   sF   |   ¡ }ddi|_|   ¡ }ddi|_t||gƒ}|jd dks!J ‚d S )Nr+   )r0   rK  r   rL  r#   r#   r$   Útest_concat_retain_attrsú  rN  rO  Údf_dtype)rÖ   rª   údatetime64[ns]Úempty_dtype)NrÖ   rI   c                 C   sÂ   t ddgddgdœ|d�}t ddg| d�}d}d }|d	ks%|d
kr'| d
kr't}tj||d�� t||gƒ}W d   ƒ n1 s?w   Y  |}|dkrY| d
krT| d
¡}n| d¡}t ||¡ d S )Nr+   r   ©r-   rq   r™   r-   rq   )rU   rG   úDThe behavior of DataFrame concatenation with empty or all-NA entriesrQ  rÖ   rŒ   rª   rI   )r	   ÚFutureWarningrY   Úassert_produces_warningr   r  rZ   ©rR  rP  rL   Úemptyr‘   Úwarnr"   r]   r#   r#   r$   Ú%test_concat_ignore_empty_object_float  s    ÿ
rZ  c                 C   sè   t ddgddgdœ|d�}t tjgtjgdœ| d�}|dkr'| dkr%d}nd}d}d }| |kr6| d ur6t}n|d	kr<t}tj||d
�� t||gdd�}W d   ƒ n1 sVw   Y  t tjddgtjddgdœ|d�}t ||¡ d S )Nr+   r   rS  r™   rª   rI   rÖ   rT  rQ  rŒ   Tr›   )r	   r   r¹   rU  rY   rV  r   rZ   rW  r#   r#   r$   Ú&test_concat_ignore_all_na_object_float+  s"   ÿ"r[  c                  C   s¨   t dgt d¡gdœƒ} t ddgiƒ}|j| jd�}d}tjt|d�� t| |gd	d
�}W d   ƒ n1 s6w   Y  t ddgt d¡tj	gdœƒ }} t 
||¡ d S )Nr+   z
2012-01-01r!  rŠ   r   rT   rT  rŒ   Tr›   )r	   rÁ   rÂ   ÚreindexrU   rY   rV  rU  r   rÄ   rZ   )rŸ   rM   Úalignedr‘   r"   r]   r#   r#   r$   Ú%test_concat_ignore_empty_from_reindexG  s   ÿ"r^  c                     sL  t tdƒƒ‰ ‡ fdd„tdƒD ƒ} g d¢}d}tjt|d�� t| |dd	� W d   ƒ n1 s0w   Y  tjt|d�� t| |d
d	� W d   ƒ n1 sNw   Y  tjt|d�� tdd„ | D ƒdd„ |D ƒdd	� W d   ƒ n1 svw   Y  tjt|d�� tdd„ | D ƒdd„ |D ƒd
d	� W d   ƒ d S 1 sŸw   Y  d S )Nr,   c                    s   g | ]}ˆ | ‘qS r#   r#   )r5   Ún©Úserr#   r$   ry   Y  rz   z6test_concat_mismatched_keys_length.<locals>.<listcomp>r(   rB  zGThe behavior of pd.concat with len\(keys\) != len\(objs\) is deprecatedrŒ   r+   rS   r   c                 s   rî   r1   r#   ©r5   r6   r#   r#   r$   r:   b  rï   z5test_concat_mismatched_keys_length.<locals>.<genexpr>c                 s   rî   r1   r#   ©r5   r7   r#   r#   r$   r:   b  rï   c                 s   rî   r1   r#   rb  r#   r#   r$   r:   d  rï   c                 s   rî   r1   r#   rc  r#   r#   r$   r:   d  rï   )r   rD   rY   rV  rU  r   )ÚsersrR   r‘   r#   r`  r$   Ú"test_concat_mismatched_keys_lengthV  s    ÿÿ$ÿ$"ÿre  c                  C   sÖ   t ttdƒdd�ttdƒdd�tg d¢ƒdœƒ} |  ddg¡} t ttdƒdd�ttdƒdd�tg d	¢ƒdœƒ}| ddg¡}t| |gƒ}t ttd
ƒdd�ttdƒdd�tg d¢ƒdœƒ}| ddg¡}t ||¡ d S )Nr   Úcategoryr™   Úeeerë   )Úc1Úc2Úi2rh  ri  rì   ÚabcabcÚeeeeeerí   )r	   r   r|   Ú	set_indexr   rY   rZ   r-  r#   r#   r$   Ú$test_concat_multiindex_with_categoryg  s.   
ýÿ
ýÿ
ýÿrn  c                  C   sL   t dgdd�} t dgdd�}t| |gƒ}t ddgddgd�}t ||¡ d S )NrŠ   Ústringr™   r+   r  r   r.   rÑ   r-  r#   r#   r$   Útest_concat_ea_upcast„  s
   rp  c                  C   sŠ   t dd igƒ} t dt d¡igƒ}d}tjt|d�� t| |gdd�}W d   ƒ n1 s-w   Y  t dd t d¡giƒ}t ||¡ d S )Nr“   z1990-12-20 00:00:00+00:00rT  rŒ   Tr›   )r	   rÁ   rÂ   rY   rV  rU  r   rZ   )rŸ   rM   r‘   r"   r]   r#   r#   r$   Ú(test_concat_none_with_timezone_timestamp�  s   ÿrq  )CÚcollectionsr   r   Úcollections.abcr   r   Údecimalr   Únumpyr   rŽ   Úpandas._configr   Úpandas.errorsr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasrÁ   r	   r
   r   r   r   r   r   Úpandas._testingÚ_testingrY   Úpandas.core.arraysr   Úpandas.tests.extension.decimalr   r   r  r
  r  r  r  r  r   r(  r)  ÚfilterwarningsÚSubclassedDataFramer¯   ÚSubclassedSeriesr,  r.  r1  r9  rA  rF  rI  r  rM  rO  Úskip_array_manager_invalid_testrZ  r[  r^  re  rn  rp  rq  r#   r#   r#   r$   Ú<module>   s¼    $	    
	


ÿþþ	þ
		

üþ
		ÿÿøþ

ÿÿøþ


	