
    bMh7                         d dl Zd dlmZ d dlZ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mZ d dlmZ  G d d          ZdS )    N)combinations)	DataFrameIndexSeries	Timestampconcatisnac                   |   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Z ej        d           eg d           eg d           e ed                     ej        d                                           ej        d                                d          ej                            g d           ej         ej        ddddd           ej        ddddd           ej        ddddd          g          ej                            d                                d                                g          g	Zej                            ded           d             Zej                            d eed !          d"           d#             Z d$ Z!d% Z"d& Z#d' Z$ej                            d(g d)          ej                            d*dd+g          d,                         Z%ej                            d(g d)          ej                            d*dd+g          d-                         Z&d.S )/
TestAppendc                 @   |                                 }d|d<   |j        d d         }|j        dd          }|                    |          }|                    |          }|                    |          }t	          j        |d         |d                    |d= |                    ||          }	d|	v sJ |                    ||          }	d|	v sJ |d d                             |dd                    }t	          j        ||           |d d                             |dd          |          }
|d d                             |dd          |          }t	          j        |
                    g d          |                    g d                     d S )Nbarfoo   Asort)r   BCDcolumns)copyindexreindex_appendtmassert_almost_equalassert_frame_equal)selfr   float_framemixed_framebegin_index	end_indexbegin_frame	end_frameappendedpartial_appendedmixed_appendedmixed_appended2s               g/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/reshape/concat/test_append.pytest_appendzTestAppend.test_append   s   !&&(("E!'+%abb)	!))+66''	22	&&y11
x}k#.>???cN&..yt.DD&&&&&$,,[t,DD&&&&& rr?**;qrr?;;
h444 %RaR00QRRt0LL%bqb/11+abb/1MM 	""+?+?+?"@@##,@,@,@#AA	
 	
 	
 	
 	
    c                     t                      }|                    |          }t          j        ||           ||usJ |                    |          }t          j        ||           ||usJ d S Nr   r   r   r   )r   r    emptyr&   s       r*   test_append_emptyzTestAppend.test_append_empty7   s}    &&u--
k8444{****==--
k8444{******r,   c                     d}t          j        t          |          5  |                    |d           d d d            d S # 1 swxY w Y   d S )NzIndexes have overlapping valuesmatchT)verify_integrity)pytestraises
ValueErrorr   )r   r    msgs      r*   test_append_overlap_raisesz%TestAppend.test_append_overlap_raisesB   s    /]:S111 	D 	DdCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   AA
Ac                     t          ddddddd          }t          g dg dd	
          }t          ddddddddd	did          }|                    |          }t          j        ||           d S )N      )xy      ab)r         rC   rD   czr   namer   )r>   r?   rI   rE   rF   )r   r   r   r   r   )r   dfrowexpectedresults        r*   test_append_new_columnsz"TestAppend.test_append_new_columnsG   s    11--!!4D4DEEFFYYYoooC@@@11--11--1X 
 
 C
fh/////r,   c                     t          g d          }t          ddgddg          }|                    ||          }t          ddgg d          }t          j        ||           d S )	Nr   r   r   r   r   r<   r   r   r   r   r   r/   )r   r   rL   df3df5rN   s         r*   test_append_length0_framez$TestAppend.test_append_length0_frameU   sx    ///q!fsCj999jj4j((Aq6???CCC
c8,,,,,r,   c                 \   t          j        dd          }ddg|d d <   t          j        dd          }g d|d d <   t          |          }t          |          }|                    |d	          }t          t          j        ||f                    }t          j        ||           d S )
N)r=   z	i4,f4,S10dtype)r<          @Hello)r=         @World)r@   ))r@   g      @r   )r   g      @r   )g      @g       @bazTignore_index)npzerosr   r   concatenater   r   )r   arr1arr2df1df2rO   rN   s          r*   test_append_recordszTestAppend.test_append_records]   s    x[222$&78QQQx[222GGGQQQooooSt44R^T4L99::
fh/////r,   c                    t          ddgddgdddg          }t          ddgddgd	ddg
          }|                    ||          }t          g dg dg ddg d          }|du r
|g d         }t          j        ||           d S )Nr<   r=   rB   rD   rC   r   r@   rA   )rC   rH   )r   r   )r<   r=   NN)r<   r=   r<   r=   )NNr@   rA   )rD   rC   rH   rG   Fr/   )r   r   rf   rg   rO   rN   s         r*   test_append_sortszTestAppend.test_append_sortsl   s    q!fAq622S#JGGGq!fAq6221a&AAASt,, $$$<<<>P>P>PQQ#OO
 
 
 5==0H
fh/////r,   c                    t          t          j                            d                              d          dk    t          j                            d                              ddd          t          j                            d                              d          ddgdz  d          }|d d         j        d d g df         }|dd          j        d d g d	f         }|                    ||
          }t          |d         dd                   	                                sJ t          |d         dd                    	                                sJ d S )Nr=   
   r   r   r   r   )boolsintsfloatsstrings)rm   rn   ro   )rp   rn   ro   r   rp   rA   rm   )
r   ra   randomdefault_rngstandard_normalintegerslocr   r	   all)r   r   rL   rC   rD   r&   s         r*   test_append_different_columnsz(TestAppend.test_append_different_columns{   sT   ..q11AA"EEI	--a0099!RDD)//22BB2FF!5>A-	 
 
 rrFJqqq55556qrrFJqqq7777899QT9**HY'!,--1133333HW%abb)**..0000000r,   c                 j   |d d         |dd         |dd         |dd          g}|d                              |dd                    }t          j        ||           |d                                         |d<   d|d         d<   |d                              |dd          |	          }t          j        |j        d d |j        f         |           |d         dd          dk                                    sJ |d         d d                                                                         sJ d S )
Nr   rl      r   r<   r   r   r   )r   r   r   r   ru   r   rv   r	   )r   r   r    chunksrO   s        r*   test_append_manyzTestAppend.test_append_many   s<   O"2	
 ""6!"":..
fk222BZ__&&r
!r
5""6!"":D"99
fjK,?)?@+NNNubcc"e+0022222e}SbS!&&((,,.......r,   c                 r   t          g d          }|                    dg          }t          g dg dg dgg d          }|                    dg          }d}t          j        t          |	          5  |                    |          }d d d            n# 1 swxY w Y   |j        j        dk    sJ d S )
NrR   r   r   )r<   rA   rF   )r=   r      )r@   rE   	   )datar   zDThe behavior of array concatenation with empty entries is deprecatedr3   )r   	set_indexr   assert_produces_warningFutureWarningr   r   rK   )r   rf   rg   r9   rO   s        r*   test_append_preserve_index_namez*TestAppend.test_append_preserve_index_name   s   000mmSE""iiiIII>XXXmmSE""T'SAAA 	& 	&[[%%F	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&| C''''''s   8BB!Br@   rA   r   rE   )g      @g      @g      @abczA B CzD E FT)ordered)rF   r~   r   rl     r<   r   rE   rl   rF      r   c                 *    t          |           j        S r.   type__name__r>   s    r*   <lambda>zTestAppend.<lambda>   s    4773C r,   )idsc                    t          g dg dg|          }|d d         }t          ddg|d          }|                    |          }t          g dg dddt          j        ggg d	|
          }|j        j        d         j        dk    sJ |j        j        d         j        dk    sJ t          j	        ||           |}|d d         }t          ddgddgg|          }t          g d|d          }|                    |          }t          ddt          j        gddt          j        gg dgg d	|
          }t          j	        ||           d S )Nr<   r=   r@   r   r   r=   rF   r~   rJ   )r<   r=   r\   r   r<   r=   rS   r   ir<   rA   r   rF   r~   r   )
r   r   r   ra   nandtypesilockindr   r   )r   r   rL   	ser_indexserrO   rN   s          r*   test_append_same_columns_typez(TestAppend.test_append_same_columns_type   s    			999-u==="1"I	aV91555C[[)))aBF^4IIIu
 
 
 #A&+s2222#A&+s2222
fh/// 	bqb	AA'777YYYia888CBF^aBF^YYY7))
 
 

 	fh/////r,   zdf_columns, series_indexr=   )rc                 *    t          |           j        S r.   r   r   s    r*   r   zTestAppend.<lambda>   s    d1gg& r,   c           
      R   t          g dg dg|          }t          g d|d          }|                    |          }|j                            |          }t          |                                                              |          }t          ddd	t          j	        t          j	        t          j	        gd
ddt          j	        t          j	        t          j	        gt          j	        t          j	        t          j	        dddggg d|          }t          j        ||           d S )Nr   r   r   r   r=   rJ         ?rZ   r\   rA   r   rE   rF   r~   r   r   rS   )r   r   r   r   
differencer   tolistappendra   r   r   r   )	r   
df_columnsseries_indexrL   r   rO   idx_diffcombined_columnsrN   s	            r*   #test_append_different_columns_typesz.TestAppend.test_append_different_columns_types   s	    			999-zBBBYYYl;;;C9''
33 !2!2!4!455<<XFFc37Aq"&"&"&1Aq1
 ))$
 
 
 	fh/////r,   c                    t          ddgt          j        ddddd          t          j        ddddd          gdg          }t          ddgt          j        ddd	dd          t          j        ddd	d
d          gt          j        ddddd          t          j        ddddd          ggddg          }t          t	          t
          j        t
          j        t          j        ddd	d
d          t          j        ddddd          gd          t	          t          j        ddddd          t          j        ddddd          t          j        ddd	dd          t          j        ddddd          gd          gd|          }|                    |d|          }|r|ddg         }n
|ddg         }t          j	        ||           d S )Nr<   r=   r   r   
start_time)r   r   r   rA   r   r@   rE   rl   rF   end_time)rK   )axisr   Tr`   r   )
r   dtdatetimer   r   pdNaTr   r   r   )r   r   rf   rg   rN   rO   s         r*   test_append_dtype_coercez#TestAppend.test_append_dtype_coerce   s    a&+dAq!Q//T1aA1N1NO!N
 
 

 a&T1aA..D!Q20N0NOT1aA..D!Q20N0NO ":.
 
 
 D!Q266D!Q266	 $   D!Q155D!Q155D!Q155D!Q155	 &  ( -
 
 
0 St$?? 	<\ :;HHz :;H
fh/////r,   c                 (   t          dt          j        g dd          i          }t          dt          j        g dt                    i          }|                    |d|          }|d         j        d	k    sJ |d         j        d
k    sJ d S )Nr   )r<   r=   r@   rA   i8rX   r   )TFTFTr   f8O)r   ra   arrayboolr   rY   )r   r   rf   rg   r&   s        r*   (test_append_missing_column_proper_upcastz3TestAppend.test_append_missing_column_proper_upcast*  s    bh|||4@@@ABBbh'A'A'ANNNOPP;;sD;AA}"d****}"c))))))r,   c                    t          dt          j                                                  }t	          dd|d          }t          ddg          }|                    |d	
          }t          t          j        t          j        dd|ggg d          }|d         	                    t                    |d<   |d         	                    t                    |d<   t          j        ||           t          t          j        t          j        dd|ggdz  g d          }|d         	                    t                    |d<   |d         	                    t                    |d<   |                    |d	
          }t          j        ||           |                    ||gd	
          }t          j        ||           d S )Nz2018-10-24 07:30:00)tzr   rZ   )rC   rD   daterH   dr   Tr_   )rH   r   rC   rD   r   r=   )r   dateutilr   tzutcr   r   r   ra   r   astypeobjectr   r   )r   r   r   rL   result_arN   result_brO   s           r*   2test_append_empty_frame_to_series_with_dateutil_tzz=TestAppend.test_append_empty_frame_to_series_with_dateutil_tz2  s   .8;3D3D3F3FGGG3S$7788Sz***::c:55fbfc3-.8T8T8T
 
 
 !,,V44 ,,V44
h111fbfc3-.2<X<X<X
 
 
 !,,V44 ,,V44##Cd#;;
h111S#JT::
fh/////r,   c                 $   t          dg                              d          }|                    dt          j        id          }|r$t          dt          j        git
                    }n#t          dt          j        git
                    }t          j	        ||           t          dg                              d          }t          dt          j        id          }|                    |d          }t          j	        ||           t          dt          j        id          }|                    |d          }t          dt          j        gi                              t
                    }t          j	        ||           d S )	NrC   r   datetime64[ns, UTC]Tr_   rX   datetime64[ns]zdatetime64[ns, US/Pacific])r   r   r   r   r   r   ra   r   r   r   r   )r   using_array_managerrL   rO   rN   others         r*   ,test_append_empty_tz_frame_with_datetime64nsz7TestAppend.test_append_empty_tz_frame_with_datetime64nsK  sb   u%%%,,-BCC S"&M== 	@ #x???HH #x???H
fh/// u%%%,,-BCCRV},<===E55
fh/// RV},HIIIE55cBF8_--44V<<
fh/////r,   	dtype_str)r   r   Int64int64valr   c                    t          dg                              |          }t          dt          j        |d          gi          }|                    |d          }|                    t
                    }t          |t                    r+|dk    r%|s#t          dt          j        git
                    }t          j
        ||           d S )NrC   r   nsTr_   r   rX   )r   r   ra   timedelta64r   r   
isinstancestrr   r   r   )r   r   r   r   rL   r   rO   rN   s           r*   .test_append_empty_frame_with_timedelta64ns_natz9TestAppend.test_append_empty_frame_with_timedelta64ns_natc  s     u%%%,,Y773T!:!: ;<==E55<<''c3 	@I$8$8AT$8
 !#x???H
fh/////r,   c                 T   t          dt          j        dg|          i          }t          dt          j        |d          gi          }|                    |d          }t          d|j        d         |j        d         git                    }t          j	        ||           d S )NrC   r<   rX   r   Tr_   )r   r   )
r   r   r   ra   r   r   r   r   r   r   )r   r   r   rL   r   rO   rN   s          r*   (test_append_frame_with_timedelta64ns_natz3TestAppend.test_append_frame_with_timedelta64ns_naty  s     RXqc;;;<==3T!:!: ;<==E55cBGDM5:d3C#DEVTTT
fh/////r,   N)'r   
__module____qualname__r+   r1   r:   rP   rV   rh   rj   rw   r|   r   r   
RangeIndexr   listCategoricalIndexsplitIntervalIndexfrom_breaksDatetimeIndexr   r   
MultiIndexfrom_arraysindexes_can_appendr6   markparametrizer   r   r   r   r   r   r   r   r    r,   r*   r   r      s^        
  
  
D	+ 	+ 	+D D D
0 0 0- - -0 0 00 0 01 1 1"/ / /$
( 
( 
( 	aiiiooodd5kkGMMOO,,GMMOOT:::
$$]]]33D!Q1--D!Q2..D!Q2..	
 	
 	!!7==??GMMOO"DEE$ [#)C)C   0 0 0< ["'1---&&   
0 0 
0,00 00 00d* * *0 0 020 0 00 [PPP  [UQJ//0 0 0/ 0$ [PPP  [UQJ//0 0 0/ 0 0 0r,   r   )r   r   	itertoolsr   r   numpyra   r6   pandasr   r   r   r   r   r   r	   pandas._testing_testingr   r   r   r,   r*   <module>r      s        " " " " " "                               q0 q0 q0 q0 q0 q0 q0 q0 q0 q0r,   