bg*ddlZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z m Z mZmZmZmZmZmZGddZGddZGd d ZGd d ZGd dZGddZGddZGddZGddZGddZGddZGddZGddZ dS)N)array_indexing)product)assert_ assert_equal assert_raisesassert_raises_regexassert_array_equal assert_warns HAS_REFCOUNTIS_WASMc:eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(e)j*+d'd(d)e,j-d*gge)j*+d+d,d-ge)j*+d.d/d,gd0Z.e)j*/e0d12d3Z1d4Z2d5S)6 TestIndexingcVtjdgggttfdttfdttfdttfdttfdttfdttfdttfd ttfd ttfd ttfd ttfd ttfdttfdttfdttfdttfdttfdttfdttfdttfdttfddS)NcdSNasq/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib64/python3.11/site-packages/numpy/core/tests/test_indexing.pyz3TestIndexing.test_index_no_floats..s !C&cdS)N)rrrrsrrz3TestIndexing.test_index_no_floats.. !F)rcdS)N)rrrrsrrz3TestIndexing.test_index_no_floats..rrcdddfSrrrsrrz3TestIndexing.test_index_no_floats..s!CE(rcdddfSrrrsrrz3TestIndexing.test_index_no_floats..s!AAAsF)rc"dddddfSrrrsrrz3TestIndexing.test_index_no_floats..s!AAAs111H+rc"dddddfSrrrsrrz3TestIndexing.test_index_no_floats..s!C!!!G*rcdS)N)rrrrrsrrz3TestIndexing.test_index_no_floats.. !I,rcdS)N)rrrrrsrrz3TestIndexing.test_index_no_floats..r"rcdS)N)rrrrrsrrz3TestIndexing.test_index_no_floats..r"rcdSNffffffrrsrrz3TestIndexing.test_index_no_floats..s !D'rcdS)N)rr'rrsrrz3TestIndexing.test_index_no_floats.. !G*rcdS)N)r'rrrsrrz3TestIndexing.test_index_no_floats..!r)rcdddfSr&rrsrrz3TestIndexing.test_index_no_floats.."s!DF)rcdddfSr&rrsrrz3TestIndexing.test_index_no_floats..#s!AAAtG*rc"dddddfSr&rrsrrz3TestIndexing.test_index_no_floats..$s!AAAtAAAI,rc"dddddfSr&rrsrrz3TestIndexing.test_index_no_floats..%s!D111H+rcdS)N)rrr'rrsrrz3TestIndexing.test_index_no_floats..& !J-rcdS)N)r'rrrrsrrz3TestIndexing.test_index_no_floats..'r0rcdS)N)rr'rrrsrrz3TestIndexing.test_index_no_floats..(r0rcdddfSrrrsrrz3TestIndexing.test_index_no_floats..)s!CDD#I,rc"dddddfSrrrsrrz3TestIndexing.test_index_no_floats..*s!CDD#aaaK.r)nparrayr IndexErrorselfrs @rtest_index_no_floatsz!TestIndexing.test_index_no_floatssR HseW  j....111j"3"3"3"3444j"3"3"3"3444j"2"2"2"2333j"3"3"3"3444j"5"5"5"5666j"4"4"4"4555j"6"6"6"6777j"6"6"6"6777j"6"6"6"6777j////222j"4"4"4"4555j"4"4"4"4555j"3"3"3"3444j"4"4"4"4555j"6"6"6"6777j"5"5"5"5666j"7"7"7"7888j"7"7"7"7888j"7"7"7"7888j"6"6"6"6777j"8"8"8"899999rcTtjdggttfdttfdttfdttfdttfdttfdttfdttfd ttfd ttfd ttfd ttfd ttfdttfdttfdttfdttfdttfdttfdttfdttfdttfddS)NrcddSrrrsrrz5TestIndexing.test_slicing_no_floats..0s344rc ddddfS)Nrrrrsrrz5TestIndexing.test_slicing_no_floats..1s122s1u9rc"dddddfSNrr>rrrsrrz5TestIndexing.test_slicing_no_floats..2s3662A2:rc"dddddfS)Nrr>rrsrrz5TestIndexing.test_slicing_no_floats..3s3q71119rc ddddfSrrrsrrz5TestIndexing.test_slicing_no_floats..4s111cdd7rcddSrrrsrrz5TestIndexing.test_slicing_no_floats..6s4C4rc ddddfS)NrrB@rrsrrz5TestIndexing.test_slicing_no_floats..7s2A2qu9rc"dddddfSr@rrsrrz5TestIndexing.test_slicing_no_floats..8s6C62A2:rc ddddfSrrrsrrz5TestIndexing.test_slicing_no_floats..9s4C46rc"dddddfS)Nr@r>rrsrrz5TestIndexing.test_slicing_no_floats..:s111aAg:rcdddS)N?rrsrrz5TestIndexing.test_slicing_no_floats..<55S5rc"dddddfS)Nrr>rFrrsrrz5TestIndexing.test_slicing_no_floats..=s122v#v:rc"dddddfS)NrBrJrrrsrrz5TestIndexing.test_slicing_no_floats..>s16c62A2:rc"dddddfS)N@rrsrrz5TestIndexing.test_slicing_no_floats..?s55S57rc"dddddfS)NrrFrrsrrz5TestIndexing.test_slicing_no_floats..@s111a#g:rcdddS)NrLr>rFrrsrrz5TestIndexing.test_slicing_no_floats..Bs3q9rcdddS)NrLrFrrsrrz5TestIndexing.test_slicing_no_floats..Cs388rc"dddddfS)NrrFrrsrrz5TestIndexing.test_slicing_no_floats..Ds122xCx<rc"dddddfS)NrLrBrJrrrsrrz5TestIndexing.test_slicing_no_floats..Es3q9bqb=)9rc"dddddfS)NrLrQrrsrrz5TestIndexing.test_slicing_no_floats..Fs3s3;qqq=)9rc"dddddfS)Ng?rJrFrrsrrz5TestIndexing.test_slicing_no_floats..Gs111c#ck>):rcdddSrrrsrrz5TestIndexing.test_slicing_no_floats..IrMrr5r6r TypeErrorr8s @rtest_slicing_no_floatsz#TestIndexing.test_slicing_no_floats,sP HqcUOO i111i!5!5!5!5666i!6!6!6!6777i!5!5!5!5666i!3!3!3!3444i111i!5!5!5!5666i!6!6!6!6777i!2!2!2!2333i!6!6!6!6777i!1!1!1!1222i!6!6!6!6777i!6!6!6!6777i!3!3!3!3444i!6!6!6!6777i!5!5!5!5666i!4!4!4!4555i!8!8!8!8999i!9!9!9!9:::i!9!9!9!9:::i!:!:!:!:;;;i!1!1!1!122222rcftjdgggttfddS)NrBcSNrrsrrz;TestIndexing.test_index_no_array_to_index..Os1Qq5rr[r8s @rtest_index_no_array_to_indexz)TestIndexing.test_index_no_array_to_indexKs8 HseW  i!1!1!1!122222rctjgd}t|d|tjt|dj|jdzdS)NrBr>rB)r5r6rnewaxisndimr8s rtest_none_indexzTestIndexing.test_none_indexQsQ HYYY  QtWa m,,,QtW\16A:.....rctjgd}t|d|t|dj|utjd}tt |dtjdS)Nrcrr)r5r6rrbase isinstanceint_r8s rtest_empty_tuple_indexz#TestIndexing.test_empty_tuple_indexWsr HYYY  QrUA" a   HQKK 1R5"'**+++++rctjdd}t|dj|jt|d|tt |dtjdS)NrV4dtype.)r5zerosrrptypendarray)r9ss rtest_void_scalar_empty_tuplez)TestIndexing.test_void_scalar_empty_tuple_sd HRt $ $ $QrU[!'***QrUAT!C&\\2:.....rctjd}|tj}tjd}t ||||tjd||<t |tjdtjddd}t ||||tjddddf||<t |tjddddfddtjddd}t |||f|||fdS)Nr r>rBaxis)r5arangeastypeuintpr reshaperepeat)r9indexu_indexarrs rtest_same_kind_index_castingz)TestIndexing.test_same_kind_index_castingesC ! ,,rx((imm3u:s7|444y||G 3 " ...imm##Aq))3u:s7|444y||AAAdF+G 3 ! QQQtV 4 ; ;AA ; F FGGGimm##Aq))3w/0#eUl2CDDDDDrctjgd}t|ggt|gj|jtjgtj}t|ggt|gj|jtjg}t t |j|dS)Nrcro)r5r6rrpintprr7 __getitem__r9rbs rtest_empty_fancy_indexz#TestIndexing.test_empty_fancy_indexys HYYY  QrUBQrU[!'*** HRrw ' ' 'QrUBQrU[!'*** HRLLj!-33333rc8tjgdgdgdg}t|d|ut|d|t|dj|ut|d|dt|d|dddft|d|dddft|dtjd tjd }d |t f<t|d dS) NrcrSr .)r.r.r)r.rBr>rB)r5r6rrriEllipsisrs rtest_ellipsis_indexz TestIndexing.test_ellipsis_indexs Hiiiiiii! " " #a   QsVQ# q !!! QvY!%%%QvY!AAA#'''QvY!!!Q$((( Qy\28A;;/// HQKK8+Qrc tjgdgdgdg}t|dgdt|dgdtt|jdtt|jddS)Nrcrrri@l)r5r6rrr7rr8s rtest_single_int_indexz"TestIndexing.test_single_int_indexs Hiiiiiii! " " QqT999%%%QrUIII&&& j!-999j!-99999rctjgdgdgdg}t|tjd|dt|tjd|ddddS)NrcrrTFrr5r6rr8s rtest_single_bool_indexz#TestIndexing.test_single_bool_indexs~ Hiiiiiii! " " Qrx~~&$000Qrx'4166666rctjd}tjdg}tt|j|tjdgdz}tt|j|tjdt}tt|j|tt|jtd|fdS)N)rrSrdTFrrSrSro) r5onesr6rr7rrqboolslice)r9rrs rtest_boolean_shape_mismatchz(TestIndexing.test_boolean_shape_mismatchsgi  $  j#/5999%1%%j#/5999t,,,j#/5999j#/E$KK3GHHHHHrctjgdg}tjdgt}t|||d||<t|gdgdS)N)rrrTrorL)rLrLrL)r5r6rrrs rtest_boolean_indexing_onedimz)TestIndexing.test_boolean_indexing_onedimsi Hooo& ' ' HtWD ) ) )QqT1!Q'''''rctjd}d}tt||gtt||gdtt||ddgddS)NrSc|||dk<dS)Nrr)rvs rfz>TestIndexing.test_boolean_assignment_value_mismatch..fsAa"fIIIrrcrB)r5r{r ValueError)r9rrs r&test_boolean_assignment_value_mismatchz3TestIndexing.test_boolean_assignment_value_mismatchst IaLL    j!Q+++j!Q 222j!QrrUIII66666rctjd}tjdt}d|dd<tjdt||<tjd}d|dd<t ||dS)NroTdrB)r5rqrrobjectr )r9rindxexpecteds r!test_boolean_assignment_needs_apiz.TestIndexing.test_boolean_assignment_needs_apisz htnnxD)))TcT GCv...D 8D>>#3)))))rcttjgdgdgdg}tjgdgdgdg}t||gdt||dgdgt||d||d d||<t|gd gd gd gdS) NrcrrTFT)FTF)rBrdrrrrBrr>)rr>r)rSrr)rrrrrs rtest_boolean_indexing_twodimz)TestIndexing.test_boolean_indexing_twodims Hiiiiiii! " " H+++++++++- . . QqT???+++QqtWyyyk***QqtWa!g&&&!Q""$ % % % % %rctjgd}gd}t||ddgt|d|fddggdS)NrcrrBrdrrs rtest_boolean_indexing_listz'TestIndexing.test_boolean_indexing_lists^ HYYY     QqTAq6"""QtQwZ1a&*****rctjd}tjdtjddd}tjdddd}|||<t |ddtjd}tjdddddd}|||ddf<t |dddgdS) Nrrorrrr>rwr>rB)r5rrqrr{rr~)r9rrcs r,test_reverse_strides_and_subspace_bufferinitz9TestIndexing.test_reverse_strides_and_subspace_bufferinits GAJJ HQbg & & &ttt , IaLL2 !QqT1 GFOO IbMM ! !!Q ' '" -!QQQ$QqTAq6"""""rc*tjddddf}tjdddd}t||||dtjddd}dS)NrwrCr>)r5r{r copyr~)r9ris r'test_reversed_strides_result_allocationz4TestIndexing.test_reversed_strides_result_allocationsy IbMM!!!T' " IbMM$$B$ 1Q4166#;;000 IbMM ! !"a ( (rcjtjdd}tjdd}tjddddj|ddg<tjddddj|ddg<t ||dS)N)rdrSr>rr>rSrrB)r5fullr{r~Trrrs r%test_uncontiguous_subspace_assignmentz2TestIndexing.test_uncontiguous_subspace_assignments GIr " " GIr " "Ii((00Aq99;1a& Ii((00Aq99;@@BB1a& Qrctjd}tt|jtjdgfdzdS)N) rBrBrBrBrBrBrBrBrBrBrBrBrBrBrBrBrBrBrBrBrBrBrBrBrBrBrBrBrBrBrBrBr )r5rrr7rr6r8s r(test_too_many_fancy_indices_special_casez5TestIndexing.test_too_many_fancy_indices_special_case)s= GI  j!-"(A3--1AB1FGGGGGrc.tjd}t|tjd|tjdt|tjd|tjddS)NrBTF)r5r6rbool_r8s rtest_scalar_array_boolz#TestIndexing.test_scalar_array_bool.si HQKKQrx~~&"(4..(9:::Qrx'28E??);<<<<)r5rqrr7r __setitem__r8s rtest_broaderrors_indexingz&TestIndexing.test_broaderrors_indexingCs[ HV  j!-1a&)))1DEEEj!-1a&)))1DaHHHHHrctjd}tjdtj}d|d<t t |j|t t |j|dtjdtj}d|d<t t |j|t t |j|ddS)Nrrrorwrr )r5rqrrrr7rr)r9rinds r test_trivial_fancy_out_of_boundsz-TestIndexing.test_trivial_fancy_out_of_boundsHs HQKKgb(((Bj!-555j!-a888gb(((Aj!-555j!-a88888rcDtjd}tjdtjddddddddf}t |||d||<tjd}d|d<d|d<t ||dS)Nrror>rBrdrr)r5r{rr~r )r9ridxress rtest_trivial_fancy_not_possiblez,TestIndexing.test_trivial_fancy_not_possibleSs IaLLi)))11!Q::111aaa7C1S63'''#illAA1c"""""rcGddtj}tjd}||}|d||gdddf<t |dk||ddgdf<t |dk|d||d<t |dkdS) NceZdZdZdS)7TestIndexing.test_nonbaseclass_values..SubClassc0|ddS)Nc)fillr9olds r__array_finalize__zJTestIndexing.test_nonbaseclass_values..SubClass.__array_finalize__ds " rN__name__ __module__ __qualname__rrrrSubClassrcs#     rrr)rrrBrrBr>rdrSr.)r5rsrqrviewrrall)r9rrrts rtest_nonbaseclass_valuesz%TestIndexing.test_nonbaseclass_valuesbs     rz    HV   FFHHMMxM ( ( q !///111 a !"!!!___ a  q #a rcztjd}tjdtjdd}t ||gdddf<t ||t ||ddgdf<t ||t ||d<t ||dS)Nrrzrorr.)r5rqr{float64r~ memoryviewr )r9rrts rtest_array_like_valuesz#TestIndexing.test_array_like_valuesws HV   Ib + + + 3 3Aq 9 9 *1 ///111 1a   *1 !!!___ 1a   A#1a     rctjgdddg}tjgdt}t ||jjtjddg}t ||jjt |djjt |djjdS) N))NGC1001r)NGC1002rL)NGC1003rL)targetS20)V_magz>f4ro)FTTrrB.)r5recr6rrflags writeable)r9drs rtest_subclass_writeablez$TestIndexing.test_subclass_writeables FLLLLL 13CD  F Fh,,,D999# &'''h1v# &'''# &'''! $%%%%%rc4tjd}tjdddj}t ||jj|dd}t ||dfjjdS)Nrwrr>rrBr)r5r{r~rrr f_contiguousrs rtest_memory_orderzTestIndexing.test_memory_orders~ IbMM IbMM ! !!A & & (! '((( IIb!  !Q$ *+++++rc Gdd}|}Gdd}tjd}tt|dtjtjd}tt||tjtjd}tt||tjdftjtt|||ftjtjd}tjdt }||d<tt|dtjtj|dg}tt||tjtj|dgg}tt||tjdftjtt|||ftjdS) NceZdZdZdS)2TestIndexing.test_scalar_return_type..ZerocdSNrrr9s r __index__z.Zero.__index__qrN)rrrrrrrZerors#     rrceZdZdZdS)7TestIndexing.test_scalar_return_type..ArrayLikec*tjdSrr5r6rs r __array__zATestIndexing.test_scalar_return_type..ArrayLike.__array__sx{{"rN)rrrr rrr ArrayLikers# # # # # #rr rrB)rBrBrro)r5rqrrjfloat_r6rrs)r9rzr rrs rtest_scalar_return_typez$TestIndexing.test_scalar_return_types         DFF # # # # # # # # HRLL 1R5"),,--- HQKK 1Q4++,,, HV   1Q ^,bi88999 1Q ^,bi88999 HQKK HQf % % %" 1R5"*--... HaY   1Q4,,--- Hq$i[ ! ! 1Q ^,bj99::: 1Q ^,bj99:::::rctjdg}tr0tjtjtj}d|tjdgtj<d|tjdgtj<tt|j tjdgtjdtt|j tjdgtjdtr@ttjtjtj|dSdS)NrrBro) r5r6r sys getrefcountrpruint8rr7rr)r9rrefcounts rtest_small_regressionsz#TestIndexing.test_small_regressionss HaSMM  :rx'8'899H*+"(A3bg & & &'+,"(A3bh ' ' '(j!-hs"'222A 7 7 7j!-hs"(333Q 8 8 8  G "'):):;;X F F F F F G GrcVtjdtjtdzdd}|tjd}tjdtjtdzdd}|tjd}tjdd |d <tj|j}t||||||<tj|jdztjdtj d j dz }|tj d|j}tj|j|d <t|| tj |||| tj <||d zd k|ddd ||d zd k<dS) N@rorrBiS8rbbbbbbbbS.rr>)r5rqint8ordrrpr6r{sizerritemsizer|int16)r9rrxrs rtest_unalignedzTestIndexing.test_unaligneds Xb ( ( (3s88 3QrT : FF28D>> " " Xb ( ( (3s88 3QrT : FF28D>> " "'---# Iaf  QqT1! HQVaZ % %bg . .q271::3F3J1K/K L FF27OOGQVG $16""#Qqxx))*A... !!((28   !a%1* ##A#!a%1* rctjd}Gddt}dgdgf}||}t||jdkt||fjdkdS)NrceZdZdS)7TestIndexing.test_tuple_subclass..TupleSubclassNrrrrrr TupleSubclassr# Drr%rBrB)r5rtuplershape)r9rr%rs rtest_tuple_subclassz TestIndexing.test_tuple_subclasssgfoo     E   qc  e$$E  D()))EF !T)*****rc,Gdd}tjd}t||||ftjdddg}t||||fdS)Nc eZdZdZdZdZdS)DTestIndexing.test_broken_sequence_not_nd_index..SequenceLikecdSrrrs rrzNTestIndexing.test_broken_sequence_not_nd_index..SequenceLike.__index__rrcdS)NrBrrs r__len__zLTestIndexing.test_broken_sequence_not_nd_index..SequenceLike.__len__rrc td)Nz Not possible)r7)r9items rrzPTestIndexing.test_broken_sequence_not_nd_index..SequenceLike.__getitem__s 000rN)rrrrr0rrrr SequenceLiker-sA       1 1 1 1 1rr3rwr')f1i8)f2r5ro)r5r{r rq)r9r3rs r!test_broken_sequence_not_nd_indexz.TestIndexing.test_broken_sequence_not_nd_indexs  1 1 1 1 1 1 1 1imm3||~~.LLNNO0DEEEhtL,#?@@@3||~~.LLNNO0DEEEEErctjd}tjd}tjddddddf}tj|d}t ||||tjdtj}t |||f|||fdS)Nrw)rwr>)rw7rSrSrSro)r5rr{ broadcast_tor rrqr)r9rx2rzinds r!test_indexing_array_weird_stridesz.TestIndexing.test_indexing_array_weird_stridess GBKK WW  immAAAtT4/0oc>22 1S61SXXZZ=111x)))2c4i="SXXZZ-=*>?????rctjd}|ddddddf}tdgdf}d||<t|ddS)NrrrrBr>rdrwg$@)r5rqrr )r9arrorslicess r$test_indexing_array_negative_stridesz1TestIndexing.test_indexing_array_negative_stridess`x44R42:++|||,F 3$$$$$rctjdd}tjd|d<t|dtjdd|ddksJdS)N)rBrrroasdfgrrrBs)r5rqstr_r r6)r9rs rtest_character_assignmentz&TestIndexing.test_character_assignmentsihvS)))!!A3q628G3#?#?#?@@@4yD      rrTFrnumr( original_ndimrBc$tjd|z}tjt5||f|zdddn #1swxYwYtjt5d||f|z<ddddS#1swxYwYdS)Nr'rL)r5rpytestraisesr7)r9rrIrKrs rtest_too_many_advanced_indicesz+TestIndexing.test_too_many_advanced_indices(sgd]*++ ]: & &  3                 ]: & & % %"$C3  % % % % % % % % % % % % % % % % % %s# A  AA. BB  B z no threading)reasoncddlm}tjdg}tjd|fgdz}tjd|fgdz}tjd|dddftjfd|d fd td D}|D]}| j|usJdS) Nr)ThreadPoolExecutor)f8rSr>)pr)rcxdt|dtj}||dS)NrrU)rrp)integerslenr5r)rrrngs rfuncz.funcDs1<<3s88$bg<FFD IIIIrr) max_workersc<g|]}Sr)submit).0_rrZtpes r zBTestIndexing.test_structured_advanced_indexing..Is'<<i##%%     ! Q///<<<<<<%))<<<  A HHJJJJyBrcvtjdd}t|ddgtj|d|dgt|ddgddgftjddgt t |jtdgdS)NrzrrrBr) r5r{r~rr6rr7rrr8s rtest_nontuple_ndindexz"TestIndexing.test_nontuple_ndindexOs IbMM ! !& ) )Q1vY!A$! 6 6777Q1v1v~&!Q(8(8999j!-%++?????rN)3rrrr:r]rargrlrurrrrrrrrrrrrrrrrrrrrrrrrrrr r*r7r=rBrHrMmark parametrizer5r6rOskipifr rjrlrrrrrs3:::4333>333 /// ,,,/// EEE( 4 4 40 : : :777 I I I((( 7 7 7 * * *%%%&+++###")))   HHH ===III 9 9 9 # # #   * ! ! !&&& , , , ; ; ;DGGG , + + +FFF0 @ @ @%%%!!! [W 5("(A3-- (** [URH-- [_q"g66%%76.-**% [77870@@@@@rrceZdZdZdS)TestFieldIndexingctjddg}tt|dtjtt|dgtjdS)Nr)rrTr)r5rqrrjrsr8s rrz)TestFieldIndexing.test_scalar_return_typeWs[ HR* & & 1S62:../// 1cU8RZ0011111rN)rrrrrrrrqrqVs#22222rrqc eZdZdZdZdZdZej ddddge d fd dgdd fdddgddgfgd Z d Z d Z d S)TestBroadcastedAssignmentsc|||<|Sr`r)r9rrvals rassignz!TestBroadcastedAssignments.assign`s#rctjd}tjd|d<tjd|gdddf<tjd|ddddgf<tjd|dgdgdggddgf<dS)N)rdr>)rBrdr>.rrrBr>)r5rqrr8s rtest_prepending_onesz/TestBroadcastedAssignments.test_prepending_onesds HV  ###'),,)))QQQ,wy))!!!aV) %'WY%7%7A3aS/Aq6 !"""rc |j}tj}tjd}t t |||dtjdt t |||gdftjdt t |||dgdggftjddS)Nr.r>rBrcrBr>)r>r>rB)rwr5s_rqrrrr9rwr|rs rtest_prepend_not_onez/TestBroadcastedAssignments.test_prepend_not_onens U HQKK j&!RWrwvGGGj&!R ^RWV__MMMj&!R!qc _bgg>N>NOOOOOrc R|j}tj}tjd}t t |||dtjdt t |||dtjdt t |||dddgftjdt t |||dddgftjdt t |||dgddftjddS)N)rrB.r)rrrr{)rwr5r|rqrrr}s rtest_simple_broadcasting_errorsz:TestBroadcastedAssignments.test_simple_broadcasting_errorsxs U HV  j&!RWbhv6F6FGGGj&!RWbhv6F6FGGGj&!RA3Z&9I9IJJJj&!RA3Z&9I9IJJJj&!RQQQZ&9I9IJJJJJrr.rBr>Nrcptjd}tjd}t||jdd}t jt5}|||<dddn #1swxYwYt|j |sJdS)Nrr)rdrSrrr rS) r5rqstrr)replacerMrNrvalueendswith)r9rvaluesr shape_stres r*test_broadcast_error_reports_correct_shapezETestBroadcastedAssignments.test_broadcast_error_reports_correct_shapes *%%h''E ())11#r:: ]: & & !CJ               17||$$Y///////s0BB Bctjd}gd|dgdgdgggdf<t|ddddfgdkdS)Nrr>rdrSrrBr>rrd)r5rqrrr8s rtest_index_is_largerz/TestBroadcastedAssignments.test_index_is_largersm HV  (1 A3aS/999 $%2A2rr6iii',,../////rc tjd}tjddddf}tjdddd}|||<t|ddd|kdS)Nrrr)r5rqr{rr)r9rrrs rtest_broadcast_subspacez2TestBroadcastedAssignments.test_broadcast_subspacesz HZ  IcNN111T6 " IcNN44R4 !44R4A""$$%%%%%r)rrrrwryr~rrMrmrnrrrrrrrrtrt_s888PPP K K K [W 1a&%%++ &VS!  1a&1a& !'#$$ 0 0 $$ 0000&&&&&rrtc eZdZdZdZdZdS)TestSubclassescGddtj}tjd}||}|dd}t t ||ut |j|ut||dd|gd}t t ||ut |j|ut t |jtjut||gdt|j|gd||dk}t t ||ut |j|ut t |jtjut|||dkt|j||dkdS)NceZdZdS)+TestSubclasses.test_basic..SubClassNr$rrrrrr&rrrrdrr)r5rsr{rrrrrir )r9rrrts_slices_fancys_bools r test_basiczTestSubclasses.test_basics      rz    IaLL FF8  BQB%W )*** !"""7AbqbE***III,W )*** A%&&&W\""bj01117AiiiL1117<9996661q5V ())) 1$%%%V[!!RZ/00061QU8,,,6;!a%11111rcGddtj}tjd}||}d|j_|gd}t |jjdS)NceZdZdS)8TestSubclasses.test_fancy_on_read_only..SubClassNr$rrrrrr&rrrFr)r5rsr{rrrr)r9rrrtrs rtest_fancy_on_read_onlyz&TestSubclasses.test_fancy_on_read_onlys~     rz    IaLL FF8  !III, '(((((rcGddtj}tjd|}|dd}t |j|t |j||gd}t |j|t |j|||dk}t |j|t |j|dS)NceZdZdZdS)=TestSubclasses.test_finalize_gets_full_info..SubClasscFtj||_||_dSr`)r5r6finalize_statusrrs rrzPTestSubclasses.test_finalize_gets_full_info..SubClass.__array_finalize__s')x~~$rNrrrrrrs#     rrrwrdr?r)r5rsr{rr rr)r9rrtnew_ss rtest_finalize_gets_full_infoz+TestSubclasses.test_finalize_gets_full_infos     rz    IbMM  x ( ("1"50%88859a((())) 50%88859a(((!a%50%88859a(((((rN)rrrrrrrrrrrsA222: ) ) ))))))rrceZdZdZdS)TestFancyIndexingCastc d}tj|t}d|d<tj|}tjdg||<t |ddt tj|jdgdgftjdgt |ddt tj|j|tjdgt |dddS) N)r?TrErBry@?r>y?) r5rqr|rr6rr ComplexWarningr)r9r) bool_index zero_arrays rtest_boolean_index_cast_assignz4TestFancyIndexingCast.test_boolean_index_cast_assignsXe__++D11  4Xe__ "$1# :Z%q))) R&+qcA3Z6(9K9K M M MZ%q))) R&+Z2$ I I IZ%q)))))rN)rrrrrrrrrs#*****rrceZdZdZdZdS)TestFancyIndexingEquivalencectjdt}|}gd|dd<gd|gd<t ||tjdtdddf}gdg|dgddf<t ||d|j}dgdgdgg|dddgf<t ||dddftjd t}|}dgd gdgd ggg|ddd f<dgd gdgd ggg|dgd f<t |||d }dgd gdgd ggg|dgd f<t ||dS)Nrro)rBrBr>rdrdrrrBr)rdrSrr>rS.F)r5r{rrr rr)r9rrrcmp_arrs rtest_object_assignz/TestFancyIndexingEquivalence.test_object_assigns Iav & & & FFHH "1"$}}))) 1a    Iav & & &tQQQw /#mm_1#rr' 1ad### CcE7QC("1"qc' 1a1g&&&giv...((**S1#sQC01C#sQC!-.QCH 3(((hhsmm#sQC!-.QCH 3(((((rctjd}|}tjgd|dd<tjgd|gd<t ||tjddddf}tjgdg|dgddf<t ||ddS)Nr)2-3-1rd)rrr)rr>rBr)r5r{rr6r rs rtest_cast_equivalencez2TestFancyIndexingEquivalence.test_cast_equivalences IaLL FFHH***++"1"x 1 1 122))) 1a    IaLLqqq !X0001221#rr' 1ad#####rN)rrrrrrrrrrs3)))@ $ $ $ $ $rrcBeZdZdZdZdZdZdZdZdZ dZ d Z d S) TestMultiIndexingAutomateda: These tests use code to mimic the C-Code indexing for selection. NOTE: * This still lacks tests for complex item setting. * If you change behavior of indexing, you might want to modify these tests to try more combinations. * Behavior was written to match numpy version 1.8. (though a first version matched 1.7.) * Only tuple indices are supported by the mimicking code. (and tested as of writing this) * Error types should match most of the time as long as there is only one error. For multiple errors, what gets raised will usually not be the same one. They are *not* tested. Update 2016-11-30: It is probably not worth maintaining this test indefinitely and it can be dropped if maintenance becomes a burden. c&tjtjgddddd|_tjd|_dtdtjgd tjd d gd d ggtjd d gd d gggtd dd tdddtdddtdddtjdtj tjgdtjd gdgdggtjddgddggtj d tjd dgtj tjdgdzttjddgg|_tdddgtjd gdg|_tdddg|_dS)N)rdrBrrrdrBrr)rdrrrskipr)TFFTFr>rrSr)rrBrBro)rrBrrrrL)r5r{prodr~remptyrrr6rrrp newbyteorderrrqintcomplex_indicessimple_indices fill_indicesrs r setup_methodz'TestMultiIndexingAutomated.setup_method>s27<<<001199!Q1EE,'' &  H))) * * HtUmeT]3 4 4 Hu~u~67 8 8 "aOO !Q   !R   $b ! ! HYbg . . . HZZZ HqcA3_ % % Hq"g1v&bhv.>.>.K.K.M.M N N N HaWBG , , , HaSV3 ' ' ' Hb"X  ' * (rA3$8H8H%'#4..2rc t|}g}d}d}d}d}d}d} t|D])\} } |  t| tjr9| jt kr)d}| jdkrt|| jz }|| jz }\| tur | | } jtt| tr|dz }t| tjs= tj | tj } n#t$rtwxYw| || <n/| jjdkr| jjdkrtd | jdkrd}|dz }|dz }+|j|z dkrt|dkrd|vr||fS| $tddg|j|z z|| | dz<t|D]\} } t| trDtj| |j| } |d | g_| l|d tj dgtj g||jd| d z|j| dz}t| tjr:| jt kr)| j|j| | | jzkrt tjtj| |j| | | jzd } nH#t.$r;d}tj dg| ztj } YnwxYw| jdkrh||jd| tj|j| | | jzfz|j| | jzdz}| } n tj| dd|d }nD#t.$rtdwxYwtj| dd|d}nt|&|'| } ||jd| |jz|j| dzdz}n#t$rtwxYw| |jz } |&| d| }| dz } ||fS)aMimic multi dimensional indexing. Parameters ---------- arr : ndarray Array to be indexed. indices : tuple of index objects Returns ------- out : ndarray An array equivalent to the indexing operation (but always a copy). `arr[indices]` should be identical. no_copy : bool Whether the indexing operation requires a copy. If this is `True`, `np.may_share_memory(arr, arr[indices])` should be `True` (with some exceptions for scalars and possibly 0-d arrays). Notes ----- While the function may mostly match the errors of normal indexing this is generally not the case. TrFNrBrorrz;arrays used as indices must be of integer (or boolean) typertnr'raise)moderrzinvalid index into 0-sizedwraprx)(list enumeraterjr5rsrprrfr7rrr6rrkindrr{indicesr)appendr~ravel_multi_indexnonzero ExceptionsumrrXrfinsertextendremove transposer|r broadcastrzipanytakeravel)r9rr in_indicesno_copy num_fancy fancy_dimerror_unless_broadcast_to_emptyrf ellipsis_posrrax flat_indx new_indicesaxes fancy_axesniai orig_shape orig_slicer_indx_sizemis r_get_multi_indexz+TestMultiIndexingAutomated._get_multi_index[s& 0']]   +0'  ,,$ $ GAt|$ ++  d0B0B9>>$$ !TY& x'#$L  $&&  dBJ// > %8D888DD!%%%$$% $ 1 C''DJOs,B,B "=>>>yA~~ AID NII 8d?Q     199Z//88::w& &  #8=dD8I8I7J8;48IJ|LN2 3"*--; ,; ,HB$&& y$,,sy}"="=>T{+++RXqc%A%A%ABCCCkk39SbS>D#839RSS>#IKK$ ++ ) d0B0B:2bl?!;;;$$H " 4RZ5E5E$'IbDIo$>W!N!N!NII HHH6:3 "!TXXZZrw G G GIIIH 9>>++sy"~%'WSYr"TY,-G%H%H$J(K$'Iblmm$<(=??C%DD %$9>>sy},, " ~0E0E((yA~~ 39R=((DSYr]?,B,B$$G q  BKNc)),&& ""4(((( Q T{++++ q===!!!!*Kch((DJ   q3% ( ( (BB $ $a7c>>N))$qrr(333#B!GB#BSabb]](:;;(("))"--- Bc$ii!m#!G#-*t"35C6 6 DAw#~~t99>> Y '2DH +=(=> kk39SbS>')wz':':'A'A#'F'F&H$I&)iSabb]]0B0C0C&D$EGG lDH-8q==6)(((+DHj(A(A11 u :??$6%5.111RVEUFN5K5K1&0 01tABBx==C OO33wz**a//K!#!5d122h ;B"D"D"DBB(KKK#--I"J"JJK  1$qrr(J7=???%$hhrxxzzh33%++sy"~*,((3*-)BqDEE*:(;==CC"%%%$$%bg ((47(,,C !GBBG|s7 C55D#>L""AM'&M']66^$=`""`4c |||\}}n#t$r}trtj|}t t ||j|t t ||j|dtr"t|tj|Yd}~dSd}~wwxYw| ||||dS)aCheck a multi index item getting and simple setting. Parameters ---------- arr : ndarray Array to be indexed, must be a reshaped arange. index : tuple of indexing objects Index being tested. rN rrr rrrrrrrr_compare_index_resultr9rr mimic_getrr prev_refcounts r_check_multi_indexz-TestMultiIndexingAutomated._check_multi_indexJs !%!6!6sE!B!B Iww    5 # 4 4 $q''3?E : : : $q''3?E1 = = = B]COC,@,@AAA FFFFF  ""3y'BBBBBs B<B B77B<c |||f\}}n#t$r}trtj|}t t ||j|t t ||j|dtr"t|tj|Yd}~dSd}~wwxYw| ||||dS)aWCheck a single index item getting and simple setting. Parameters ---------- arr : ndarray Array to be indexed, must be an arange. index : indexing object Index being tested. Must be a single index and not a tuple of indexing objects (see also `_check_multi_index`). rNrrs r_check_single_indexz.TestMultiIndexingAutomated._check_single_indexbs !%!6!6sUH!E!E Iww    5 # 4 4 $q''3?E : : : $q''3?E1 = = = B]COC,@,@AAA FFFFF  ""3y'BBBBBs B=B B88B=cz|}||}t|||jdkr|jdkrtt t j|||ktrG|r#ttj |dn"ttj |d|}|dz||<|jdkrdS|r"|jdkr|dz }t||dS|j | xxdz cc<t||dS)z4Compare mimicked result to indexing result. rrdr>rN) rr rrfrr5may_share_memoryr rrrflatr)r9rrrr indexed_arrrs rrz0TestMultiIndexingAutomated._compare_index_resultzsOhhjj%j ; 222  q [%5%:%: B' S99WD E E E :: !5!5q9999 !5!5q999 HHJJt#% 6Q;; F  {'1,, 4 K sA & & & F ""$$%%%-%%%3"""""rc@tjd}t|tjddd|tjd<t|d||jtj|jt f||jtj|jt df||jtj|jt dfdS)NrTrBror)N.)r5r6rrr zeros_likerr8s r test_booleanz'TestMultiIndexingAutomated.test_booleans HQKKQrx~~&***"(4..Q  FR]466668 : : :  FR]46666v>@ B B B  FR]46666yAC E E E E Erc ptj5tjddttjddtjddD]}|j|j|j|jg}|j||<t|D]S}tfd|D}| |j || |j |T dddn #1swxYwY| |j d| |j dtt|j jdtt|j jddtt|j jddd gddftt|j jddd gddfddS) NerrorrSc8t|to|dkS)Nr)rjr)rs risskipz8TestMultiIndexingAutomated.test_multidim..isskips!#s++=v =r)rr>rdc32K|]}| |VdSr`r)r^rrs r z;TestMultiIndexingAutomated.test_multidim..s0!D!D&&))!D!!D!D!D!D!D!Dr)rrrr)rrrrrrrB)warningscatch_warningsfilterwarningsDeprecationWarningr5VisibleDeprecationWarningrrrrr(rrrrr7rr)r9 simple_postocheckrrs @r test_multidimz(TestMultiIndexingAutomated.test_multidims  $ & & ; ;  #GR1C D D D  #GR1M N N N > > >( ; ; ,d.B,d.?A&*&9 #$g.;;E!!D!D!D!DU!D!D!DDDE++DFE:::++DFE::::;  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;&  555  555j$&"4oFFFj$&"4oqIIIj$&"4q!aS!Q6GHHHj$&"4q!aS!Q6GKKKKKsCC''C+.C+cntjd}|jD]}|||dS)Nrw)r5r{rr)r9rrs rtest_1dz"TestMultiIndexingAutomated.test_1dsD IbMM) / /E  $ $Q . . . . / /rN) rrr__doc__rrrrrrrrrrrrr(s*333:mmm^CCC0CCC0###@EEE"LLL</////rrc0eZdZdZdZdZdZdZdZdS)TestFloatNonIntegerArgumentz These test that ``TypeError`` is raised when you try to use non-integers as arguments to for indexing and slicing e.g. ``a[0.0:5]`` and ``a[0.5]``, or other functions like ``array.reshape(1., -1)``. ctjdggg}|tjdg|ddg|ddddgf|dddddf|ddddddfdS)Nrrr r8s rtest_valid_indexingz/TestFloatNonIntegerArgument.test_valid_indexings HseW   "(A3-- 1a&  !!!aV)  !!!Qqqq&  !!!AAAaaa%rctjdggg}|dd|dd|dd|dd|ddd|ddd|ddd|ddddS)Nrrr>rBr r8s rtest_valid_slicingz.TestFloatNonIntegerArgument.test_valid_slicings HseW   """ !"" "1" !A# ##A# !$Q$ $1Q$ !Aa%rc tjdgg}tttj|dtttj|tjddftttj|dgdtttj|dgtjddS)Nr)rLrLrrLrr)r5r6rr\r~rrr8s r test_non_integer_argument_errorsz.mults q5LrrBrd)rr\r5r rk)r9rs r(test_non_integer_sequence_multiplicationzDTestFloatNonIntegerArgument.test_non_integer_sequence_multiplicationsS    isBIaLL999 aS"'!**rc6tjd}tttj|dtttj|dtttj|dtttj|ddS)N)rdrdrd?)r!rB)rBg@)g?g333333?)r5rqrr\min)r9rs rtest_reduce_axis_float_indexz8TestFloatNonIntegerArgument.test_reduce_axis_float_indexso HW  iC000iH555iH555iI66666rN) rrrrrrrrr#rrrrrsl    BBB77777rrc eZdZdZdZdZdS)TestBooleanIndexingctjdggg}tttj|dtttj|tjddfttt jtjdttt jtj tttj |dgdfdS)NrB)TrTrrF)args) r5r6rr\r~roperatorrr r True_rr8s r test_bool_as_int_argument_errorsz4TestBooleanIndexing.test_bool_as_int_argument_errorss HseW  iQ ;;;iQ$0DEEE i$@@@'BBBiA3??????rctjddjdksJdddgdddgdggfjdksJttfd dS) Nr)FT.)rr>rdrSTrrBr>rcdddgdfS)NFrrB.rrsrrzETestBooleanIndexing.test_boolean_indexing_weirdness..s!EAq63,>*?r)r5rr)rr7r8s @rtest_boolean_indexing_weirdnessz3TestBooleanIndexing.test_boolean_indexing_weirdnesss| GI  !"(L88881vtTA3!56<FFFFj"?"?"?"?@@@@@rctjdtjdgdzgttdfdtjdgdzdgzgttdfdtjdgd zgttdfd tjd tjdgdgggttd fd dS)N)rdrdFrztboolean index did not match indexed array along dimension 0; dimension is 3 but corresponding boolean dimension is 1cSr`r)ridx1srrzETestBooleanIndexing.test_boolean_indexing_fast_path..# AdGrrTcSr`r)ridx2srrzETestBooleanIndexing.test_boolean_indexing_fast_path..*r1rrwcSr`r)ridx3srrzETestBooleanIndexing.test_boolean_indexing_fast_path..1r1r)rBrBr>ztboolean index did not match indexed array along dimension 1; dimension is 1 but corresponding boolean dimension is 2cSr`r)rrsrrzETestBooleanIndexing.test_boolean_indexing_fast_path..9s AcFr)r5rr6rr7)r9rrr0r3r5s @@@@@rtest_boolean_indexing_fast_pathz3TestBooleanIndexing.test_boolean_indexing_fast_paths3 GFOOx% $$J F OOOO    x%dV+,--J F OOOO    x% %%J F OOOO    GI  h$%)*++J F NNNN     rN)rrrr*r-r7rrrr%r%sG @ @ @AAA     rr%ceZdZdZdZdS)TestArrayToIndexDeprecationz7Creating an index from array not 0-D is an error. c&tjdggg}tttjtjdgtttj||dftttj|dg|dS)NrBrr)r5r6rr\r(rr~rr8s rtest_array_to_index_errorz5TestArrayToIndexDeprecation.test_array_to_index_error@so HseW  i1#???iQB888i!aS!44444rN)rrrrr;rrrr9r9<s-55555rr9ceZdZdZdZdS)TestNonIntegerArrayLikezTests that array_likes only valid if can safely cast to integer. For instance, lists give IndexError when they cannot be safely cast to an integer. ctjd}tt|jddgtt|jddgf|gdS)Nrwr!g?1r)r5r{rr7rr8s rrz"TestNonIntegerArrayLike.test_basicPs[ IbMMj!-#s<<<j!-3*??? brNrrrrrrrrr=r=Is- rr=ceZdZdZdZdS)TestMultipleEllipsisErrorz/An index can only have a single ellipsis. ctjdttfdttjt fdzfttjt fdzfdS)NrwcdS)N)..rrsrrz6TestMultipleEllipsisError.test_basic..`s !H+rr>rd)r5r{rr7rrr8s @rrz$TestMultipleEllipsisError.test_basic^sj IbMMj"5"5"5"5666j!-8+/1CDDDj!-8+/1CDDDDDrNr@rrrrBrBZs2EEEEErrBceZdZdZdZdS)TestCApiAccessctjtd}tt|t jddtt|t jddtt|t jddtt|t jddtt|t jddt jd}t|d||d| dd }t|d ||d dS) NrrrwrrwrwrSrr>) functoolspartialrrr7r5rr{r r~)r9 subscriptrs r test_getitemzTestCApiAccess.test_getitemfs%na88  j)RWR[[!<<<j)RWR[["===j)RWR[[#>>>j)RWX->->CCCj)RWX->->DDD IbMM1Q41a111 IIaOO1R5))Ar"2"233333rctjtd}tt|t jddtt|t jdddtt|t jdddtt|t jdddtt|t jdddtt|t jdddt jd}||ddt|ddk| d d }||ddt|d ddgdS) NrBrwrrrrHrIrSrr>r) rKrLrrrr5rr7r{rr~r )r9rwrs r test_setitemzTestCApiAccess.test_setitemvsF">155 j&"'"++q999j&"'"++q!<<<j&"'"++r1===j&"'"++sA>>>j&"'(*;*;RCCCj&"'(*;*;S!DDD IbMMq!R!  IIaOOq!R1R52r(+++++rN)rrrrNrPrrrrFrFes2444 ,,,,,rrF)!rr rKr(rMnumpyr5numpy.core._multiarray_testsr itertoolsr numpy.testingrrrrr r r r rrqrtrrrrrr%r9r=rBrFrrrrUs   777777 B @B @B @B @B @B @B @B @J22222222@&@&@&@&@&@&@&@&F=)=)=)=)=)=)=)=)@********,-$-$-$-$-$-$-$-$`d/d/d/d/d/d/d/d/L 4747474747474747n44444444n 5 5 5 5 5 5 5 5"EEEEEEEE$,$,$,$,$,$,$,$,$,$,r