
    Owgk6                     \    d dl Z d dlZd dl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)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   t              sJ y )NTignore_index   r   blocks)pdSeries	DataFrameconcatlendtypesdtypehasattr_mgr
isinstancer   r   arraysr   )selfdatar   wrappedresultr   s         \/var/www/horilla/myenv/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/@@@    c                 4   t        j                  |j                  ddg      ddg      }t        j                  |j                  ddg      ddg      }|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   taker   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H99\..1v6q!fE,,['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Ar#   r    r   r#   r$   bccategoryobject)r   r   astyper   r5   r&   r'   r(   )	r   r   df1df2df3dfsr   xr,   s	            r   test_concat_mixed_dtypesz+BaseReshapingTests.test_concat_mixed_dtypes1   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                  t        |d d       |gz   |j                  	      t        j                  dd
dgd      }t        j                  ||gd      }t        j                  ||       t        j                  |d   |d   gd      }t        j                  ||       y )Nr/   r#   Br0   r/   r>   r    axisr!   r   r   )
r   r   r   r&   r'   _from_sequencelistr   npnanr   r   na_valuer7   r8   r,   r   s          r   test_concat_columnsz&BaseReshapingTests.test_concat_columnsK   sL   llCbq?+llC+,<<d2AhY ?@C:A.
fh/CHc#h/a8
fh/ llC+9=<<((d2Ah8*)DDJJ(WffaA&
 C:A.
fh/CHc#h/a8
fh/r   c           	      X   t        j                  d|d d i      }t        j                  d|dd i      }t        j                  |j                  t        |d d       |gz   |j                        |dd d      }t        j
                  ||gdd	      }t        j                  ||       y )
Nr/   r#   r>      rB   r?   r    F)rA   copy)r   r   rC   rD   r   r   r&   r'   rG   s          r   'test_concat_extension_arrays_copy_falsez:BaseReshapingTests.test_concat_extension_arrays_copy_falsec   s    llCbq?+llCa+,<<((d2Ah8*)DDJJ(W!AY
 C:AE:
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$      r2   Tr	   )
allow_fill)r$   r2   )r   r   r   r%   rD   ranger&   r'   )r   r   r$   r2   r   r,   s         r   test_concat_with_reindexz+BaseReshapingTests.test_concat_with_reindexp   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                  t	        |      |gz   |j
                              }t        j                  |j                  |gt	        |      z   |j
                              }t        j                  ||       t        j                  ||       y )Nr#   r   rO   r0   r!   rB   )r   r   alignrC   rD   r   r&   r(   	r   r   rH   r$   r2   r1r2e1e2s	            r   
test_alignzBaseReshapingTests.test_align}   s    !H1I1##BIIay$ABB YYt**47hZ+?tzz*RSYYt**H:Q+?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                  t	        |      |gz   |j
                        i      }t        j                  d|j                  |gt	        |      z   |j
                        i      }t        j                  ||       t        j                  ||       y )Nr#   r   rO   r/   r0   r!   rB   )r   r   rU   rC   rD   r   r&   r'   rV   s	            r   test_align_framez#BaseReshapingTests.test_align_frame   s    !H1IsAh'--bllC89.UVB \\$%%d1g
&:$**%MN
 \\$%%xj47&:$**%MN
 	b"%
b"%r   c                    t        j                  |d      }t        j                  dt        j                  t        |      dz         i      }|j                  |      \  }}t        j                  |j                  t        |      |gz   |j                        |j                        }t        j                  ||       t        j                  ||       y )Nr$   )namecolr    rB   )r   r   r   rE   aranger   rU   rC   rD   r   r_   r&   r(   r'   )r   r   rH   serdfrW   rX   rY   s           r   test_align_series_framez*BaseReshapingTests.test_align_series_frame   s    ii3'\\5"))CHqL"9:;2BYYT
hZ 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 Nr/   r    r>   r?   r   r   r   r&   r'   r   r   rc   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 rf   rg   rh   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 )Nr/   r    rB   )r   r   r   r5   r   r   )r   r   rc   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 )Nr#   r0   r   r    r   )extint1key)r    r   r#      )r   r   r    r#   )int2rr   )r    r    r   )r   r   r    r   r    rB   )rq   rt   rr   rp   )rp   rq   rr   rt   outer)howr   rs   )r   r   r    r   r#   )	r   r   mergerC   r   r&   r'   rE   rF   )r   r   rH   r7   r8   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   rB   r    rr   valrr   onrr   val_xval_yr   T)drop)
typerC   r   r   r   rw   r&   r'   ilocreset_index)r   r   r$   r2   rr   rc   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   rB   r0   r|   rr   r~   )r   r   r    r   r   )r    r    r   r#   r#   )r    r#   r   r    r#   r   )	r   rC   r   r   r   rw   r%   r&   r'   )	r   r   r$   r2   rr   r7   r8   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columnsr/   r>   r/   r$   r/   r2   ru   inner)namesfuture_stackc                 2   t        j                  |d d |d d d      }||_        |j                  |      }|j	                  t
              j                  |      }|j	                  t
              }t        |t         j                        r,|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 )NrO   r?   )r   r   )r   r   r   stackr6   r5   r   r   r   r   allr   r&   assert_equal)r   r   r   r   rc   r   r,   s          r   
test_stackzBaseReshapingTests.test_stack   s     \\RatBQx89
|499V$***E ??6*h		*<<2771a4=#6#6666v}}1(;(;;<<<v&
)r   r"   r$   r2   )r   r   )r>   r2   )r?   r1   ro   ))r/   r$   r    )r/   r2   r   )r/   r$   r   )r>   r$   r   )r>   r3   r    objseriesframec                 j   d t        |       |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!   r?   c              3   J   K   | ]  }t        j                  |        y wN)	itertoolspermutations).0ilevelss     r   	<genexpr>z2BaseReshapingTests.test_unstack.<locals>.<genexpr>4  s#      5
23I""61-5
s    #r    )levelc              3   b   K   | ]&  }t        |   j                  t                     ( y wr   )r   arrayr   )r   r`   r   r   s     r   r   z2BaseReshapingTests.test_unstack.<locals>.<genexpr>:  s+      >A
6#;,,d4j9s   ,/r   r@   )r   
fill_value)r   r   r   r   nlevelsrD   rR   r   chainfrom_iterableunstackr   r   to_frame	droplevelr&   r'   r6   r5   r   rH   r   )r   r   r"   r   rb   ncombinationsr   rc   altobj_serr,   r   r   s    `          @@r   test_unstackzBaseReshapingTests.test_unstack  sr   , Lc%j!(?))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_ravelN  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 )NrP   z&test_transpose assumes mutability and r   r    r   )	transposer   shaper   r   r   r   r   s      r   test_transposez!BaseReshapingTests.test_transposeZ  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 )Nrs   r?   )r$   r2   r3   dr!   r   r   rB   r    r#   r/   r>   )
r   r   Tr   rC   r   r&   r'   rE   r   )r   r   rc   r   r,   s        r   test_transpose_framez'BaseReshapingTests.test_transpose_framem  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<   rI   rM   rS   r[   r]   rd   ri   rk   rm   rz   r   r   filterwarningsr   
MultiIndexfrom_tuplesr   from_productr   r   r   r    r   r   r   r      s   0[[Z$7A 8A$ [[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)*#4J
""&Pr   r   )r   numpyrE   r   pandasr   pandas._testing_testingr&   pandas.api.extensionsr   pandas.core.internals.blocksr   r   r   r   r   <module>r      s(         0 6oP oPr   