o
    թZh~                     @   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  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j.e	-d d!d d"gd#d$ Z/d%d& Z0d'd( Z1e
j#$d)g d*d+d, Z2e
j#$d-d.gd/ d0fd.gd/ d1fg d2d1fg d2d0fgd3d4 Z3d5d6 Z4d7d8 Z5e
j#$d9ed:d;gd<ed=d:d;gid<ee6d>ee6d>gd?d@ Z7e
j#$d9ed:d;gd<ed=d:d;gid<ee6d>ee6d>gdAdB Z8ej9e
j#$dCg dDe
j#$dEg dFdGdH Z:ej9e
j#$dCg dDe
j#$dEg dFdIdJ Z;ej9dKdL Z<dMdN Z=dOdP Z>dQdR Z?dSdT Z@dS )U    )abcdeque)Iterator)datetime)DecimalN)InvalidIndexError)	DataFrameIndex
MultiIndexPeriodIndexSeriesconcat
date_range)SparseArray)
to_decimalc                   @   s   e Zd Zdd Z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-d. Zd/d0 Zd1d2 Zd3d4 Zd5S )6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_normalZ	to_periodr   
isinstanceindexr   )selfZd1Zd2s1s2result r   ^/var/www/html/lang_env/lib/python3.10/site-packages/pandas/tests/reshape/concat/test_concat.pytest_append_concat   s   z"TestConcatenate.test_append_concatc                    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 ]A  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 sJ qg jtkr|r |j	j
d u sJ qg jd usJ qgt tjdd}t||||gddd}|j	j
D ]Q  jjdkr|s|rt fdd|j	j
|j	j
 D sJ qÈ jd u sJ qÈ jjdv r j|j	j
d ju sJ qÈ jtkrt fdd|j	j
D sJ qd 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>9   s    
z3TestConcatenate.test_concat_copy.<locals>.<genexpr>Ff)iu)r#   r&   c                 3       | ]	}t  |V  qd S r,   r   r/   r0   otherr3   r   r    r5   X   s
    

c                 3   r9   r,   r:   r;   r3   r   r    r5   c   s    )r   r   r   r   r   Zintegersreshaperanger   r-   r.   anybasedtypekindobject)r   Zusing_array_managerZusing_copy_on_writedfdf2Zdf3r   Zdf4r   r3   r    test_concat_copy/   sL   $
 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"   rH   r*   columns)r   r   r   r   r   r   r
   Zfrom_arraysZr_valuestmassert_frame_equalZc_)r   rD   rE   r   	exp_indexexpectedZ
exp_index2r   r   r    test_concat_with_group_keyse   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)rU   rT   rS   Z	group_key)r*   rH   levelsnamesname)r   r&   r   r$   )r   r   r   r   r   ilocr   rM   assert_index_equalrK   rW   r	   rX   )r   rD   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 )Nra   r   r"   )r(   barbazZquxc                       g | ]} | qS r   r   r0   kframesr   r    
<listcomp>       z7TestConcatenate.test_concat_mapping.<locals>.<listcomp>rG   r&   r*   c                    rd   r   r   re   rg   r   r    ri      rj   rI   )rc   r(   rb   c                    rd   r   r   re   rg   r   r    ri      rj   )ra   r   r   r   r   r   listrH   r   rM   rN   )r   r`   Znon_dict_mapping_subclassconstructorZsorted_keysr   rP   rH   r   rg   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sJ t|jjd tddgdd d S )Nr   r&   r$   r&   r#   r(   rc   rU   rT   firstsecond))r(   rU   )r(   rT   )rc   rU   )rc   rT   )rH   rW   rX   r   )r   r   r&   r&   )r   r&   r   r&   r   r   r   r   )rW   codesrX   rH   rW   )NNNrH   rX   )rq   rr   NrY   )r   r   r   r   r   r   r
   r   rM   rN   rX   r\   rW   r	   )r   rD   rE   rW   rX   r   rP   rO   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   ro   ar)   rp   bz Values not found in passed levelmatchrU   rT   )r(   rb   rc   ru   zKey one not in level)	r   r   r   r   r   pytestraises
ValueErrorr   )r   rD   rE   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sJ d S )N)ABCDr&   r   r$   r#   Zf8rA   i8rJ   Tignore_indexr   rk   r   ro   rx   r)   rp   ry   rU   rT   rq   rr   rv   )rq   rr   )r   r   arrayr   ZconcatenaterL   rM   rN   r   r   r   r   rX   )r   rK   df1rE   ZappendedrP   rD   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(   rb   )r   r   r&   r   r)   )r   r   sort)r   r>   r   )r   r   r   rE   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   rK   rk   r$   r   r&   r   r'   )r   r   r&   r   r$   r(   )r(   r   r   rb   r(   r   rb   T)r*   r   )r   r   aranger   r   r=   repeatr   rM   rN   rZ   r   r   r4   r   r   rD   rP   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   r=   tiletolistr   rM   rN   r   r   r   r    test_concat_mixed_objs_indexF  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   rZ   rb   r   r&   r)   r$   r   r   r   rJ   Tr   )r   r   r   r   r   r=   ZkronwhereidentitynanTr   r   rM   rN   r   r   r   r   r    "test_concat_mixed_objs_index_namesV  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dateZ20130101UTCr   r&   i  i  r   textz
some words	   )r   pd	TimestampZtz_localizeNaTr   r[   rM   assert_series_equalZdtypesr   )r   rD   r   r   r   r    test_dtype_coercionm  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   rR   r(   rG   rb   r   )r   r   r   r   r   r   rM   rN   )r   rD   r   rP   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 concatenaterz   )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   rR   r'   zAll objects passed were Nonerz   )r   r   r   r   r   r   rM   rN   r|   r}   r~   )r   rD   r]   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&   )rx   ry   cde)ry   r   r   r   rG   r   r   rM   rN   )r   Zdf0r   rP   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   r+   r   len)r   ts1Z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&   rk   r   r&   )
r   r   ZzerosZonesrZ   r   r   rK   rM   rN   )r   Zts0r   r   rP   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 )Nrs   )   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&   rk   )r   rK   r   rM   rN   )r   r   rE   rP   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 r,   r   )r0   rD   r   r   r    r5         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   rE   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 r,   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   rM   rN   r   r   r   Iterable)r   rP   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$   )rx   r&   Nr   c                 S   s    g | ]}t td g ddqS )r$   )Nr&   rx   r   )r   r>   )r0   _r   r   r    ri     s     z5TestConcatenate.test_concat_order.<locals>.<listcomp>d   Tr   )r&   rx   N)r   r>   r   rK   r	   rM   r\   )r   dfsr   rP   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   rC   rM   r   )r   rx   ry   r   rP   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AnotherrG   )r   r   )r   r   r>   rM   r   )r   rP   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$   rx   r   )r   r&   r   r   r#   ry   z8Reindexing only valid with uniquely valued Index objectsrz   r&   rk   )	r   r   r   r   r   r|   r}   r   r   )r   r   rE   r   r   r   r    #test_concat_duplicate_indices_raise	  s   "z3TestConcatenate.test_concat_duplicate_indices_raiseN)r   r   r   r!   rF   rQ   r_   r|   markparametrizern   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r      s6    6
)!	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&   rA   ndminr'   )rC   ndimr   r   r   r   rL   rA   )Zfloat_numpy_dtypeZframe_or_seriesdimsdtr   r1   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   rL   rA   )r   Zany_signed_int_numpy_dtyper   r   r   r1   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   rE   rP   r   r   r   r    0test_concat_empty_and_non_empty_frame_regression6  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   datark   )r   r   r   astyper   SparseDtyper   r   r   rM   rN   )rx   rP   r   r   r   r    test_concat_sparse?  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   rk   )r   r   r   r   r   r.   r   floatr   r   rM   r   )rA   rx   ry   rP   r   r   r   r    test_concat_dense_sparseI  s   r   rH   )r   r6   r6   )r6   r   r6   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   rx   ry   )      r   r   rY   )r   r   r   r   r&   r*   rH   )r&   r#   r   r   )r   r'   r  r   )r$   r   r   r   r   rx   ry   r   rJ   )r   r   r   r
   from_tuplesrM   rN   )rH   rD   r   r   r   expected_valuesexpected_columnsrP   r   r   r    test_duplicate_keysS  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   rx   ry   rJ   )r   r   r
   r  rM   rN   )rH   rD   r   r  r  rP   r   r   r    test_duplicate_keys_same_frameb  s   *r  zMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningobjr   r   rY   c                 C   s"   t | | g}t|t| sJ d S r,   )r   r   type)r  r   r   r   r    test_concat_preserves_subclasso  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 )
Nrx   r   r   r   r   Tr   r   )r#   r'   r   r&   r   r$   )r   r   r   r   r   rM   rN   r   rE   r   rP   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 )
Nrx   r   r   r   ry   r&   Tr   r   r   )Zdf_aZdf_br   rP   r   r   r    +test_concat_preserves_extension_int64_dtype  s
   r  zdtype1,dtype2,expected_dtype))boolr  r  )booleanr  r  )r  r  r  )r  r  r  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   rM   r   )Zdtype1Zdtype2Zexpected_dtypeZser1Zser2r   rP   r   r   r    test_concat_bool_types  s
   r  )rH   	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 )Nrx   r&   ry   r   r   r$   )rH   Zverify_integrity)rx   ry   r   r   r)   )r   r   rl   zipr
   r  rM   r   )rH   r  Zseries_listr   ZtuplesrP   r   r   r    test_concat_repeated_keys  s
   "r  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))rA   rZ   r   g!u?r   rC   zMaybe Time (UTC))r   r   rK   rk   r   r   r   r   r   r)   )r   ZDatetimeIndexr   r	   r   r   r   rC   r   rM   rN   )Zdtir   idxr   r   rO   rP   r   r   r     test_concat_null_object_with_dti  s    
r  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   rJ   r   r   )
r
   r  r   r   Z
RangeIndexr   r   r   rM   rN   )mir   rE   r   rP   r   r   r    ,test_concat_multiindex_with_empty_rangeindex  s   r  r   r&   r   r   Zcol1r   c                 C   sF   |   }ddi|_|   }ddi|_t||g}t|jdks!J d S )Nr&   r   r   )r+   attrsr   r   r   r   rE   rD   r   r   r    test_concat_drop_attrs     

r  c                 C   sF   |   }ddi|_|   }ddi|_t||g}|jd dks!J d S )Nr&   )r+   r  r   r  r   r   r    test_concat_retain_attrs  r  r  df_dtype)r   r   datetime64[ns]empty_dtype)Nr   rC   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(   rb   r   r(   rb   )rK   rA   DThe behavior of DataFrame concatenation with empty or all-NA entriesr!  r   rz   r   rC   )r   FutureWarningrM   assert_produces_warningr   r   rN   r"  r   rD   emptyr   warnr   rP   r   r   r    %test_concat_ignore_empty_object_float  s    
r*  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   r#  r   r   rC   r   r$  r!  rz   Tr   )r   r   r   r%  rM   r&  r   rN   r'  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   rx   r   rJ   r$  rz   Tr   )r   r   r   ZreindexrK   rM   r&  r%  r   r   rN   )r   rE   Zalignedr   r   rP   r   r   r    %test_concat_ignore_empty_from_reindexB  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 sw   Y  d S )Nr'   c                    s   g | ]} | qS r   r   )r0   nZserr   r    ri   T  rj   z6test_concat_mismatched_keys_length.<locals>.<listcomp>r#   r  zGThe behavior of pd.concat with len\(keys\) != len\(objs\) is deprecatedrz   r&   rI   r   c                 s   r   r,   r   r0   r1   r   r   r    r5   ]  r   z5test_concat_mismatched_keys_length.<locals>.<genexpr>c                 s   r   r,   r   r0   r2   r   r   r    r5   ]  r   c                 s   r   r,   r   r/  r   r   r    r5   _  r   c                 s   r   r,   r   r0  r   r   r    r5   _  r   )r   r>   rM   r&  r%  r   )ZsersrH   r   r   r.  r    "test_concat_mismatched_keys_lengthQ  s    $$"r1  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   Zeeer   )c1c2i2r3  r4  r   ZabcabcZeeeeeer   )r   r   rl   Z	set_indexr   rM   rN   r  r   r   r    $test_concat_multiindex_with_categoryb  s.   


r6  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 )Nrx   stringr   r&   r   r   r)   r   r  r   r   r    test_concat_ea_upcast  s
   r8  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:00r$  rz   Tr   )r   r   r   rM   r&  r%  r   rN   )r   rE   r   r   rP   r   r   r    (test_concat_none_with_timezone_timestamp  s   r9  )Acollectionsr   r   collections.abcr   r   decimalr   numpyr   r|   Zpandas.errorsr   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasr   r   r	   r
   r   r   r   r   Zpandas._testingZ_testingrM   Zpandas.core.arraysr   Zpandas.tests.extension.decimalr   r   r   r   r   r   r   r   r   r  r  filterwarningsZSubclassedDataFramer   ZSubclassedSeriesr
  r  r  r  r  r  r  r   r  r  Zskip_array_manager_invalid_testr*  r+  r,  r1  r6  r8  r9  r   r   r   r    <module>   s    $	    
	


	
		


		




	