
    Pib'                     `    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   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
             z/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/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                 
   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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)rA   dtyper"   r#   )r@   rB   r?   r    r   rD   )r@   r   )r   r!   )	r   r   r   r$   nanr   r.   r/   assert_series_equal)r1   s1s2resexps        r:   test_concat_empty_seriesz(TestEmptyConcat.test_concat_empty_series4   s   IIIC(((I...b"XA&&&))262626":;;Q--
 
 
 	c3'''IIIC(((I...b"XA&&&YYYi000
sC((( IIIC(((Y///b"XA&&&)) 899!HQ--
 
 

 	c3'''''r<   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$   rC   r   pdNaTlenr   r.   r/   )r1   rM   rO   firstrD   secondr8   r9   s           r:   !test_concat_empty_series_timelikez1TestEmptyConcat.test_concat_empty_series_timelikeQ   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]rQ   )categoryr[   r[   )r[   r,   r,   c                 z    t          t          |          t          |          g          }|j        |k    sJ d S NrE   )r   r   rD   )r1   leftrightr8   r9   s        r:   test_concat_empty_series_dtypesz/TestEmptyConcat.test_concat_empty_series_dtypesc   sE    $ d+++V%-@-@-@ABB|x''''''r<   rD   )rC   int8uint8boolrZ   rQ   c                     t          j        |          }t          t          |          g          }|j        |k    sJ t          t          |          t          |          g          }|j        |k    sJ d S r]   )r$   rD   r   r   )r1   rD   r9   s      r:   0test_concat_empty_series_dtypes_match_roundtripsz@TestEmptyConcat.test_concat_empty_series_dtypes_match_roundtripsx   s     e,,,-..|u$$$$e,,,f5.A.A.ABCC|u$$$$$$r<   )rC   ra   rb   rZ   rQ   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uri   rj   r   kindrV   rD   rf   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>   fri   rj   rq   rk   rm   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 )rD   rf   r9   rr   ro   s      r:   get_result_typezSTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.get_result_type   sA    &&uf55F!$_UF33F!3r<   rE   )pytestskipr$   rD   r   r   rl   )r1   rD   rf   rv   r8   r9   rr   ro   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 )NrQ   rE   )r   r   r$   bool_int64rD   object_r1   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[   rE   rC   )r   r   r$   arrayrD   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 )NrC   rE   SparsezSparse[float64]r,   )r   r   r+   rD   rT   SparseDtyper$   rC   )r1   r9   r8   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$   rF   r   r   r+   r,   r.   r/   )r1   df_1df_2r9   r8   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{   int32rC   r   rD   r}   )r1   r3   r9   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<   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!   rD   inner)r   joinouter)r   r   r   r.   r/   )r1   df_emptydf_adf_expectedr9   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.   rG   )r1   df1df2r9   r8   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.   r/   )r1   r   r   r9   r8   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   rD   r$   r|   r}   )r1   r2   r   r   r9   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......S..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   rE   r>   N)r   rT   r   
Int64Dtyper)   r   r.   r/   )r1   r   df_newr8   r9   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;   rL   rw   markparametrizerY   r$   r{   r   r}   float32r|   r`   re   ry   r   r   r   r   r   r   r   r   r   r   ru   r<   r:   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T T T0 0 0 0 0r<   r	   )numpyr$   rw   pandasrT   r   r   r   r   r   pandas._testing_testingr.   r	   ru   r<   r:   <module>r      s                               V0 V0 V0 V0 V0 V0 V0 V0 V0 V0r<   