
    d*                         d Z ddlZddlZddlmZ ddlmZmZ ddl	Z
ddlmZ ddlmZ  G d de          Z G d	 d
e          ZdS )z
Tests for 2D compatibility.
    N)is_matching_na)is_bool_dtypeis_integer_dtype)INT_STR_TO_DTYPE)BaseExtensionTestsc                      e 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          d             Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d             ZdS )Dim2CompatTestsc                     |                     d                              dd          }|j        }|d         |d         k    sJ |j        j        |d d d         k    sJ d S )N   r   )repeatreshapeshapeT)selfdataarr2dr   s       \/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/extension/base/dim2.pytest_transposezDim2CompatTests.test_transpose   sf    A&&r1--Qx59$$$$w}ddd++++++    c                    |                     d                              dd          }t          j        |          }t          j        |d d df         |d d df         d          }|                     ||           d S )Nr   r   r      )r   r   )r   r   pd	DataFrameassert_frame_equal)r   r   r   dfexpecteds        r   test_frame_from_2d_arrayz(Dim2CompatTests.test_frame_from_2d_array   s{    A&&r1--\%  <E!!!Q$KE!!!Q$K @ @AAH-----r   c                     |                     d                              dd          }|                    dd          }|j        }|                     ||           d S )Nr   r   r   r   )r   r   swapaxesr   assert_extension_array_equalr   r   r   resultr   s        r   test_swapaxeszDim2CompatTests.test_swapaxes%   sW    A&&r1--1%%7))&(;;;;;r   c                    |                     d                              dd          }|                    dd          }|                    d                               d                              dd          }|                     ||           |                    dd          }|                     d                              dd          }|                     ||           d S )N   r   r   r   axisr   )r   r   deleter!   r"   s        r   test_delete_2dzDim2CompatTests.test_delete_2d,   s    A&&r1-- aa((;;q>>((++33B::))&(;;; aa((;;q>>))"a00))&(;;;;;r   c                     |                     dd          }|                    g dd          }|                    g d                               dd          }|                     ||           d S )Nr   r   )r   r   r   r   r'   )r   taker!   r"   s        r   test_take_2dzDim2CompatTests.test_take_2d9   so    R##JJJQ//99ZZZ((00Q77))&(;;;;;r   c                 R   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   ress      r   test_repr_2dzDim2CompatTests.test_repr_2dA   s    4<<2&&''yy2T$ZZ02233q88884<<A&&''yy2T$ZZ02233q888888r   c                 h   |                     dd          }|j        |j        dfk    sJ t          |          t          |          k    sJ |                     d          }|j        |j        dfk    sJ t          |          t          |          k    sJ t	          j        t                    5  |                     |j        df           d d d            n# 1 swxY w Y   t	          j        t                    5  |                     |j        d           d d d            d S # 1 swxY w Y   d S )Nr   r   )r   r   r   )r   r   sizelenpytestraises
ValueError)r   r   r   s      r   test_reshapezDim2CompatTests.test_reshapeI   s   R##{ty!n,,,,5zzSYY&&&&W%%{ty!n,,,,5zzSYY&&&&]:&& 	) 	)LL$)Q(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)]:&& 	' 	'LLA&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's$   1CC!C>D''D+.D+c                    |                     dd          }|d         }|                     ||           t          j        t                    5  |d          d d d            n# 1 swxY w Y   t          j        t                    5  |d          d d d            n# 1 swxY w 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!   r9   r:   
IndexErrornpnewaxisr   r"   s        r   test_getitem_2dzDim2CompatTests.test_getitem_2dW   s   Q##q))&$777]:&& 	 	!HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]:&& 	 	"II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 qqq))&%888qqq!!!t))&%888qqq!t9))&(;;; aaam$))&%':::::s$   	A##A'*A'	BB #B c                 p   |                     dd          }t          t          |                    }t          |          |j        d         k    sJ |D ]`}t          |t          |                    sJ |j        |j        k    sJ |j        dk    sJ t          |          |j        d         k    sJ ad S )Nr   r   r   )	r   listiterr8   r   
isinstancer2   dtypendim)r   r   r   objsobjs        r   test_iter_2dzDim2CompatTests.test_iter_2dq   s    Q##DKK  4yyEKN**** 	. 	.Cc4::.....9
****8q====s88u{1~-----		. 	.r   c                     |                     dd          }|                                }|                                g}t          |t                    sJ t	          d |D                       sJ ||k    sJ d S )Nr   r   c              3   @   K   | ]}t          |t                    V  d S )N)rF   rD   ).0xs     r   	<genexpr>z1Dim2CompatTests.test_tolist_2d.<locals>.<genexpr>   s,      771:a&&777777r   )r   tolistrF   rD   allr"   s        r   test_tolist_2dzDim2CompatTests.test_tolist_2d}   s    Q##KKMM?&$'''''7777777777!!!!!!r   c                    t          |                              ||g                              dd          }|                                }|                    ||gd          }|                    |gdz                                dd          }|                     ||           |                    ||gd          }|j        t          |          dfk    sJ |                     |d d d df         |           |                     |d d dd f         |           d}t          j        t          |          5  |                    ||gd           d d d            d S # 1 swxY w Y   d S )	Nr   r   r   r'      r   z0axis 2 is out of bounds for array of dimension 2match)
r2   _concat_same_typer   copyr!   r   r8   r9   r:   r;   )r   r   leftrightr#   r   msgs          r   test_concat_2dzDim2CompatTests.test_concat_2d   s   Dzz++T4L99AA"aHH		 ''uA'>>))4&1*55==b!DD))&(;;; ''uA'>>|D		1~----))&BQB->>>))&ABB-??? A]:S111 	: 	:""D%=q"999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   ?E&&E*-E*methodbackfillpadc                    |                     d                              dd          }|d                                                                         sJ |d                                                                         rJ |                    |          }|                    |                               d                              dd          }|                     ||           d S )Nr   r   r   )r^   )r   r   isnarR   anyfillnar!   )r   data_missingr^   arrr#   r   s         r   test_fillna_2d_methodz%Dim2CompatTests.test_fillna_2d_method   s    !!!$$,,Q221v{{}}  """""q6;;==$$&&&&&6**&&f&55<<Q??GG1MM))&(;;;;;r   )meanmedianvarstdsumprodc                    |                     dd          }d }d }	  t          ||                      } t          ||          d           }nN# t          $ rA}|}	  t          ||          d           }n# t          $ r}	|	}Y d }	~	nd }	~	ww xY wY d }~nd }~ww xY w||$t          |          t          |          k    sJ d S t	          ||          s||k    sJ d S d S )Nr   r   r'   )r   getattr	Exceptionr2   r   )
r   r   r^   r   err_expected
err_resultr   r#   errerr2s
             r   test_reductions_2d_axis_nonez,Dim2CompatTests.test_reductions_2d_axis_none   s6   Q##
	7,wtV,,..H ,WUF++666FF  	" 	" 	"L"///T::: " " "!





"	" !\%=
##tL'9'99999Ffh//E6X3E3E3E3EEE3E3EsA   A 
BBA76B7
BBBBBBc                    |                     dd          }i }|dv rd|d<   	  t          ||          dddi|}nx# t          $ rk}	  t          ||                       t          d          # t          $ r1}t	          |          t	          |          k    sJ Y d }~Y d }~d S d }~ww xY wd }~ww xY wd }|d	v r|}	|d
v r|j        j        dv r~ ||j                  }
|                    |
          }	|j        j        dk    r|d
v rn7t	          |	          t	          |          k    sJ t	          |	                      |
|	j        k    sJ |                     ||	           d S |dv rlt          |          st          |          r|                    d          }|dk    r|                     ||           d S |                     |||z
             d S d S )Nr   r   )rk   rj   r   ddofr(   'Both reductions should raise or neitherc                     | j         dk    r| S | j        dv r)t          t          j        t
                    j                 S t          t          j        t          j                  j                 S )N   ib)itemsizekindr   r@   rG   intnameuint)rG   s    r   get_reduction_result_dtypezLDim2CompatTests.test_reductions_2d_axis0.<locals>.get_reduction_result_dtype   sU     ~""t##'(:;; ((9(9(>??r   )ri   rl   rm   )rl   rm   iubb)rh   rk   rj   Float64rh    )r   ro   rp   AssertionErrorr2   rG   r}   astyper!   r   r   )r   r   r^   r   kwargsr#   rs   rt   r   r   rG   s              r   test_reductions_2d_axis0z(Dim2CompatTests.test_reductions_2d_axis0   sa   Q##^##F6N		P+WUF++===f==FF 	P 	P 	PP%f%%'''
 %%NOOO	    CyyDJJ....	P		@ 		@ 		@ ...H((TZ_-E-E224:>>;;u--:?c))f.G.G>>T$ZZ777h777....--fh?????---%% .t)<)< .{{9--11&$?????11&$+FFFFF .-s9   < 
B1A.B,.
B)8"B$B,$B))B,,B1c                    |                     dd          }	  t          ||          d          }nx# t          $ rk}	  t          ||                       t          d          # t          $ r1}t	          |          t	          |          k    sJ Y d }~Y d }~d S d }~ww xY wd }~ww xY w|j        dk    sJ  t          ||                      }|d         }t          ||          s||k    sJ d S d S )Nr   r   r'   rx   )r   r   )r   ro   rp   r   r2   r   r   )	r   r   r^   r   r#   rs   rt   expected_scalarr4   s	            r   test_reductions_2d_axis1z(Dim2CompatTests.test_reductions_2d_axis1   s?   Q##		P+WUF++333FF 	P 	P 	PP%f%%'''
 %%NOOO	    CyyDJJ....	P |t####/'$//11Qic?33Mso7M7M7M7MMM7M7Ms8   3 
B(A%B#%
B /"BB#B  B##B(N)r3   
__module____qualname__r   r   r$   r*   r-   r5   r<   rB   rK   rS   r]   r9   markparametrizerg   ru   r   r   r   r   r   r	   r	      s       , , ,. . .< < << < << < <9 9 9' ' '; ; ;4
. 
. 
.	" 	" 	": : :( [X
E':;;< < <;< [X'V'V'VWWF F XWF0 [X'V'V'VWW3G 3G XW3Gj [X'V'V'VWWN N XWN N Nr   r	   c                       e Zd Zd ZdS )NDArrayBacked2DTestsc                    |                     d                              dd          }|j        j        d         sJ |                                }|j        j        d         sJ |d d dd d df                                         }|j        j        d         sJ |                    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          |          5  |                    d	           d d d            n# 1 swxY w Y   |d d d         }|j        j        d         rJ |j        j        d         rJ |                                j        j        d         sJ |                                j        j        d         rJ |                    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   C_CONTIGUOUSFF_CONTIGUOUSKz6order must be one of 'C', 'F', 'A', or 'K' \(got 'Q'\)rV   QC)	r   r   _ndarrayflagsrY   r   r9   r:   r;   )r   r   r   r4   r\   arr_ncs         r   test_copy_orderz$NDArrayBacked2DTests.test_copy_order  s   A&&r1--~#N3333jjll|!.1111CCaC1Ho""$$|!.1111jjoo<%n5555|!.1111jjoo|!.1111gll3<%n5555|!.1111 H]:S111 	 	JJsOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 sss?(8888?(8888{{}}%+N;;;;;;==)/????{{3(.~>>>>;;s##,2>BBBB;;s##,2>BBBB{{3(.~>>>>{{3(.~>>>>;;s##,2>BBBBBBs   !FF
FN)r3   r   r   r   r   r   r   r   r     s(        *C *C *C *C *Cr   r   )__doc__numpyr@   r9   pandas._libs.missingr   pandas.core.dtypes.commonr   r   pandasr   pandas.core.arrays.integerr    pandas.tests.extension.base.baser   r	   r   r   r   r   <module>r      s         / / / / / /       
     7 7 7 7 7 7 ? ? ? ? ? ?vN vN vN vN vN( vN vN vNr-C -C -C -C -C? -C -C -C -C -Cr   