
    dC&                     `    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                 z   t          t          j                            dd          t	          d                    }|d d                                         }d|d<   |dd         }||||dd          g}t          |d|	          }|                    g d
          }|d                             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   OAi'  20130101s)periodsfreqindex   r   )r   nprandomrandnlistcopyr   reindexastypeloctmassert_frame_equalranger   )	selfr   dfdfcopyemptyframes	concattedexpectedresults	            b/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/reshape/concat/test_empty.pytest_handle_empty_objectsz)TestEmptyConcat.test_handle_empty_objects   s   ryr1--tF||DDDBQBu1Q3%122/6555	::&A&A&A:BB"5/0055#(QqS%Z 
i222 %,,z*eRU'V'V'V
 
 
 U!,,,
fb)))!,,,
fb)))U$$
fb)))$$
fb)))))    c                    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          }t          ||gd          }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!         x)nameyfloat64)r>   dtyper!   r"   )r=   r?   r<   r   r   )r=   r   )r   r    )	r   r   r   r#   nanr   r+   r,   assert_series_equal)r.   s1s2resexps        r6   test_concat_empty_seriesz(TestEmptyConcat.test_concat_empty_series0   s   IIIC(((I...b"XA&&&))262626":;;Q--
 
 
 	c3'''IIIC(((I...b"XA&&&YYY
sC((( IIIC(((Y///b"XA&&&)) 899!HQ--
 
 

 	c3'''''r8   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]rA   )r   r!   r!   r"   )r   dttz_localizer#   r@   r   pdNaTlenr   r+   r,   )r.   rI   rK   firstrA   secondr4   r5   s           r6   !test_concat_empty_series_timelikez1TestEmptyConcat.test_concat_empty_series_timelikeM   s    
 r***-99"==.BJe,,,26(S[[0AAADPPQSTT 
 
 a000
fh/////r8   zleft,right,expectedm8[ns]rM   )categoryrX   rX   )rX   objectrY   c                 z    t          t          |          t          |          g          }|j        |k    sJ d S NrN   )r   r   rA   )r.   leftrightr4   r5   s        r6   test_concat_empty_series_dtypesz/TestEmptyConcat.test_concat_empty_series_dtypes_   sE    $ d+++V%-@-@-@ABB|x''''''r8   rA   )r@   int8uint8boolrW   rM   c                     t          j        |          }t          t          |          g          }|j        |k    sJ t          t          |          t          |          g          }|j        |k    sJ d S r[   )r#   rA   r   r   )r.   rA   r5   s      r6   0test_concat_empty_series_dtypes_match_roundtripsz@TestEmptyConcat.test_concat_empty_series_dtypes_match_roundtripst   s     e,,,-..|u$$$$e,,,f5.A.A.ABCC|u$$$$$$r8   )r@   r_   r`   rW   rM   dtype2c                    ||k    rd S d d fd}t          j        |          }t          j        |          } |||          }t          t          |          t          |          g          j        }|j        |k    sJ d S )Nc                     | 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urg   rh   r   kindrS   rA   rd   typss      r6   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4r8   c                 z    | j         |j         h}t          |h dz
            s| j         dk    s|j         dk    rdS d S )N>   frg   rh   ro   ri   rk   s      r6   float_result_typezUTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.float_result_type   sL    J,Dtooo-.. 
c!!V[C%7%7s4r8   c                 H     | |          }||S  | |          }||S dS )Nr    )rA   rd   r5   rp   rm   s      r6   get_result_typezSTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.get_result_type   sA    &&uf55F!$_UF33F!3r8   rN   )r#   rA   r   r   rj   )r.   rA   rd   rs   r4   r5   rp   rm   s         @@r6   *test_concat_empty_series_dtypes_roundtripsz:TestEmptyConcat.test_concat_empty_series_dtypes_roundtrips   s     F??F
	 
	 
		 	 		 	 	 	 	 	 &!!"?5&11e,,,f6.B.B.BCDDJ{h&&&&&&r8   c                     t          t          d          t          t          j                  t          t          j                  g          j        t          j        k    sJ d S )NrM   rN   )r   r   r#   bool_int64rA   object_r.   s    r6   &test_concat_empty_series_dtypes_triplez6TestEmptyConcat.test_concat_empty_series_dtypes_triple   sd    h'''bh)?)?)?bhAWAWAWX z     r8   c                     t          t          t          j        g           d          t          d          g          j        dk    sJ d S )NrX   rN   r@   )r   r   r#   arrayrA   ry   s    r6   2test_concat_empty_series_dtype_category_with_arrayzBTestEmptyConcat.test_concat_empty_series_dtype_category_with_array   s]     J777i9P9P9PQ      r8   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 )Nr@   rN   SparsezSparse[float64]rY   )r   r   r)   rA   rQ   SparseDtyper#   r@   )r.   r5   r4   s      r6   &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''''''r8   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#   rB   r   r   r)   rY   r+   r,   )r.   df_1df_2r5   r4   s        r6   !test_concat_empty_df_object_dtypez1TestEmptyConcat.test_concat_empty_df_object_dtype   su    YYYWWXX...t1---;;v&&
fh/////r8   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#   rv   int32r@   r   rA   rx   )r.   r/   r5   s      r6   "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......r8   c                    t                      }t          dddgiddgd          }t          dg it          d          d          }d|fd|ffD ].\  }}t          ||gd|	          }t          j        ||           /d S )
Nr   r!   r;   r   rw   )r    rA   innerouter)r   join)r   r   r   r+   r,   )r.   df_emptydf_adf_expectedhowr4   r5   s          r6   test_concat_inner_join_emptyz,TestEmptyConcat.test_concat_inner_join_empty   s    ;;#1vq!fGDDDb	AgNNN&4woF 	4 	4MCT8,13???F!&(3333	4 	4r8   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+   rC   )r.   df1df2r5   r4   s        r6   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7r8   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,   )r.   r   r   r5   r4   df3df4s          r6   test_concat_empty_dataframez+TestEmptyConcat.test_concat_empty_dataframe  s    c
+++c
+++c3((___555
fh///c
+++&&&c
##c3Z000
fh/////r8   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 |d         j        t          j        k    sJ d S )Nr:   r   )r   r   r   r   r   )r   r   rA   r#   rw   rx   )r.   r   r   r5   s       r6   ,test_concat_empty_dataframe_different_dtypesz<TestEmptyConcat.test_concat_empty_dataframe_different_dtypes  s    iiiooo>>??iii())RaR#bqb'*++c{ BH,,,,c{ BJ......r8   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   rN   r:   N)r   rQ   r|   
Int64Dtyper'   r   r+   r,   )r.   r   df_newr4   r5   s        r6   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/////r8   )__name__
__module____qualname__r7   rH   pytestmarkparametrizerV   r#   rv   r   rx   float32rw   r^   rc   rt   rz   r}   r   r   r   r   r   r   r   r   rr   r8   r6   r	   r	      sV       * * *@( ( (: [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/ / / 4 4 48 8 80 0 0/ / /0 0 0 0 0r8   r	   )numpyr#   r   pandasrQ   r   r   r   r   r   pandas._testing_testingr+   r	   rr   r8   r6   <module>r      s                               P0 P0 P0 P0 P0 P0 P0 P0 P0 P0r8   