a
    oÝEb{(  ã                   @   sd   d 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 G dd„ deƒZG dd	„ d	eƒZdS )
z
Tests for 2D compatibility.
é    N)Úis_matching_na)ÚINT_STR_TO_DTYPE)ÚBaseExtensionTestsc                   @   sÌ   e Z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ddg¡dd„ ƒZej dg d¢¡dd„ ƒZej dg d¢¡dd „ ƒZej dg d¢¡d!d"„ ƒZd#S )$ÚDim2CompatTestsc                 C   sJ   |  d¡ dd¡}|j}|d |d ks,J ‚|jj|d d d… ksFJ ‚d S )Né   éÿÿÿÿr   )ÚrepeatÚreshapeÚshapeÚT)ÚselfÚdataÚarr2dr
   © r   ú`/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/extension/base/dim2.pyÚtest_transpose   s    zDim2CompatTests.test_transposec                 C   sT   |  d¡ dd¡}t |¡}t |d d …df |d d …df dœ¡}|  ||¡ d S )Nr   r   r   é   )r   r   )r   r	   ÚpdZ	DataFrameZassert_frame_equal)r   r   r   ZdfÚexpectedr   r   r   Útest_frame_from_2d_array   s    
(z(Dim2CompatTests.test_frame_from_2d_arrayc                 C   s4   |  d¡ dd¡}| dd¡}|j}|  ||¡ d S )Nr   r   r   r   )r   r	   Zswapaxesr   Úassert_extension_array_equal©r   r   r   Úresultr   r   r   r   Útest_swapaxes   s    zDim2CompatTests.test_swapaxesc                 C   st   |  d¡ dd¡}|jddd�}| d¡  d¡ dd¡}|  ||¡ |jddd�}|  d¡ dd¡}|  ||¡ d S )Né   r   r   r   ©Úaxisr   )r   r	   Údeleter   r   r   r   r   Útest_delete_2d$   s    zDim2CompatTests.test_delete_2dc                 C   sD   |  dd¡}|jg d¢dd�}| g d¢¡  dd¡}|  ||¡ d S )Nr   r   )r   r   r   r   r   )r	   Ztaker   r   r   r   r   Útest_take_2d1   s    zDim2CompatTests.test_take_2dc                 C   s`   t | dd¡ƒ}| dt|ƒj› �¡dks.J ‚t | dd¡ƒ}| dt|ƒj› �¡dks\J ‚d S )Nr   r   ú<)Úreprr	   ÚcountÚtypeÚ__name__)r   r   Úresr   r   r   Útest_repr_2d9   s    zDim2CompatTests.test_repr_2dc                 C   sÜ   |  dd¡}|j|jdfks J ‚t|ƒt|ƒks4J ‚|  d¡}|j|jdfksRJ ‚t|ƒt|ƒksfJ ‚t t¡�  |  |jdf¡ W d   ƒ n1 s–0    Y  t t¡� |  |jd¡ W d   ƒ n1 sÎ0    Y  d S )Nr   r   )r   r   r   )r	   r
   ÚsizeÚlenÚpytestÚraisesÚ
ValueError)r   r   r   r   r   r   Útest_reshapeA   s    
.zDim2CompatTests.test_reshapec                 C   s  |  dd¡}|d }|  ||¡ t t¡� |d  W d   ƒ n1 sH0    Y  t t¡� |d  W d   ƒ n1 sz0    Y  |d d … }|  ||¡ |d d …d d …f }|  ||¡ |d d …df }|dg }|  ||¡ |d d …tjf }|  ||j¡ d S )Nr   r   r   éþÿÿÿ)r	   r   r)   r*   Ú
IndexErrorÚnpZnewaxisr   r   r   r   r   Útest_getitem_2dO   s     &&
zDim2CompatTests.test_getitem_2dc                 C   s‚   |  dd¡}tt|ƒƒ}t|ƒ|jd ks.J ‚|D ]J}t|t|ƒƒsHJ ‚|j|jksXJ ‚|jdksfJ ‚t|ƒ|jd ks2J ‚q2d S )Nr   r   r   )	r	   ÚlistÚiterr(   r
   Ú
isinstancer#   ÚdtypeÚndim)r   r   r   ÚobjsÚobjr   r   r   Útest_iter_2di   s    zDim2CompatTests.test_iter_2dc                 C   sR   |  dd¡}| ¡ }| ¡ g}t|tƒs,J ‚tdd„ |D ƒƒsBJ ‚||ksNJ ‚d S )Nr   r   c                 s   s   | ]}t |tƒV  qd S )N)r3   r1   )Ú.0Úxr   r   r   Ú	<genexpr>|   ó    z1Dim2CompatTests.test_tolist_2d.<locals>.<genexpr>)r	   Útolistr3   r1   Úallr   r   r   r   Útest_tolist_2du   s    
zDim2CompatTests.test_tolist_2dc                 C   s   t |ƒ ||g¡ dd¡}| ¡ }|j||gdd�}| |gd ¡ dd¡}|  ||¡ |j||gdd�}|jt|ƒdfks€J ‚|  |d d …d d…f |¡ |  |d d …dd …f |¡ d}tjt	|d��" |j||gdd� W d   ƒ n1 sò0    Y  d S )	Nr   r   r   r   é   r   z0axis 2 is out of bounds for array of dimension 2©Úmatch)
r#   Z_concat_same_typer	   Úcopyr   r
   r(   r)   r*   r+   )r   r   ÚleftÚrightr   r   Úmsgr   r   r   Útest_concat_2d€   s    zDim2CompatTests.test_concat_2dÚmethodZbackfillÚpadc                 C   sp   |  d¡ dd¡}|d  ¡  ¡ s&J ‚|d  ¡  ¡ r:J ‚|j|d�}|j|d�  d¡ dd¡}|  ||¡ d S )Nr   r   r   )rH   )r   r	   Zisnar>   ÚanyZfillnar   )r   Zdata_missingrH   Zarrr   r   r   r   r   Útest_fillna_2d_method”   s    z%Dim2CompatTests.test_fillna_2d_method)ÚmeanÚmedianÚvarÚstdÚsumÚprodc           
      C   sÞ   |  dd¡}d }d }zt||ƒƒ }W nf tyŠ } zN|}zt||ƒd d�}W n( tyt }	 z|	}W Y d }	~	n
d }	~	0 0 W Y d }~nd }~0 0 t||ƒd d�}|d us¬|d urÄt|ƒt|ƒksÀJ ‚d S t||ƒsÚ||ksÚJ ‚d S )Nr   r   r   )r	   ÚgetattrÚ	Exceptionr#   r   )
r   r   rH   r   Zerr_expectedZ
err_resultr   Úerrr   Úerr2r   r   r   Útest_reductions_2d_axis_noneŸ   s     0z,Dim2CompatTests.test_reductions_2d_axis_nonec                 C   sv  |  dd¡}i }|dkr d|d< zt||ƒf ddi|¤Ž}W n‚ ty¾ } zjzt||ƒƒ  W nD ty  } z,t|ƒt|ƒks€J ‚W Y d }~W Y d }~d S d }~0 0 tdƒ‚W Y d }~n
d }~0 0 dd	„ }|d
v �rX|}	|dv �rJ|jjdv �rJ||jƒ}
| |
¡}	|jjdk�r|dv �rnt|	ƒt|ƒk�s:J t|	ƒƒ‚|
|	jk�sJJ ‚|  ||	¡ n|dk�rr|  ||| ¡ d S )Nr   r   rO   r   Zddofr   ú'Both reductions should raise or neitherc                 S   s>   | j dkr| S | jdv r(tt t¡j S tt tj¡j S d S )Né   Úib)ÚitemsizeÚkindr   r/   r4   ÚintÚnameZuint)r4   r   r   r   Úget_reduction_result_dtypeÌ   s
    

zLDim2CompatTests.test_reductions_2d_axis0.<locals>.get_reduction_result_dtype)rL   rM   rP   rQ   )rP   rQ   ZiubÚb)	r	   rR   rS   r#   ÚAssertionErrorr4   r[   Zastyper   )r   r   rH   r   Úkwargsr   rT   rU   r^   r   r4   r   r   r   Útest_reductions_2d_axis0¸   s4    "



z(Dim2CompatTests.test_reductions_2d_axis0c           	      C   sà   |  dd¡}zt||ƒdd�}W n‚ ty¢ } zjzt||ƒƒ  W nD ty„ } z,t|ƒt|ƒksdJ ‚W Y d }~W Y d }~d S d }~0 0 tdƒ‚W Y d }~n
d }~0 0 |jdks²J ‚t||ƒƒ }|d }t||ƒsÜ||ksÜJ ‚d S )Nr   r   r   rW   )r   r   )r	   rR   rS   r#   r`   r
   r   )	r   r   rH   r   r   rT   rU   Zexpected_scalarr%   r   r   r   Útest_reductions_2d_axis1ê   s    "z(Dim2CompatTests.test_reductions_2d_axis1N)r$   Ú
__module__Ú__qualname__r   r   r   r   r   r&   r,   r0   r8   r?   rG   r)   ÚmarkZparametrizerK   rV   rb   rc   r   r   r   r   r      s&   



1r   c                   @   s   e Zd Zdd„ ZdS )ÚNDArrayBacked2DTestsc                 C   s  |  d¡ dd¡}|jjd s"J ‚| ¡ }|jjd s:J ‚|d d d…d d d…f  ¡ }|jjd sfJ ‚| d¡}|jjd r€J ‚|jjd s�J ‚| d¡}|jjd sªJ ‚|j d¡}|jjd rÆJ ‚|jjd sÖJ ‚d}tjt|d�� | d	¡ W d   ƒ n1 �s
0    Y  |d d d… }|jjd �r4J ‚|jjd �rFJ ‚| ¡ jjd �s\J ‚| ¡ jjd �rrJ ‚| d
¡jjd �sŠJ ‚| d
¡jjd �r¢J ‚| d¡jjd �rºJ ‚| d¡jjd �sÒJ ‚| d¡jjd �sêJ ‚| d¡jjd �rJ ‚d S )Nr   r   ZC_CONTIGUOUSÚFZF_CONTIGUOUSÚKz6order must be one of 'C', 'F', 'A', or 'K' \(got 'Q'\)rA   ÚQÚC)	r   r	   Z_ndarrayÚflagsrC   r   r)   r*   r+   )r   r   r   r%   rF   Zarr_ncr   r   r   Útest_copy_order  s8    

*z$NDArrayBacked2DTests.test_copy_orderN)r$   rd   re   rm   r   r   r   r   rg      s   rg   )Ú__doc__Únumpyr/   r)   Zpandas._libs.missingr   Zpandasr   Zpandas.core.arrays.integerr   Z pandas.tests.extension.base.baser   r   rg   r   r   r   r   Ú<module>   s    s