
    Pi8                     p    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dS )    N)NumpyEADtype)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         j        t                    sJ d S )NTignore_index   r   blocks)pdSeries	DataFrameconcatlendtypesdtypehasattr_mgr
isinstancer   r   valuesr   )selfdatar   wrappedresultr   s         y/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/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/6GGGGGGG    c                 t   t          j        |                    ddg          t          d                    }t          j        |                    ddg          t          dd                    }|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   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    i 1 11a& 9 9qJJJ9\..1v66eAqkkJJJ 	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A   r!   r   r2   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 r1   r9   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 rB   r:   r=   s     r   r@   z?BaseReshapingTests.test_concat_mixed_dtypes.<locals>.<listcomp>A   s(    AAAafmmF33AAAr   r<   )r   r   r;   r   r(   r)   r*   r<   )r   r   df1df2df3dfsr   r.   s           r   test_concat_mixed_dtypesz+BaseReshapingTests.test_concat_mixed_dtypes3   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        |                    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        ||           d S )Nr1   r2   Br3   r1   rJ   r!   axisr"   r   r   )
r   r   r   r(   r)   _from_sequencelistr   npnanr   r   na_valuerD   rE   r.   r   s          r   test_concat_columnsz&BaseReshapingTests.test_concat_columnsM   s   lCbqb?++lC+,,<d2A2hYYY ? ?@@C:A...
fh///CHc#h/a888
fh/// lC+999===<(()D4RaR>>)D8)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        |                    g t          |d d                   ||j                  |dd         d          }t          j        ||gd          }t          j        ||           d S )	Nr1   r2   rJ      rN   rK   r!   rL   )r   r   rO   rP   r   r   r(   r)   rS   s          r   'test_concat_extension_arrays_copy_falsez:BaseReshapingTests.test_concat_extension_arrays_copy_falsee   s    lCbqb?++lCac+,,<(()D4RaR>>)D8)DDJ(WW!A#Y 
 
 C:A...
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%      r5   Tr
   )
allow_fill)r%   r5   )r   r   r   r&   rP   r'   r(   r)   )r   r   r%   r5   r   r.   s         r   test_concat_with_reindexz+BaseReshapingTests.test_concat_with_reindexr   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        |                    g t	          |          ||j                            }t          j        |                    |gt	          |          |j                            }t          j        ||           t          j        ||           d S )Nr2   r   rZ   r3   r"   rN   )r   r   alignrO   rP   r   r(   r*   	r   r   rT   r%   r5   r1r2e1e2s	            r   
test_alignzBaseReshapingTests.test_align   s    !H1I1##BIayyy$A$A$ABBB Yt**+?T!WW+?h+?tz*RRSSYt**H+?tAww+?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|                    g t	          |          ||j                  i          }t          j        d|                    |gt	          |          |j                  i          }t          j        ||           t          j        ||           d S )Nr2   r   rZ   r1   r3   r"   rN   )r   r   r_   rO   rP   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 \$%%&:Q&:&:$*%MMN
 
 \$%%x&:$q''&:$*%MMN
 
 	b"%%%
b"%%%%%r   c                    t          j        |d          }t          j        dt          j        t          |          dz             i          }|                    |          \  }}t          j        |                    g t          |          ||j	                  |j
                  }t          j        ||           t          j        ||           d S )Nr%   )namecolr!   rN   )r   r   r   rQ   aranger   r_   rO   rP   r   ri   r(   r*   r)   )r   r   rT   serdfra   rb   rc   s           r   test_align_series_framez*BaseReshapingTests.test_align_series_frame   s    i3'''\5")CHHqL"9"9:;;2BY 7$t** 7h 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 Nr1   r!   rJ   rK   r   r   r   r(   r)   r   r   rm   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 rp   rq   rr   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 )Nr1   r!   rN   )r   r   r   r<   r   r   )r   r   rm   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 )Nr2   r3   r   r!   r   )extint1key)r!   r   r2   r$   )r   r   r!   r2   )int2r|   )r!   r!   r   )r   r   r!   r   r!   rN   )r{   r}   r|   rz   )rz   r{   r|   r}   outer)howr   r$   )r   r   r!   r   r2   )	r   r   mergerO   r   r(   r)   rQ   rR   )r   r   rT   rD   rE   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   rN   r!   r|   valr|   onr|   val_xval_yr   T)drop)
typerO   r   r   r   r   r(   r)   ilocreset_index)r   r   r%   r5   r|   rm   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   rN   r3   r   r|   r   )r   r   r!   r   r   )r!   r!   r   r2   r2   )r!   r2   r   r!   r2   r   )	r   rO   r   r   r   r   r&   r(   r)   )	r   r   r%   r5   r|   rD   rE   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columnsr1   rJ   r1   r%   r1   r5   r~   inner)namesfuture_stackc                    t          j        |d d         |d d         d          }||_        |                    |          }|                    t
                                        |          }|                    t
                    }t          |t           j                  rr|rNt          |j        t                    r4|j        |j
        d d df                                         j        k    sJ nP|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 )NrZ   rK   )r   r   )r   r   r   stackr;   r<   r   r   r   r   r   to_numpyallr   r(   assert_equal)r   r   r   r   rm   r   r.   s          r   
test_stackzBaseReshapingTests.test_stack   sZ    \RaRtBQBx8899
|4499V$$***EE ??6**h	** 		= ;
4:| D D ; |rwqqq!t}'='='?'?'EEEEEE|rwqqq!t}'::::::v}1(;;<<<<<v&&
)))))r   r#   r%   r5   )r   r   )rJ   r5   )rK   r4   ry   ))r1   r%   r!   )r1   r5   r   )r1   r%   r   )rJ   r%   r   )rJ   r6   r!   objseriesframec                    t          t          |          t                              }|d |         }d |         |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"   rK   c              3   B   K   | ]}t          j        |          V  d S N)	itertoolspermutations)r>   ilevelss     r   	<genexpr>z2BaseReshapingTests.test_unstack.<locals>.<genexpr>>  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>   rj   r   r   s     r   r   z2BaseReshapingTests.test_unstack.<locals>.<genexpr>D  sK        >A
6#;,d4jj99     r   r   rL   )r   
fill_value)minr   r   r   r   nlevelsrP   r'   r   chainfrom_iterableunstackr   r   to_frame	droplevelr(   r)   r;   r<   r   rT   r   )r   r   r#   r   final_lengthrl   ncombinationsr   rm   altobj_serr.   r   r   s    `           @@r   test_unstackzBaseReshapingTests.test_unstack  s   , 3u::s4yy11m|m$M\M"(??)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_ravelX  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 )Nr[   z&test_transpose assumes mutability and r   r!   r   )	transposer   shaper   r   r   r   r   s      r   test_transposez!BaseReshapingTests.test_transposed  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$   rK   )r%   r5   r6   dr"   r   r   rN   r!   r2   r1   rJ   )
r   r   Tr   rO   r   r(   r)   rQ   r   )r   r   rm   r   r.   s        r   test_transpose_framez'BaseReshapingTests.test_transpose_framew  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/   rH   rU   rX   r]   re   rg   rn   rs   ru   rw   r   r   r   filterwarningsr   
MultiIndexfrom_tuplesr   from_productr   r   r   r   r9   r   r   r   r      s       00[Z$77H H 87H$ [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) *%4N
" 
" 
"" " "&P P P P Pr   r   )r   numpyrQ   r   pandas.core.dtypes.dtypesr   pandasr   pandas._testing_testingr(   pandas.api.extensionsr   pandas.core.internals.blocksr   r   r9   r   r   <module>r      s             2 2 2 2 2 2           0 0 0 0 0 0 6 6 6 6 6 6wP wP wP wP wP wP wP wP wP wPr   