
    i9e                        d dl Z 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j                   d	      j#                  d
       ej                   d      j#                  d
       ej                   d      j#                  d
      g ej                   d	d      j#                  d
       ej                   dd      j#                  d
       ej                   dd      j#                  d
      g ej$                  d       ej$                  d       ej$                  d      g ej&                  dd       ej&                  dd       ej&                  dd      gd	j)                                     d        Zej                  d        Z G d d      Zy)    N)Categorical	DataFrameIndexSeries)TFT         g?gffffff
@)XYZabc
2011-01-01s
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[s]zdatetime64[s, US/Eastern]ztimedelta64[us]z	period[M])paramsc                 (    | j                   \  }}||fS N)param)requestkeydatas      k/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/reshape/concat/test_append_common.pyitemr,      s    @ IC9    c                     | S r&    )r,   s    r+   item2r0   4   s    Kr-   c                       e Zd ZdZd Zd Zd Zd Zd Ze	j                  j                  dg d      d	        Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)TestConcatAppendCommonzE
    Test common dtype coercion rules between concat and append.
    c                     |\  }} ||      }|dk(  r|rd}t        |t              r|j                  |k(  sJ y t        |t              r5|j	                  d      r|j                  dk(  sJ y |j                  |k(  sJ y y )Nr#   stringperiodz	Period[M])
isinstancer   dtyper   
startswith)selfr,   index_or_seriesusing_infer_stringtypvalsobjs          r+   test_dtypesz"TestConcatAppendCommon.test_dtypes>   s    	Td#(?1Cc5!99###V$~~h'yyK///yyC'''	 %r-   c                 	   |\  }}|}|}|dk(  rMt        t        |      t        |      z         }t        t        |      t        |      z   t        |      z         }n||z   }||z   |z   }t        |      j                  t        |            }t        |      }	t	        j
                  ||	       t        |      j                  t        |      t        |      g      }t        |      }	t	        j
                  ||	       t        |d      }
t        |d      }|
j                  |      }t        |      }	t	        j
                  ||	       t        |d      }
t        |d      }|
j                  |      }t        |d      }	t	        j
                  ||	       t        j                  t        d      5  t        |      j                  |       d d d        t        j                  t        d      5  t        |      j                  t        |      |g       d d d        t        |      j                  t        |      d      }t        |      }	t	        j                  ||	d	       t        j                  t        |      t        |      gd      }t	        j                  ||	d	       t        |      }	t        j                  t        |      t        |      t        |      gd      }t	        j                  ||	       t        |d      }t        |d      }|j                  |d      }t        |      }	t	        j                  ||	d	       t        j                  ||gd      }t	        j                  ||	d	       t        |d      }t        |d      }|j                  |d      }t        |d      }	t	        j                  ||	d	       t        j                  ||gd      }t	        j                  ||	d	       d
}t        j                  t        |      5  t        j                  t        |      |g       d d d        t        j                  t        |      5  t        j                  t        |      t        |      |g       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   rxY w# 1 sw Y   y xY w)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_internalassert_series_equalpdconcat)r9   r,   typ1vals1vals2vals3exp_data	exp_data3resexpi1i2s1s2msgs                  r+   test_concatlike_same_dtypesz2TestConcatAppendCommon.test_concatlike_same_dtypesL   s   e:"4;e#<=H#DK$u+$=U$KLIu}H-I
 El!!%,/Ho
c3' El!!5<u">?I
c3' 5s#5s#iimHo
c3' 5s#5s#iimH3'
c3' ]]9,FG 	'%L&	' ]]9,FG 	7%Luu 56	7 Um,,VE],NX
sC$? iiu6TJ
sC$? YiiE]F5M6%=9
 	sC( E$E$!!"4!8X
sC$?iiRt4
sC$? E$E$!!"4!8XC(
sC$?iiRt4
sC$?7 	 ]]9C0 	.IIve}e,-	. ]]9C0 	=IIve}fUmU;<	= 	=k	' 	'	7 	7^	. 	.	= 	=s0   1R/&R$!R1#+R=R!$R.1R:=Sc                    |\  }}|\  }}|}d }	d }
||k(  rt        j                  d       n|dk(  s|dk(  rt        j                  d       |dk(  r8|dv r4|}
t         j                  j                  d      }|j	                  |       nQ|dk(  r8|dv r4|}
t         j                  j                  d      }|j	                  |       n|dv s|dv rt
        }	t
        }
||z   }||z   |z   }t        |      j                  t        |            }t        ||		      }t        j                  ||       t        |      j                  t        |      t        |      g      }t        ||		      }t        j                  ||       t        |      j                  t        |      d
      }t        ||
	      }t        j                  ||d
       t        j                  t        |      t        |      gd
      }t        j                  ||d
       t        ||
	      }t        j                  t        |      t        |      t        |      gd
      }t        j                  ||       y )Nz3same dtype is tested in test_concatlike_same_dtypesr"   z!categorical type tested elsewherer   )r    r!   zGH#39187 casting to object)reason>   timedelta64[ns]datetime64[ns, US/Eastern]r7   TrE   rG   )rM   skipmarkxfailapplymarkerr#   r   rJ   rK   rL   r   rP   rQ   rR   rS   )r9   r,   r0   r(   rT   rU   typ2rV   rW   exp_index_dtypeexp_series_dtyperh   rX   rY   rZ   r[   s                   r+   test_concatlike_dtypes_coercionz6TestConcatAppendCommon.test_concatlike_dtypes_coercion   s7   ee 4<KKMNZ4:#5KK;< 6>d&::  $;;$$,H$ID%V^(< <#;;$$,H$ID%FF$ S
 K
 %O%5=EME)	 El!!%,/HO4
c3' El!!5<u">?I_5
c3' Um,,VE],NX%56
sC$? iiu6TJ
sC$? Y&67iiE]F5M6%=9
 	sC(r-   c                 0   t        j                  ddg      }t        j                  ddg      }t        t        j                  d      t        j                  d      t        j
                  d      t        j
                  d      g      }|j                  |      }t        j                  ||       t        |d   t         j                        sJ t        |d   t         j
                        sJ t        |      }t        |      }|j                  |      }t        j                  |t        |g d             t        |j                  d   t         j                        sJ t        |j                  d   t         j
                        sJ t        j                  ||g      }t        j                  |t        |g d             t        |j                  d   t         j                        sJ t        |j                  d   t         j
                        sJ y )	Nr   r   r   r   r   r   r   r   r   index)rR   DatetimeIndexTimedeltaIndexr   	Timestamp	TimedeltarJ   rK   rL   r6   r   rP   rQ   ilocrS   )r9   dtitdir[   rZ   dtstdss          r+   .test_concatlike_common_coerce_to_pandas_objectzETestConcatAppendCommon.test_concatlike_common_coerce_to_pandas_object   s    l;<8 45\*\*X&X&	
 jjo
c3'#a&",,///#b'2<<000SkSk""3'
sF3l$CD#((1+r||444#((2,555iic
#
sF3l$CD#((1+r||444#((2,555r-   c                    |}t        j                  ddg|      }t        j                  ddg|      }t        j                  g d|      }|j                  |      }t        j                  ||       t        |      }t        |      }|j                  |      }t        j                  |t        |g d             t        j                  ||g      }t        j                  |t        |g d             y )	Nr   r   r   
2012-01-01
2012-01-02)r   r   r   r   rq   rr   )	rR   rt   rJ   rK   rL   r   rP   rQ   rS   )	r9   tz_aware_fixturer   dti1dti2r[   rZ   dts1dts2s	            r+   test_concatlike_datetimetzz1TestConcatAppendCommon.test_concatlike_datetimetz  s    | <D| <DD
 kk$
c3'd|d|##D)
sF3l$CDiit%
sF3l$CDr-   r   )UTCr   z
Asia/TokyoEST5EDTc                 p   t        j                  ddd|d      }t        j                  ddg|      }t        d	|d
dg      }t        d	|d
dg      }t        j                  g d|      j	                  d      }t        d	|d
dg      }t        j                  t        j                  ||g      |       y )N
2014-07-15
2014-07-17Dns)startendr   r   unit
2014-07-11
2014-07-21r   r   AB)rs   columns)r   z
2014-07-16r   r   r   )rR   
date_rangert   r   as_unitrK   assert_frame_equalrS   )r9   r   ix1ix2df1df2exp_idxr[   s           r+    test_concatlike_datetimetz_shortz7TestConcatAppendCommon.test_concatlike_datetimetz_short*  s     mmLsr
 l;CsCj9sCj9""R
 '$- 	 3*=
biic
3S9r-   c           	         |}t        j                  ddg|      }t        j                  ddg      }t        t        j                  d|      t        j                  d|      t        j                  d      t        j                  d      gt              }|j                  |      }t        j                  ||       t        |      }t        |      }|j                  |      }t        j                  |t        |g d             t        j                  ||g      }t        j                  |t        |g d             t        j                  d	      }	t        j                  ddg|	      }
t        t        j                  d|      t        j                  d|      t        j                  d|	      t        j                  d|	      gt              }|j                  |
      }t        j                  ||       t        |      }t        |
      }|j                  |      }t        j                  |t        |g d             t        j                  ||g      }t        j                  |t        |g d             y )
Nr   r   r   r   r   rf   rq   rr   z	US/Hawaii)rR   rt   r   rv   r#   rJ   rK   rL   r   rP   rQ   rS   zoneinfoZoneInfo)r9   r   r   r   r   r[   rZ   r   r   tz_diffdti3dts3s               r+   $test_concatlike_datetimetz_to_objectz;TestConcatAppendCommon.test_concatlike_datetimetz_to_object<  s    | <D| <=\b1\b1\*\*	 
 kk$
c3'd|d|##D)
sF3l$CDiit%
sF3l$CD ##K0| <I\b1\b1\g6\g6	 
 kk$
c3'd|d|##D)
sF3l$CDiit%
sF3l$CDr-   c                    t        j                  ddgd      }t        j                  ddgd      }t        j                  g dd      }|j                  |      }t        j                  ||       t        |      }t        |      }|j                  |      }t        j                  |t        |g d	             t        j                  ||g      }t        j                  |t        |g d	             y )
Nr   r   r   r   2012-012012-02)r   r   r   r   rq   rr   )	rR   PeriodIndexrJ   rK   rL   r   rP   rQ   rS   r9   pi1pi2r[   rZ   ps1ps2s          r+   test_concatlike_common_periodz4TestConcatAppendCommon.test_concatlike_common_periodr  s    nni3#>nni3#>nnIPSTjjo
c3'SkSk""3'
sF3l$CDiic
#
sF3l$CDr-   c           	         t        j                  ddgd      }t        j                  ddgd      }t        t        j                  dd      t        j                  dd      t        j                  dd      t        j                  dd      gt              }|j                  |      }t        j                  ||       t        |      }t        |      }|j                  |      }t        j                  |t        |g d	
             t        j                  ||g      }t        j                  |t        |g d	
             y )Nr   r   r   r   r   z
2012-02-01r   rf   rq   rr   )rR   r   r   Periodr#   rJ   rK   rL   r   rP   rQ   rS   r   s          r+   1test_concatlike_common_period_diff_freq_to_objectzHTestConcatAppendCommon.test_concatlike_common_period_diff_freq_to_object  s    nni3#>nnlL9D		)#.		)#.		,S1		,S1	 
 jjo
c3'SkSk""3'
sF3l$CDiic
#
sF3l$CDr-   c           	         t        j                  ddgd      }t        j                  ddg      }t        t        j                  dd      t        j                  dd      t        j
                  d      t        j
                  d      gt              }|j                  |      }t        j                  ||       t        |      }t        |      }|j                  |      }t        j                  |t        |g d	             t        j                  ||g      }t        j                  |t        |g d	             t        t        j
                  d      t        j
                  d      t        j                  dd      t        j                  dd      gt              }|j                  |      }t        j                  ||       t        |      }t        |      }|j                  |      }t        j                  |t        |g d	             t        j                  ||g      }t        j                  |t        |g d	             y )
Nr   r   r   r   r   r   rf   rq   rr   )rR   r   ru   r   r   rw   r#   rJ   rK   rL   r   rP   rQ   rS   )r9   r   rz   r[   rZ   r   r|   s          r+   0test_concatlike_common_period_mixed_dt_to_objectzGTestConcatAppendCommon.test_concatlike_common_period_mixed_dt_to_object  s    nni3#>8 45		)#.		)#.X&X&	 
 jjo
c3'SkSk""3'
sF3l$CDiic
#
sF3l$CD X&X&		)#.		)#.	 
 jjo
c3'SkSk""3'
sF3l$CDiic
#
sF3l$CDr-   c           	         t        ddt        j                  gd      }t        g dd      }t        ddt        j                  dddgd      }t        j                  t        j                  ||gd      |       t        j                  |j                  |d      |       t        ddgd      }t        ddgd      }t        g d	      }t        j                  t        j                  ||gd      |       t        j                  |j                  |d      |       t        d
dt        j                  gd      }t        t        j                  dddgd      }t        d
dt        j                  t        j                  dddgt        j                        }t        j                  t        j                  ||gd      |       t        j                  |j                  |d      |       y )Nr   r	   r"   rf   r	   r   r	   TrE   r
   r
   r	   r	   r   
      )	r   npnanrK   rQ   rR   rS   rP   r!   r9   r^   r_   r[   s       r+   test_concat_categoricalz.TestConcatAppendCommon.test_concat_categorical  s    Q266N*5IZ0aBFFAq!,J?
ryy"bEsK
r222D2I3O QF*-QF*-\"
ryy"bEsK
r222D2I3O RRVV$J7RVVQ1%Z8b"bffbffaA6bjjI
ryy"bEsK
r222D2I3Or-   c                     t        t        g dg d            }t        t        g dg d            }t        j                  ||gd      }t        t        g dg d            }t	        j
                  ||       y )Nr   
categories)r   r   r   TrE   )r   r   r   r   r   r   )r   r   rR   rS   rK   rQ   )r9   r   r   resultexpecteds        r+   6test_union_categorical_same_categories_different_orderzMTestConcatAppendCommon.test_union_categorical_same_categories_different_order  s_    ;?KL;?KLAq656?S
 	vx0r-   c                 l   t        ddt        j                  gd      }t        g d      }t        ddt        j                  dddgt        j                        }t	        j
                  t        j                  ||gd      |       t	        j
                  |j                  |d      |       t        dddddt        j                  gt        j                        }t	        j
                  t        j                  ||gd      |       t	        j
                  |j                  |d      |       t        ddgd      }t        ddg      }t        g d	      }t	        j
                  t        j                  ||gd      |       t	        j
                  |j                  |d      |       t        g d
      }t	        j
                  t        j                  ||gd      |       t	        j
                  |j                  |d      |       t        ddt        j                  gd      }t        g d      }t        ddt        j                  dddgt        j                        }t	        j
                  t        j                  ||gd      |       t	        j
                  |j                  |d      |       t        dddddt        j                  gt        j                        }t	        j
                  t        j                  ||gd      |       t	        j
                  |j                  |d      |       t        ddt        j                  gd      }t        g d      }t        ddt        j                  dddg      }t	        j
                  t        j                  ||gd      |       t	        j
                  |j                  |d      |       t        dddddt        j                  g      }t	        j
                  t        j                  ||gd      |       t	        j
                  |j                  |d      |       t        ddgd      }t        t        j                  t        j                  t        j                  g      }t        ddt        j                  t        j                  t        j                  g      }t	        j
                  t        j                  ||gd      |       t	        j
                  |j                  |d      |       t        t        j                  t        j                  t        j                  ddg      }t	        j
                  t        j                  ||gd      |       t	        j
                  |j                  |d      |       y )Nr   r	   r"   rf   r   TrE   r
   r   )r	   r   r
   r	   r   r   r   r
   r	   r   r   r   r   )	r   r   r   r!   rK   rQ   rR   rS   rP   r   s       r+    test_concat_categorical_coercionz7TestConcatAppendCommon.test_concat_categorical_coercion  s@    Q266N*5IaBFFAq!,BJJ?
ryy"bEsK
r222D2I3O aAq!RVV,BJJ?
ryy"bEsK
r222D2I3O QF*-QF^\"
ryy"bEsK
r222D2I3O\"
ryy"bEsK
r222D2I3O RRVV$J7Ib"bffaA.bjjA
ryy"bEsK
r222D2I3OaAr2rvv.bjjA
ryy"bEsK
r222D2I3O RRVV$J7O$b"bffc345
ryy"bEsK
r222D2I3Oc3RRVV45
ryy"bEsK
r222D2I3O RHJ/RVVRVVRVV,-b"bffbffbff56
ryy"bEsK
r222D2I3Obffbffbffb"56
ryy"bEsK
r222D2I3Or-   c                    t        ddt        j                  gd      }t        g 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      }t        j                  t        j                  |||gd      |       t        ddddt        j                  ddt        j                  dddgd      }t        j                  t        j                  |||gd      |       t        g d	d      }t        g d
d      }t        g d      }t        g d      }t        j                  t        j                  |||gd      |       t        g d      }t        j                  t        j                  |||gd      |       t        g d	d      }t        g d
d      }t        g d      }t        g d      }t        j                  t        j                  |||gd      |       t        g d      }t        j                  t        j                  |||gd      |       y )Nr   r	   r"   rf   r   floatTrE   )         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   rK   rQ   rR   rS   )r9   r^   r_   s3r[   s        r+   &test_concat_categorical_3elem_coercionz=TestConcatAppendCommon.test_concat_categorical_3elem_coercion3  s    Q266N*5IZ0Q1a()aBFFAq!Q1a@P
ryy"b"DI3OaAq"&&!Q1a@P
ryy"b"DI3O IZ0IZ0I01
ryy"b"DI3O01
ryy"b"DI3O IZ0IZ0L!34
ryy"b"DI3O34
ryy"b"DI3Or-   c                 0   t        ddgd      }t        ddgd      }t        ddg      }t        ddgd      }t        dt        j                  g      }t        g dd      }t        dddddddddt        j                  dddg      }t        j                  ||||||gd	      }t        j                  ||       t        ddddt        j                  ddddddddg      }t        j                  ||||||gd	      }t        j                  ||       y )
Nr   r
   r"   rf   r   r	   r   TrE   )r   r   r   rR   rS   rK   rQ   )	r9   r^   r_   r   s4s5s6r[   rZ   s	            r+   &test_concat_categorical_multi_coercionz=TestConcatAppendCommon.test_concat_categorical_multi_coercionW  s    QF*-QF*-QF^QF*-QK IZ0 aAq!Q1aAqABiiRRR0tD
sC(aAq"&&!Q1aAqABiiRRR0tD
sC(r-   c                    t        t        ddt        j                  gd            }t        t        g dd            }t        t        ddt        j                  dddgd            }t	        j
                  t        j                  ||gd      |       t        t        ddt        j                  dddddt        j                  g	d            }t	        j
                  t        j                  |||gd      |       y )Nr   r	   T)orderedr   rE   )r   r   r   r   rK   rQ   rR   rS   r   s       r+   test_concat_categorical_orderedz6TestConcatAppendCommon.test_concat_categorical_orderedj  s     KArvv=>K	489[!Q1a!8$GH
ryy"bEsK[!Q1aArvv!FPTUV
ryy"b"DI3Or-   c                    t        t        j                  t        j                  t        j                  gt        j                        d      }t        t        j                  dg      }t        t        j                  t        j                  t        j                  dg      }t        j                  t        j                  ||gd      |       t        dt        j                  gd      }t        t        j                  t        j                  g      }t        dt        j                  t        j                  t        j                  gd      }t        j                  t        j                  ||gd      |       t        t        j                  t        j                  gd      }t        t        j                  t        j                  g      }t        t        j                  t        j                  t        j                  t        j                  g      }t        j                  t        j                  ||gd      |       t        j                  t        j                  ||gd      |       t        t        j                  t        j                  gd      }t        t        j                  t        j                  gd      }t        t        j                  t        j                  t        j                  t        j                  gd      }t        j                  t        j                  ||gd      |       y )Nrf   r"   r   TrE   r   )	r   r   arrayr   r!   rK   rQ   rR   rS   r   s       r+   $test_concat_categorical_coercion_nanz;TestConcatAppendCommon.test_concat_categorical_coercion_nanv  s   
 BHHbffbff-RZZ@
SRVVQK bffbffbffa01
ryy"bEsKQKz2RVVRVV$%a0@
ryy"bEsK RVVRVV$J7RVVRVV$%bffbffbffbff56
ryy"bEsK
ryy"bEsK RVVRVV$J7RVVRVV$J7bffbffbffbff5ZH
ryy"bEsKr-   c                    t        g d      }t        ddgd      }|j                  t              }t        j                  t        j                  ||gd      |       t        j                  |j                  |d      |       t        j                  t        j                  ||gd      |       t        j                  |j                  |d      |       t        g d      }t        g d      }t        j                  t        j                  ||gd      |       t        j                  |j                  |d      |       t        g d      }t        g d      }t        j                  t        j                  ||gd      |       t        j                  |j                  |d      |       t        j                  t        j                  ||gd      |       t        j                  |j                  |d      |       t        g d      }t        t        j                  t        j                  g      }t        t        j                  t        j                  gt              }t        j                  t        j                  ||gd      |       t        j                  t        j                  ||gd      |       y )Nr"   rf   r   r	   TrE   r#   )
r   astyper#   rK   rQ   rR   rS   rP   r   r   r   s       r+   test_concat_categorical_emptyz4TestConcatAppendCommon.test_concat_categorical_empty  s    Bj)QF*-ii
ryy"bEsK
r222D2I3O
ryy"bEsK
r222D2I3OBj)Bj)
ryy"bErJ
r222D2I2NBj)Bh' 	ryy"bErJ
r222D2I2N
ryy"bErJ
r222D2I2NBj)RVVRVV$%bffbff%V4
ryy"bEsK
ryy"bEsKr-   c                    t        ddgddg      }ddg}t        ||d      }t        g dddg      }g d}t        ||dt        g d	      
      }t        j                  t        j                  ||g      |       t        ddgg d      }ddg}t        ||d      }	t        j                  ||	gd      }
t        t        d      g dd      }t        j                  |
|       y )Nr   r   r   r   r	   )catsr=   )r   r   r   r   )r   r	   r   r	   rq   rr   r   TrE   abab)r   r   r   rK   r   rR   rS   rI   )r9   catr=   dfcat2rV   r[   cat3rW   df_different_categoriesrZ   s              r+   test_categorical_concat_appendz5TestConcatAppendCommon.test_categorical_concat_append  s    3*#s<1vT23/S#JGu5U<=PQ
biiR137 C:/BA"+T5,I"Jii45DIf|DE
c3'r-   N)__name__
__module____qualname____doc__r?   ra   rn   r}   r   rM   rh   parametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r/   r-   r+   r2   r2   9   s    (_=BF)P6@E* [[T#QR: S:"4ElE$E4.E`P61>P@"PH)&
PLB!LF(r-   r2   )r   numpyr   rM   pandasrR   r   r   r   r   pandas._testing_testingrK   fixturerI   r   rv   r   rw   r   itemsr,   r0   r2   r/   r-   r+   <module>r      s         'RVVS)#O4%\*2237\*2237\*2237 \l;CCCH\l;CCCH\l;CCCH* X&X&X&  		)#.		)#.		)#.+	
4 %'7>?>
  R
( R
(r-   