
    d4                         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               c/var/www/html/t/fyr/venv311/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         rB   rC   czr   namer   )r=   r>   rH   rD   rE   )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   rK   df3df5rM   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,a10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df2rN   rM   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<   rA   rC   rB   r   r?   r@   )rB   rG   )r   r   )r;   r<   NN)r;   r<   r;   r<   )NNr?   r@   )rC   rB   rG   rF   Fr/   )r   r   re   rf   rN   rM   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                 P   t          t          j                            d          dk    t          j                            ddd          t          j                            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 )N
   r   r   r   r   )boolsintsfloatsstrings)rl   rm   rn   )ro   rm   rn   r   ro   r@   rl   )	r   r`   randomrandnrandintlocr   r	   all)r   r   rK   rB   rC   r&   s         r*   test_append_different_columnsz(TestAppend.test_append_different_columns{   s&   ,,q0	))!R44)//"--!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   rk      r   r;   r   r   r   )r   r   r   r   rs   r   rt   r	   )r   r   r    chunksrN   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                    t          g d          }|                    dg          }t          g dg dg dgg d          }|                    dg          }|                    |          }|j        j        dk    sJ d S )NrQ   r   r   )r;   r@   rE   )r<   r      )r?   rD   	   )datar   )r   	set_indexr   r   rJ   )r   re   rf   rN   s       r*   test_append_preserve_index_namez*TestAppend.test_append_preserve_index_name   s    000mmSE""iiiIII>XXXmmSE""S!!| C''''''r,   r?   r@   r   rD   )g      @g      @g      @abczA B CzD E FT)ordered)rE   r|   r}   rk     r;   r   rD   rk   rE      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<   rE   r|   rI   )r;   r<   r[   r   r;   r<   rR   r   ir;   r@   r   rE   r|   r}   )
r   r   r   r`   nandtypesilockindr   r   )r   r   rK   	ser_indexserrN   rM   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<   rI         ?rY   r[   r@   r   rD   rE   r|   r}   r   rR   )r   r   r   r   
differencer   tolistappendr`   r   r   r   )	r   
df_columnsseries_indexrK   r   rN   idx_diffcombined_columnsrM   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   r@   r   r?   rD   rk   rE   end_time)rJ   )axisr   Tr_   r   )
r   dtdatetimer   r   pdNaTr   r   r   )r   r   re   rf   rM   rN   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?   r@   i8rW   r   )TFTFTr   f8O)r   r`   arrayboolr   rX   )r   r   re   rf   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   rY   )rB   rC   daterG   dr   Tr^   )rG   r   rB   rC   r   r<   )r   dateutilr   tzutcr   r   r   r`   r   astypeobjectr   r   )r   r   r   rK   result_arM   result_brN   s           r*   2test_append_empty_frame_to_series_with_dateutil_tzz=TestAppend.test_append_empty_frame_to_series_with_dateutil_tz0  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                 b   t          dg                              d          }|                    dt          j        id          }t          dt          j        gi                              t
                    }t          j        ||           t          dg                              d          }t          dt          j        id          }|                    |d          }t          dt          j        gi                              t
                    }t          j        ||           t          dt          j        id          }|                    |d          }t          dt          j        gi                              t
                    }t          j        ||           d S )	NrB   r   datetime64[ns, UTC]Tr^   datetime64[ns]rW   zdatetime64[ns, US/Pacific])	r   r   r   r   r   r   r   r   r   )r   rK   rN   rM   others        r*   ,test_append_empty_tz_frame_with_datetime64nsz7TestAppend.test_append_empty_tz_frame_with_datetime64nsI  si   u%%%,,-BCC S"&M==cBF8_--44V<<
fh/// u%%%,,-BCCRV},<===E55cBF8_--44V<<
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          j        ||           d S )NrB   r   nsTr^   )r   r   r`   timedelta64r   r   r   r   r   r   r   rK   r   rN   rM   s          r*   .test_append_empty_frame_with_timedelta64ns_natz9TestAppend.test_append_empty_frame_with_timedelta64ns_nat_  s     u%%%,,Y773T!:!: ;<==E55<<''
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 )NrB   r;   rW   r   Tr^   )r   r   )
r   r   r   r`   r   r   r   r   r   r   r   s          r*   (test_append_frame_with_timedelta64ns_natz3TestAppend.test_append_frame_with_timedelta64ns_natm  s     RXqc;;;<==3T!:!: ;<==E55cBGDM5:d3C#DEVTTT
fh/////r,   N)'r   
__module____qualname__r+   r1   r9   rO   rU   rg   ri   ru   rz   r   r   
RangeIndexr   listCategoricalIndexsplitIntervalIndexfrom_breaksDatetimeIndexr   r   
MultiIndexfrom_arraysindexes_can_appendr5   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 0, [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   numpyr`   r5   pandasr   r   r   r   r   r   r	   pandas._testing_testingr   r   r   r,   r*   <module>r      s        " " " " " "                               e0 e0 e0 e0 e0 e0 e0 e0 e0 e0r,   