
    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	J
r
JrJrJrJrJrJrJr  SSKJr   " S S5      r " S S	5      r " S
 S5      r " S S5      r " S S5      r " S S5      r\R6                  R9                  S\" / SQ5      \" / SQ5      \" / SQ5      /5      S 5       r\R6                  R9                  S\R<                  S\R<                  /\R<                  /\R>                  " SS/\R@                  S94\R<                  S\R<                  /\R<                  S/\R>                  " / SQ\R@                  S94\R>                  " \R<                  S\R<                  /\!S9\R<                  /\R>                  " SS/\R@                  S94\" S\\/5      \/\R>                  " SS/\R@                  S94SSS\R<                  /\R<                  /\R>                  " S /\R@                  S94\R>                  " S\R<                  \"" S!5      S/\!S9\" \R<                  /\!S9\R>                  " SS/\R@                  S94/5      S" 5       r#S# r$g)$aS  
test_indexing tests the following Index methods:
    __getitem__
    get_loc
    get_value
    __contains__
    take
    where
    get_indexer
    get_indexer_for
    slice_locs
    asof_locs

The corresponding tests.indexes.[index_type].test_indexing files
contain tests for the corresponding methods specific to those Index subclasses.
    N)InvalidIndexError)is_float_dtype	is_scalar)NADatetimeIndexIndexIntervalIndex
MultiIndexNaTPeriodIndexTimedeltaIndexc                   ,    \ rS rSrS rS rS rS rSrg)TestTake(   c                    SS/nSn[         R                  " [        US9   UR                  USS9  S S S 5        Sn[         R                  " [        US9   UR                  X"S9  S S S 5        Sn[         R                  " [        US9   UR                  US	S
9  S S S 5        g ! , (       d  f       Nv= f! , (       d  f       NT= f! , (       d  f       g = f)N      z1take\(\) got an unexpected keyword argument 'foo'match)fooz$the 'out' parameter is not supported)outz%the 'mode' parameter is not supportedclip)mode)pytestraises	TypeErrortake
ValueError)selfindexindicesmsgs       T/var/www/html/env/lib/python3.13/site-packages/pandas/tests/indexes/test_indexing.pytest_take_invalid_kwargs!TestTake.test_take_invalid_kwargs)   s    a&B]]9C0JJwAJ& 1 5]]:S1JJwJ, 2 6]]:S1JJwVJ, 21 10 21 21s#   B!B2C!
B/2
C 
Cc                 t   / SQn[        U5      S:  a  [        R                  " S5        UR                  U5      nX   nUR	                  U5      (       d   e[        U[        [        [        45      (       d1  Sn[        R                  " [        US9   UR                    S S S 5        g g ! , (       d  f       g = f)N)      r   r      z1Test doesn't make sense since not enough elementsz*'(.*Index)' object has no attribute 'freq'r   )lenr   skipr   equals
isinstancer   r   r   r   AttributeErrorfreq)r   r    indexerresultexpectedr"   s         r#   	test_takeTestTake.test_take8   s    u:>KKKLG$>}}X&&&&%-n!MNN?C~S9

 :9 O :9s   B))
B7c                     [        / SQ5      nSnSn[        R                  " [        US9   UR	                  U5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   r(   r   z!Expected indices to be array-liker   )r   r   r   r   r   )r   integer_indexscalar_indexr"   s       r#   test_take_indexer_typeTestTake.test_take_indexer_typeG   s>    l+1]]9C0|, 100s   A
Ac                     [        U5      S:X  a  [        R                  " S5        UR                  / SQ5      nUR                  SS[        U5      S-
  /5      n[        R
                  " X#5        g )Nr   'Test doesn't make sense for empty index)r   r   r   )r*   r   r+   r   tmassert_index_equal)r   r    r1   r2   s       r#   test_take_minus1_without_fill&TestTake.test_take_minus1_without_fillO   sS    u:?KKABJ'::q!SZ!^45
f/     N)	__name__
__module____qualname____firstlineno__r$   r3   r9   r@   __static_attributes__rC   rB   r#   r   r   (   s    --	0rB   r   c                      \ rS rSr\R
                  R                  S\" / SQ5      S4\" / SQ5      S4\" SSS\R                  S	/5      S	4\" SSS\R                  S	/5      S	4\" SSS\R                  /5      \R                  4\" SSS\R                  /5      \R                  4/5      S
 5       r\R
                  R                  S\" / SQ5      S4\" / SQ5      S4\" SSS\R                  /5      S	4\" SSS\R                  /5      S	4\" SSS\R                  /5      \R                  4\" SSS\R                  /5      \R                  4\" / SQ\R                  S9\R                  4\" / SQ\R                  S9\R                  4\" / SQ\R                  S9\R                  4\" / SQ\R                  S9\R                  4/
5      S 5       r\R
                  R                  S\" / SQ5      S4\" / SQ5      S4/5      S 5       r\R
                  R                  S\" / SQ5      S4\" / SQ5      S4/5      S 5       rS rS rSrg)TestContains[   z	index,val)r   r   r   r   )r   r   2rL   r   r   r'   c                     X!;   d   eg NrC   r   r    vals      r#   test_index_contains TestContains.test_index_contains\   s     ||rB   dtypec                     X!;  d   eg rN   rC   rO   s      r#   test_index_not_contains$TestContains.test_index_not_containsj   s    $ rB   c                     X!;   d   eg rN   rC   rO   s      r#   test_mixed_index_contains&TestContains.test_mixed_index_contains~   s    
 ||rB   1c                     X!;  d   eg rN   rC   rO   s      r#   test_mixed_index_not_contains*TestContains.test_mixed_index_not_contains   s    
 rB   c                     Un[        U5      (       d  / SQO/ SQn[        X2S9n[        UR                  5      (       d  SU;  d   eSU;   d   eSU;   d   eg SU;   d   eSU;  d   eSU;  d   eg )Nr6   )皙?皙?g@gffffff
@rS   ra         ?r   )r   r   rT   )r   any_real_numpy_dtyperT   datar    s        r#   test_contains_with_float_index+TestContains.test_contains_with_float_index   s~    $#1%#8#8|>Rd(ekk**e###%<<::%<<e###E>!>rB   c                 N   [        U[        5      (       a  g Sn[        R                  " [        US9   / U;     S S S 5        SR                  / SQ5      n[        R                  " [        US9   0 UR                  ;     S S S 5        g ! , (       d  f       NS= f! , (       d  f       g = f)Nzunhashable type: 'list'r   |)zunhashable type: 'dict'zmust be real number, not dictzan integer is requiredz\{\}z6pandas\._libs\.interval\.IntervalTree' is not iterable)r-   r
   r   r   r   join_engine)r   r    r"   s      r#   &test_contains_requires_hashable_raises3TestContains.test_contains_requires_hashable_raises   s|    eZ((']]9C0%K 1 hh
 ]]9C0%-- 10 10 10s   B,B
B
B$rC   N)rD   rE   rF   rG   r   markparametrizer   npinfnanrQ   int64uint64rV   rY   r]   re   rk   rH   rC   rB   r#   rJ   rJ   [   sX   [[9q!;%Aq!RVVQ'(!,Aq!RVVQ'(!,Aq!RVV$%rvv.Aq!RVV$%rvv.	


 [[9s#;#Aq!RVV$%q)Aq!RVV$%q)Aq!RVV$%rvv.Aq!RVV$%rvv. 9BHH-rvv69BHH-rvv69BII.79BII.7	
" #"  [[u[)1-k0BC/HI [[u[)3/%2Da1HI  " rB   rJ   c                   ,    \ rS rSrS rS rS rS rSrg)
TestGetLoc   c                     [         R                  " [        SS9   UR                  SS/5        S S S 5        g ! , (       d  f       g = f)Nz[0, 1]r   r   r   )r   r   r   get_loc)r   r    s     r#   test_get_loc_non_hashable$TestGetLoc.test_get_loc_non_hashable   s-    ]],H=MM1a&! >==s	   7
Ac                 Z   SSK Jn   " S SU5      n[        UR                  5      (       a   e[        nSn[        U[        [        [        [        45      (       a  [        nSn[        R                  " XES9   UR                  UR                  5        S S S 5        g ! , (       d  f       g = f)Nr   )Enumc                       \ rS rSrSrSrg)6TestGetLoc.test_get_loc_non_scalar_hashable.<locals>.E   x1rC   N)rD   rE   rF   rG   X1rH   rC   rB   r#   Er~      s    BrB   r   z<E.X1: 'x1'>zE.X1r   )enumr|   r   r   KeyErrorr-   r   r   r   r	   r   r   r   rx   )r   r    r|   r   excr"   s         r#    test_get_loc_non_scalar_hashable+TestGetLoc.test_get_loc_non_scalar_hashable   s    	 	 QTT??""	
 
 $CC]]3*MM!$$ +**s   7B
B*c                    [         n[        U[        [        [        [
        [        45      (       a  [        n[        R                  " USS9   UR                  S [        S5       5       5        S S S 5        g ! , (       d  f       g = f)Nzgenerator objectr   c              3   $   #    U  H  ov   M     g 7frN   rC   ).0xs     r#   	<genexpr>4TestGetLoc.test_get_loc_generator.<locals>.<genexpr>   s     .X!Xs   r)   )r   r-   r   r   r   r	   r
   r   r   r   rx   range)r   r    r   s      r#   test_get_loc_generator!TestGetLoc.test_get_loc_generator   sc    	
 	
 $C]]3&89MM.U1X.. :99s   "A77
Bc                     [        SS[        [        /SS9nUR                  [        5      n[        R                  " / SQ5      n[
        R                  " X#5        g )Nr   r   Int64rS   )FFTT)r   r   rx   ro   arrayr>   assert_numpy_array_equalr   idxr1   r2   s       r#   !test_get_loc_masked_duplicated_na,TestGetLoc.test_get_loc_masked_duplicated_na   s@    Q2rN'2R8867
##F5rB   rC   N)	rD   rE   rF   rG   ry   r   r   r   rH   rC   rB   r#   ru   ru      s    " 4/$6rB   ru   c                   &    \ rS rSrS rS rS rSrg)TestGetIndexer   c                    UR                   (       aU  [        R                  " UR                  [        R                  S9nUR                  U5      n[        R                  " X#5        O5Sn[        R                  " [        US9   UR                  U5        S S S 5        [        R                  " [        SS9   UR                  USS9  S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = f)NrS   8Reindexing only valid with uniquely valued Index objectsr   zInvalid fill methodinvalid)method)_index_as_uniquero   arangesizeintpget_indexerr>   r   r   r   r   r   )r   r    r2   actualr"   s        r#   test_get_indexer_base$TestGetIndexer.test_get_indexer_base   s    !!yy277;H&&u-F''9LC0<!!%( = ]]:-BCeI6 DC =< DCs   C5C 
C 
C.c                    UR                   (       aV  UR                  USS 5      n[        U[        R                  5      (       d   eUR
                  [        R                  :X  d   eO8Sn[        R                  " [        US9   UR                  USS 5        S S S 5        UR                  USS 5      u  p$[        U[        R                  5      (       d   eUR
                  [        R                  :X  d   eg ! , (       d  f       Nf= f)Nr   r   r   r   )r   r   r-   ro   ndarrayrT   r   r   r   r   get_indexer_non_unique)r   r    r0   r"   _s        r#   test_get_indexer_consistency+TestGetIndexer.test_get_indexer_consistency   s     !!''a
3Ggrzz2222==BGG+++LC0<!!%!*- = 11%!*=
'2::....}}''' =<s   C88
Dc                     [        SS[        [        /SS9nUR                  [        S[        /SS95      n[        R                  " / SQUR
                  S9n[        R                  " X#5        g )Nr   r   r   rS   )r   r   r(   )r   r   get_indexer_forro   r   rT   r>   r   r   s       r#   %test_get_indexer_masked_duplicated_na4TestGetIndexer.test_get_indexer_masked_duplicated_na  sS    Q2rN'2$$UAr7'%BC88IV\\:
##F5rB   rC   N)rD   rE   rF   rG   r   r   r   rH   rC   rB   r#   r   r      s    7( 6rB   r   c                       \ rS rSrS rSrg)TestConvertSliceIndexeri  c                 f   [        S S S5      n[        U[        5      (       a7  Sn[        R                  " [
        US9   UR                  US5        S S S 5        g Sn[        R                  " [        US9   UR                  US5        S S S 5        g ! , (       d  f       g = f! , (       d  f       g = f)Nr   zClabel-based slicing with step!=1 is not supported for IntervalIndexr   locz7'>=' not supported between instances of 'str' and 'int')slicer-   r	   r   r   r   _convert_slice_indexerr   )r   r    keyr"   s       r#   test_convert_almost_null_slice6TestConvertSliceIndexer.test_convert_almost_null_slice  s     D$&e]++WCz5,,S%8 65 LCy4,,S%8 54	 65 54s   B5B"
B"
B0rC   N)rD   rE   rF   rG   r   rH   rC   rB   r#   r   r     s    9rB   r   c                       \ rS rSrS rSrg)TestPutmaski  c                    [        U5      (       d  [        R                  " S5        US   nSn[        R                  " [        US9   UR                  [        R                  " [        U5      S-   [        R                  5      U5        S S S 5        [        R                  " [        US9   UR                  [        R                  " [        U5      S-
  [        R                  5      U5        S S S 5        [        R                  " [        US9   UR                  SU5        S S S 5        g ! , (       d  f       N= f! , (       d  f       NT= f! , (       d  f       g = f)Nr<   r   z,putmask: mask and data must be the same sizer   r   r   )	r*   r   r+   r   r   putmaskro   onesbool_)r   r    fillr"   s       r#   test_putmask_with_wrong_mask(TestPutmask.test_putmask_with_wrong_mask   s    5zzKKABQx<]]:S1MM"''#e*q."((;TB 2 ]]:S1MM"''#e*q."((;TB 2 ]]:S1MM%& 21 21 21 21s&   AD)*AD:E)
D7:
E
ErC   N)rD   rE   rF   rG   r   rH   rC   rB   r#   r   r     s    'rB   r   r   )r   r   r(   )r`   g?g333333?)abcc                 x    Sn[         R                  " [        US9   U S     S S S 5        g ! , (       d  f       g = f)Nz,Indexing with a float is no longer supportedr   rb   )r   r   
IndexError)r   r"   s     r#   test_getitem_deprecated_floatr   2  s*     9C	z	-C 
.	-	-s   +
9zidx,target,expectedvar1r   rS   )r   r   r   z
2020-08-05r   r   r   r(   NaNc                 h    [        U 5      nUR                  U5      n[        R                  " XB5        g rN   )r   r   r>   r   )r   targetr2   axisr   s        r#   )test_get_indexer_non_unique_multiple_nansr   =  s+    : :D!!&)F1rB   c                 B   [        SS/5      n[        SU /SS9nUR                  U5      u  p4[        R                  " U[        R
                  " SS/[        R                  S95        [        R                  " U[        R
                  " S/[        R                  S95        g )Nrb   g       @r   objectrS   r   r=   )r   r   r>   r   ro   r   r   )nulls_fixturer   r   
result_idxresult_missings        r#   7test_get_indexer_non_unique_nans_in_object_dtype_targetr   _  sx    
c

CA}%X6F!$!;!;F!CJ
BHHaWBGG,LM!BGG0LMrB   )%__doc__numpyro   r   pandas.errorsr   pandas.core.dtypes.commonr   r   pandasr   r   r   r	   r
   r   r   r   pandas._testing_testingr>   r   rJ   ru   r   r   r   rm   rn   r   rq   r   r   r   floatr   r   rC   rB   r#   <module>r      s4      +
	 	 	 00 00fR  R j66 66r#6 #6L9 9 ' '& 	E)eO4eO6LM 
&&&"&&	!BFF8RXXq!fBGG-LMVVVRVV$VVVHHYbgg.	
 HHbfffbff-V<VVHHHaV277+	
 <c23EHHaV277+	

 sC	 266(BHHaS,HIHHc2665<5VD266(&)HHaV277+	
%62762NrB   