
    m*i,                        S r SSKrSSKrSSKJ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\R:                  R=                  S\" / SQ5      \" / SQ5      \" / SQ5      /5      S 5       r\R:                  R=                  S\R@                  S\R@                  /\R@                  /\RB                  " SS/\RD                  S94\R@                  S\R@                  /\R@                  S/\RB                  " / SQ\RD                  S94\RB                  " \R@                  S\R@                  /\#S9\R@                  /\RB                  " SS/\RD                  S94\" S\\/5      \/\RB                  " SS/\RD                  S94SS S\R@                  /\R@                  /\RB                  " S!/\RD                  S94\RB                  " S \R@                  \$" S"5      S /\#S9\" \R@                  /\#S9\RB                  " SS/\RD                  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)PY314)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       b/var/www/html/land-doc-ocr/venv/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_take9   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_typeH   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!   r2   r3   s       r$   test_take_minus1_without_fill&TestTake.test_take_minus1_without_fillP   sS    u:?KKABJ'::q!SZ!^45
f/     N)	__name__
__module____qualname____firstlineno__r%   r4   r:   rA   __static_attributes__rD   rC   r$   r   r   )   s    --	0rC   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   2rM   r   r   r(   c                     X!;   d   eg NrD   r    r!   vals      r$   test_index_contains TestContains.test_index_contains]   s     ||rC   dtypec                     X!;  d   eg rO   rD   rP   s      r$   test_index_not_contains$TestContains.test_index_not_containsk   s    $ rC   c                     X!;   d   eg rO   rD   rP   s      r$   test_mixed_index_contains&TestContains.test_mixed_index_contains   s    
 ||rC   1c                     X!;  d   eg rO   rD   rP   s      r$   test_mixed_index_not_contains*TestContains.test_mixed_index_not_contains   s    
 rC   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 )Nr7   )皙?皙?g@gffffff
@rT   rb         ?r   )r   r	   rU   )r    any_real_numpy_dtyperU   datar!   s        r$   test_contains_with_float_index+TestContains.test_contains_with_float_index   s~    $#1%#8#8|>Rd(ekk**e###%<<::%<<e###E>!>rC   c                 z   [        U[        5      (       a  g Sn[        R                  " [        US9   / U;     S S S 5        [
        (       a  SnOSnSR                  SSSS	S
U 3/5      n[        R                  " [        US9   0 UR                  ;     S S S 5        g ! , (       d  f       Ni= f! , (       d  f       g = f)Nzunhashable type: 'list'r   za container or iterableiterable|zunhashable type: 'dict'zmust be real number, not dictzan integer is requiredz\{\}z.pandas\._libs\.interval\.IntervalTree' is not )r.   r   r   r   r   r   join_engine)r    r!   r#   container_or_iterables       r$   &test_contains_requires_hashable_raises3TestContains.test_contains_requires_hashable_raises   s    eZ((']]9C0%K 1 5$=!$.!hh*0)A()+	
 ]]9C0%-- 10% 10$ 10s   BB,
B),
B:rD   N)rE   rF   rG   rH   r   markparametrizer	   npinfnanrR   int64uint64rW   rZ   r^   rf   rn   rI   rD   rC   r$   rK   rK   \   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  " rC   rK   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   x1rD   N)rE   rF   rG   rH   X1rI   rD   rC   r$   Er      s    BrC   r   z<E.X1: 'x1'>zE.X1r   )enumr   r   r   KeyErrorr.   r   r   r   r
   r   r   r   r{   )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rO   rD   ).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   r{   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   Int64rT   )FFTT)r	   r   r{   rr   arrayr?   assert_numpy_array_equalr    idxr2   r3   s       r$   !test_get_loc_masked_duplicated_na,TestGetLoc.test_get_loc_masked_duplicated_na   s@    Q2rN'2R8867
##F5rC   rD   N)	rE   rF   rG   rH   r|   r   r   r   rI   rD   rC   r$   rx   rx      s    " 4/$6rC   rx   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)NrT   8Reindexing only valid with uniquely valued Index objectsr   zInvalid fill methodinvalid)method)_index_as_uniquerr   arangesizeintpget_indexerr?   r   r   r   r   r   )r    r!   r3   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.   rr   ndarrayrU   r   r   r   r   get_indexer_non_unique)r    r!   r1   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   rT   )r   r   r)   )r	   r   get_indexer_forrr   r   rU   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5rC   rD   N)rE   rF   rG   rH   r   r   r   rI   rD   rC   r$   r   r      s    7( 6rC   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rD   N)rE   rF   rG   rH   r   rI   rD   rC   r$   r   r     s    9rC   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   putmaskrr   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rD   N)rE   rF   rG   rH   r   rI   rD   rC   r$   r   r   &  s    'rC   r   r   )r   r   r)   )ra   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   rc   )r   r   
IndexError)r   r#   s     r$   test_getitem_deprecated_floatr   9  s*     9C	z	-C 
.	-	-s   +
9zidx,target,expectedvar1r   rT   )r   r   r   z
2020-08-05r   r   r   r)   NaNc                 h    [        U 5      nUR                  U5      n[        R                  " XB5        g rO   )r	   r   r?   r   )r   targetr3   axisr   s        r$   )test_get_indexer_non_unique_multiple_nansr   D  s+    : :D!!&)F1rC   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 )Nrc   g       @r   objectrT   r   r>   )r	   r   r?   r   rr   r   r   )nulls_fixturer   r   
result_idxresult_missings        r$   7test_get_indexer_non_unique_nans_in_object_dtype_targetr   f  sx    
c

CA}%X6F!$!;!;F!CJ
BHHaWBGG,LM!BGG0LMrC   )'__doc__numpyrr   r   pandas.compatr   pandas.errorsr   pandas.core.dtypes.commonr   r   pandasr   r   r	   r
   r   r   r   r   pandas._testing_testingr?   r   rK   rx   r   r   r   rp   rq   r   rt   r   r   r   floatr   r   rD   rC   r$   <module>r      s7       +
	 	 	 00 00fX  X v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rC   