
    bMh(                     l    d dl Zd dlZd dlm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)using_string_dtype)	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ej                             e            d          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   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
             f/var/www/html/test/jupyter/venv/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,7FF%
 
 $)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)rB   dtyper#   r$   )rA   rC   r@   r!   zDThe behavior of array concatenation with empty entries is deprecated)matchr   )rA   r   )r   r"   )r   r   r   r%   nanr   r/   r0   assert_produces_warningFutureWarningassert_series_equal)r2   s1s2resexpmsgs         r;   test_concat_empty_seriesz(TestEmptyConcat.test_concat_empty_series6   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]rE   )r   r#   r#   r$   )r   dttz_localizer%   rD   r   pdNaTlenr   r/   r0   )r2   rQ   rS   firstrE   secondr9   r:   s           r;   !test_concat_empty_series_timelikez1TestEmptyConcat.test_concat_empty_series_timelikeU   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]rU   )categoryr`   r`   )r`   r-   r-   c                 z    t          t          |          t          |          g          }|j        |k    sJ d S NrV   )r   r   rE   )r2   leftrightr9   r:   s        r;   test_concat_empty_series_dtypesz/TestEmptyConcat.test_concat_empty_series_dtypesg   sE    $ d+++V%-@-@-@ABB|x''''''r=   rE   )rD   int8uint8boolr_   rU   c                     t          j        |          }t          t          |          g          }|j        |k    sJ t          t          |          t          |          g          }|j        |k    sJ d S rb   )r%   rE   r   r   )r2   rE   r:   s      r;   0test_concat_empty_series_dtypes_match_roundtripsz@TestEmptyConcat.test_concat_empty_series_dtypes_match_roundtrips|   s     e,,,-..|u$$$$e,,,f5.A.A.ABCC|u$$$$$$r=   )rD   rf   rg   r_   rU   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urn   ro   r   kindr[   rE   rk   typss      r;   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>   frn   ro   rv   rp   rr   s      r;   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 )rE   rk   r:   rw   rt   s      r;   get_result_typezSTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.get_result_type   sA    &&uf55F!$_UF33F!3r=   rV   )pytestskipr%   rE   r   r   rq   )r2   rE   rk   r{   r9   r:   rw   rt   s         @@r;   *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 )NrU   rV   )r   r   r%   bool_int64rE   object_r2   s    r;   &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`   rV   rD   )r   r   r%   arrayrE   r   s    r;   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 )NrD   rV   SparsezSparse[float64]r-   )r   r   r,   rE   rY   SparseDtyper%   rD   )r2   r:   r9   s      r;   &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%   rG   r   r   r,   r-   r/   r0   )r2   df_1df_2r:   r9   s        r;   !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   int32rD   r   rE   r   )r2   r4   r:   s      r;   "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=   zTODO(infer_string))reasonc                 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"   rE   inner)r   joinouter)r   r   r   r/   r0   )r2   df_emptydf_adf_expectedr:   s        r;   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/   rJ   )r2   df1df2r:   r9   s        r;   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/   r0   )r2   r   r   r:   r9   df3df4s          r;   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   rE   r%   r   r   )r2   r3   r   r   r:   s        r;   ,test_concat_empty_dataframe_different_dtypesz<TestEmptyConcat.test_concat_empty_dataframe_different_dtypes  s    iiiooo>>??iii())RaR#bqb'*++c{ BH,,,,6HSvc{ 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   rV   r?   N)r   rY   r   
Int64Dtyper*   r   r/   r0   )r2   r   df_newr9   r:   s        r;   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<   rP   r|   markparametrizer^   r%   r   r   r   float32r   re   rj   r~   r   r   r   r   r   xfailr   r   r   r   r   r   rz   r=   r;   r
   r
      s       "* "* "*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/ / /" [))++4HII
, 
, JI
,8 8 80 0 0T T T0 0 0 0 0r=   r
   )numpyr%   r|   pandas._configr   pandasrY   r   r   r   r   r   pandas._testing_testingr/   r
   rz   r=   r;   <module>r      s         - - - - - -                       Z0 Z0 Z0 Z0 Z0 Z0 Z0 Z0 Z0 Z0r=   