a
    é´«jk6  ã                   @   sV   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„ dƒZdS )é    N)ÚExtensionArray)ÚEABackedBlockc                
   @   s„  e Zd ZdZej dddg¡dd„ ƒZej dddg¡dd„ ƒZd	d
„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zej d#¡ej d$d%d&gejjd'd(gd)d*gd+�g¡ej d,ddg¡d-d.„ ƒƒƒZej d/ejjd%d&gd0d1ggd0d1gd+�ej g d2¢¡ej g d3¢¡ej g d4¢¡g¡ej d5d6d7g¡d8d9„ ƒƒZd:d;„ Zd<d=„ Zd>d?„ Zd@S )AÚBaseReshapingTestsz&Tests for reshaping and concatenation.Úin_frameTFc                 C   s¢   t  |¡}|rt  |¡}t j||gdd�}t|ƒt|ƒd ksBJ ‚|rR|jd }n|j}||jksfJ ‚t|jdƒrˆt	|jj
d tƒsˆJ ‚t	|jjd tƒsžJ ‚d S )NT©Zignore_indexé   r   Úblocks)ÚpdÚSeriesÚ	DataFrameÚconcatÚlenÚdtypesÚdtypeÚhasattrZ_mgrÚ
isinstancer   r   Zarraysr   )ÚselfÚdatar   ÚwrappedÚresultr   © r   úd/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/extension/base/reshaping.pyÚtest_concat   s    

zBaseReshapingTests.test_concatc                 C   s´   t j| ddg¡ddgd�}t j| ddg¡ddgd�}|rXt  d|i¡}t  d|i¡}t  ||g¡}|r�t  d| g d¢¡i¡}t ||¡ n t  | g d¢¡¡}t ||¡ d S )Né   r   ©Úindexr   é   Úa)r   r   r   r   )r	   r
   Útaker   r   ÚtmÚassert_frame_equalÚassert_series_equal)r   Zdata_missingr   Zvalid_blockZna_blockr   Úexpectedr   r   r   Útest_concat_all_na_block"   s    z+BaseReshapingTests.test_concat_all_na_blockc                 C   s0  t  d|d d… i¡}t  dg d¢i¡}t  dg d¢i¡ d¡}|||g}t  |¡}t  dd„ |D ƒ¡}t ||¡ t  dd„ |D ƒ¡}t  d	d„ |D ƒ¡}t ||¡ t  || t¡g¡}t  | d
¡| d
¡g¡}t ||¡ t  |d |d  t¡g¡}t  |d  d
¡|d  d
¡g¡}t ||¡ d S )NÚAr   ©r   r   r   ©r   ÚbÚcÚcategoryc                 S   s   g | ]}|  t¡‘qS r   ©ÚastypeÚobject©Ú.0Úxr   r   r   Ú
<listcomp>:   ó    z?BaseReshapingTests.test_concat_mixed_dtypes.<locals>.<listcomp>c                 S   s   g | ]}|d  ‘qS ©r$   r   r-   r   r   r   r0   >   r1   c                 S   s   g | ]}|d    t¡‘qS r2   r*   r-   r   r   r   r0   ?   r1   r,   )r	   r   r+   r   r   r    r!   r,   )r   r   Údf1Údf2Zdf3Údfsr   r"   r   r   r   Útest_concat_mixed_dtypes1   s     

"z+BaseReshapingTests.test_concat_mixed_dtypesc                 C   s"  t  d|d d… i¡}t  dg d¢i¡}t  |d d… g d¢dœ¡}t j||gdd�}t ||¡ t j|d |d gdd�}t ||¡ t jdg d¢ig d¢d�}t  |jt|d d… ƒ|g |jd	�tj	dd
dgdœ¡}t j||gdd�}t ||¡ t j|d |d gdd�}t ||¡ d S )Nr$   r   ÚBr%   ©r$   r7   r   ©Úaxisr   ©r   r   )
r	   r   r   r   r    Ú_from_sequenceÚlistr   ÚnpÚnan©r   r   Úna_valuer3   r4   r"   r   r   r   r   Útest_concat_columnsK   s"     þÿz&BaseReshapingTests.test_concat_columnsc                 C   s†   t  d|d d… i¡}t  d|dd… i¡}t  |jt|d d… ƒ|g |jd�|dd… dœ¡}t j||gddd	�}t ||¡ d S )
Nr$   r   r7   é   r;   r8   r   F)r:   Úcopy)r	   r   r<   r=   r   r   r   r    r@   r   r   r   Ú'test_concat_extension_arrays_copy_falsec   s     
þÿz:BaseReshapingTests.test_concat_extension_arrays_copy_falsec                 C   s–   t  d|d d… i¡}t  d|d d… i¡}t j||gdd�}t  |jttdƒƒdgd  dd�|jdgd ttdƒƒ dd�dœ¡}t ||¡ d S )	Nr   é   r'   Tr   éÿÿÿÿ)Z
allow_fill)r   r'   )r	   r   r   r   r=   Úranger   r    )r   r   r   r'   r   r"   r   r   r   Útest_concat_with_reindexp   s    þÿz+BaseReshapingTests.test_concat_with_reindexc           	      C   s–   |d d… }|dd… }t  |¡ t j|g d¢d�¡\}}t  |jt|ƒ|g |jd�¡}t  |j|gt|ƒ |jd�¡}t ||¡ t ||¡ d S )Nr   r   rF   r%   r   r;   )r	   r
   Úalignr<   r=   r   r   r!   ©	r   r   rA   r   r'   Úr1Úr2Úe1Úe2r   r   r   Ú
test_align}   s    "  zBaseReshapingTests.test_alignc           	      C   s¦   |d d… }|dd… }t  d|i¡ t jd|ig d¢d�¡\}}t  d|jt|ƒ|g |jd�i¡}t  d|j|gt|ƒ |jd�i¡}t ||¡ t ||¡ d S )Nr   r   rF   r$   r%   r   r;   )r	   r   rJ   r<   r=   r   r   r    rK   r   r   r   Útest_align_frameˆ   s    *ÿÿz#BaseReshapingTests.test_align_framec                 C   sz   t j|dd�}t  dt t|ƒd ¡i¡}| |¡\}}t j|jt|ƒ|g |j	d�|j
d�}t ||¡ t ||¡ d S )Nr   )ÚnameÚcolr   r;   )r	   r
   r   r>   Zaranger   rJ   r<   r=   r   rR   r   r!   r    )r   r   rA   ÚserÚdfrL   rM   rN   r   r   r   Útest_align_series_frame—   s    þz*BaseReshapingTests.test_align_series_framec                 C   sJ   t  ddgt|ƒ i¡}||d< t  dgt|ƒ |dœ¡}t ||¡ d S ©Nr$   r   r7   r8   ©r	   r   r   r   r    ©r   r   rU   r"   r   r   r   Ú,test_set_frame_expand_regular_with_extension¥   s    z?BaseReshapingTests.test_set_frame_expand_regular_with_extensionc                 C   sJ   t  d|i¡}dgt|ƒ |d< t  |dgt|ƒ dœ¡}t ||¡ d S rW   rX   rY   r   r   r   Ú,test_set_frame_expand_extension_with_regular«   s    z?BaseReshapingTests.test_set_frame_expand_extension_with_regularc                 C   s<   t jddgt|ƒ itd�}||d< |jd |jks8J ‚d S )Nr$   r   r;   )r	   r   r   r,   r   r   )r   r   rU   r   r   r   Útest_set_frame_overwrite_object±   s    z2BaseReshapingTests.test_set_frame_overwrite_objectc                 C   s  t  |d d… g d¢g d¢dœ¡}t  g d¢g d¢dœ¡}t  ||¡}t  g d¢g d¢g d	¢|j|d
 |d
 |d g|jd�dœ¡}t ||g d¢ ¡ t j||dd�}t  ddddtjgdddtjdgg d¢|j|d
 |d
 |d |d |g|jd�dœ¡}t ||g d¢ ¡ d S )Nr   r%   ©r   r   r   )ÚextÚint1Úkey)r   r   r   é   )r   r   r   r   )Úint2r`   )r   r   r   )r   r   r   r   r   r;   )r_   rb   r`   r^   )r^   r_   r`   rb   Úouter)Úhowr   ra   )r   r   r   r   r   )	r	   r   Úmerger<   r   r   r    r>   r?   )r   r   rA   r3   r4   ÚresÚexpr   r   r   Ú
test_merge·   s0    "ÿüÿ
 ÿüÿ
zBaseReshapingTests.test_mergec                 C   s²   |d d… \}}t |ƒj||g|jd�}t |ddgdœ¡}tj||dd�}t |ddgddgdœ¡}t ||¡ tj|jddg |dd�}|jddg j	d	d
�}t ||¡ d S )Nr   r;   r   ©r`   Úvalr`   ©Úon©r`   Zval_xZval_yr   T)Zdrop)
Útyper<   r   r	   r   re   r   r    ÚilocZreset_index)r   r   r   r'   r`   rU   r   r"   r   r   r   Útest_merge_on_extension_arrayÖ   s    z0BaseReshapingTests.test_merge_on_extension_arrayc           	      C   s–   |d d… \}}t |ƒj|||g|jd�}t |g d¢dœ¡}t |g d¢dœ¡}tj||dd�}t | g d¢¡g d¢g d	¢d
œ¡}t ||¡ d S )Nr   r;   r%   ri   r`   rk   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   rm   )	rn   r<   r   r	   r   re   r   r   r    )	r   r   r   r'   r`   r3   r4   r   r"   r   r   r   Ú(test_merge_on_extension_array_duplicateså   s    ýÿz;BaseReshapingTests.test_merge_on_extension_array_duplicatesz9ignore:The previous implementation of stack is deprecatedÚcolumnsr$   r7   ©r$   r   ©r$   r'   rc   Úinner)ÚnamesÚfuture_stackc                 C   s¶   t  |d d… |d d… dœ¡}||_|j|d�}| t¡j|d�}| t¡}t|t jƒrz|j|j	d d …df jksœJ ‚n"t
|j|j	d d …df jkƒsœJ ‚| t¡}t ||¡ d S )NrF   r8   )rw   r   )r	   r   rr   Ústackr+   r,   r   r
   r   ro   Úallr   r   Zassert_equal)r   r   rr   rw   rU   r   r"   r   r   r   Ú
test_stackö   s     
 "
zBaseReshapingTests.test_stackr   r   r'   )rs   rt   )r7   r'   )r8   r&   r]   ))r$   r   r   )r$   r'   r   )r$   r   r   )r7   r   r   )r7   r(   r   ÚobjÚseriesÚframec                    s(  ˆ d t |ƒ… ‰ |dkr(tjˆ |d�}ntjˆ ˆ dœ|d�}|j}tt|ƒƒ‰tj 	‡fdd„td|ƒD ƒ¡}|D ]°}|j
|d�‰t‡ ‡fdd„ˆjD ƒƒs J ‚|dkrÒ| ¡ }|j
|d�jd	dd
�}	t ˆ|	¡ | t¡}
|
j
|ˆ jjd�}|dk�r|jtk ¡ �sJ ‚ˆ t¡‰t ˆ|¡ qrd S )Nr|   r   r8   c                 3   s   | ]}t  ˆ |¡V  qd S ©N)Ú	itertoolsÚpermutations)r.   Úi)Úlevelsr   r   Ú	<genexpr>4  s   z2BaseReshapingTests.test_unstack.<locals>.<genexpr>r   )Úlevelc                 3   s"   | ]}t ˆ| jtˆ ƒƒV  qd S r~   )r   Úarrayrn   )r.   rS   )r   r   r   r   rƒ   :  s   r   r9   )r„   Z
fill_value)r   r	   r
   r   Znlevelsr=   rH   r   ÚchainÚfrom_iterableZunstackry   rr   Zto_frameZ	droplevelr   r    r+   r,   r   rA   r   )r   r   r   r{   rT   ÚnÚcombinationsr„   rU   ZaltZobj_serr"   r   )r   r‚   r   r   Útest_unstack  s0    ÿÿ


zBaseReshapingTests.test_unstackc                 C   s\   |  ¡ }t|ƒt|ƒksJ ‚|jjr8t d|j› d�¡ |d |d< |d |d ksXJ ‚d S )Nz"test_ravel assumes mutability and ú is immutabler   r   )Zravelrn   r   Ú_is_immutableÚpytestÚskip©r   r   r   r   r   r   Ú
test_ravelN  s    zBaseReshapingTests.test_ravelc                 C   s‚   |  ¡ }t|ƒt|ƒksJ ‚||us(J ‚|j|jd d d… ksBJ ‚|jjr^t d|j› d�¡ |d |d< |d |d ks~J ‚d S )NrG   z&test_transpose assumes mutability and r‹   r   r   )Ú	transposern   Úshaper   rŒ   r�   rŽ   r�   r   r   r   Útest_transposeZ  s    ÿz!BaseReshapingTests.test_transposec                 C   sþ   t j|d d… |d d… dœg d¢d�}|j}t jt|ƒj|d gd |jd�t|ƒj|d gd |jd�t|ƒj|d gd |jd�t|ƒj|d	 gd |jd�dœd
dgd�}t ||¡ t t 	t 	|¡¡|¡ t t 	t 	|d
g ¡¡|d
g ¡ d S )Nra   r8   )r   r'   r(   Údr   r   r   r;   r   r   r$   r7   )
r	   r   ÚTrn   r<   r   r   r    r>   r‘   )r   r   rU   r   r"   r   r   r   Útest_transpose_framem  s    (üù	z'BaseReshapingTests.test_transpose_frameN) Ú__name__Ú
__module__Ú__qualname__Ú__doc__r�   ÚmarkZparametrizer   r#   r6   rB   rE   rI   rP   rQ   rV   rZ   r[   r\   rh   rp   rq   Úfilterwarningsr	   Z
MultiIndexÚfrom_tuplesrz   Zfrom_productrŠ   r�   r“   r–   r   r   r   r   r      s\   

ÿÿþþ	ÿùþ%r   )r   Únumpyr>   r�   Zpandasr	   Zpandas._testingZ_testingr   Zpandas.api.extensionsr   Zpandas.core.internals.blocksr   r   r   r   r   r   Ú<module>   s   