
    Mh.                     ~    S r SSKrSSKrSSKJr  SSKJrJr  SSK	r
SSKJr  SSKJr   " S S5      r " S S	\5      rg)
z
Tests for 2D compatibility.
    N)is_matching_na)is_bool_dtypeis_integer_dtype)NUMPY_INT_TO_DTYPEc                      \ rS rSr\R
                  " SS9S 5       rS rS rS r	S r
S	 rS
 rS rS rS rS rS r\R$                  R'                  SSS/5      S 5       r\R$                  R'                  S/ SQ5      S 5       r\R$                  R'                  S/ SQ5      \R$                  R'                  SSS/5      S 5       5       r\R$                  R'                  S/ SQ5      S 5       rSrg)Dim2CompatTests   T)autousec                     UR                   (       dS  UR                  nUR                  nUR                  R	                  S5      (       a  [
        R                  " U S35        g g g )Nr   z does not support 2D.)_supports_2dnode_obj__qualname__
startswithpytestskip)selfdtyperequestr   	test_funcs        R/var/www/html/env/lib/python3.13/site-packages/pandas/tests/extension/base/dim2.pyskip_if_doesnt_support_2d)Dim2CompatTests.skip_if_doesnt_support_2d   sV    !!<<D 		I%%001BCCug%:;< D "    c                     UR                  S5      R                  SS5      nUR                  nUS   US   :w  d   eUR                  R                  US S S2   :X  d   eg )N   r   )repeatreshapeshapeT)r   dataarr2dr    s       r   test_transposeDim2CompatTests.test_transpose"   sY    A&&r1-Qx59$$$ww}}dd+++r   c                     UR                  S5      R                  SS5      n[        R                  " U5      n[        R                  " US S 2S4   US S 2S4   S.5      n[        R
                  " X45        g )Nr   r   r      )r   r'   )r   r   pd	DataFrametmassert_frame_equal)r   r"   r#   dfexpecteds        r   test_frame_from_2d_array(Dim2CompatTests.test_frame_from_2d_array)   s[    A&&r1-\\% <<E!Q$KE!Q$K @A
b+r   c                     UR                  S5      R                  SS5      nUR                  SS5      nUR                  n[        R
                  " X45        g )Nr   r   r   r'   )r   r   swapaxesr!   r*   assert_extension_array_equalr   r"   r#   resultr-   s        r   test_swapaxesDim2CompatTests.test_swapaxes0   sC    A&&r1-1%77
''9r   c                    UR                  S5      R                  SS5      nUR                  SSS9nUR                  S5      R                  S5      R                  SS5      n[        R                  " X45        UR                  SSS9nUR                  S5      R                  SS5      n[        R                  " X45        g )N   r   r'   r   axisr   )r   r   deleter*   r2   r3   s        r   test_delete_2dDim2CompatTests.test_delete_2d7   s    A&&r1- aa(;;q>((+33B:
''9 aa(;;q>))"a0
''9r   c                     UR                  SS5      nUR                  / SQSS9nUR                  / SQ5      R                  SS5      n[        R                  " X45        g )Nr   r'   )r   r   r   r   r9   )r   taker*   r2   r3   s        r   test_take_2dDim2CompatTests.test_take_2dD   sM    R#JQ/99Z(00Q7
''9r   c                 $   [        UR                  SS5      5      nUR                  S[        U5      R                   35      S:X  d   e[        UR                  SS5      5      nUR                  S[        U5      R                   35      S:X  d   eg )Nr'   r   <)reprr   counttype__name__)r   r"   ress      r   test_repr_2dDim2CompatTests.test_repr_2dL   s~    4<<2&'yy1T$Z00123q8884<<A&'yy1T$Z00123q888r   c                 l   UR                  SS5      nUR                  UR                  S4:X  d   e[        U5      [        U5      :X  d   eUR                  S5      nUR                  UR                  S4:X  d   e[        U5      [        U5      :X  d   e[        R
                  " [        5         UR                  UR                  S45        S S S 5        [        R
                  " [        5         UR                  UR                  S5        S S S 5        g ! , (       d  f       NN= f! , (       d  f       g = f)Nr   r'   )r   r'   r   )r   r    sizelenr   raises
ValueError)r   r"   r#   s      r   test_reshapeDim2CompatTests.test_reshapeT   s    R#{{tyy!n,,,5zSY&&&W%{{tyy!n,,,5zSY&&&]]:&LL$))Q( ']]:&LLA& '& '&&&s   .D.D%
D"%
D3c                 r   UR                  SS5      nUS   n[        R                  " X15        [        R                  " [
        5         US     S S S 5        [        R                  " [
        5         US     S S S 5        US S  n[        R                  " X25        US S 2S S 24   n[        R                  " X25        US S 2S4   nUS/   n[        R                  " X45        US S 2[        R                  4   n[        R                  " X2R                  5        g ! , (       d  f       N= f! , (       d  f       N= f)Nr'   r   r   )	r   r*   r2   r   rN   
IndexErrornpnewaxisr!   r3   s        r   test_getitem_2dDim2CompatTests.test_getitem_2db   s    Q#q
''5]]:&!H ' ]]:&"I ' q
''6q!t
''6q!t9
''9 am$
''8% '& '&s   D0D(
D%(
D6c                 n   UR                  SS5      n[        [        U5      5      n[        U5      UR                  S   :X  d   eU Hk  n[        U[        U5      5      (       d   eUR                  UR                  :X  d   eUR                  S:X  d   e[        U5      UR                  S   :X  a  Mk   e   g )Nr'   r   r   )	r   listiterrM   r    
isinstancerF   r   ndim)r   r"   r#   objsobjs        r   test_iter_2dDim2CompatTests.test_iter_2d|   s    Q#DK 4yEKKN***Cc4:....99

***88q= =s8u{{1~---	 r   c                     UR                  SS5      nUR                  5       nUR                  5       /n[        U[        5      (       d   e[	        S U 5       5      (       d   eX4:X  d   eg )Nr'   r   c              3   B   #    U  H  n[        U[        5      v   M     g 7f)N)r\   rZ   ).0xs     r   	<genexpr>1Dim2CompatTests.test_tolist_2d.<locals>.<genexpr>   s     71:a&&s   )r   tolistr\   rZ   allr3   s        r   test_tolist_2dDim2CompatTests.test_tolist_2d   s`    Q#KKM?&$''''777777!!!r   c                 z   [        U5      R                  X/5      R                  SS5      nUR                  5       nUR                  X#/SS9nUR                  U/S-  5      R                  SS5      n[        R
                  " XE5        UR                  X#/SS9nUR                  [        U5      S4:X  d   e[        R
                  " US S 2S S24   U5        [        R
                  " US S 2SS 24   U5        Sn[        R                  " [        US9   UR                  X#/SS9  S S S 5        g ! , (       d  f       g = f)	Nr   r   r   r9      r'   z0axis 2 is out of bounds for array of dimension 2match)rF   _concat_same_typer   copyr*   r2   r    rM   r   rN   rO   )r   r"   leftrightr4   r-   msgs          r   test_concat_2dDim2CompatTests.test_concat_2d   s   Dz++TL9AA"aH		 ''A'>))4&1*5==b!D
''9 ''A'>||D	1~---
''q"1"ut<
''q!"uu= A]]:S1""D=q"9 211s   D,,
D:methodbackfillpadc                    UR                  S5      R                  SS5      nUS   R                  5       R                  5       (       d   eUS   R                  5       R	                  5       (       a   eUR                  US S9nUR                  US9R                  S5      R                  SS5      n[        R                  " XE5        US S S2   nUS   R                  5       R	                  5       (       a   eUS   R                  5       R                  5       (       d   eUR                  US S9nUS S S2   R                  US9R                  S5      R                  SS5      n[        R                  " Xx5        g )Nr   r   r'   )rw   limit)rw   r   )r   r   isnari   any_pad_or_backfillr*   r2   )	r   data_missingrw   arrr4   r-   arr2result2	expected2s	            r   test_fillna_2d_method%Dim2CompatTests.test_fillna_2d_method   s\    !!!$,,Q21v{{}  """"q6;;=$$&&&&%%V4%@000?FFqIQQRSUVW
''9 4R4y7<<>%%''''Aw||~!!####''vT'B 2//v/>EEaHPPQRTUV 	 	'';r   )meanmedianvarstdsumprodc                 p   UR                  SS5      nS nS n [        X5      " 5       n[        X25      " S S9nUc  Ub  [        U5      [        U5      :X  d   eg [	        WW5      (       d  Xv:X  d   eg g ! [         a9  nUn [        X25      " S S9n S nAN\! [         a  n	U	n S n	A	 S nANqS n	A	ff = fS nAff = f)Nr'   r   r9   )r   getattr	ExceptionrF   r   )
r   r"   rw   r#   err_expected
err_resultr-   r4   errerr2s
             r   test_reductions_2d_axis_none,Dim2CompatTests.test_reductions_2d_axis_none   s    Q#
	7t,.H U+6F!\%=
#tL'9999fh//63EEE3E/  	"L" /T: "!

"	"s;   A2 2
B5<B0?B
B-B(B0(B--B00B5	min_countr   r'   c                    US:X  a  US;  a  [         R                  " SU 35        UR                  SS5      n0 nUS;   a  SUS'   O
US;   a  X5S	'    [        XB5      " SS
S0UD6nS n	US;   a  Un
UR                  R                  S;   a4  U	" UR                  5      nUR                  U5      n
XR                  :X  d   eUS:X  a  US:X  a  SOSnU
R                  U5      n
[        R                  " Xj5        g US:X  a  Un
[        R                  " Xj5        g US;   ah  [        U5      (       d  [        U5      (       a  UR                  S5      nUS:X  a  [        R                  " Xa5        g [        R                  " XaU-
  5        g g ! [         aV  n [        X5      " 5         [        S5      e! [         a(  n[        U5      [        U5      :X  d   e S nA S nAg S nAff = fS nAff = f)Nr'   )r   r   zmin_count not relevant for r   )r   r   r   ddof)r   r   r   r:   'Both reductions should raise or neitherc                     U R                   S:X  a  U $ U R                  S;   a!  [        [        R                  " [
        5         $ [        [        R                  " S5         $ )N   ibuint)itemsizekindr   rU   r   int)r   s    r   get_reduction_result_dtypeLDim2CompatTests.test_reductions_2d_axis0.<locals>.get_reduction_result_dtype   sJ     ~~"t#)"((3-88 *"((6*:;;r   iubr   r   )r   r   r   Float64r    )r   r   r   r   r   AssertionErrorrF   r   r   astypefillnar*   r2   r   r   )r   r"   rw   r   r#   kwargsr4   r   r   r   r-   r   
fill_values                r   test_reductions_2d_axis0(Dim2CompatTests.test_reductions_2d_axis0   s    >fO;KK5fX>?Q#^#F6N&"+;		PU+==f=F		< _$Hzz%'24::>;;u-...A~"(F"2Q
#??:6++F=xH++F=--%%t)<)<{{9-//=//tD .K  	PP%'
 %%NOO	  CyDJ...	Ps<   F 
G#F)G)
G3GGGGG#c                    UR                  SS5      n [        X25      " SS9nUR
                  S:X  d   e[        X5      " 5       nUS   n[        X5      (       d  X:X  d   eg g ! [         aV  n [        X5      " 5         [        S5      e! [         a(  n[	        U5      [	        U5      :X  d   e S nA S nAg S nAff = fS nAff = f)Nr'   r   r9   r   )r'   r   )r   r   r   r   rF   r    r   )	r   r"   rw   r#   r4   r   r   expected_scalarrH   s	            r   test_reductions_2d_axis1(Dim2CompatTests.test_reductions_2d_axis1  s    Q#		PU+3F ||t###!$/1Qic33s7MMM7M3  	PP%'
 %%NOO	  CyDJ...	Ps;   A# #
C.B	>B>	
B;B6-B>6B;;B>>Cr   N)rG   
__module__r   __firstlineno__r   fixturer   r$   r.   r5   r<   r@   rI   rP   rW   r`   rj   ru   markparametrizer   r   r   r   __static_attributes__r   r   r   r   r      s    ^^D!= "=,,:::9'94
.	":( [[X
E':;< <<. [[X'VWF XF0 [[X'VW[[[1a&1:E 2 X:Ex [[X'VWN XNr   r   c                       \ rS rSrS rSrg)NDArrayBacked2DTestsi,  c                     UR                  S5      R                  SS5      nUR                  R                  S   (       d   eUR	                  5       nUR                  R                  S   (       d   eUS S S2S S S24   R	                  5       nUR                  R                  S   (       d   eUR	                  S5      nUR                  R                  S   (       a   eUR                  R                  S   (       d   eUR	                  S5      nUR                  R                  S   (       d   eUR
                  R	                  S5      nUR                  R                  S   (       a   eUR                  R                  S   (       d   eSn[        R                  " [        US9   UR	                  S	5        S S S 5        US S S2   nUR                  R                  S   (       a   eUR                  R                  S   (       a   eUR	                  5       R                  R                  S   (       d   eUR	                  5       R                  R                  S   (       a   eUR	                  S
5      R                  R                  S   (       d   eUR	                  S
5      R                  R                  S   (       a   eUR	                  S5      R                  R                  S   (       a   eUR	                  S5      R                  R                  S   (       d   eUR	                  S5      R                  R                  S   (       d   eUR	                  S5      R                  R                  S   (       a   eg ! , (       d  f       GN= f)Nr   r   C_CONTIGUOUSFF_CONTIGUOUSKz6order must be one of 'C', 'F', 'A', or 'K' \(got 'Q'\)rn   QC)	r   r   _ndarrayflagsrq   r!   r   rN   rO   )r   r"   r#   rH   rt   arr_ncs         r   test_copy_order$NDArrayBacked2DTests.test_copy_order/  s   A&&r1-~~##N333jjl||!!.111CaC1Ho""$||!!.111jjo<<%%n555||!!.111jjo||!!.111ggll3<<%%n555||!!.111 H]]:S1JJsO 2 ss??((888??((888{{}%%++N;;;;;=))//???{{3((..~>>>;;s#,,22>BBB;;s#,,22>BBB{{3((..~>>>{{3((..~>>>;;s#,,22>BBBB% 21s   %M>>
Nr   N)rG   r   r   r   r   r   r   r   r   r   r   ,  s    *Cr   r   )__doc__numpyrU   r   pandas._libs.missingr   pandas.core.dtypes.commonr   r   pandasr(   pandas._testing_testingr*   pandas.core.arrays.integerr   r   r   r   r   r   <module>r      sB      /
   9VN VNr-C? -Cr   