+
    :iC                     2   R t ^ RIt^ RIHt ^ RIt^ RIt^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHtHt ^ RIHt  ! R R	]4      t ! R
 R]4      t ! R R]]4      t ! R R]4      t. ROt. ROt. ROt. ROt ! R R]4      t]R8X  d   ]P:                  ! 4        R# R# )z1
Test helper functions from numba.numpy_support.
N)product)types)NumbaNotImplementedError)TestCase)ShakeRequestError)numpy_supportc                   J   a  ] tR t^t o R tR tR tR tR tR t	R t
RtV tR	# )
TestFromDtypec           	       a a \         P                  oVV 3R lpV! R\        P                  4       V! R\        P                  4       V! R\        P                  4       V! R\        P
                  4       V! R\        P
                  4       V! R\        P                  4       V! R\        P                  4       V! R	\        P                  4       V! R
\        P                  4       V! R\        P                  4       V! R\        P                  4       V! R\        P                  4       V! R\        P                  4       V! R\        P                  4       V! R\        P                  4       V! R\        P                  4       V! R\        P                  4       V! R\        P                  4       V! R\        P                  4       V! R\        P                  4       V! R\        P                  4       V! R\        P                  4       V! R\        P                  4       V! R\        P                   4       R F=  pS P#                  S! \$        P&                  ! V4      4      \)        \        V4      4       K?  	  \*        P,                  R8X  d   RMRpR F4  pS P/                  \0        S\$        P&                  ! W4,           4      4       K6  	  R# ) zH
Test from_dtype() and as_dtype() with the various scalar number types.
c                   < \         P                  ! V 4      pSP                  S! V4      V4       SP                  S! \         P                  ! R V ,           4      4      V4       SP                  V\        P
                  ! V4      4       R# )=N)npdtypeassertIsassertEqualr   as_dtype)typechar
numba_typer   fselfs   && \/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_numpy_support.pycheck.TestFromDtype.test_number_types.<locals>.check   s^    HHX&EMM!E(J/MM!BHHS8^45zBUM$:$::$FG    ?r   f4df8Fc8Dc16Obi1Bu1hi2Hu2ii4Iu4qQlittle><hHiIlLqQfdFDN)
int8uint8int16uint16int32uint32int64uint64intpuintp)r   
from_dtyper   bool_float32float64	complex64
complex128pyobjectr6   r7   r8   r9   r:   r;   r<   r=   r   r   r   getattrsys	byteorderassertRaisesr   )r   r   nameforeign_alignletterr   s   f    @r   test_number_typesTestFromDtype.test_number_types   s    $$	H 	c5;;c5==!dEMM"c5==!dEMM"c5??#dEOO$c5##$eU%%&c5>>"c5::dEJJc5;;dEKK c5;;dEKK c5<< dELL!c5;;dEKK c5<< dELL!c5;;c5<< 9DMM!BHHTN+WUD-AB9
  #}}8c$F6 hh}'=>@ %r   c                   a  V 3R lpV! R\         P                  ! ^
4      4       V! R\         P                  ! ^4      4       V! R\         P                  ! ^4      4       R# )zC
Test from_dtype() and as_dtype() with the character string types.
c                    < \         P                  ! V 4      pSP                  \        P                  ! V4      V4       SP                  V\        P
                  ! V4      4       R # N)r   r   r   r   r@   r   )
typestringr   r   r   s   && r   r   .TestFromDtype.test_string_types.<locals>.checkN   sG    HHZ(E]55e<jIUM$:$::$FGr   S10a11U12N)r   CharSeqUnicodeCharSeq)r   r   s   f r   test_string_typesTestFromDtype.test_string_typesJ   sF    	H 	eU]]2&'eU]]2&'eU))"-.r   c                \   a  V 3R  lpV! \         P                  ! V4      V! R4      ^4       R# )c                 &  < \         P                  ! V 4      pSP                  W14       SP                  VP                  V4       SP                  \         P                  ! V4      V 4       SP                  \         P                  ! V4      V 4       R # rR   )r   r@   r   	unit_coder   )r   r   codetpr   s   &&& r   r   1TestFromDtype.check_datetime_types.<locals>.checkY   sk    ))%0BR,R\\40]33J?G]33B7?r    N)r   r   )r   rM   nb_classr   s   f&& r   check_datetime_types"TestFromDtype.check_datetime_typesX   s$    	@ 	bhhvb1r   c                F    V P                  R\        P                  4       R# )z;
Test from_dtype() and as_dtype() with the datetime types.
MN)rd   r   
NPDatetimer   s   &r   test_datetime_types!TestFromDtype.test_datetime_typesc   s     	!!#u'7'78r   c                F    V P                  R\        P                  4       R# )z<
Test from_dtype() and as_dtype() with the timedelta types.
mN)rd   r   NPTimedeltari   s   &r   test_timedelta_types"TestFromDtype.test_timedelta_typesi   s     	!!#u'8'89r   c           
       a  V 3R  lp\         P                  ! R\         P                  3R\         P                  3.4      pV! VR\        P                  ^ RR3R\        P                  ^RR3/^RR7       \         P                  ! R\         P                  3R\         P                  3.RR7      pV! VR\        P                  ^ RR3R\        P                  ^RR3/^RR7       \         P                  ! R\         P                  3R
.4      pV! VR\        P                  ^ RR3R	\        P
                  ! ^4      ^RR3/^	RR7       R# )c                 T  < \         P                  ! V 4      pSP                  V\        P                  4       SP                  VP                  V 4       SP                  VP                  V4       SP                  VP                  V4       SP                  VP                  V4       R # rR   )
r   r@   assertIsInstancer   Recordr   r   fieldssizealigned)r   ru   rv   rw   r`   r   s   &&&& r   r   .TestFromDtype.test_struct_types.<locals>.checkp   sw    ))%0B!!"ell3RXXu-RYY/RWWd+RZZ1r   ar$   NF)ru   rv   rw   T)alignrm   n)r{   S5)r   r   r8   r:   r   rX   )r   r   r   s   f  r   test_struct_typesTestFromDtype.test_struct_typeso   s   	2 3/C?;<eEKKD$7EKKD$79e	%
 3/C?;4HeEKKD$7EKKD$79d	$
 3/;78eEKKD$7EMM!,at<>e	%r   c                T  a  V 3R  lp\         P                  \         P                  \         P                  \         P                  .p\
        \        .p\        W#4       F  w  rEV! WE\        P                  4       K  	  \        W#4       F  w  rEV! WE\        P                  4       K  	  R# )c                    < \         P                  ! V 4      p\        P                  ! V4      pV! W4      p\        P                  ! V4      pSP                  W64       R # rR   )r   r   r   r@   r   r   )	base_instenum_def
type_classnp_dtnb_tyinst	recoveredr   s   &&&    r   r   +TestFromDtype.test_enum_type.<locals>.check   sI    HHY'E!,,U3Eh.D%..t4IU.r   N)r   rC   r:   rE   rA   r   r   r   r   
EnumMemberIntEnumMember)r   r   dtsenumsdtenums   f     r   test_enum_typeTestFromDtype.test_enum_type   sv    	/ zz288R]]BHH=%+HB"E,,- ,  +HB"E//0 ,r    N)__name__
__module____qualname____firstlineno__rN   rZ   rd   rj   ro   r}   r   __static_attributes____classdictcell____classdict__s   @r   r
   r
      s/     3@j/	29:%81 1r   r
   c                   <   a  ] tR t^t o RtR tR tR tR tRt	V t
R# )ValueTypingTestBasezD
Common tests for the typing of values.  Also used by test_special.
c                   TpV P                  V! ^4      \        P                  \        P                  34       V P                  V! R4      \        P                  \        P                  34       V P                  V! R4      \        P                  \        P                  34       V P	                  V! R4      \        P
                  4       V P	                  V! R4      \        P                  4       V P	                  V! R4      \        P                  4       V P	                  V! R4      \        P                  4       R F>  p\        \        V4      ! 4       pV P	                  V! V4      \        \        V4      4       K@  	  R# )	z+
Test *func*() with scalar numeric values.
g      ?y              ?TFNii   )r6   r7   r8   r9   r:   r;   r<   r=   intcuintcr>   r?   rB   rC   rD   rE   rA   )
assertInr   r:   r<   r   rC   rE   rA   rG   r   )r   funcr   rK   vals   &&   r   check_number_values'ValueTypingTestBase.check_number_values   s     adU[[%++67a	lU[[%++$>?ai%++u{{!;<afemm,agu//0agu{{+ah,D "d#%CMM!C&'%"67r   c                    TpR F<  pV'       d   V! ^V4      pMV! R4      pV! V4      pV P                  Ws! V4      4       K>  	  R# )rb   NatN)rb   Yrg   r!   r(   rm   smsusnspsfsas)r   )r   r   np_typenb_typer   unittr`   s   &&&&    r   _base_check_datetime_values/ValueTypingTestBase._base_check_datetime_values   sL    
D At$ EN1BR/
r   c                d    V P                  V\        P                  \        P                  4       R# )z*
Test *func*() with np.datetime64 values.
N)r   r   
datetime64r   rh   r   r   s   &&r   check_datetime_values)ValueTypingTestBase.check_datetime_values   s      	((r}}e>N>NOr   c                d    V P                  V\        P                  \        P                  4       R# )z+
Test *func*() with np.timedelta64 values.
N)r   r   timedelta64r   rn   r   s   &&r   check_timedelta_values*ValueTypingTestBase.check_timedelta_values   s#     	((r~~).):):	<r   r   N)r   r   r   r   __doc__r   r   r   r   r   r   r   s   @r   r   r      s$     8*0P< <r   r   c                   2   a  ] tR t^t o R tR tR tRtV tR# )TestArrayScalarsc                D    V P                  \        P                  4       R# )z8
Test map_arrayscalar_type() with scalar number values.
N)r   r   map_arrayscalar_typeri   s   &r   test_number_values#TestArrayScalars.test_number_values   s     	  !C!CDr   c                    \         P                  pV P                  V4       \        P                  ! RR4      pV P                  \        4      ;_uu_ 4        V! V4       RRR4       R#   + '       g   i     R# ; i)z8
Test map_arrayscalar_type() with np.datetime64 values.
201410YN)r   r   r   r   r   rJ   r   r   r   r   s   &  r   test_datetime_values%TestArrayScalars.test_datetime_values   sU     ..""1%MM&%(788aD 9888   	A))A:	c                    \         P                  pV P                  V4       \        P                  ! ^
R4      pV P                  \        4      ;_uu_ 4        V! V4       RRR4       R#   + '       g   i     R# ; i)z9
Test map_arrayscalar_type() with np.timedelta64 values.
r   N)r   r   r   r   r   rJ   r   r   s   &  r   test_timedelta_values&TestArrayScalars.test_timedelta_values   sU     ..##A&NN2u%788aD 9888r   r   N)	r   r   r   r   r   r   r   r   r   r   s   @r   r   r      s     E		 	r   r   c                   .   a  ] tR t^t o RtRt R tRtV tR# )	FakeUFuncz
fake ufuncc                   Wn         V P                   ^ ,          P                  R4      w  r#\        V4      V n        \        V4      V n        \        V4      V n        V F_  pV P                   ^ ,          P                  R4      w  r#\        V4      V P                  8X  g   Q h\        V4      V P                  8X  d   K_  Q h	  R# )    z->N)r   splitlenninnoutntypes)r   r   in_outr`   s   &&   r   __init__FakeUFunc.__init__   s    
::a=&&t,s8H	%jBzz!}**40HCs8txx'''s8tyy((( r   )r   r   r   r   N)r   r   r   r   )r   r   r   r   	__slots__r   r   r   r   s   @r   r   r      s     2IH	) 	)r   r   c                   0   a  ] tR tRt o RtR tR tRtV tR# )
TestUFuncsi  z
Test ufunc helpers.
c                  a a	a
 \         P                  o
\        \        4      p\        \        4      p\        \
        4      p\        \        4      pRV
V 3R  llo	RV	V 3R llpV
V 3R lpV! V\        P                  \        P                  3R4       V! V\        P                  \        P                  3R4       V! V\        P                  \        P                  3R4       V! V\        P                  \        P                  3R4       V! V\        P                  \        P                  3R4       V! V\        P                  \        P                  3R4       V! V\        P                  \        P                  3R4       V! V\        P                  \        P                  3R4       V! V\        P                   \        P                   3R	4       V! V\        P"                  ! R
4      \        P"                  ! R
4      3R\        P"                  ! R
4      3R7       V! V\        P"                  ! R4      \        P$                  ! R
4      3R\        P$                  ! R4      3R7       V! V\        P$                  ! R
4      \        P"                  ! R
4      3R\        P$                  ! R
4      3R7       V! V\        P$                  ! R
4      \        P"                  ! R4      3R\        P$                  ! R
4      3R7       V! V\        P$                  ! R4      \        P"                  ! R4      3R\        P$                  ! R4      3R7       V! V\        P"                  ! R4      \        P$                  ! R
4      3R\        P$                  ! R
4      3R7       V! V\        P"                  ! R4      \        P$                  ! R4      3R\        P$                  ! R4      3R7       V! V\        P"                  ! R
4      \        P                  3R\        P"                  ! R
4      3R7       V! V\        P                  \        P"                  ! R
4      3R\        P"                  ! R
4      3R7       S	! V\        P                  \        P                  3R4       S	! V\        P                  \        P                  3R4       S	! V\        P&                  \        P(                  3R4       S	! V\        P                  \        P                  3R	4       S	! V\        P                  \        P                  3R	4       \        P*                  \        P,                  \        P                  \        P                  .pV Fk  pS	! V\        P                  V3R4       S	! V\        P                  V3R4       S	! V\        P                  V3R4       S	! V\        P                   V3R	4       Km  	  V F  pS	! WH3R4       S	! W83R4       K  	  S	! V\        P"                  ! R
4      \        P*                  3R\        P"                  ! R
4      3R7       S	! V\        P"                  ! R
4      \        P,                  3R\        P"                  ! R
4      3R7       S	! V\        P"                  ! R
4      \        P                  3R\        P"                  ! R
4      3R7       S	! V\        P                  \        P"                  ! R
4      3R\        P"                  ! R
4      3R7       V! V\        P$                  ! R
4      \        P$                  ! R
4      34       V! V\        P"                  ! R
4      \        P                  34       R# )c                  < S! WV,           4      pSP                  V4       \        V\        4      '       d   V3pSP                  VP                  VRV: RV: RV: RVP                  : 24       SP                  \        VP                  4      \        VP                  4      4       SP                  \        VP                  4      \        VP                  4      4       V'       g6   S! V \        V4      VP                  ,           4      pSP                  WT4       M%SP                  VP                  \        V4      4       S! WP                  VP                  ,           4      pSP                  Wd4       V# )z}
Check that ufunc_find_matching_loop() finds one of the given
*sigs* for *ufunc*, *input_types* and optional *output_types*.
zinputs=z and outputs=z should have selected one of z, got )
assertTrue
isinstancestrr   	ufunc_sigr   r   numpy_inputsinputsnumpy_outputsoutputslist)	ufuncinput_typessigsoutput_typeslooploop_explicitloop_rtr   r   s	   &&&&   r   r   7TestUFuncs.test_ufunc_find_matching_loop.<locals>.check   s   
 U,67DOOD!$$$wMM$..$ ),dnnNO S!2!23S5EFS!3!34c$,,6GH !%k):T\\)I J  5  tL/AB{{T\\9:GW+Kr   c                d   < S! WW#4      pSP                  VP                  \        V4      4       R# )z>
Like check(), but also ensure no casting of inputs occurred.
N)r   r   r   )r   r   r   r   r   r   r   s   &&&& r   check_exact=TestUFuncs.test_ufunc_find_matching_loop.<locals>.check_exact:  s*     T@DT[[${*;<r   c                 <   < S! W4      pSP                  VR 4       R # rR   )r   )r   r   r   r   r   s   && r   check_no_match@TestUFuncs.test_ufunc_find_matching_loop.<locals>.check_no_matchA  s    U(DMM$%r   ??->?bb->bBB->Bff->fdd->dFF->FDD->Dr   mm->m)r   r   mM->MMm->Mrb   r   mq->mdm->mii->id->dd->?md->mN)r   )ll->lqq->q)LL->LQQ->Q)r   ufunc_find_matching_loopr   
_add_types
_mul_types_isnan_types_sqrt_typesr   rA   r6   r7   r<   r=   rB   rC   rD   rE   rn   rh   r8   r9   r:   r;   )r   np_addnp_mulnp_isnannp_sqrtr   r   	int_typesinttyr   r   s   f        @@r   test_ufunc_find_matching_loop(TestUFuncs.test_ufunc_find_matching_loop  sw   22:&:&\*K(	 	4	= 	=	&
 	FU[[%++6@FUZZ4g>FU[[%++6@FU[[%++68JKFU\\5<<8:LMFU]]EMM:GDFU]]EMM:GDFU__eoo>HFU--u/?/?@'J 	FU..s3U5F5Fs5KL5+<+<S+A*C	EFU..t4e6F6Fs6KL5+;+;D+A*C	EFU--c2E4E4Ec4JK5+;+;C+@*B	DFU--c2E4E4Eb4IJ5+;+;C+@*B	DFU--d3U5F5Fr5JK5+;+;D+A*C	EFU..r2E4D4DS4IJ5+;+;C+@*B	DFU..r2E4D4DT4JK5+;+;D+A*C	EFU..s3U[[A5+<+<S+A*C	EFU]]E,=,=c,BC5+<+<S+A*C	E 	fu{{EJJ/9fu{{EKK0':fu{{ELL17;fu6@fu}}eoo6@ [[%,,U\\J	E&5==%0':&5==%0':&5??E2G<&5++U3W=	  E'8V,(Hf- 
 	fu((-u{{;U%6%6s%;$=	?fu((-u||<U%6%6s%;$=	?fu((-u}}=U%6%6s%;$=	?fu}}e&7&7&<=U%6%6s%;$=	? 	v 0 0 5u7G7G7LMN 	v 1 1# 6DEr   c                  a  V 3R  lp\         P                  ! ^4      pV! V4       V! VP                  R4      4       V! VP                  R4      P                  4       V! VP                  R4      R,          4       V! VP                  R4      4       V! VP                  R4      P                  4       V! VP                  R4      R,          4       V! VP                  R4      P                  R,          4       V! VP                  R4      R,          4       V! VP                  R4      P                  R,          4       V! VP                  R4      R,          4       V! VP                  R4      P                  R,          4       V! VP                  R4      R	,          4       V! VP                  R4      P                  R
,          4       V! VP                  R4      R,          4       V! VP                  R4      P                  R,          4       V! VP                  R4      R,          4       V! VP                  R4      P                  R,          4       R# )c                 P  < V P                   pV P                  pV P                  P                  p\        P
                  ! WV4      p\        P                  ! WV4      pV P                  R ,          pV P                  R,          pSP                  WF4       SP                  WW4       R# )C_CONTIGUOUSF_CONTIGUOUSN)	shapestridesr   itemsizer   is_contiguous
is_fortranflagsr   )	arrdimsr  r  is_cis_fexpect_cexpect_fr   s	   &       r   	check_arr1TestUFuncs.test_layout_checker.<locals>.check_arr  s    99DkkGyy))H ..thGD ++D8DDyy0Hyy0HT,T,r   NN   N)      )r+  r,     )NNNNNr,  )r/  r/  r*  )r*  r0  )r/  r0  r*  )r*  r0  NNr.  )r1  r0  r*  )r+  r+  r,  r+  )r*  r*  r0  )r/  r0  r*  r*  )NN   r*  r0  )r/  r0  r*  r2  )r   arangereshapeT)r   r(  r"  s   f  r   test_layout_checkerTestUFuncs.test_layout_checker  s   		- iim##++f%&#++f%''(#++f%c*+#++i()#++i(**+#++i(01#++i(**623 	#++i(-.#++i(**956#++i(23#++i(**;78#++i(78#++i(**=9:#++l+M:;#++l+--.>?@#++l+M:;#++l+--.>?@r   r   N)	r   r   r   r   r   r  r7  r   r   r   s   @r   r   r     s     nF`(A (Ar   r   __main__)r   r   r   hh->hHH->Hr  II->Ir  r	  r  r
  ee->er   r   gg->gr   r   GG->Gr   r   r   OO->O)r   r   r   r:  r;  r  r<  r  r	  r  r
  r=  r   r   r>  r   r   r?  r  zqm->mr  r  r@  )ze->?zf->?r  zg->?zF->?zD->?zG->?)ze->ezf->fr  zg->gzF->FzD->DzG->GzO->O)r   rH   	itertoolsr   numpyr   unittest
numba.corer   numba.core.errorsr   numba.tests.supportr   numba.tests.enum_usecasesr   r   numba.npr   r
   objectr   r   r   r  r  r  r  r   r   mainr   r   r   <module>rK     s   
      6 ( 9 "H1H H1V4<& 4<n*H >) )"

 
 HN]A ]A@ zMMO r   