
    d4                     f    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e          ZdS )    N)ExtensionArray)EABackedBlock)BaseExtensionTestsc            
          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ddgej                            ddgddg          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         a/var/www/html/t/fyr/venv311/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                 J   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          }|rCt          j        d|                    g d          i          }|                     ||           d S t          j        |                    g d                    }|                     ||           d S )N   r   indexr      a)r!   r!   r   r   )r   r   taker   r   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 	7|S,*;*;LLL*I*I$JKKH##FH55555y!2!2<<<!@!@AAH$$VX66666r   c                 6   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        d |D                       }t          j        d |D                       }|                     ||           t          j        ||                    t                    g          }t          j        |                    d	          |                    d	          g          }|                     ||           t          j        |d         |d                             t                    g          }t          j        |d                             d	          |d                             d	          g          }|                     ||           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(   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<<<<<==111 00C000119AASAAABB  222 CF!3!34559cjj22CJJx4H4HIJJ111CHc#hoof&=&=>??9c#hooh77S9R9RSTT  22222r   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        |d         |d         gd          }|                     ||           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        |d         |d         gd          }|                     ||           d S )Nr/   r$   Br0   r/   rG   r!   axisr"   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...111CHc#h/a888111 lC+999===<((d2A2h8*)DDJ(WWfaA& 
 
 C:A...111CHc#h/a88811111r   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	          }|                     ||           d S )
Nr/   r$   rG      rK   rH   r!   F)rJ   copy)r   r   rL   rM   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:::11111r   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          }|                     ||           d S )	Nr%      r2   Tr
   )
allow_fill)r%   r2   )r   r   r   r&   rM   ranger'   )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 
 
 	11111r   c                    |d d         }|dd         }t          j        |                              t          j        |g d                    \  }}t          j        |                    t	          |          |gz   |j                            }t          j        |                    |gt	          |          z   |j                            }|                     ||           |                     ||           d S )Nr$   r   rX   r0   r"   rK   )r   r   alignrL   rM   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  R(((  R(((((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          }|                     ||           |                     ||           d S )Nr$   r   rX   r/   r0   r"   rK   )r   r   r^   rL   rM   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
                  }|                     ||           |                     ||           d S )Nr%   )namecolr!   rK   )r   r   r   rN   aranger   r^   rL   rM   r   rh   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
 
 

 	  R(((B'''''r   c                     t          j        ddgt          |          z  i          }||d<   t          j        dgt          |          z  |d          }|                     ||           d S Nr/   r!   rG   rH   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   sj    \3c$ii0113<qcCIIoD A ABBH-----r   c                     t          j        d|i          }dgt          |          z  |d<   t          j        |dgt          |          z  d          }|                     ||           d S ro   rp   rq   s       r   ,test_set_frame_expand_extension_with_regularz?BaseReshapingTests.test_set_frame_expand_extension_with_regular   si    \3+&&#D		/3<d!s4yy A ABBH-----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          }|                     ||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          }|                     ||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'   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 +  	 	
 	
 	S)G)G)G%HIIIhsCW---lAq!RV,Aq"&!,&**!Wd1gtAwQB$* +  	 	
 	
 	S)G)G)G%HIIIIIr   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        |j        ddg         |d          }|j        ddg                             d	
          }|                     ||           d S )Nr   rK   r!   r{   valr{   onr{   val_xval_yr   T)drop)	typerL   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111 "'1a&/2%888=!Q(44$4??11111r   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
          }|                     ||           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%   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(( 
 
 	11111r   columnsr/   rG   r/   r%   r/   r2   r~   inner)namesc                 J   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
                    }|                     ||           d S )NrX   rH   r   )r   r   r   stackr8   r9   r   r   r   r   allr   assert_equal)r   r   r   rl   r   r,   s         r   
test_stackzBaseReshapingTests.test_stack   s    \RaRtBQBx8899
99V$$**,, ??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    rU|                                }|
                    |                              dd	          }	|                     |	           |                    t"                    }
|

                    |j        j        
          }|dk    r$|j        t"          k                                    sJ                     t"                    |                     |           .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>0  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>6  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'   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
 
 
 " 	6 	6E[[u[--F     EK^        h\\^^jjuj--777BB''444jj((GUtz?RSSHh 616688888]]6**F##FH5555)	6 	6r   c                     |                                 }t          |          t          |          k    sJ |d         |d<   |d         |d         k    sJ d S )Nr!   r   )ravelr   r   r   r   s      r   
test_ravelzBaseReshapingTests.test_ravelJ  sZ    F||tDzz)))) 1Iq	Aw$q'!!!!!!r   c                     |                                 }t          |          t          |          k    sJ ||usJ |j        |j        d d d         k    sJ |d         |d<   |d         |d         k    sJ d S )NrY   r!   r   )	transposer   shaper   s      r   test_transposez!BaseReshapingTests.test_transposeS  s    !!F||tDzz)))) T!!!! |tz$$B$///// 1Iq	Aw$q'!!!!!!r   c           	      \   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        |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'   rN   r   )r   r   rl   r   r,   s        r   test_transpose_framez'BaseReshapingTests.test_transpose_framea  s   \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	  *
 
 
 	111R\"-=-= > >CCCR\"cU)-D-D E Er3%yQQQQQr   N)__name__
__module____qualname____doc__pytestmarkparametrizer   r-   rE   rR   rV   r\   rd   rf   rm   rr   rt   rv   r   r   r   r   
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7 7 8773 3 342 2 202 2 22 2 2	) 	) 	)( ( (( ( (. . .. . ., , ,J J J>2 2 22 2 2" [#JM%%Z('0B &  	
 , , ," [ M&&#sc3Z(@#s&TTM%%&J&J&JKKM&&'O'O'OPPM%%   	
 ( [UXw$788#6 #6 98) *#6J" " "" " "R R R R Rr   r   )r   numpyrN   r   pandasr   pandas.api.extensionsr   pandas.core.internals.blocksr    pandas.tests.extension.base.baser   r   r6   r   r   <module>r      s                 0 0 0 0 0 0 6 6 6 6 6 6 ? ? ? ? ? ?cR cR cR cR cR+ cR cR cR cR cRr   