
    A>ib'                     X    S SK rS SKrS SKrS SKJrJrJrJrJ	r	  S SK
Jr   " S S5      rg)    N)	DataFrame
RangeIndexSeriesconcat
date_rangec                   L   \ rS rSrS rS r\R                  R                  SSS/5      \R                  R                  S/ / SQ/5      S	 5       5       r	\R                  R                  S
\
R                  \
R                  \
R                  4\
R                  \
R                  \
R                  4S\
R                  \
R                  4S\
R                  \
R                  4S\
R                  \
R                  4S\
R                  \
R                  4SS/5      S 5       r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      \R                  R                  S/ SQ5      S 5       5       rS rS rS rS rS rS rS rS rS rS rS rg)!TestEmptyConcat   c           	         [        [        R                  R                  S5      R	                  S5      [        S5      S9nUS S R                  5       nSUS'   USS nXEXSSS  /n[        USUS	9nUR                  / S
QS9nUS   R                  U(       d  [        OS5      US'   SUR                  SS2S4'   [        R                  " Xx5        [        S[        S5      0[        SSSS9S9n[        5       n[        X5/SS9n	[        R                  " X5        [        XS/SS9n	[        R                  " X5        [        X5/5      n	[        R                  " X5        [        XS/5      n	[        R                  " X5        g )N   )
      abcdcolumns   barfoor   )axissort)abcdr   strr   Ai'  20130101s)periodsfreqindex   r   )r   nprandomdefault_rngstandard_normallistcopyr   reindexastypeobjectloctmassert_frame_equalranger   )
selfr   using_infer_stringdfdfcopyemptyframes	concattedexpectedresults
             e/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_empty.pytest_handle_empty_objects)TestEmptyConcat.test_handle_empty_objects   sc   II!!!$44W=tF|
 BQu1Q12/65	::&A:B"5/00,F%
 $)QqS%Z 
i2 %,z*eRU'V
 !,
f)!,
f)$
f)$
f)    c                    [        / SQSS9n[        SSS9n[        X/SS9n[        / SQ[        R                  [        R                  [        R                  /S	.[        S
5      S9n[        R                  " X45        [        / SQSS9n[        SSS9n[        X/SS9n[        / SQSS9n[        R                  " X45        [        / SQSS9n[        S SS9n[        X/SS9n[        / SQ[        R                  [        R                  [        R                  /S.SS/[        S
5      S9n[        R                  " X45        g )Nr#   r      x)nameyfloat64)rC   dtyper#   r$   )rB   rD   rA   r!   r   rF   )rB   r   )r   r"   )	r   r   r   r%   nanr   r/   r0   assert_series_equal)r2   s1s2resexps        r;   test_concat_empty_series(TestEmptyConcat.test_concat_empty_series4   s   IC(I.bXA&266266266":;Q-
 	c'IC(I.bXA&Yi0
s( IC(Y/bXA& 89!HQ-

 	c'r>   tzNUTCvaluesr@   c                 d   [        / SS9R                  R                  U5      nU(       a  S O[        R                  n[        X$S9n[        [        [        R                  /[        U5      -  SS9R                  R                  U5      US.5      n[        X5/SS9n[        R                  " Xv5        g )NM8[ns]rG   )r   r#   r#   r$   )r   dttz_localizer%   rE   r   pdNaTlenr   r/   r0   )r2   rP   rR   firstrF   secondr9   r:   s           r;   !test_concat_empty_series_timelike1TestEmptyConcat.test_concat_empty_series_timelikeQ   s    
 r*--99"=BJJ,266(S[0ADDPPQST
 a0
f/r>   zleft,right,expectedm8[ns]rT   )categoryr_   r_   )r_   r-   r-   c                 ^    [        [        US9[        US9/5      nUR                  U:X  d   eg NrG   )r   r   rF   )r2   leftrightr9   r:   s        r;   test_concat_empty_series_dtypes/TestEmptyConcat.test_concat_empty_series_dtypesc   s/    $ d+V%-@AB||x'''r>   rF   )rE   int8uint8boolr^   rT   c                     [         R                  " U5      n[        [        US9/5      nUR                  U:X  d   e[        [        US9[        US9/5      nUR                  U:X  d   eg ra   )r%   rF   r   r   )r2   rF   r:   s      r;   0test_concat_empty_series_dtypes_match_roundtrips@TestEmptyConcat.test_concat_empty_series_dtypes_match_roundtripsx   s`     e,-.||u$$$e,f5.ABC||u$$$r>   )rE   rf   rg   r^   rT   dtype2c                 .  ^^ X:X  a  [         R                  " S5        S mS mUU4S jn[        R                  " U5      n[        R                  " U5      nU" X5      n[	        [        US9[        US9/5      R                  nUR                  U:X  d   eg )Nz%same dtype is not applicable for testc                    U R                   UR                   1n[        U1 Sk-
  5      (       d!  U R                   S:X  d  UR                   S:X  a  g[        USS1-
  5      (       d!  U R                   S:X  d  UR                   S:X  a  gg )N>   r   iuro   rp   r   kindrY   rF   rl   typss      r;   int_result_typeSTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.int_result_type   so    JJ,Dto-..

c!V[[C%7c
*++

c!V[[C%7r>   c                     U R                   UR                   1n[        U1 Sk-
  5      (       d!  U R                   S:X  d  UR                   S:X  a  gg )N>   fro   rp   rx   rq   rs   s      r;   float_result_typeUTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.float_result_type   sA    JJ,Dto-..

c!V[[C%7r>   c                 :   > T" X5      nUb  U$ T" X5      nUb  U$ g)NO )rF   rl   r:   ry   ru   s      r;   get_result_typeSTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.get_result_type   s0    &u5F!$U3F!r>   rG   )pytestskipr%   rF   r   r   rr   )r2   rF   rl   r~   r9   r:   ry   ru   s         @@r;   *test_concat_empty_series_dtypes_roundtrips:TestEmptyConcat.test_concat_empty_series_dtypes_roundtrips   s~     ?KK?@
			 &!"51e,f6.BCDJJ{{h&&&r>   c                     [        [        SS9[        [        R                  S9[        [        R                  S9/5      R
                  [        R                  :X  d   eg )NrT   rG   )r   r   r%   bool_int64rF   object_r2   s    r;   &test_concat_empty_series_dtypes_triple6TestEmptyConcat.test_concat_empty_series_dtypes_triple   sF    h'bhh)?bhhAWXezz	
r>   c                     [        [        [        R                  " / 5      SS9[        SS9/5      R                  S:X  d   eg )Nr_   rG   rE   )r   r   r%   arrayrF   r   s    r;   2test_concat_empty_series_dtype_category_with_arrayBTestEmptyConcat.test_concat_empty_series_dtype_category_with_array   s?     J7i9PQe	
r>   c                    [        [        SS9R                  S5      [        SS9R                  S5      /5      nUR                  S:X  d   e[        [        SS9R                  S5      [        SS9/5      n[        R
                  " [        R                  5      nUR                  U:X  d   e[        [        SS9R                  S5      [        SS9/5      n[        R
                  " S5      nUR                  U:X  d   eg )NrE   rG   SparsezSparse[float64]r-   )r   r   r,   rF   rW   SparseDtyper%   rE   )r2   r:   r9   s      r;   &test_concat_empty_series_dtypes_sparse6TestEmptyConcat.test_concat_empty_series_dtypes_sparse   s    Y'..x8Y'..x8
 ||0000)$++H5vI7NO
 >>"**-||x''')$++H5vH7MN
 >>(+||x'''r>   c                     [        / SQ[        R                  / SQS.5      n[        UR                  S9n[	        X/SS9nUR                  [        5      n[        R                  " X45        g )N)r   r#   r#   r@   )RowEmptyCol	NumberColr   r   r$   )	r   r%   rH   r   r   r,   r-   r/   r0   )r2   df_1df_2r:   r9   s        r;   !test_concat_empty_df_object_dtype1TestEmptyConcat.test_concat_empty_df_object_dtype   sO    YWX.1-;;v&
f/r>   c                    [        [        S5      S9nUS   R                  [        R                  5      US'   US   R                  [        R
                  5      US'   US   R                  [        R                  5      US'   [        X/5      nUS   R                  [        R                  :X  d   eUS   R                  [        R
                  :X  d   eUS   R                  [        R                  :X  d   e[        XR                  [        R                  5      /5      nUS   R                  [        R                  :X  d   eUS   R                  [        R                  :X  d   eUS   R                  [        R                  :X  d   eg )Nabcr   r   r   r   )
r   r)   r,   r%   r   int32rE   r   rF   r   )r2   r4   r:   s      r;   "test_concat_empty_dataframe_dtypes2TestEmptyConcat.test_concat_empty_dataframe_dtypes   s,   tE{+S'..*3S'..*3S'..,3!c{  BHH,,,c{  BHH,,,c{  BJJ...YYrzz234c{  BJJ...c{  BJJ...c{  BJJ...r>   c                     [        5       n[        SSS/0SS/SS9n[        S/ 0[        S5      SS9n[        X!/SSS9n[        R                  " XC5        [        X!/SS	S9n[        R                  " XB5        g )
Nr   r#   r   r   r   )r"   rF   inner)r   joinouter)r   r   r   r/   r0   )r2   df_emptydf_adf_expectedr:   s        r;   test_concat_inner_join_empty,TestEmptyConcat.test_concat_inner_join_empty   sw    ;#1vq!fGDb	AgN(qw?
f2(qw?
f+r>   c                     [        SS /SS //SS/S9n[        SS /SS //SS/S9n[        X/5      nUR                  n[        R                  " UR                  U5        g )Nr#   r   r   r   )datar   rA   r   )r   r   dtypesr/   rI   )r2   df1df2r:   r9   s        r;   test_empty_dtype_coerce'TestEmptyConcat.test_empty_dtype_coerce   sg     q$i!T3c3ZHq$i!T3c3ZH
#::
v}}h7r>   c                    [        SS/S9n[        SS/S9n[        XU/5      n[        / SQS9n[        R                  " X45        [        SS/S9n[        S/S9n[        XV/5      n[        SS/S9n[        R                  " X45        g )Nr   r   r   r   r   r   r   )r   r   r/   r0   )r2   r   r   r:   r9   df3df4s          r;   test_concat_empty_dataframe+TestEmptyConcat.test_concat_empty_dataframe  s    c
+c
+3(_5
f/c
+&
#c3Z0
f/r>   c                    [        / SQ/ SQS.5      n[        S/ SQ05      n[        US S US S /5      nUS   R                  [        R                  :X  d   eU(       d#  US   R                  [        R
                  :X  d   eg g )Nr@   r   )r   r   r   r   r   )r   r   rF   r%   r   r   )r2   r3   r   r   r:   s        r;   ,test_concat_empty_dataframe_different_dtypes<TestEmptyConcat.test_concat_empty_dataframe_different_dtypes  sz    io>?i()Ra#bq'*+c{  BHH,,,6Hvc{  BJJ.SSe.r>   c                 8   [        S[        R                  " / [        R                  " 5       S905      n[        S[        R                  " / SQ[        R                  " 5       S905      nUR	                  5       n[        X/5      n[        R                  " XC5        g)z<48510 `concat` to an empty EA should maintain type EA dtype.r   rG   r@   N)r   rW   r   
Int64Dtyper*   r   r/   r0   )r2   r   df_newr9   r:   s        r;   test_concat_to_empty_ea'TestEmptyConcat.test_concat_to_empty_ea  sh    c288Bbmmo#FGHC)2==?!KLM;;=*+
f/r>   r}   )__name__
__module____qualname____firstlineno__r<   rN   r   markparametrizer\   r%   r   r   r   float32r   rd   rj   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__r}   r>   r;   r	   r	      s   "*H(: [[TD%=1[[XI70 8 20  [[ XXrxx,XXrzz2::.rxx,rxx,rxx,rxx,0,	
 (! (
 [[I%% [[W&VW[[8&'	 X
&'P

(*0/ 
,80T0r>   r	   )numpyr%   r   pandasrW   r   r   r   r   r   pandas._testing_testingr/   r	   r}   r>   r;   <module>r      s)        V0 V0r>   