
    .i8                     h    d dl Z d dlZd dlZd dlmZ d dlZd dlm	Z
 d dlmZ d dlmZ  G d d      Zy)    N)NumpyEADtype)ExtensionArray)EABackedBlockc            
       ~   e Zd ZdZej
                  j                  dddg      d        Zej
                  j                  dddg      d        Zd Z	d 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
                  j-                  d      ej
                  j                  dddgej0                  j3                  ddgddg      g      ej
                  j                  dddg      d                      Zej
                  j                  dej0                  j7                  ddgd d!ggd d!g      ej0                  j3                  g d"      ej0                  j7                  g d#      ej0                  j3                  g d$      g      ej
                  j                  d%d&d'g      d(               Zd) Zd* Zd+ Zy,)-BaseReshapingTestsz&Tests for reshaping and concatenation.in_frameTFc                    t        j                  |      }|rt        j                  |      }t        j                  ||gd      }t	        |      t	        |      dz  k(  sJ |r|j
                  d   }n|j                  }||j                  k(  sJ t        |j                  d      r)t        |j                  j                  d   t              sJ t        |j                  j                  d   j                  t              sJ y )NTignore_index   r   blocks)pdSeries	DataFrameconcatlendtypesdtypehasattr_mgr
isinstancer   r   valuesr   )selfdatar   wrappedresultr   s         c/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/extension/base/reshaping.pytest_concatzBaseReshapingTests.test_concat   s    ))D/ll7+GGW-DA6{c$i!m+++MM!$ELLE

"""6;;)fkk003]CCC&++,,Q/66GGG    c                 R   t        j                  |j                  ddg      t        d            }t        j                  |j                  ddg      t        dd            }|r.t        j                  d|i      }t        j                  d|i      }t        j
                  ||g      }|r?t        j                  d|j                  g d      i      }t        j                  ||       y t        j                  |j                  g d            }t        j                  ||       y )N   r   indexr      a)r!   r!   r   r   )	r   r   takeranger   r   tmassert_frame_equalassert_series_equal)r   data_missingr   valid_blockna_blockr   expecteds          r   test_concat_all_na_blockz+BaseReshapingTests.test_concat_all_na_block$   s    ii 1 11a& 9qJ99\..1v6eAqkJ,,['9:K||S(O4HK23||S,*;*;L*I$JKH!!&(3yy!2!2<!@AH""684r   c                 z   t        j                  d|d d i      }t        j                  dg di      }t        j                  dg di      j                  d      }|||g}t        j                  |      }t        j                  |D cg c]  }|j                  t               c}      }t        j                  ||       t        j                  |D cg c]  }|d   	 c}      }t        j                  |D cg c]  }|d   j                  t               c}      }t        j                  ||       t        j                  ||j                  t              g      }t        j                  |j                  d      |j                  d      g      }t        j                  ||       t        j                  |d   |d   j                  t              g      }t        j                  |d   j                  d      |d   j                  d      g      }t        j                  ||       y c c}w c c}w c c}w )NA   r!   r   r2   r%   bccategoryobject)r   r   astyper   r8   r(   r)   r*   )	r   r   df1df2df3dfsr   xr.   s	            r   test_concat_mixed_dtypesz+BaseReshapingTests.test_concat_mixed_dtypes3   s   llCbq?+llC+,llC1299*ECo 399<1ahhv.<=
fh/ C0qAcF0199SAafmmF3AB
vx0 CF!34599cjj2CJJx4HIJ
fh/CHc#hoof&=>?99c#hooh7S9RST
vx0 = 1As   	H.H3;H8c           
         t        j                  d|d d i      }t        j                  dg di      }t        j                  |d d g dd      }t        j                  ||gd      }t        j                  ||       t        j                  |d   |d   gd      }t        j                  ||       t        j                  dg dig d      }t        j                  |j                  g t        |d d       ||j                  	      t        j                  dd
dgd      }t        j                  ||gd      }t        j                  ||       t        j                  |d   |d   gd      }t        j                  ||       y )Nr1   r2   Br3   r1   rA   r!   axisr"   r   r   )
r   r   r   r(   r)   _from_sequencelistr   npnanr   r   na_valuer:   r;   r.   r   s          r   test_concat_columnsz&BaseReshapingTests.test_concat_columnsM   sP   llCbq?+llC+,<<d2AhY ?@C:A.
fh/CHc#h/a8
fh/ llC+9=<<(()D4Ra>)D8)DDJJ(WffaA&
 C:A.
fh/CHc#h/a8
fh/r   c           
      V   t        j                  d|d d i      }t        j                  d|dd i      }t        j                  |j                  g t        |d d       ||j                        |dd d      }t        j
                  ||gd      }t        j                  ||       y )	Nr1   r2   rA      rE   rB   r!   rC   )r   r   rF   rG   r   r   r(   r)   rJ   s          r   'test_concat_extension_arrays_copy_falsez:BaseReshapingTests.test_concat_extension_arrays_copy_falsee   s    llCbq?+llCa+,<<(()D4Ra>)D8)DDJJ(W!AY
 C:A.
fh/r   c                    t        j                  d|d d i      }t        j                  d|d d i      }t        j                  ||gd      }t        j                  |j                  t	        t        d            dgdz  z   d      |j                  dgdz  t	        t        d            z   d      d      }t        j                  ||       y )	Nr%      r5   Tr
   )
allow_fill)r%   r5   )r   r   r   r&   rG   r'   r(   r)   )r   r   r%   r5   r   r.   s         r   test_concat_with_reindexz+BaseReshapingTests.test_concat_with_reindexr   s    LL#tBQx)LL#tBQx)Aq65<<YYtE!H~":tYLYYqDqN:tYL
 	fh/r   c                    |d d }|dd }t        j                  |      j                  t        j                  |g d            \  }}t        j                  |j                  g t	        |      ||j
                              }t        j                  |j                  |gt	        |      |j
                              }t        j                  ||       t        j                  ||       y )Nr2   r   rQ   r3   r"   rE   )r   r   alignrF   rG   r   r(   r*   	r   r   rK   r%   r5   r1r2e1e2s	            r   
test_alignzBaseReshapingTests.test_align   s    !H1I1##BIIay$ABB YYt**+?T!W+?h+?tzz*RSYYt**H+?tAw+?tzz*RS
r2&
r2&r   c           	         |d d }|dd }t        j                  d|i      j                  t        j                  d|ig d            \  }}t        j                  d|j                  g t	        |      ||j
                        i      }t        j                  d|j                  |gt	        |      |j
                        i      }t        j                  ||       t        j                  ||       y )Nr2   r   rQ   r1   r3   r"   rE   )r   r   rV   rF   rG   r   r(   r)   rW   s	            r   test_align_framez#BaseReshapingTests.test_align_frame   s    !H1IsAh'--bllC89.UVB \\$%%&:Q&:&:$**%MN
 \\$%%x&:$q'&:$**%MN
 	b"%
b"%r   c                    t        j                  |d      }t        j                  dt        j                  t        |      dz         i      }|j                  |      \  }}t        j                  |j                  g t        |      ||j                        |j                        }t        j                  ||       t        j                  ||       y )Nr%   )namecolr!   rE   )r   r   r   rH   aranger   rV   rF   rG   r   r`   r(   r*   r)   )r   r   rK   serdfrX   rY   rZ   s           r   test_align_series_framez*BaseReshapingTests.test_align_series_frame   s    ii3'\\5"))CHqL"9:;2BYY 7$t* 7h 7tzzJ

 	r2&
b"%r   c                     t        j                  ddgt        |      z  i      }||d<   t        j                  dgt        |      z  |d      }t        j                  ||       y Nr1   r!   rA   rB   r   r   r   r(   r)   r   r   rd   r.   s       r   ,test_set_frame_expand_regular_with_extensionz?BaseReshapingTests.test_set_frame_expand_regular_with_extension   sU    \\3c$i013<<qcCIoD AB
b(+r   c                     t        j                  d|i      }dgt        |      z  |d<   t        j                  |dgt        |      z  d      }t        j                  ||       y rg   rh   ri   s       r   ,test_set_frame_expand_extension_with_regularz?BaseReshapingTests.test_set_frame_expand_extension_with_regular   sT    \\3+&#D	/3<<d!s4y AB
b(+r   c                     t        j                  ddgt        |      z  it              }||d<   |j                  d   |j
                  k(  sJ y )Nr1   r!   rE   )r   r   r   r8   r   r   )r   r   rd   s      r   test_set_frame_overwrite_objectz2BaseReshapingTests.test_set_frame_overwrite_object   sD    \\3c$i0?3yy~+++r   c                    t        j                  |d d g dg dd      }t        j                  g dg dd      }t        j                  ||      }t        j                  g dg dg d	|j                  |d
   |d
   |d   g|j                        d      }t        j                  ||g d          t        j                  ||d      }t        j                  ddddt        j                  gdddt        j                  dgg d|j                  |d
   |d
   |d   |d   |g|j                        d      }t        j                  ||g d          y )Nr2   r3   r   r!   r   )extint1key)r!   r   r2   r$   )r   r   r!   r2   )int2rs   )r!   r!   r   )r   r   r!   r   r!   rE   )rr   rt   rs   rq   )rq   rr   rs   rt   outer)howr   r$   )r   r   r!   r   r2   )	r   r   mergerF   r   r(   r)   rH   rI   )r   r   rK   r:   r;   resexps          r   
test_mergezBaseReshapingTests.test_merge   s>   ll48YyQRllLFGhhsC ll!! **!Wd1gtAw/tzz + 		
 	c3'E#FGhhsCW-llAq!RVV,Aq"&&!,&**!Wd1gtAwQB$** + 		
 	c3'E#FGr   c                    |d d \  }}t        |      j                  ||g|j                        }t        j                  |ddgd      }t        j
                  ||d      }t        j                  |ddgddgd      }t        j                  ||       t        j
                  |j                  ddg   |d      }|j                  ddg   j                  d	
      }t        j                  ||       y )Nr   rE   r!   rs   valrs   onrs   val_xval_yr   T)drop)
typerF   r   r   r   rw   r(   r)   ilocreset_index)r   r   r%   r5   rs   rd   r   r.   s           r   test_merge_on_extension_arrayz0BaseReshapingTests.test_merge_on_extension_array   s    BQx14j''Adjj'A\\#q!f56"bU+<<q!f1v NO
fh/ "''1a&/2%8==!Q(44$4?
fh/r   c                    |d d \  }}t        |      j                  |||g|j                        }t        j                  |g dd      }t        j                  |g dd      }t        j
                  ||d      }t        j                  |j                  g d      g dg d	d
      }t        j                  ||       y )Nr   rE   r3   r|   rs   r~   )r   r   r!   r   r   )r!   r!   r   r2   r2   )r!   r2   r   r!   r2   r   )	r   rF   r   r   r   rw   r&   r(   r)   )	r   r   r%   r5   rs   r:   r;   r   r.   s	            r   (test_merge_on_extension_array_duplicatesz;BaseReshapingTests.test_merge_on_extension_array_duplicates   s    BQx14j''Aq	'Dll3y9:ll3y9:#su-<<xx0((
 	fh/r   z9ignore:The previous implementation of stack is deprecatedcolumnsr1   rA   r1   r%   r1   r5   ru   inner)namesfuture_stackc                    t        j                  |d d |d d d      }||_        |j                  |      }|j	                  t
              j                  |      }|j	                  t
              }t        |t         j                        r|rTt        |j                  t              r:|j                  |j                  d d df   j                         j                  k(  scJ |j                  |j                  d d df   j                  k(  s7J t        |j                  |j                  d d df   j                  k(        sJ |j	                  t
              }t        j                  ||       y )NrQ   rB   )r   r   )r   r   r   stackr9   r8   r   r   r   r   r   to_numpyallr   r(   assert_equal)r   r   r   r   rd   r   r.   s          r   
test_stackzBaseReshapingTests.test_stack   s    \\RatBQx89
|499V$***E ??6*h		*
4::| D ||rwwq!t}'='='?'E'EEEE||rwwq!t}':'::::v}}1(;(;;<<<v&
)r   r#   r%   r5   )r   r   )rA   r5   )rB   r4   rp   ))r1   r%   r!   )r1   r5   r   )r1   r%   r   )rA   r%   r   )rA   r6   r!   objseriesframec                    t        t        |      t                    }|d | }d | |dk(  rt        j                  |      }nt        j                  d|      }|j
                  }t        t        |            t        j                  j                  fdt        d|      D              }|D ]  }|j                  |      t        fdj                  D              sJ |dk(  rI|j                         }	|	j                  |      j                  dd	      }
t!        j"                  |
       |j%                  t&              }|j                  |j(                  j*                  
      }|dk(  r#|j,                  t&        k(  j                         sJ j%                  t&              t!        j"                  |        y )Nr   r"   rB   c              3   J   K   | ]  }t        j                  |        y wN)	itertoolspermutations).0ilevelss     r   	<genexpr>z2BaseReshapingTests.test_unstack.<locals>.<genexpr>>  s#      5
23I""61-5
s    #r!   )levelc              3   b   K   | ]&  }t        |   j                  t                     ( y wr   )r   arrayr   )r   ra   r   r   s     r   r   z2BaseReshapingTests.test_unstack.<locals>.<genexpr>D  s+      >A
6#;,,d4j9s   ,/r   rC   )r   
fill_value)minr   r   r   r   nlevelsrG   r'   r   chainfrom_iterableunstackr   r   to_frame	droplevelr(   r)   r9   r8   r   rK   r   )r   r   r#   r   final_lengthrc   ncombinationsr   rd   altobj_serr.   r   r   s    `           @@r   test_unstackzBaseReshapingTests.test_unstack  s   , 3u:s4y1m|$M\"(?))D.C,,T5UCCMMeAh !44 5
7<Q{5
 
 " 	4E[[u[-F EK^^    h\\^jjuj-777B%%fc2jj(GUtzz?R?RSHh 6166888]]6*F!!&(3)	4r   c                     |j                         }t        |      t        |      k(  sJ |j                  j                  r#t	        j
                  d|j                   d       |d   |d<   |d   |d   k(  sJ y )Nz"test_ravel assumes mutability and  is immutabler!   r   )ravelr   r   _is_immutablepytestskipr   r   r   s      r   
test_ravelzBaseReshapingTests.test_ravelX  so    F|tDz)))::##KK<TZZLVW 1Iq	Aw$q'!!!r   c                 @   |j                         }t        |      t        |      k(  sJ ||usJ |j                  |j                  d d d   k(  sJ |j                  j                  r#t        j                  d|j                   d       |d   |d<   |d   |d   k(  sJ y )NrR   z&test_transpose assumes mutability and r   r!   r   )	transposer   shaper   r   r   r   r   s      r   test_transposez!BaseReshapingTests.test_transposed  s    !F|tDz))) T!!! ||tzz$B$////::##KK8MR
 1Iq	Aw$q'!!!r   c           	          t        j                  |d d |d d dg d      }|j                  }t        j                  t        |      j	                  |d   gdz  |j
                        t        |      j	                  |d   gdz  |j
                        t        |      j	                  |d   gdz  |j
                        t        |      j	                  |d	   gdz  |j
                        dd
dg      }t        j                  ||       t        j                  t        j                  t        j                  |            |       t        j                  t        j                  t        j                  |d
g               |d
g          y )Nr$   rB   )r%   r5   r6   dr"   r   r   rE   r!   r2   r1   rA   )
r   r   Tr   rF   r   r(   r)   rH   r   )r   r   rd   r   r.   s        r   test_transpose_framez'BaseReshapingTests.test_transpose_framew  s?   \\RatBQx8@TU<<$Z..Qy1}DJJ.O$Z..Qy1}DJJ.O$Z..Qy1}DJJ.O$Z..Qy1}DJJ.O	 *
 	fh/
bll2<<+;<bA
bll2<<C5	+BCRYOr   N) __name__
__module____qualname____doc__r   markparametrizer   r/   r?   rL   rO   rT   r\   r^   re   rj   rl   rn   rz   r   r   filterwarningsr   
MultiIndexfrom_tuplesr   from_productr   r   r   r    r   r   r   r      s   0[[Z$7H 8H$ [[Z$75 85140000	'&&,,,H>00" [[C [[#JMM%%Z('0B & 	
 [[^dE];* <*. [[ MM&&#sc3Z(@#s&TMM%%&JKMM&&'OPMM%%	
( [[UXw$78%4 9)*%4N
""&Pr   r   )r   numpyrH   r   pandas.core.dtypes.dtypesr   pandasr   pandas._testing_testingr(   pandas.api.extensionsr   pandas.core.internals.blocksr   r   r   r   r   <module>r      s+       2   0 6wP wPr   