
    [6g(                     `    d dl Zd dlZd dlZd dlmZmZmZmZm	Z	 d dl
mZ  G d d          ZdS )    N)	DataFrame
RangeIndexSeriesconcat
date_rangec                      e Zd Zd Zd Zej                            dddg          ej                            dg g dg          d                         Zej                            d	e	j
        e	j        e	j        fe	j
        e	j        e	j        fd
e	j
        e	j        fd
e	j        e	j        fde	j
        e	j        fde	j        e	j        fddg          d             Zej                            dg d          d             Zej                            dg d          e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S )TestEmptyConcatc                    t          t          j                            d                              d          t          d                    }|d d                                         }d|d<   |dd         }||||dd          g}t          |d|	          }|                    g d
          }|d         	                    |st          nd          |d<   d|j        dddf<   t          j        ||           t          dt          d          it          ddd                    }t                      }t          ||gd          }	t          j        |	|           t          ||gd          }	t          j        |	|           t          ||g          }	t          j        |	|           t          ||g          }	t          j        |	|           d S )N   )
      abcdcolumns   barfoor   )axissort)abcdr   zstring[pyarrow_numpy]r   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/surfInsights/venv3-11/lib/python3.11/site-packages/pandas/tests/reshape/concat/test_empty.pytest_handle_empty_objectsz)TestEmptyConcat.test_handle_empty_objects   s   I!!!$$44W==tF||
 
 
 BQBu1Q3%122/6555	::&A&A&A:BB"5/00,IFF2I
 
 $)QqS%Z 
i222 %,,z*eRU'V'V'V
 
 
 U!,,,
fb)))!,,,
fb)))U$$
fb)))$$
fb)))))    c                 p   t          g dd          }t          dd          }t          ||gd          }t          g dt          j        t          j        t          j        gd	t          d
                    }t          j        ||           t          g dd          }t          dd          }d}t          j        t          |          5  t          ||gd          }d d d            n# 1 swxY w Y   t          g d          }t          j
        ||           t          g dd          }t          d d          }t          ||gd          }t          g dt          j        t          j        t          j        gdddgt          d
                    }t          j        ||           d S )Nr!   r      x)nameyfloat64)r@   dtyper!   r"   )r?   rA   r>   r   zDThe behavior of array concatenation with empty entries is deprecated)matchr   )r?   r   )r   r    )r   r   r   r#   nanr   r-   r.   assert_produces_warningFutureWarningassert_series_equal)r0   s1s2resexpmsgs         r9   test_concat_empty_seriesz(TestEmptyConcat.test_concat_empty_series4   s   IIIC(((I...b"XA&&&))262626":;;Q--
 
 
 	c3'''IIIC(((I...T'SAAA 	+ 	+"b***C	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ YYY
sC((( IIIC(((Y///b"XA&&&)) 899!HQ--
 
 

 	c3'''''s   C22C69C6tzNUTCvaluesr=   c                    t          g d          j                            |          }|rd nt          j        }t          ||          }t          t          t          j        gt          |          z  d          j                            |          |d          }t          ||gd          }t          j        ||           d S )NM8[ns]rC   )r   r!   r!   r"   )r   dttz_localizer#   rB   r   pdNaTlenr   r-   r.   )r0   rO   rQ   firstrC   secondr7   r8   s           r9   !test_concat_empty_series_timelikez1TestEmptyConcat.test_concat_empty_series_timelikeS   s    
 r***-99"==.BJe,,,26(S[[0AAADPPQSTT 
 
 a000
fh/////r;   zleft,right,expectedm8[ns]rS   )categoryr^   r^   )r^   r+   r+   c                 z    t          t          |          t          |          g          }|j        |k    sJ d S NrT   )r   r   rC   )r0   leftrightr7   r8   s        r9   test_concat_empty_series_dtypesz/TestEmptyConcat.test_concat_empty_series_dtypese   sE    $ d+++V%-@-@-@ABB|x''''''r;   rC   )rB   int8uint8boolr]   rS   c                     t          j        |          }t          t          |          g          }|j        |k    sJ t          t          |          t          |          g          }|j        |k    sJ d S r`   )r#   rC   r   r   )r0   rC   r8   s      r9   0test_concat_empty_series_dtypes_match_roundtripsz@TestEmptyConcat.test_concat_empty_series_dtypes_match_roundtripsz   s     e,,,-..|u$$$$e,,,f5.A.A.ABCC|u$$$$$$r;   )rB   rd   re   r]   rS   dtype2c                 <   ||k    rt          j        d           d d fd}t          j        |          }t          j        |          } |||          }t	          t          |          t          |          g          j        }|j        |k    sJ d S )Nz%same dtype is not applicable for testc                     | j         |j         h}t          |h dz
            s| j         dk    s|j         dk    rdS t          |ddhz
            s| j         dk    s|j         dk    rdS d S )N>   r   iurl   rm   r   kindrY   rC   ri   typss      r9   int_result_typezSTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.int_result_type   s    J,Dtooo-.. 
c!!V[C%7%7sc
*++ 
c!!V[C%7%7s4r;   c                 z    | j         |j         h}t          |h dz
            s| j         dk    s|j         dk    rdS d S )N>   frl   rm   rt   rn   rp   s      r9   float_result_typezUTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.float_result_type   sL    J,Dtooo-.. 
c!!V[C%7%7s4r;   c                 H     | |          }||S  | |          }||S dS )NO )rC   ri   r8   ru   rr   s      r9   get_result_typezSTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.get_result_type   sA    &&uf55F!$_UF33F!3r;   rT   )pytestskipr#   rC   r   r   ro   )r0   rC   ri   ry   r7   r8   ru   rr   s         @@r9   *test_concat_empty_series_dtypes_roundtripsz:TestEmptyConcat.test_concat_empty_series_dtypes_roundtrips   s     F??K?@@@
	 
	 
		 	 		 	 	 	 	 	 &!!"?5&11e,,,f6.B.B.BCDDJ{h&&&&&&r;   c                     t          t          d          t          t          j                  t          t          j                  g          j        t          j        k    sJ d S )NrS   rT   )r   r   r#   bool_int64rC   object_r0   s    r9   &test_concat_empty_series_dtypes_triplez6TestEmptyConcat.test_concat_empty_series_dtypes_triple   sd    h'''bh)?)?)?bhAWAWAWX z     r;   c                     t          t          t          j        g           d          t          d          g          j        dk    sJ d S )Nr^   rT   rB   )r   r   r#   arrayrC   r   s    r9   2test_concat_empty_series_dtype_category_with_arrayzBTestEmptyConcat.test_concat_empty_series_dtype_category_with_array   s]     J777i9P9P9PQ      r;   c                 ^   t          t          d                              d          t          d                              d          g          }|j        dk    sJ t          t          d                              d          t          d          g          }t	          j        t          j                  }|j        |k    sJ t          t          d                              d          t          d          g          }t	          j        d          }|j        |k    sJ d S )NrB   rT   SparsezSparse[float64]r+   )r   r   r*   rC   rW   SparseDtyper#   rB   )r0   r8   r7   s      r9   &test_concat_empty_series_dtypes_sparsez6TestEmptyConcat.test_concat_empty_series_dtypes_sparse   s*   Y'''..x88Y'''..x88
 
 |00000)$$$++H55vI7N7N7NO
 
 >"*--|x'''')$$$++H55vH7M7M7MN
 
 >(++|x''''''r;   c                     t          g dt          j        g dd          }t          |j                  }t	          ||gd          }|                    t                    }t          j        ||           d S )N)r   r!   r!   r=   )RowEmptyCol	NumberColr   r   r"   )	r   r#   rE   r   r   r*   r+   r-   r.   )r0   df_1df_2r8   r7   s        r9   !test_concat_empty_df_object_dtypez1TestEmptyConcat.test_concat_empty_df_object_dtype   su    YYYWWXX...t1---;;v&&
fh/////r;   c                 
   t          t          d                    }|d                             t          j                  |d<   |d                             t          j                  |d<   |d                             t          j                  |d<   t          ||g          }|d         j        t          j        k    sJ |d         j        t          j        k    sJ |d         j        t          j        k    sJ t          ||                    t          j                  g          }|d         j        t          j	        k    sJ |d         j        t          j        k    sJ |d         j        t          j        k    sJ d S )Nabcr   r   r   r   )
r   r'   r*   r#   r~   int32rB   r   rC   r   )r0   r2   r8   s      r9   "test_concat_empty_dataframe_dtypesz2TestEmptyConcat.test_concat_empty_dataframe_dtypes   s<   tE{{+++S'..**3S'..**3S'..,,3R!!c{ BH,,,,c{ BH,,,,c{ BJ....RYYrz22344c{ BJ....c{ BJ....c{ BJ......r;   c                 8   t                      }t          dddgiddgd          }t          dg it          d          d          }t          ||gdd          }t          j        ||           t          ||gdd	          }t          j        ||           d S )
Nr   r!   r   r   r   )r    rC   inner)r   joinouter)r   r   r   r-   r.   )r0   df_emptydf_adf_expectedr8   s        r9   test_concat_inner_join_emptyz,TestEmptyConcat.test_concat_inner_join_empty   s    ;;#1vq!fGDDDb	AgNNNx(qw???
fk222x(qw???
fd+++++r;   c                     t          dd gdd ggddg          }t          dd gdd ggddg          }t          ||g          }|j        }t          j        |j        |           d S )Nr!   r   r   r   )datar   r>   r   )r   r   dtypesr-   rH   )r0   df1df2r8   r7   s        r9   test_empty_dtype_coercez'TestEmptyConcat.test_empty_dtype_coerce   s}     q$i!T3c3ZHHHq$i!T3c3ZHHHc
##:
v}h77777r;   c                 v   t          ddg          }t          ddg          }t          |||g          }t          g d          }t          j        ||           t          ddg          }t          dg          }t          ||g          }t          ddg          }t          j        ||           d S )Nr   r   r   r   r   r   r   )r   r   r-   r.   )r0   r   r   r8   r7   df3df4s          r9   test_concat_empty_dataframez+TestEmptyConcat.test_concat_empty_dataframe
  s    c
+++c
+++c3((___555
fh///c
+++&&&c
##c3Z000
fh/////r;   c                    t          g dg dd          }t          dg di          }t          |d d         |d d         g          }|d         j        t          j        k    sJ |s|d         j        t          j        k    snd S J d S )Nr=   r   )r   r   r   r   r   )r   r   rC   r#   r   r   )r0   r1   r   r   r8   s        r9   ,test_concat_empty_dataframe_different_dtypesz<TestEmptyConcat.test_concat_empty_dataframe_different_dtypes  s    iiiooo>>??iii())RaR#bqb'*++c{ BH,,,,6HVvc{ BJ.........r;   c                 V   t          dt          j        g t          j                              i          }t          dt          j        g dt          j                              i          }|                                }t          ||g          }t          j        ||           dS )z<48510 `concat` to an empty EA should maintain type EA dtype.r   rT   r=   N)r   rW   r   
Int64Dtyper(   r   r-   r.   )r0   r   df_newr7   r8   s        r9   test_concat_to_empty_eaz'TestEmptyConcat.test_concat_to_empty_ea!  s    c28Bbmoo#F#F#FGHHC)))2=??!K!K!KLMM;;==6*++
fh/////r;   )__name__
__module____qualname__r:   rN   rz   markparametrizer\   r#   r~   r   r   float32r   rc   rh   r|   r   r   r   r   r   r   r   r   r   r   rx   r;   r9   r	   r	      sY       "* "* "*H( ( (> [TD%=11[XIII770 0 87 210  [ Xrx,Xrz2:.rx,rx,rx,rx,0,	
  ( (!  (
 [III % % % [W&V&V&VWW[888 &' &'	  XW
&'P
 
 

 
 
( ( (*0 0 0/ / / 
, 
, 
,8 8 80 0 0W W W0 0 0 0 0r;   r	   )numpyr#   rz   pandasrW   r   r   r   r   r   pandas._testing_testingr-   r	   rx   r;   r9   <module>r      s                               X0 X0 X0 X0 X0 X0 X0 X0 X0 X0r;   