gL i,dZddlZddlZddlmZddlmZddlm Z m Z ddl m Z m Z mZmZmZmZmZmZddlmZGddZGd d ZGd d ZGd dZGddZGddZej:j=degdegdegdgdZej:j=dej@dej@gej@gejBddgejDfej@dej@gej@dgejBgdejDfejBej@dej@ge#ej@gejBddgejDfe deegegejBddgejDfdd dej@gej@gejBd!gejDfejBd ej@e$d"d ge#eej@ge#ejBddgejDfgd#Z%d$Z&y)%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 DatetimeIndexIndex IntervalIndex MultiIndexNaT PeriodIndexTimedeltaIndexc$eZdZdZdZdZdZy)TestTakecddg}d}tjt|5|j|ddddd}tjt|5|j||dddd}tjt|5|j|d dddy#1swY|xYw#1swYOxYw#1swYyxYw) Nz1take\(\) got an unexpected keyword argument 'foo'match)fooz$the 'out' parameter is not supported)outz%the 'mode' parameter is not supportedclip)mode)pytestraises TypeErrortake ValueError)selfindexindicesmsgs h/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/indexes/test_indexing.pytest_take_invalid_kwargsz!TestTake.test_take_invalid_kwargs*sa&B ]]9C 0 ' JJwAJ & '5 ]]:S 1 - JJwGJ , -6 ]]:S 1 - JJwVJ , - - ' ' - - - -s#B1B=C 1B:=C CcXgd}t|dkrtjd|j|}||}|j |sJt |t ttfs3d}tjt|5|jdddyy#1swYyxYw)N)rrz1Test doesn't make sense since not enough elementsz*'(.*Index)' object has no attribute 'freq'r) lenrskiprequals isinstancerr rrAttributeErrorfreq)rr indexerresultexpectedr"s r# test_takezTestTake.test_take9s u:> KKK LG$>}}X&&&%-n!MN?C~S9    O  s B  B)ctgd}d}d}tjt|5|j |dddy#1swYyxYw)Nrrrr'rz!Expected indices to be array-liker)r rrrr)r integer_index scalar_indexr"s r#test_take_indexer_typezTestTake.test_take_indexer_typeHsGl+  1 ]]9C 0 -   | , - - -s AAct|dk(rtjd|jgd}|jddt|dz g}t j ||y)Nr'Test doesn't make sense for empty index)rrr)r)rr*rtmassert_index_equal)rr r0r1s r#test_take_minus1_without_fillz&TestTake.test_take_minus1_without_fillPsU u:? KKA BJ'::q!SZ!^45 fh/N)__name__ __module__ __qualname__r$r2r7r=r>r#rr)s - - 0r>rceZdZejj degddfegddfedddejdgdfedddejdgdfedddejgejfedddejgejfgd Z ejj degddfegddfedddejgdfedddejgdfedddejgejfedddejgejfegdej ejfegdej ejfegdej ejfegdej ejfg d Z ejj degddfegddfgd Zejj degdd fegddfgdZdZdZy) TestContainsz index,val)rrrr)rr2rErrr&c||vsJyNrBrr vals r#test_index_containsz TestContains.test_index_contains]se||r>dtypec||vsJyrGrBrHs r#test_index_not_containsz$TestContains.test_index_not_containsks$%r>c||vsJyrGrBrHs r#test_mixed_index_containsz&TestContains.test_mixed_index_containss e||r>1c||vsJyrGrBrHs r#test_mixed_index_not_containsz*TestContains.test_mixed_index_not_containss %r>c|}t|sgdngd}t||}t|jsd|vsJd|vsJd|vsJyd|vsJd|vsJd|vsJy)Nr4)皙?皙?g@gffffff @rKrV?r)rr rL)rany_real_numpy_dtyperLdatar s r#test_contains_with_float_indexz+TestContains.test_contains_with_float_indexsz$#1%#8|>Rd%(ekk*e# ##%< <: :%< <e# ##E> !>r>cVt|tryd}tjt|5g|vdddt rd}nd}dj dddd d |g}tjt|5i|jvdddy#1swY`xYw#1swYyxYw) Nzunhashable type: 'list'rza container or iterableiterable|zunhashable type: 'dict'zmust be real number, not dictzan integer is requiredz\{\}z.pandas\._libs\.interval\.IntervalTree' is not )r,r rrrrjoin_engine)rr r"container_or_iterables r#&test_contains_requires_hashable_raisesz3TestContains.test_contains_requires_hashable_raisess eZ ( ' ]]9C 0  %K  $= !$. !hh*0)A()+    ]]9C 0 %--   %  $  sB;BBB(N)r?r@rArmark parametrizer npinfnanrJint64uint64rNrPrSrZrarBr>r#rDrD\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/HI [[u[)3/% 2Da1HI   " r>rDc$eZdZdZdZdZdZy) TestGetLocctjtd5|jddgdddy#1swYyxYw)Nz[0, 1]rrr)rrrget_loc)rr s r#test_get_loc_non_hashablez$TestGetLoc.test_get_loc_non_hashables6 ]],H = " MM1a& ! " " "s 9AcBddlm}Gdd|}t|jrJt}d}t |t tttfrt}d}tj||5|j|jdddy#1swYyxYw)Nr)EnumceZdZdZy)6TestGetLoc.test_get_loc_non_scalar_hashable..Ex1N)r?r@rAX1rBr>r#ErqsBr>rtz zE.X1r)enumrorrsKeyErrorr,rrr r rrrrl)rr rortexcr"s r# test_get_loc_non_scalar_hashablez+TestGetLoc.test_get_loc_non_scalar_hashables  QTT?""     $CC ]]3c * MM!$$    s 0BBct}t|tttt t frt}tj|d5|jdtdDdddy#1swYyxYw)Nzgenerator objectrc3 K|]}|ywrGrB).0xs r# z4TestGetLoc.test_get_loc_generator..s.!.s r() rvr,rrr r r rrrrlrange)rr rws r#test_get_loc_generatorz!TestGetLoc.test_get_loc_generatorsg     $C ]]3&8 9 / MM.U1X. . / / /s "A44A=ctddttgd}|jt}tjgd}t j ||y)NrrInt64rK)FFTT)r rrlrdarrayr;assert_numpy_array_equalridxr0r1s r#!test_get_loc_masked_duplicated_naz,TestGetLoc.test_get_loc_masked_duplicated_nasBQ2rN'2R8867 ##FH5r>N)r?r@rArmrxrrrBr>r#rjrjs" 4/$6r>rjceZdZdZdZdZy)TestGetIndexerc|jrWtj|jtj}|j |}t j||n7d}tjt|5|j |dddtjtd5|j |ddddy#1swYAxYw#1swYyxYw)NrK8Reindexing only valid with uniquely valued Index objectsrzInvalid fill methodinvalid)method) _index_as_uniquerdarangesizeintp get_indexerr;rrrrr)rr r1actualr"s r#test_get_indexer_basez$TestGetIndexer.test_get_indexer_bases  ! !yy277;H&&u-F  ' '& 9LC0< )!!%( )]]:-B C 7   eI  6 7 7 ) ) 7 7sC6CCC(c|jrO|j|dd}t|tjsJ|j tj k(sN)r?r@rArrrrBr>r#rrs 7( 6r>rceZdZdZy)TestConvertSliceIndexercPtddd}t|tr9d}tjt |5|j |ddddyd}tjt|5|j |ddddy#1swYyxYw#1swYyxYw)NrzClabel-based slicing with step!=1 is not supported for IntervalIndexrlocz7'>=' not supported between instances of 'str' and 'int')slicer,r rrr_convert_slice_indexerr)rr keyr"s r#test_convert_almost_null_slicez6TestConvertSliceIndexer.test_convert_almost_null_slicesD$& e] +WCz5 9,,S%8 9 9LCy4 9,,S%8 9 9  9 9 9 9sB4BBB%N)r?r@rArrBr>r#rrs 9r>rceZdZdZy) TestPutmaskct|stjd|d}d}tjt|5|j t jt|dzt j|dddtjt|5|j t jt|dz t j|dddtjt|5|j d|dddy#1swYxYw#1swYLxYw#1swYyxYw)Nr9rz,putmask: mask and data must be the same sizerrr) r)rr*rrputmaskrdonesbool_)rr fillr"s r#test_putmask_with_wrong_maskz(TestPutmask.test_putmask_with_wrong_mask's5z KKA BQx< ]]:S 1 C MM"''#e*q."((;T B C]]:S 1 C MM"''#e*q."((;T B C]]:S 1 ' MM% & ' '  C C C C ' 's&AD''AD3 D?'D03D<?EN)r?r@rArrBr>r#rr&s'r>rr)rrr')rUg?g333333?)abccrd}tjt|5|ddddy#1swYyxYw)Nz,Indexing with a float is no longer supportedrrW)rr IndexError)rr"s r#test_getitem_deprecated_floatr9s3 9C z - Cs-6zidx,target,expectedvar1rrK)rrrz 2020-08-05rrrr'NaNcht|}|j|}tj||yrG)r rr;r)rtargetr1axisrs r#)test_get_indexer_non_unique_multiple_nansrDs-: :D  ! !& )F1r>cNtddg}td|gd}|j|\}}tj|t j ddgtj tj|t j dgtj y)NrWg@robjectrKrr:)r rr;rrdrr) nulls_fixturerr result_idxresult_missings r#7test_get_indexer_non_unique_nans_in_object_dtype_targetrfsz c C A}%X 6F!$!;!;F!CJ BHHaWBGG,LM!BGG0LMr>)'__doc__numpyrdr pandas.compatr pandas.errorsrpandas.core.dtypes.commonrrpandasrrr r r r r rpandas._testing_testingr;rrDrjrrrrbrcrrfrrrfloatrrrBr>r#rsG  +   0000fX X v6666r#6#6L 9 9 ''& E) eO4eO6L M &&&"&& !BFF8XRXXq!fBGG-LM VVVRVV $ VVV  BHHYbgg . BHHbfffbff-V < VVH BHHaV277 + <c2 3 E BHHaV277 + sC 266(HBHHaS,HI BHHc2665<5V D 266(& ) BHHaV277 + %62762Nr>