
    bMhk6                     d    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dS )    N)ExtensionArray)EABackedBlockc            
          e Zd ZdZej                            dddg          d             Ze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                            d          ej                            dddgej                            ddgddg          g          ej                            dddg          d                                     Zej                            dej                            ddgd d!ggd d!g          ej                            g d"          ej                            g d#          ej                            g d$          g          ej                            d%d&d'g          d(                         Zd) Zd* Zd+ Zd,S )-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 d S )NTignore_index   r   blocks)pdSeries	DataFrameconcatlendtypesdtypehasattr_mgr
isinstancer   r   arraysr   )selfdatar   wrappedresultr   s         e/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/extension/base/reshaping.pytest_concatzBaseReshapingTests.test_concat   s    )D// 	,l7++GGW-DAAA6{{c$ii!m++++ 	!M!$EELE
""""6;)) 	Dfk03]CCCCC&+,Q/@@@@@@@    c                 F   t          j        |                    ddg          ddg          }t          j        |                    ddg          ddg          }|r,t          j        d|i          }t          j        d|i          }t          j        ||g          }|rBt          j        d|                    g d          i          }t          j        ||           d S t          j        |                    g d                    }t          j        ||           d S )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   i 1 11a& 9 9!QHHH9\..1v66q!fEEE 	5,['9::K|S(O44HK233 	5|S,*;*;LLL*I*I$JKKH!&(33333y!2!2<<<!@!@AAH"6844444r   c                 .   t          j        d|d d         i          }t          j        dg di          }t          j        dg di                              d          }|||g}t          j        |          }t          j        d |D                       }t	          j        ||           t          j        d |D                       }t          j        d |D                       }t	          j        ||           t          j        ||                    t                    g          }t          j        |                    d	          |                    d	          g          }t	          j        ||           t          j        |d         |d                             t                    g          }t          j        |d                             d	          |d                             d	          g          }t	          j        ||           d S )
NAr#   r    r   r#   r$   bccategoryc                 B    g | ]}|                     t                    S  astypeobject.0xs     r   
<listcomp>z?BaseReshapingTests.test_concat_mixed_dtypes.<locals>.<listcomp>:   s$    <<<1ahhv..<<<r   c                     g | ]
}|d          S r/   r6   r:   s     r   r=   z?BaseReshapingTests.test_concat_mixed_dtypes.<locals>.<listcomp>>   s    000qAcF000r   c                 N    g | ]"}|d                               t                    #S r?   r7   r:   s     r   r=   z?BaseReshapingTests.test_concat_mixed_dtypes.<locals>.<listcomp>?   s(    AAAafmmF33AAAr   r9   )r   r   r8   r   r&   r'   r(   r9   )r   r   df1df2df3dfsr   r,   s           r   test_concat_mixed_dtypesz+BaseReshapingTests.test_concat_mixed_dtypes1   s   lCbqb?++lC+,,lC12299*EECo 39<<<<<==
fh/// 00C000119AASAAABB
vx000 CF!3!34559cjj22CJJx4H4HIJJ
fh///CHc#hoof&=&=>??9c#hooh77S9R9RSTT
vx00000r   c           	      4   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        |                    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        ||           d S )Nr/   r#   Br0   r/   rG   r    axisr!   r   r   )
r   r   r   r&   r'   _from_sequencelistr   npnanr   r   na_valuerA   rB   r,   r   s          r   test_concat_columnsz&BaseReshapingTests.test_concat_columnsK   s   lCbqb?++lC+,,<d2A2hYYY ? ?@@C:A...
fh///CHc#h/a888
fh/// lC+999===<((d2A2h8*)DDJ(WWfaA& 
 
 C:A...
fh///CHc#h/a888
fh/////r   c           	      ~   t          j        d|d d         i          }t          j        d|dd         i          }t          j        |                    t          |d d                   |gz   |j                  |dd         d          }t          j        ||gdd	          }t          j        ||           d S )
Nr/   r#   rG      rK   rH   r    F)rJ   copy)r   r   rL   rM   r   r   r&   r'   rP   s          r   'test_concat_extension_arrays_copy_falsez:BaseReshapingTests.test_concat_extension_arrays_copy_falsec   s    lCbqb?++lCac+,,<((d2A2h8*)DDJ(WW!A#Y 
 
 C:AE:::
fh/////r   c                    t          j        d|d d         i          }t          j        d|d d         i          }t          j        ||gd          }t          j        |                    t	          t          d                    dgdz  z   d          |                    dgdz  t	          t          d                    z   d          d          }t          j        ||           d S )	Nr$      r2   Tr	   )
allow_fill)r$   r2   )r   r   r   r%   rM   ranger&   r'   )r   r   r$   r2   r   r,   s         r   test_concat_with_reindexz+BaseReshapingTests.test_concat_with_reindexp   s    L#tBQBx))L#tBQBx))Aq6555<YYtE!HH~~":tYLLYYqDqNN:tYLL 
 
 	fh/////r   c                    |d d         }|dd         }t          j        |                              t          j        |g d                    \  }}t          j        |                    t	          |          |gz   |j                            }t          j        |                    |gt	          |          z   |j                            }t          j        ||           t          j        ||           d S )Nr#   r   rX   r0   r!   rK   )r   r   alignrL   rM   r   r&   r(   	r   r   rQ   r$   r2   r1r2e1e2s	            r   
test_alignzBaseReshapingTests.test_align}   s    !H1I1##BIayyy$A$A$ABBB Yt**477hZ+?tz*RRSSYt**H:Q+?tz*RRSS
r2&&&
r2&&&&&r   c           	         |d d         }|dd         }t          j        d|i                              t          j        d|ig d                    \  }}t          j        d|                    t	          |          |gz   |j                  i          }t          j        d|                    |gt	          |          z   |j                  i          }t          j        ||           t          j        ||           d S )Nr#   r   rX   r/   r0   r!   rK   )r   r   r^   rL   rM   r   r&   r'   r_   s	            r   test_align_framez#BaseReshapingTests.test_align_frame   s    !H1IsAh''--blC8999.U.U.UVVB \$%%d1gg
&:$*%MMN
 
 \$%%xj477&:$*%MMN
 
 	b"%%%
b"%%%%%r   c                    t          j        |d          }t          j        dt          j        t          |          dz             i          }|                    |          \  }}t          j        |                    t          |          |gz   |j	                  |j
                  }t          j        ||           t          j        ||           d S )Nr$   )namecolr    rK   )r   r   r   rN   aranger   r^   rL   rM   r   rh   r&   r(   r'   )r   r   rQ   serdfr`   ra   rb   s           r   test_align_series_framez*BaseReshapingTests.test_align_series_frame   s    i3'''\5")CHHqL"9"9:;;2BYT

hZ 7tzJJ
 
 

 	r2&&&
b"%%%%%r   c                     t          j        ddgt          |          z  i          }||d<   t          j        dgt          |          z  |d          }t          j        ||           d S Nr/   r    rG   rH   r   r   r   r&   r'   r   r   rl   r,   s       r   ,test_set_frame_expand_regular_with_extensionz?BaseReshapingTests.test_set_frame_expand_regular_with_extension   sg    \3c$ii0113<qcCIIoD A ABB
b(+++++r   c                     t          j        d|i          }dgt          |          z  |d<   t          j        |dgt          |          z  d          }t          j        ||           d S ro   rp   rq   s       r   ,test_set_frame_expand_extension_with_regularz?BaseReshapingTests.test_set_frame_expand_extension_with_regular   sf    \3+&&#D		/3<d!s4yy A ABB
b(+++++r   c                     t          j        ddgt          |          z  it                    }||d<   |j        d         |j        k    sJ d S )Nr/   r    rK   )r   r   r   r9   r   r   )r   r   rl   s      r   test_set_frame_overwrite_objectz2BaseReshapingTests.test_set_frame_overwrite_object   sO    \3c$ii0???3y~++++++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	|                    |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|                    |d
         |d
         |d         |d         |g|j                  d          }t          j        ||g d                    d S )Nr#   r0   r   r    r   )extint1key)r    r   r#      )r   r   r    r#   )int2r{   )r    r    r   )r   r   r    r   r    rK   )rz   r}   r{   ry   )ry   rz   r{   r}   outer)howr   r|   )r   r   r    r   r#   )	r   r   mergerL   r   r&   r'   rN   rO   )r   r   rQ   rA   rB   resexps          r   
test_mergezBaseReshapingTests.test_merge   s   l48YYYyyyQQRRlLLLFFGGhsC  l!		!		 yy**!Wd1gtAw/tz +  	 	
 	
 	c3'E'E'E#FGGGhsCW---lAq!RV,Aq"&!,&**!Wd1gtAwQB$* +  	 	
 	
 	c3'E'E'E#FGGGGGr   c                    |d d         \  }}t          |                              ||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         	                    d	
          }t          j        ||           d S )Nr   rK   r    r{   valr{   onr{   val_xval_yr   T)drop)
typerL   r   r   r   r   r&   r'   ilocreset_index)r   r   r$   r2   r{   rl   r   r,   s           r   test_merge_on_extension_arrayz0BaseReshapingTests.test_merge_on_extension_array   s    BQBx14jj''Adj'AA\#q!f5566"bU+++<q!f1v N NOO
fh/// "'1a&/2%888=!Q(44$4??
fh/////r   c                    |d d         \  }}t          |                              |||g|j                  }t          j        |g dd          }t          j        |g dd          }t          j        ||d          }t          j        |                    g d          g dg d	d
          }t          j        ||           d S )Nr   rK   r0   r   r{   r   )r   r   r    r   r   )r    r    r   r#   r#   )r    r#   r   r    r#   r   )	r   rL   r   r   r   r   r%   r&   r'   )	r   r   r$   r2   r{   rA   rB   r   r,   s	            r   (test_merge_on_extension_array_duplicatesz;BaseReshapingTests.test_merge_on_extension_array_duplicates   s    BQBx14jj''Aq	'DDl3yyy99::l3yyy99::#su---<xx00(( 
 
 	fh/////r   z9ignore:The previous implementation of stack is deprecatedcolumnsr/   rG   r/   r$   r/   r2   r~   inner)namesfuture_stackc                 P   t          j        |d d         |d d         d          }||_        |                    |          }|                    t
                                        |          }|                    t
                    }t          |t           j                  r"|j        |j	        d d df         j        k    sJ n.t          |j        |j	        d d df         j        k              sJ |                    t
                    }t          j        ||           d S )NrX   rH   )r   r   )r   r   r   stackr8   r9   r   r   r   r   allr   r&   assert_equal)r   r   r   r   rl   r   r,   s          r   
test_stackzBaseReshapingTests.test_stack   s
    \RaRtBQBx8899
|4499V$$***EE ??6**h	** 	=<27111a4=#666666v}1(;;<<<<<v&&
)))))r   r"   r$   r2   )r   r   )rG   r2   )rH   r1   rx   ))r/   r$   r    )r/   r2   r   )r/   r$   r   )rG   r$   r   )rG   r3   r    objseriesframec                    d t          |                   |dk    rt          j        |          }nt          j        d|          }|j        }t          t          |                    t          j        	                    fdt          d|          D                       }|D ]*}|
                    |          t          fdj        D                       sJ |dk    rT|                                }|
                    |                              dd	          }	t          j        |	           |                    t$                    }
|

                    |j        j        
          }|dk    r$|j        t$          k                                    sJ                     t$                    t          j        |           ,d S )Nr   r!   rH   c              3   B   K   | ]}t          j        |          V  d S N)	itertoolspermutations)r;   ilevelss     r   	<genexpr>z2BaseReshapingTests.test_unstack.<locals>.<genexpr>4  sA       5
 5
23I"61--5
 5
 5
 5
 5
 5
r   r    )levelc              3   h   K   | ],}t          |         j        t                              V  -d S r   )r   arrayr   )r;   ri   r   r   s     r   r   z2BaseReshapingTests.test_unstack.<locals>.<genexpr>:  sK        >A
6#;,d4jj99     r   r   rI   )r   
fill_value)r   r   r   r   nlevelsrM   r[   r   chainfrom_iterableunstackr   r   to_frame	droplevelr&   r'   r8   r9   r   rQ   r   )r   r   r"   r   rk   ncombinationsr   rl   altobj_serr,   r   r   s    `          @@r   test_unstackzBaseReshapingTests.test_unstack  s   , Lc%jjL!(??)D...CC,T55UCCCCMeAhh !44 5
 5
 5
 5
7<Q{{5
 5
 5
 
 
 " 	4 	4E[[u[--F     EK^        h\\^^jjuj--777BB%fc222jj((GUtz?RSSHh 616688888]]6**F!&(3333)	4 	4r   c                    |                                 }t          |          t          |          k    sJ |j        j        rt	          j        d|j         d           |d         |d<   |d         |d         k    sJ d S )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  s    F||tDzz)))):# 	XKVTZVVVWWW 1Iq	Aw$q'!!!!!!r   c                 D   |                                 }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 d S )NrY   z&test_transpose assumes mutability and r   r    r   )	transposer   shaper   r   r   r   r   s      r   test_transposez!BaseReshapingTests.test_transposeZ  s    !!F||tDzz)))) T!!!! |tz$$B$/////:# 	KRRRR  
 1Iq	Aw$q'!!!!!!r   c           	      V   t          j        |d d         |d d         dg d          }|j        }t          j        t          |                              |d         gdz  |j                  t          |                              |d         gdz  |j                  t          |                              |d         gdz  |j                  t          |                              |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                    d S )Nr|   rH   )r$   r2   r3   dr!   r   r   rK   r    r#   r/   rG   )
r   r   Tr   rL   r   r&   r'   rN   r   )r   r   rl   r   r,   s        r   test_transpose_framez'BaseReshapingTests.test_transpose_framem  sz   \RaRtBQBx88@T@T@TUUU<$ZZ..Qy1}DJ.OO$ZZ..Qy1}DJ.OO$ZZ..Qy1}DJ.OO$ZZ..Qy1}DJ.OO	  *
 
 
 	fh///
bl2<+;+;<<bAAA
bl2<C5	+B+BCCRYOOOOOr   N) __name__
__module____qualname____doc__r   markparametrizer   r-   rE   rR   rV   r\   rd   rf   rm   rr   rt   rv   r   r   r   filterwarningsr   
MultiIndexfrom_tuplesr   from_productr   r   r   r   r6   r   r   r   r      s       00[Z$77A A 87A$ [Z$775 5 8751 1 140 0 000 0 00 0 0	' 	' 	'& & && & &, , ,, , ,, , ,H H H>0 0 00 0 0" [C  [#JM%%Z('0B &  	
  [^dE];;* * <;  *" [ M&&#sc3Z(@#s&TTM%%&J&J&JKKM&&'O'O'OPPM%%   	
 ( [UXw$788#4 #4 98) *#4J
" 
" 
"" " "&P P P P Pr   r   )r   numpyrN   r   pandasr   pandas._testing_testingr&   pandas.api.extensionsr   pandas.core.internals.blocksr   r   r6   r   r   <module>r      s                       0 0 0 0 0 0 6 6 6 6 6 6oP oP oP oP oP oP oP oP oP oPr   