+
    :iM                         ^ RI t ^ RIt^ RIt^ RIt^ RIHtHtHt ^ RI	H
t
 ^ RIHt ^ RIHtHt R tR tR tR	 t ! R
 R]]4      t ! R R]]4      t]R8X  d   ]P.                  ! 4        R# R# )    N)jittypeofnjit)types)TypingError)MemoryLeakMixinTestCasec                     W,          # N )abs   &&]/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_fancy_indexing.pygetitem_usecaser      s	    4K    c                     W V&   R # r   r   )r   idxr   s   &&&r   setitem_usecaser      s	    cFr   c                 .    \         P                  ! W4      # r   nptake)Aindicess   &&r   np_taker      s    771r   c                 2    \         P                  ! WVR 7      # )axisr   )r   r   r   s   &&&r   np_take_kwsr      s    771D))r   c                      a  ] tR t^t o RR ltRR ltRR ltRR ltR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tRtV tR# )TestFancyIndexingc                    \         P                  ! ^ V^,
          R.4      .pV'       d@   V\         P                  ! ^ ^V^,
          .4      \         P                  ! . RO4      .,          pV# )r   )r      r$   r   )r   int16uint16bool_)selfNmanychoicess   &&& r   generate_advanced_indices+TestFancyIndexing.generate_advanced_indices   sU    88QArN+,		1aQ-0.0 0Gr   c           
   #    "   V'       dc   \        RRR4      \        ^V^,
          R4      \        ^ R^4      \        V^,
          RR4      \        V) ^,           RR4      \        RV) R4      .pM"\        ^ V^,
          R4      \        RV) R4      .p\        V^,           4       F%  p\        P                  ! WER7       F  pVx  K	  	  K'  	  R# 5i)z7
Generate basic index tuples with 0 to *maxdim* items.
N)repeatr#   )slicerange	itertoolsproduct)r(   r)   maxdimr*   r+   ndimtups   &&&&   r   generate_basic_index_tuples-TestFancyIndexing.generate_basic_index_tuples"   s      T4.QAt,Qa(QUD"-aR!VR.R!R(G QAt,R!R(*G&1*%D ((>	 ? &s   C
Cc              #     "   \        V P                  WR7      4      p\        V^,           4       FD  pV P                  W^,
          V4       F$  pV F  pVRV V3,           WeR ,           x  K  	  K&  	  KF  	  R# 5i)zj
Generate advanced index tuples by generating basic index tuples
and adding a single advanced index item.
r*   N)listr,   r2   r8   )r(   r)   r5   r*   r+   ir7   advs   &&&&    r   generate_advanced_index_tuples0TestFancyIndexing.generate_advanced_index_tuples9   st      t55a5CDvz"A77A:tL"Cbq'SF*SW44 # M #s   A8A:c              #     "   V P                  WV4       FA  p\        \        V4      ^,           4       F  pVRV \        3,           WER ,           x  K!  	  KC  	  R# 5i)zZ
Same as generate_advanced_index_tuples(), but also insert an
ellipsis at various points.
N)r?   r2   lenEllipsis)r(   r)   r5   r*   r7   r=   s   &&&&  r   ,generate_advanced_index_tuples_with_ellipsis>TestFancyIndexing.generate_advanced_index_tuples_with_ellipsisF   sR     
 66q$GC3s8a<("1g+c"g55 ) Hs   AAc                6   \         p\        R R7      ! V4      pVP                  4       pVP                  ;'       g    TpV F  pV! W4      pVP                  VJg   Q hV! W4      p	V P	                  V	P
                  VP
                  4       V P	                  V	P                  VP                  4       \        P                  P                  W4       V	P                  '       g   K  V	P                  ^*4       \        P                  P                  W4       K  	  R# TnopythonN)r   r   copybaseassertEqualshapedtyper   testingassert_equalsizefill)
r(   arrr   pyfunccfuncorig	orig_baseindexexpectedgots
   &&&       r   check_getitem_indices'TestFancyIndexing.check_getitem_indicesO   s     T"6*xxzHHOO	Ec)H ==	111#C SYY7SYY7JJ##C2xxx

''2 r   c                    ^p^p\         P                  ! W,          4      P                  V3V,          4      P                  \         P                  4      pV P                  W4      pV P                  W44       R#    N)r   arangereshapeastypeint32r?   r[   r(   r)   r6   rS   r   s   &    r   test_getitem_tuple$TestFancyIndexing.test_getitem_tuplee   sZ    ii	"**A4$;7>>rxxH55a>""30r   c                    ^p^p\         P                  ! W,          4      P                  V3V,          4      P                  \         P                  4      pV P                  WRR7      pV P                  W44       R# r_   Fr;   N)r   r`   ra   rb   rc   rD   r[   rd   s   &    r   test_getitem_tuple_and_ellipsis1TestFancyIndexing.test_getitem_tuple_and_ellipsisn   h    ii	"**A4$;7>>rxxHCCAIN D P 	""30r   c                    \        R R7      R 4       p\        P                  ! ^4      pV! V^4       V P                  V^ ,          V^,          4       R# )TrH   c                     V R,          V R&   R# ).N).r$   ).r   r   )rS   vs   &&r   foo7TestFancyIndexing.test_ellipsis_getsetitem.<locals>.fooz   s    f+CKr   N)r   r   r`   rL   )r(   ro   rS   s   &  r   test_ellipsis_getsetitem*TestFancyIndexing.test_ellipsis_getsetitemx   sI    	d		& 
	& iilCQQ(r   c                    ^p^p\         P                  ! W,          4      P                  V3V,          4      P                  \         P                  4      pV P                  V4      pV P                  W44       R# r^   )r   r`   ra   rb   rc   r,   r[   rd   s   &    r   test_getitem_array$TestFancyIndexing.test_getitem_array   sZ    ii	"**A4$;7>>rxxH003""30r   c                   \         p\        R R7      ! V4      pV F  pW,          p\        P                  ! V4      p\        P                  ! V4      pV! WuV4       V! WV4       V P	                  VP
                  VP
                  4       V P	                  VP                  VP                  4       \        P                  P                  W4       K  	  R# rG   )	r   r   r   
zeros_likerL   rM   rN   rO   rP   )	r(   rS   r   rT   rU   rX   srcrY   rZ   s	   &&&      r   check_setitem_indices'TestFancyIndexing.check_setitem_indices   s     T"6*E*C}}S)H--$C8C(#c" SYY7SYY7JJ##C2 r   c                    ^p^p\         P                  ! W,          4      P                  V3V,          4      P                  \         P                  4      pV P                  W4      pV P                  W44       R# r^   )r   r`   ra   rb   rc   r?   ry   rd   s   &    r   test_setitem_tuple$TestFancyIndexing.test_setitem_tuple   sZ    ii	"**A4$;7>>rxxH55a>""30r   c                    ^p^p\         P                  ! W,          4      P                  V3V,          4      P                  \         P                  4      pV P                  WRR7      pV P                  W44       R# rh   )r   r`   ra   rb   rc   rD   ry   rd   s   &    r   test_setitem_tuple_and_ellipsis1TestFancyIndexing.test_setitem_tuple_and_ellipsis   rk   r   c                    ^p^p\         P                  ! W,          4      P                  V3V,          4      P                  \         P                  4      ^
,           pV P                  V4      pV P                  W44       R# r^   )r   r`   ra   rb   rc   r,   ry   rd   s   &    r   test_setitem_array$TestFancyIndexing.test_setitem_array   s_    ii	"**A4$;7>>rxxH2M003""30r   c                   \         p\        R R7      ! V4      p\        P                  ! ^4      \        P                  ! R4      3\        P                  ! ^4      \        P                  ! ^4      3\        P                  ! ^\        P
                  R7      \        P                  ! ^\        P
                  R7      3\        P                  ! ^\        P                  R7      \        P                  ! ^\        P
                  R7      3\        P                  ! ^RR7      \        P                  ! R4      3\        P                  ! R
RR7      \        P                  ! R4      3\        P                  ! . RORR7      \        P                  ! RRR7      3\        P                  ! ^\        R7      \        P                  ! R\        R7      3.pV F:  w  rEVP                  4       pV! V^ V4       V! V^ V4       V P                  WF4       K<  	  R	# )TrH   gQ	@rN   z<U3abcr   WXYZz<U4N)   )r   defghiy       @      @)
r   r   r   zerosarrayint64float64complexrJ   assertPreciseEqual)r(   rT   rU   inpsx1rn   x2s   &      r   test_setitem_0d!TestFancyIndexing.test_setitem_0d   sO    T"6* XXa["((4.)XXa["((1+&XXarxx("((1BHH*EFXXarzz*BHHQbhh,GHXXau%rxx7XXd%("((3-8XX)7XXfE*,XXaw'$g)FG

 EBB2q!"aO##B+	 r   c                t  a aa \         o\        R R7      ! S4      oVVV 3R lp. pVP                  ^4       VP                  \        P                  ! . RO4      4       VP                  \        P                  ! ^.^..^.^...4      4       VP                  . RO4       VP                  R4       VP                  R4       \        P
                  \        P                  3 F;  p\        P                  ! ^VR7      P                  R	4      pV F  pV! WE4       K  	  K=  	  . R
Op\        P                  ! . RO4      pV! Wv4       XP                  pW) ^,
          \        P                  ! V4      \        P                  ! V) ^,
          4      V.V) ^,
          ..p	V	 F1  p
S P                  \        4      ;_uu_ 4        S! WJ4       RRR4       K3  	  S P                  \        4      ;_uu_ 4        S! VR.4       RRR4       S P                  4        R#   + '       g   i     K  ; i  + '       g   i     L6; i)TrH   c                    < S! W4      pS! W4      pSP                  W#4       \        VR 4      '       d+   SP                  VP                  VP                  8H  4       R# R# )orderN)r   hasattrrL   r   )rS   indrY   rZ   rU   rT   r(   s   &&  r   check-TestFancyIndexing.test_np_take.<locals>.check   sQ    c'H/C##H2x))  399!<= *r   r   Ng333333?)r$      r$      r   r$   r   r$   )r   )r   r      )r_   r   )r$   r   r_   )r$   r   r   r_   r   )r   r   appendr   r   r   
complex128r`   ra   rQ   assertRaises
IndexErrorr   disable_leak_check)r(   r   test_indicesdtr   r   r   r   szAillegal_indicesxrU   rT   s   f          @@r   test_np_takeTestFancyIndexing.test_np_take   s   T"6*	> ABHH%567BHHsQCjA3+%>?@,-I&3488R]]+B		"B'//7A#a $ , HH_%a ffq"((3-3$(9K5C4!8*. A"":..a /. !
 {++!cUO , 	! /.. ,+s   <	H.H'H$'H7	c           
        \         p\        R R7      ! V4      p\        P                  ! R. RO4      pV! \        P
                  ! . RO. RO. RO.4      3\        P
                  ! . R	O4      \        P
                  ! . R
O4      \        P
                  ! ^ .4      ^RR3RR7      V! \        P                  ! ^4      \        P
                  ! ^{.4      3^ R\        P                  ! ^ .4      3RR7      V! \        P                  ! R4      3RRR7      3pV FT  w  rVpV FH  pV F?  p	V F6  p
\        P                  ! WV
R7      pV! WV
R7      pV P                  W4       K8  	  KA  	  KJ  	  KV  	  R# )TrH   inputs)arraysr   r   r   N)r$   r   r   )r_   r      )      	   )r   r   r$   )r$   r   r$   r   r$   )r   )r   r$   )r   r$   r0   )
   r$   r   r$      r$      )r$   r   r   )r   r   collections
namedtupler   r   r`   asarrayonesr   r   )r(   rT   rU   nttriplesr   r   r   r   indiceaxrY   rZ   s   &            r   test_np_take_axis#TestFancyIndexing.test_np_take_axis   sR   T"6*##H.KL HHiI>? HHY'HH_-HHaSM   IIaLHHcUO
 JJsO
  GG56 7$
L &-!FT%F"#%775r#B#E;//> # &   &-r   c                Z   \        R R7      ! \        4      p\        P                  ! ^	4      P	                  ^^4      pRp\        P
                  ! . RO4      pV P                  \        V4      ;_uu_ 4        V! W$^R7       RRR4       V P                  4        R#   + '       g   i     L"; i)TrH   z0axis 2 is out of bounds for array of dimension 2r   N)r   r$   r   )	r   r   r   r`   ra   r   assertRaisesRegex
ValueErrorr   )r(   rU   rS   msgr   s   &    r   test_np_take_axis_exception-TestFancyIndexing.test_np_take_axis_exception4  sw    T";/iil""1a(@((9%##J44#Q' 5 	! 54s   5BB*	c                    \         R  4       p\         R 4       p\        P                  ! R4      P                  R4      p\	        R4      \        P
                  3\        P
                  \	        R4      3\	        ^4      \        P
                  \        P                  ! . RO4      3\        P
                  \        P                  ! . RO4      \	        R4      3\	        ^4      \        \        P
                  \        P                  ! . RO4      3\        P                  ! . RO4      \        P
                  \        3\        P
                  \	        ^4      \        P
                  \        P                  ! . RO4      3\        P                  ! . RO4      \        R\        P
                  3\        P
                  \	        ^4      \        \        P
                  \        P                  ! . RO4      3\        P                  ! . RO4      \        P
                  \        P
                  \        3\        P
                  \        P                  ! . RO4      \        P
                  \        3\	        ^4      \        P                  ! . RO4      \        P
                  R3\        P
                  \        P                  ! . RO4      \        R3.pVP                  pTpVP                  pTpV F  p	V! W94      p
V! W94      p\        P                  P                  W4       \        P                  ! V4      pW9,          pV! VP                  4       W4      p
V! VP                  4       W4      p\        P                  P                  W4       K  	  R# )c                     W,          # r   r   )r   r   s   &&r   np_new_axis_getitem;TestFancyIndexing.test_newaxis.<locals>.np_new_axis_getitem?  s	    6Mr   c                     W V&   V # r   r   )r   r   items   &&&r   np_new_axis_setitem;TestFancyIndexing.test_newaxis.<locals>.np_new_axis_setitemC  s    cFHr   NiH  )r_   r   r   r   )r$   r   r$   )r   r   r`   ra   r1   newaxisr   rC   py_funcrO   rP   rw   rJ   )r(   r   r   r   	idx_casespyfunc_getitemcfunc_getitempyfunc_setitemcfunc_setitemr   rY   rZ   a_emptyr   s   &             r   test_newaxisTestFancyIndexing.test_newaxis>  s>   		 
	 
	 
	 IIm$,,\:4["**%ZZt%1Xrzz288I#67ZZ),eDk:1XxRXXi-@AXXi "**h7ZZq2::rxx	/BCXXi (D"**=ZZq8RZZ)9LMXXi "**bjj(CZZ),bjj(C1Xrxx	*BJJ=ZZ),h=
	 -44+,44+C%a-H'CJJ##H2mmA&G6D%gllnc@H:CJJ##H2 r   r   N)T)__name__
__module____qualname____firstlineno__r,   r8   r?   rD   r[   re   ri   rq   rt   ry   r|   r   r   r   r   r   r   r   __static_attributes____classdictcell__)__classdict__s   @r   r!   r!      sf     .563,11)13 111,.2"h2?j"*3 *3r   r!   c                   4  a a ] tR tRt oRt]! ^^4      ^]P                  ! . RO4      ^3^]P                  ! . RO4      ]! R4      ]! ^4      3]^]P                  ! . RO4      3]P                  ! . RO4      ^]3]^]P                  ! . RO4      ^]! ^^4      3]P                  ! . RO4      ^]]! ^^4      3]! ^^4      ^]P                  ! . RO4      ^3^]P                  ! . RO4      ]! R4      ]! ^4      3.t	V 3R lt
R tR tR tR tR tR	 tR
tVtV ;t# )TestFancyIndexingMultiDimik  Nc                l   < \         SV `  4        \        P                  P	                  ^4      V n        R# )r$   N)supersetUpr   randomdefault_rngrng)r(   	__class__s   &r   r   TestFancyIndexingMultiDim.setUp  s"    99((+r   c                   \        V P                  4      p\        R R R 4      \        ^V^,
          R 4      \        ^ R ^4      \        V^,
          R R4      \        V) ^,           RR 4      \        RV) R4      \        ^ V^,
          R 4      \        RV) R4      .p\        \        P
                  ! V4      4      p. p^p\        V4       F  pV P                  P                  ^ ^^R7      pV P                  P                  V^R7      P                  4       pV P                  P                  ^4      p	WxV	&   VP                  \        V4      4       K  	  \        V4       F  pV P                  P                  ^ ^^R7      pV P                  P                  V^R7      P                  4       pV P                  P                  ^4      p	WxV	&   VP                  \        V4      4       K  	  \        V4       F  pV P                  P                  ^ ^^R7      pV P                  P                  V^R7      P                  4       pV P                  P                  ^^RR7      p	WxV	^ ,          &   \        W^,          &   VP                  \        V4      4       K  	  \        V4       F  pV P                  P                  ^ ^^R7      pV P                  P                  V^R7      P                  4       pV P                  P                  ^4      p	V P                  V	,          p
\        P                  ! V P                  P                  ^V
R7      \        R7      W&   VP                  \        V4      4       K  	  V# )NrQ   F)rQ   replacer   r#   r0   )minrM   r1   r<   r   r`   r2   r   integerschoicetolistr   tuplerC   r   bool)r(   r)   slice_choicesinteger_choicesr   K_	array_idxcurr_idx
_array_idxbool_arr_shapes   &          r   generate_random_indices1TestFancyIndexingMultiDim.generate_random_indices  s   

OtT40!QUD!!T1!a%r"1"q&"d#"qb"!QUD!"qb"
 ryy|, qA))!QR)8Ixx}1=DDFH+J#,Z NN5?+  qA))!QR)8IxxQ?FFHH+J#,Z NN5?+  qA))!QR)8Ixx}1=DDFH EBJ&/Z]#&.H]#NN5?+  qA))!QR)8Ixx}1=DDFH+J!ZZ
3N#%887$H  NN5?+  r   c                   \         R  4       p\        P                  P                  ^ ^VR7      pVP                  pVP
                  ;'       g    TpV! WB4      pV! WB4      pV P                  VP
                  V4       V P                  VP                  VP                  4       V P                  VP                  VP                  4       \        P                  P                  W4       V P                  \        P                  ! W4      4       R# )c                     W,          # r   r   )r   r   s   &&r   numba_get_itemGTestFancyIndexingMultiDim.check_getitem_indices.<locals>.numba_get_item  s
    :r   r   N)r   r   r   randintr   rK   assertIsNotrL   rM   rN   rO   rP   assertFalsemay_share_memory)	r(   	arr_shaperX   r   rS   get_itemrW   rY   rZ   s	   &&&      r   r[   /TestFancyIndexingMultiDim.check_getitem_indices  s    		 
	 ii2I6!))HHOO	C'S(	2 	HNN3HNN3


. 	,,S;<r   c                   \         R  4       p\        P                  P                  ^ ^VR7      pWB,          p\        P                  ! V4      p\        P                  ! V4      pVP                  WbV4       V! WrV4       V P                  VP                  VP                  4       V P                  VP                  VP                  4       \        P                  P                  Wv4       R# )c                     W V&   R # r   r   )r   r   r   s   &&&r   set_itemATestFancyIndexingMultiDim.check_setitem_indices.<locals>.set_item  s	    #Jr   r   N)r   r   r   r  rw   r   rL   rM   rN   rO   rP   )r(   r  rX   r
  rS   rx   rY   rZ   s   &&&     r   ry   /TestFancyIndexingMultiDim.check_setitem_indices  s    		 
	 ii2I6j==%mmC #.S! 	HNN3HNN3


.r   c                   V P                   P                  4       pWP                  4       ,          pV FB  pV P                  VR 7      ;_uu_ 4        V P	                  V P
                  V4       RRR4       KD  	  R#   + '       g   i     KY  ; i)r   N)indexing_casesrJ   r   subTestr[   rM   r(   r   r   s   &  r   test_getitem&TestFancyIndexingMultiDim.test_getitem  j    %%**, 	//11C#&&**4::s; '& &&&   A;;Bc                   V P                   P                  4       pWP                  4       ,          pV FB  pV P                  VR 7      ;_uu_ 4        V P	                  V P
                  V4       RRR4       KD  	  R#   + '       g   i     KY  ; ir  )r  rJ   r   r  ry   rM   r  s   &  r   test_setitem&TestFancyIndexingMultiDim.test_setitem  r  r  c           	        R ^ ^\         P                  ! ^^.^^..4      33R^ ^\         P                  ! ^^.4      \         P                  ! ^^.4      33R^ \         P                  ! ^^.4      \        R4      ^^33.pV Fl  w  r#V P                  \        4      ;_uu_ 4       pV P                  V P                  V4       RRR4       V P                  V\        XP                  4      4       Kn  	  R#   + '       g   i     L;; i)z,Multi-dimensional indices are not supported.z:Using more than one non-scalar array index is unsupported.NzUsing more than one indexing subspace is unsupported. An indexing subspace is a group of one or more consecutive indices comprising integer or array types.)
r   r   r1   r   r   r[   rM   assertInstr	exception)r(   err_idx_caseserrr   raisess   &    r   %test_unsupported_condition_exceptions?TestFancyIndexingMultiDim.test_unsupported_condition_exceptions	  s     <BHHq!fq!f-./1 JBHHaV$bhh1v&679; 1a&!5;157
 &HC"";//6**4::s; 0MMF$$% &//s   !C11D)r   )r   r   r   r   r   r   )r   r$   r   r_   r   )TFTFTFF)TFTFTF)r   r   r   r   rM   r1   r   r   rC   r  r   r   r[   ry   r  r  r   r   r   __classcell__)r   r   s   @@r   r   r   k  s      E 
q!a/2A6	
BHH[!5;a9 
1bhh{+,	+	8, 
1bhh{+Qa
;	+	8U1QZ8 
q!a	@	A	
	 
BHH<=	teAh	 #N*,>@=./(	<	< r   r   __main__)r   r3   numpyr   unittestnumbar   r   r   
numba.corer   numba.core.errorsr   numba.tests.supportr   r	   r   r   r   r   r!   r   r   mainr   r   r   <module>r+     sn        # #  ) 9*O3 O3d
t tn zMMO r   