
    .i1                     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                   >   e 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j.                  j1                  dj#                         dj#                         g      g	Zej6                  j9                  ded       d        Zej6                  j9                  d eed       d!       d"        Zd# Z d$ Z!d% Z"d& Z#ej6                  j9                  d'g d(      ej6                  j9                  d)dd*g      d+               Z$ej6                  j9                  d'g d(      ej6                  j9                  d)dd*g      d,               Z%y-).
TestAppendc                 t   |j                         }d|d<   |j                  d d }|j                  dd  }|j                  |      }|j                  |      }t        ||g      }t	        j
                  |d   |d          |d= t        ||g|      }	d|	v sJ t        ||g|      }	d|	v sJ t        |d d |dd  g      }t	        j                  ||       t        |d d |dd  g|      }
t        |d d |dd  g|      }t	        j                  |
j                  g d      |j                  g d             y )Nbarfoo   Asort)r   BCDcolumns)copyindexreindexr   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               e/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/reshape/concat/test_append.pytest_appendzTestAppend.test_append   sl   !&&("E!''+%%ab)	!))+6''	2	;	23
x}k#.>?cN!;	":F&&&&!9k":F&&&& ;r?KO<=
h4  Ra+ab/ BN +bq/;qr?!C$O 	""+?"@##,@#A	
    c                     t               }t        ||g      }t        j                  ||       ||usJ t        ||g      }t        j                  ||       ||usJ y Nr   r   r   r   )r   r   emptyr%   s       r)   test_append_emptyzTestAppend.test_append_empty7   sc    ;./
k84{***5+./
k84{***r+   c                     d}t        j                  t        |      5  t        ||g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   s=    /]]:S1 	FK-E	F 	F 	Fs	   7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         rA   rB   czr   namer   )r<   r=   rG   rC   rD   )r   r   _append_internalr   r   )r   dfrowexpectedresults        r)   test_append_new_columnsz"TestAppend.test_append_new_columnsG   su    11-!!4DEFYoC@11-11-1X
 $$S)
fh/r+   c                     t        g d      }t        ddgddg      }t        ||g|      }t        ddgg d      }t        j                  ||       y )	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   sP    /q!fsCj9b#YT*Aq6?C
c8,r+   c                 2   t        j                  dd      }ddg|d d  t        j                  dd      }g d|d d  t        |      }t        |      }t        ||g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df2rN   rM   s          r)   test_append_recordszTestAppend.test_append_records]   s    xx[2$&78Qxx[2GQooc
6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
      }t        ||g|      }t        g dg dg ddg d      }|du r|g d   }t        j                  ||       y )Nr:   r;   r@   rB   rA   r   r>   r?   )rA   rF   )r   r   )r:   r;   NN)r:   r;   r:   r;   )NNr>   r?   )rB   rA   rF   rE   Fr.   )r   r   re   rf   rN   rM   s         r)   test_append_sortszTestAppend.test_append_sortsl   s    q!fAq62S#JGq!fAq621a&Ac
. $<>PQ#
 5=0H
fh/r+   c                 B   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   }t        ||g|
      }t        |d   dd       j                         sJ t        |d   dd        j                         sJ y )Nr;   
   r   r   r   r   )boolsintsfloatsstrings)rl   rm   rn   )ro   rm   rn   r   ro   r?   rl   )
r   r`   randomdefault_rngstandard_normalintegerslocr   r	   all)r   r   rK   rA   rB   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1a&t,HY'!,-11333HW%ab)*..000r+   c                     t        g d      }|j                  dg      }t        g dg dg dgg d      }|j                  dg      }t        ||g      }|j                  j                  dk(  sJ y )NrQ   r   r   )r:   r?   rD   )r;   r      )r>   rC   	   )datar   )r   	set_indexr   r   rI   )r   re   rf   rN   s       r)   test_append_preserve_index_namez*TestAppend.test_append_preserve_index_name   se    0mmSE"iI>XmmSE"c
#||  C'''r+   r>   r?   r   rC   )g      @g      @g      @abczA B CzD E FT)ordered)rD   rx   ry   rk     r:   r   rC   rk   rD      r   c                 ,    t        |       j                  S r-   type__name__r<   s    r)   <lambda>zTestAppend.<lambda>   s    473C3C r+   )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;   rD   rx   rH   )r:   r;   r[   r   r:   r;   rR   r   ir:   r?   r   rD   rx   ry   )
r   r   rJ   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   sE    	9-u="1I	aV915$$S))aBFF^4Iu
 ##A&++s222##A&++s222
fh/ 	bq	AA'7Yia8$$S)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;   rH         ?rY   r[   r?   r   rC   rD   rx   ry   r   rR   )r   r   rJ   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     	9-zBYl;$$S)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|      }t        ||gd|      }|r|ddg   }n|ddg   }t        j                  ||       y )Nr:   r;   r   r   
start_time)r   rz   r   r?   r   r>   rC   rk   rD   end_time)rI   )axisr   T)r_   r   )	r   dtdatetimer   r   pdNaTr   r   )r   r   re   rf   rM   rN   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 c
DA\ :;Hz :;H
fh/r+   c                 
   t        dt        j                  g dd      i      }t        dt        j                  g dt              i      }t	        ||g|      }|d   j
                  dk(  sJ |d   j
                  d	k(  sJ y )
Nr   )r:   r;   r>   r?   i8rW   r   )TFTFr   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  sw    bhh|4@ABbhh'ANOP3*40}""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                  ||       y )Nz2018-10-24 07:30:00)tzr   rY   )rA   rB   daterF   dr   Tr^   )rF   r   rA   rB   r   r;   )r   dateutilr   tzutcr   r   rJ   r`   r   astypeobjectr   r   )r   r   r   rK   result_arM   result_bs          r)   2test_append_empty_frame_to_series_with_dateutil_tzz=TestAppend.test_append_empty_frame_to_series_with_dateutil_tz  s:   .8;;3D3D3FG3S$78Sz*&&s&>ffbffc3-.8T
 !,,V4 ,,V4
h1ffbffc3-.2<X
 !,,V4 ,,V4,,St,D
h1r+   c                 ~   t        dg      j                  d      }t        dg      j                  d      }t        dt        j                  id      j                         j                  }t        ||gd      }t        dt        j                  git              }t        j                  ||       t        dt        j                  id      j                         j                  }t        ||gd      }t        dt        j                  gi      j                  t              }t        j                  ||       y )	NrA   r   datetime64[ns, UTC]datetime64[ns]rW   Tr^   zdatetime64[ns, US/Pacific])r   r   r   r   r   to_frameTr   r   r   r   )r   rK   otherrN   rM   s        r)   ,test_append_empty_tz_frame_with_datetime64nsz7TestAppend.test_append_empty_tz_frame_with_datetime64ns4  s    u%,,-BC u%,,-BCRVV},<=FFHJJU$7cBFF8_F;
fh/ RVV},HIRRTVVU$7cBFF8_-44V<
fh/r+   	dtype_str)r   r   Int64int64valr   c                     t        dg      j                  |      }t        dt        j                  |d      gi      }t	        ||g      }|j                  t
              }t        j                  ||       y )NrA   r   ns)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_natE  sd     u%,,Y73T!: ;<=U$<<'
fh/r+   c                 6   t        dt        j                  dg|      i      }t        dt        j                  |d      gi      }t        ||gd      }t        d|j                  d   |j                  d   git              }t        j                  ||       y )NrA   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_natS  s     RXXqc;<=3T!: ;<=U$7cBGGDM5::d3C#DEVT
fh/r+   N)&r   
__module____qualname__r*   r0   r8   rO   rU   rg   ri   rv   r|   r   
RangeIndexr   listCategoricalIndexsplitIntervalIndexfrom_breaksDatetimeIndexr   r   
MultiIndexfrom_arraysindexes_can_appendr4   markparametrizer   r   r   r   r   r   r   r   r    r+   r)   r   r      s2    
D	+F
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*2,0" [[P [[UQJ/0 00 [[P [[UQJ/0 00r+   r   )r   r   	itertoolsr   r   numpyr`   r4   pandasr   r   r   r   r   r   r	   pandas._testing_testingr   r   r   r+   r)   <module>r      s2     "      K0 K0r+   