
    A[g7                     x    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y)    N)combinations)	DataFrameIndexSeries	Timestampconcatisnac                   D   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j%                                ej"                  dj%                         d      ej&                  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j0                  j3                  dj%                         dj%                         g      g	Zej8                  j;                  ded       d        Zej8                  j;                  d eed !      d"       d#        Z d$ Z!d% Z"d& Z#d' Z$ej8                  j;                  d(g d)      ej8                  j;                  d*dd+g      d,               Z%ej8                  j;                  d(g d)      ej8                  j;                  d*dd+g      d-               Z&y.)/
TestAppendc                    |j                         }d|d<   |j                  d d }|j                  dd  }|j                  |      }|j                  |      }|j                  |      }t	        j
                  |d   |d          |d= |j                  ||      }	d|	v sJ |j                  ||      }	d|	v sJ |d d j                  |dd        }t	        j                  ||       |d d j                  |dd  |      }
|d d j                  |dd  |      }t	        j                  |
j                  g d      |j                  g d             y )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               b/var/www/html/bid-api/venv/lib/python3.12/site-packages/pandas/tests/reshape/concat/test_append.pytest_appendzTestAppend.test_append   s~   !&&("E!''+%%ab)	!))+6''	2	&&y1
x}k#.>?cN&..yt.D&&&&$,,[t,D&&&& r?**;qr?;
h4 %Ra00QRt0L%bq/11+ab/1M 	""+?"@##,@#A	
    c                     t               }|j                  |      }t        j                  ||       ||usJ |j                  |      }t        j                  ||       ||usJ y Nr   r   r   r   )r   r    emptyr&   s       r*   test_append_emptyzTestAppend.test_append_empty7   sc    &&u-
k84{***==-
k84{***r,   c                     d}t        j                  t        |      5  |j                  |d       d d d        y # 1 sw Y   y xY w)NzIndexes have overlapping valuesmatchT)verify_integrity)pytestraises
ValueErrorr   )r   r    msgs      r*   test_append_overlap_raisesz%TestAppend.test_append_overlap_raisesB   s4    /]]:S1dC 211s	   ;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      }|j                  |      }t        j                  ||       y )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   sr    11-!!4DEFYoC@11-11-1X
 C
fh/r,   c                     t        g d      }t        ddgddg      }|j                  ||      }t        ddgg d      }t        j                  ||       y )	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   sR    /q!fsCj9jj4j(Aq6?C
c8,r,   c                 :   t        j                  dd      }ddg|d d  t        j                  dd      }g d|d d  t        |      }t        |      }|j                  |d	      }t        t        j                  ||f            }t        j                  ||       y )
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    xx[2$&78Qxx[2GQooSt4R^^T4L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
      }|j                  ||      }t        g dg dg ddg d      }|du r|g d   }t        j                  ||       y )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2S#JGq!fAq621a&ASt, $<>PQ#
 5=0H
fh/r,   c                 J   t        t        j                  j                  d      j	                  d      dkD  t        j                  j                  d      j                  ddd      t        j                  j                  d      j	                  d      ddgdz  d      }|d d j                  d d g df   }|dd  j                  d d g d	f   }|j                  ||
      }t        |d   dd       j                         sJ t        |d   dd        j                         sJ y )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{   s   ..q1AA"EI		--a099!RD))//2BB2F!5>A-	
 rFJJq556qrFJJq77899QT9*HY'!,-11333HW%ab)*..000r,   c                    |d d |dd |dd |dd  g}|d   j                  |dd        }t        j                  ||       |d   j                         |d<   d|d   d<   |d   j                  |dd  |	      }t        j                  |j                  d d |j
                  f   |       |d   dd  dk(  j                         sJ |d   d d j                         j                         sJ y )
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BZ__&r
!r
5""6!":D"9
fjjK,?,?)?@+Nubc"e+00222e}Sb!&&(,,...r,   c                 T   t        g d      }|j                  dg      }t        g dg dg dgg d      }|j                  dg      }d}t        j                  t        |	      5  |j                  |      }d d d        j                  j                  dk(  sJ y # 1 sw Y   %xY w)
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mmSE"iI>XmmSE"T''SA[[%F B||  C''' BAs   (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73C3Cr,   )idsc                    t        g dg dg|      }|d d }t        ddg|d      }|j                  |      }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      }|j                  |      }t        ddt        j                  gddt        j                  gg dgg d	|
      }t        j                  ||       y )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?    	9-u="1I	aV915C)aBFF^4Iu
 ##A&++s222##A&++s222
fh/ 	bq	AA'7Yia8CBFF^aBFF^Y7

 	fh/r,   zdf_columns, series_indexr=   )rc                 ,    t        |       j                  S r.   r   r   s    r*   r   zTestAppend.<lambda>   s    d1g&&r,   c           
      d   t        g dg dg|      }t        g d|d      }|j                  |      }|j                  j	                  |      }t        |j                               j                  |      }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                  ||       y )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     	9-zBYl;C99''
3 !2!2!45<<X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|      }|j                  |d|      }|r|ddg   }n|ddg   }t        j                  ||       y )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A1NO!N

 a&T1aA.D!Q20NOT1aA.D!Q20NO ":.
 D!Q26D!Q26	 $ D!Q15D!Q15D!Q15D!Q15	 &( -
0 St$?\ :;Hz :;H
fh/r,   c                    t        dt        j                  g dd      i      }t        dt        j                  g dt              i      }|j	                  |d|      }|d   j
                  d	k(  sJ |d   j
                  d
k(  sJ y )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{    bhh|4@ABbhh'ANOP;;sD;A}""d***}""c)))r,   c                 ,   t        dt        j                  j                               }t	        dd|d      }t        ddg      }|j                  |d	
      }t        t        j                  t        j                  dd|ggg d      }|d   j                  t              |d<   |d   j                  t              |d<   t        j                  ||       t        t        j                  t        j                  dd|ggdz  g d      }|d   j                  t              |d<   |d   j                  t              |d<   |j                  |d	
      }t        j                  ||       |j                  ||gd	
      }t        j                  ||       y )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;;3D3D3FG3S$78Sz*::c:5ffbffc3-.8T
 !,,V4 ,,V4
h1ffbffc3-.2<X
 !,,V4 ,,V4##Cd#;
h1S#JT:
fh/r,   c                    t        dg      j                  d      }|j                  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      j                  d      }t        dt        j                  id      }|j                  |d      }t        j                  ||       t        dt        j                  id      }|j                  |d      }t        dt        j                  gi      j                  t
              }t        j                  ||       y )	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  s   u%,,-BC S"&&M= #x?H #x?H
fh/ u%,,-BCRVV},<=E5
fh/ RVV},HIE5cBFF8_-44V<
fh/r,   	dtype_str)r   r   Int64int64valr   c                 n   t        dg      j                  |      }t        dt        j                  |d      gi      }|j	                  |d      }|j                  t
              }t        |t              r)|dk7  r$|s"t        dt        j                  git
              }t        j                  ||       y )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3T!: ;<=E5<<'c3I$8AT
 !#x?H
fh/r,   c                 >   t        dt        j                  dg|      i      }t        dt        j                  |d      gi      }|j                  |d      }t        d|j                  d   |j                  d   git              }t        j                  ||       y )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     RXXqc;<=3T!: ;<=E5cBGGDM5::d3C#DEV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      s7    
D	+D
0-001"/$
( 	aiod5kGMMO,GMMOT:
$$]3D!Q1-D!Q2.D!Q2.	
 	!!7==?GMMO"DE$ [[#)C  00< [["'1-&  
0
0,00d*0200 [[P [[UQJ/0 00$ [[P [[UQJ/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      s2     "      q0 q0r,   