
    Mh(                         S SK rS SKrS SKrS SKJr  S SKJr  S SK	J
r
  \R                  S 5       r\R                  S 5       r " S S5      r " S S	5      r " S
 S5      r " S S5      rg)    N)SparseDtypeSparseArrayc                      [         R                  " [         R                  [         R                  SSS[         R                  SS[         R                  S/
5      $ )N                  )nparraynan     Z/var/www/html/env/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_indexing.pyarr_datar   
   s6    88RVVRVVQ1bffaBFFAFGGr   c                     [        U 5      $ Nr   )r   s    r   arrr      s    x  r   c                      \ rS rSrS rS r\R                  R                  S\	R                  SS \	R                  SS \	R                  SS \	R                  SS \	R                  SS	 \	R                  S
S \	R                  SS \	R                  SS \	R                  SS \	R                  SSS2   \	R                  SSS2   \	R                  SSS2   \	R                  SSS2   \	R                  SSS2   \	R                  SSS2   /5      \R                  R                  S\	R                  /S-  S/S-  \	R                  /S-  S/S-  -   / /5      S 5       5       rS rS rS rS rS rSrg)TestGetitem   c                     UR                  5       n[        U5       H;  u  p4[        R                  " XBU   5        [        R                  " X*    X#*    5        M=     g r   )to_dense	enumeratetmassert_almost_equal)selfr   denseivalues        r   test_getitemTestGetitem.test_getitem   sG    !#HA""5(3""3r7E"I6 'r   c                 r    [        / SQ5      nU/ SQ   n[        SS/5      n[        R                  " X#5        g )Nr   r   r   )TFTr   r   )r   r   assert_sp_array_equal)r   r   resultexpecteds       r   test_getitem_arraylike_mask'TestGetitem.test_getitem_arraylike_mask   s3    )$()1v&
  2r   slcNr   
   d   ir   r	   r   as_denser   c                     [         R                  " U5      n[        U5      nX1   n[        X!   5      n[        R                  " XE5        g r   )r   r   r   r   r'   )r   r,   r5   r   r(   r)   s         r   test_getsliceTestGetitem.test_getslice!   s=    0 88H%(#x}-
  2r   c                    [         R                  " [         R                  SSSSS[         R                  [         R                  S/	5      n[        U5      nU[	        SS 5      4   n[        USS  5      n[
        R                  " X45        [        USS9nU[	        SS 5      4   n[        USS  SS9n[
        R                  " X45        Sn[        R                  " [        US9   USS 2S S 24     S S S 5        [        R                  " [        US9   USS 2S S 24     S S S 5        g ! , (       d  f       N<= f! , (       d  f       g = f)Nr   r	   r
   r   
fill_valueztoo many indices for arraymatch)
r   r   r   r   slicer   r'   pytestraises
IndexError)r   r    sparseresexpmsgs         r   test_getslice_tupleTestGetitem.test_getslice_tupleA   s   "&&!Q1aCDU#eAtn&'%)$
  *Uq1eAtn&'%)2
  **]]:S112q5M 2 ]]:S1!"a%L 21 21 21s   !D#D4#
D14
Ec                 d    [        / SQ5      nU/ SQ   nUR                  UR                  :X  d   eg )Nr&   )FFF)r   dtype)r   r   rC   s      r   test_boolean_slice_empty$TestGetitem.test_boolean_slice_emptyV   s-    )$'(yyCII%%%r   c                 >   [        SS/S-  [        R                  SS9n[        [        R                  S[        R                  SS/5      n[        R
                  " X   U5        U) nX   n[        [        R                  SSS	[        R                  /5      n[        R
                  " XC5        [        SS[        R                  /S-  [        R                  [        R                  S9nX   n[        [        R                  SS/5      n[        R
                  " XC5        g )
NFTr   )rI   r;   r   r   r   r	   r
   )r   r   bool_r   r   r'   )r   r   	spar_boolrD   rC   s        r   test_getitem_bool_sparse_array*TestGetitem.test_getitem_bool_sparse_array[   s     1dS	2661bffa34
  5J	n2661aBFF34
  *D"&&!A%RXX"&&
	 n2661a.)
  *r   c                     [        SSSS[        R                  [        R                  /[        R                  S9nXS:     n[        SS/[        R                  S9n[        R                  " X#5        g )Nr   r   r	   r
   r:   g      @g      @)r   r   r   r   r'   )r   r   rC   rD   s       r   ,test_getitem_bool_sparse_array_as_comparison8TestGetitem.test_getitem_bool_sparse_array_as_comparisonm   sT    1aArvvrvv6266J'l3*8
  *r   c                    [        / SQSS9n[        R                  " US   5      (       d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eSn[        R                  " [
        US	9   US
     S S S 5        [        R                  " [
        US	9   US     S S S 5        US   U[        U5      S-
     :X  d   eg ! , (       d  f       NP= f! , (       d  f       N:= f)N)
r   r   r   r   r	   r   r
   r   r   r   r   r:   r   r      r   z%must be an integer between -10 and 10r<      ir2   )r   r   isnanr?   r@   rA   len)r   r   zarrerrmsgs       r   test_get_itemTestGetitem.test_get_itemt   s    9aHxxA1v{{1v{{Aw!||Aw!||Aw!||8]]:V4G 5 ]]:V4H 5 2w#c#hl++++ 54 54s   ?C&C 
C 
C.r   )__name__
__module____qualname____firstlineno__r#   r*   r?   markparametrizer   s_r   r7   rF   rJ   rO   rR   r[   __static_attributes__r   r   r   r   r      so   73 [[EE!HEE!BKEE!CLEE"QKEE#2JEE"RLEE$3KEE#$KEE!"IEE!$Q$KEE#A#JEE$B$KEE$B$KEE!Aa%LEE&2b&M	
( [[bffX]QC"HrvvhlaS1W.DbI3).3*&
+$+,r   r   c                       \ rS rSrS rSrg)TestSetitem   c                 8  ^ [        U5      R                  5       mU4S jnU4S jn[        R                  " [        SS9   U" 5         S S S 5        [        R                  " [        SS9   U" 5         S S S 5        g ! , (       d  f       N8= f! , (       d  f       g = f)Nc                     > ST S'   g )Nr	   r   r   r   s   r   setitem*TestSetitem.test_set_item.<locals>.setitem   s    CFr   c                     > ST SS& g )Nr   r   r   r   rj   s   r   setslice+TestSetitem.test_set_item.<locals>.setslice   s    C!Hr   zassignment via setitemr<   )r   copyr?   r@   	TypeError)r   r   rk   rn   r   s       @r   test_set_itemTestSetitem.test_set_item   so    (#((*		 ]]9,DEI F ]]9,DEJ FE FE FEs    A:)B:
B
Br   N)r]   r^   r_   r`   rr   rd   r   r   r   rf   rf      s    r   rf   c                       \ 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Srg)TestTake   c                     Sn[         R                  " [        US9   UR                  S5        S S S 5        g ! , (       d  f       g = f)Nz-'indices' must be an array, not a scalar '2'.r<   r   )r?   r@   
ValueErrortake)r   r   rE   s      r   test_take_scalar_raises TestTake.test_take_scalar_raises   s,    =]]:S1HHQK 211s	   7
Ac                 ,   [        [        R                  " USS/5      5      n[        R                  " UR                  SS/5      U5        [        [        R                  " U/ SQ5      5      n[        R                  " UR                  / SQ5      U5        g )Nr   r	   r&   r   r   ry   r   r'   r   r   r   rD   s       r   	test_takeTestTake.test_take   sf    "''(QF34
  1a&!137"''(I67
  )!4c:r   c                     [         R                  " SS/[        S5      S9nUR                  SS/S[        R
                  S9n[        R                  " X5        g )Nr   int64rI   r   T
allow_fillr;   )pdr   r   ry   r   r   r   r'   )r   rB   r(   s      r   test_take_all_emptyTestTake.test_take_all_empty   sE    1a&G(<=aVH
  0r   c                    [         R                  " S/[        SSS9S9nUR                  SS/S[        R
                  S9n[         R                  " S[        R
                  /UR                  S9n[        R                  " X25        g )	Ng        float64r:   r   r   r2   Tr   )	r   r   r   ry   r   r   rI   r   r'   )r   rB   r(   r)   s       r   test_take_different_fill_value'TestTake.test_take_different_fill_value   sa    3%{9'MNaW"&&I88QKv||<
  2r   c                    [         R                  " S[         R                  SSS/5      n[        USS9n[        [         R                  " US/5      SS9n[
        R                  " UR	                  S/5      U5        [        [         R                  " U/ SQ5      SS9n[
        R                  " UR	                  / SQ5      U5        g )Nr   r   r	   r:   )r   r	   r
   )r   r   r   r   ry   r   r'   )r   datarB   rD   s       r   test_take_fill_valueTestTake.test_take_fill_value   s    xxBFFAq!,-Ta0"''$,;
  aS!137"''$	2qA
  Y!7=r   c                 (   [        [        R                  " US/5      5      n[        R                  " UR                  S/5      U5        [        [        R                  " U/ SQ5      5      n[        R                  " UR                  / SQ5      U5        g )Nr2   )r1   r/   r3   r}   r~   s       r   test_take_negativeTestTake.test_take_negative   sa    "''(RD12
  2$5"''(L9:
  ,!7=r   c                     [         R                  " [        SS9   UR                  S/5        S S S 5        g ! , (       d  f       g = f)Nboundsr<   rV   )r?   r@   rA   ry   )r   r   s     r   test_bad_takeTestTake.test_bad_take   s)    ]]:X6HHbTN 766s	   6
Ac                    [        [        R                  [        R                  S[        R                  S/5      nUR                  [        R                  " / SQ5      5      n[        [        R                  [        R                  S/5      n[
        R                  " X#5        UR                  [        R                  " / SQ5      SS9n[        [        R                  [        R                  [        R                  /5      n[
        R                  " X#5        UR                  [        R                  " / SQ5      SSS9n[        [        R                  [        R                  S/5      n[
        R                  " X#5        Sn[        R                  " [        US	9   UR                  [        R                  " / S
Q5      SS9  S S S 5        [        R                  " [        US	9   UR                  [        R                  " / SQ5      SS9  S S S 5        Sn[        R                  " [        US	9   UR                  [        R                  " SS/5      5        S S S 5        [        R                  " [        US	9   UR                  [        R                  " SS/5      5        S S S 5        [        R                  " [        US	9   UR                  [        R                  " SS/5      SS9  S S S 5        g ! , (       d  f       GN4= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r
   r   r   r2   Tr   Fr   zInvalid value in 'indices'r<   r   r   r3   r   r   r0    out of bounds value in 'indices'r4   r   r   r   r   ry   r   r   r'   r?   r@   rx   rA   r   rB   r(   r)   rE   s        r   test_take_fillingTestTake.test_take_filling   s
   bffbffa;<RXXj1223
  2 RXXj1dC78
  2 RXXj1ePTU23
  2*]]:S1KK,K> 2 ]]:S1KK,K> 2 1]]:S1KK!R)* 2]]:S1KK!Q() 2]]:S1KK!Q(TK: 21 21 21 211111s<   'K, 'K>*(L3(L <'L1,
K;>
L
L 
L.1
L?c                    [        [        R                  SSSS/SS9nUR                  [        R                  " / SQ5      5      n[        S[        R                  S/SS9n[
        R                  " X#5        UR                  [        R                  " / SQ5      SS9n[        S[        R                  [        R                  /SS9n[
        R                  " X#5        UR                  [        R                  " / SQ5      SSS	9n[        S[        R                  S/SS9n[
        R                  " X#5        S
n[        R                  " [        US9   UR                  [        R                  " / SQ5      SS9  S S S 5        [        R                  " [        US9   UR                  [        R                  " / SQ5      SS9  S S S 5        Sn[        R                  " [        US9   UR                  [        R                  " SS/5      5        S S S 5        [        R                  " [        US9   UR                  [        R                  " SS/5      5        S S S 5        [        R                  " [        US9   UR                  [        R                  " SS/5      SS9  S S S 5        g ! , (       d  f       GN4= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r   r
   r:   r   Tr   Fr   zInvalid value in 'indices'.r<   r   r   r   r4   r   r   r   s        r   test_take_filling_fill_value%TestTake.test_take_filling_fill_value   s   bffaAq1a@RXXj122661~!<
  2 RXXj1dC
 2662662qA
  2 RXXj1ePTU2661~!<
  2+]]:S1KK,K> 2]]:S1KK,K> 2 1]]:S1KK!R)* 2]]:S1KK!Q() 2]]:S1KK!Q(TK: 21 2111 211111s<   'J"'J4 (K)(K2'K'"
J14
K
K
K$'
K5kindblockintegerc                    [        [        R                  [        R                  [        R                  [        R                  [        R                  /US9nUR                  [        R                  " / SQ5      5      n[        [        R                  [        R                  [        R                  /US9n[
        R                  " X45        UR                  [        R                  " / SQ5      SS9n[        [        R                  [        R                  [        R                  /US9n[
        R                  " X45        Sn[        R                  " [        US9   UR                  [        R                  " SS/5      5        S S S 5        [        R                  " [        US9   UR                  [        R                  " SS	/5      5        S S S 5        [        R                  " [        US9   UR                  [        R                  " SS	/5      SS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       Nh= f! , (       d  f       g = f)
N)r   r   Tr:   r   r<   r   r4   r   )
r   r   r   ry   r   r   r'   r?   r@   rA   )r   r   rB   r(   r)   rE   s         r   test_take_filling_all_nan"TestTake.test_take_filling_all_nan  s`   bffbffbffbffbffEDQRXXj127dC
  2RXXj1dC7dC
  20]]:S1KK!R)* 2]]:S1KK!Q() 2]]:S1KK!Q(TK: 21	 211111s$   (H!(H+*'H<
H(+
H9<
I
r   N)r]   r^   r_   r`   rz   r   r   r   r   r   r   r   r   r?   ra   rb   r   rd   r   r   r   ru   ru      s[    
;1
3>>;B!;F [[Vgy%9:; ;;r   ru   c                       \ rS rSrS rSrg)	TestWherei!  c                 z   [        [        R                  S/SS9n[        R                  " SS/5      nUR	                  U) S5      n[        SS/SS9n[
        R                  " X45        [        R                  " U5      nUR                  U) S5      n[
        R                  " U[        R                  " U5      5        g )Ng      ?r   r:   TFr   )r   r   r   r   _wherer   r'   r   Serieswhereassert_series_equal)r   r   maskrC   rD   sers         r   test_where_retain_fill_value&TestWhere.test_where_retain_fill_value"  s    2663-A6xxu&jj$"1c(q1
  *iiniiq!
sBIIcN3r   r   N)r]   r^   r_   r`   r   rd   r   r   r   r   r   !  s    4r   r   )numpyr   r?   pandasr   r   pandas._testing_testingr   pandas.core.arrays.sparser   fixturer   r   r   rf   ru   r   r   r   r   <module>r      sw         1 H H ! !s, s,l "C; C;L4 4r   