+
    ;i0                     t   R t ^ RIt^ RIt^ RIHtHtHtHt ^ RI	H
t
 ^ RIHt ^ RIHtHt ^ RIHtHtHtHt ]P*                   ! R R]
P,                  4      4       t]! R	]
P0                  R
,          3R]
P0                  3.R7      t]P4                  ! ]]P6                  4        ! R R]P6                  4      t]P*                   ! R R]
P,                  4      4       t]P<                  ! ]]R	R.4       ]R 4       t]R 4       t ]R 4       t!]R 4       t"]R 4       t#]R 4       t$]R 4       t%]R 4       t&]R 4       t' ! R R]4      t( ! R R]]4      t)]! ]R4      R 4       t*]! ]R 4      R! 4       t+ ! R" R#]]4      t,R$ t-R% t. ! R& R']]4      t/]P*                   ! R( R)]
P,                  4      4       t0]0! R*]
Pb                  3R+]
Pb                  33R7      t2 ! R, R-]P6                  4      t3]R. 4       t4]R/ 4       t5]P<                  ! ]3]0R*R+.4       ]! ]0R04      R1 4       t6]! ]0R 4      R2 4       t7 ! R3 R4]]4      t8R# )5z%
Test mutable struct, aka, structref
N)typednjiterrorstypeof)types)	structref)overload_methodoverload_attribute)MemoryLeakMixinTestCasetemp_directoryoverride_configc                       ] tR t^tRtRtR# )MySimplerStructTypezN
Test associated with this type represent the lowest level uses of structref.
 N__name__
__module____qualname____firstlineno____doc____static_attributes__r       Y/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_struct_ref.pyr   r           	r   r   values:NNNcounter)fieldsc                      a  ] tR t^ t o R t]R 4       t]P                  R 4       t]R 4       tR t	]R 4       t
R tRtV tR	# )
MyStructc                B    \         P                  P                  WV4      # Nr   StructRefProxy__new__)clsr   r   s   &&&r   r$   MyStruct.__new__"   s     ''//WEEr   c                    \        V 4      # r!   )
get_valuesselfs   &r   r   MyStruct.values*   s    $r   c                    \        W4      # r!   )
set_values)r*   vals   &&r   r   r+   .   s    $$$r   c                    \        V 4      # r!   )get_counterr)   s   &r   r   MyStruct.counter2   s    4  r   c                J    V P                   V,          V P                  ,           # r!   r   r   r*   args   &&r   testmeMyStruct.testme6       {{S 4<<//r   c                2    V P                   V P                  3# r!   r3   r)   s   &r   propMyStruct.prop9   s    {{DLL((r   c                    \        V 4      # r!   )compute_fieldsr)   s   &r   __hash__MyStruct.__hash__=   s    d##r   r   N)r   r   r   r   r$   propertyr   setterr   r6   r:   r>   r   __classdictcell____classdict__s   @r   r   r       sn     F     ]]% % ! !0 ) )$ $r   r   c                       ] tR t^AtRtRtR# )MyStructTypezLTest associated with this type represent the higher-level uses of
structef.
r   Nr   r   r   r   rF   rF   A   r   r   rF   c                 R    \         P                  ! \        4      p\        W V4       V# r!   )r   newmy_struct_tymy_struct_init)r   r   sts   && r   	my_structrL   S   s    	|	$B2w'Ir   c                     Wn         W n        R # r!   r3   )r*   r   r   s   &&&r   rJ   rJ   Z   s    KLr   c                     \        WR 7      pV;P                  VP                  ,          un        V;P                  V,          un        V# )r   )rL   r   r   )vsctrrK   s   && r   ctor_by_intrinsicrR   `   s1    	2	#BIIIJJ#JIr   c                     \        WR 7      # r3   r   )rP   rQ   s   &&r   ctor_by_classrV   h   s    2++r   c                     V P                   # r!   r   rK   s   &r   r(   r(   m   s    99r   c                     Wn         R # r!   rX   )rK   r.   s   &&r   r-   r-   r   s    Ir   c                     V P                   # r!   rO   rY   s   &r   r0   r0   w   s    ::r   c                 <    V P                   V P                  ,           # r!   r3   rY   s   &r   r=   r=   |   s    99rzz!!r   c                  >    \        ^^4      p \        ^^4      pW J WJ 3# )   rU   )cds     r   test_structref_isra      s'    AAAAFAFr   c                   &   a  ] tR t^t o R tRtV tR# )TestStructRefIsc                z    \        4       pV P                  V^ ,          4       V P                  V^,          4       R#     N)ra   
assertTrueassertFalse)r*   ress   & r   test_is_identity TestStructRefIs.test_is_identity   s,    !AQ r   r   N)r   r   r   r   rj   r   rB   rC   s   @r   rc   rc      s     ! !r   rc   c                   V   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
tV tR# )TestStructRefBasicc                P   \         P                  ! R \         P                  3.4      pV P                  VP                  R ,          \         P                  4       \         P                  ! R \         P                  3R\         P
                  3.4      pV P                  VP                  R ,          \         P                  4       V P                  VP                  R,          \         P
                  4       V P                  \        R4      ;_uu_ 4        \         P                  ! ^\         P                  3.4       RRR4       V P                  \        R4      ;_uu_ 4        \         P                  ! R.4       RRR4       R#   + '       g   i     LP; i  + '       g   i     R# ; i)abzexpecting a str for field nameNz%expecting a Numba Type for field type)ro   {   )r   	StructRefint64assertEqual
field_dictfloat64assertRaisesRegex
ValueError)r*   srs   & r   test_structref_type&TestStructRefBasic.test_structref_type   s&   __sEKK012s+U[[9__sEKK032FGHs+U[[9s+U]];##J$DF FOOa-./F ##J$KM MOOZL)M MF FM M Ms   (FFF	F%	c                   V P                  \        R 4      ;_uu_ 4        \        P                  ! \        P
                  4       RRR4       V P                  \        R 4      ;_uu_ 4        \        P                  ! \        P
                  \        4       RRR4       R#   + '       g   i     Lb; i  + '       g   i     R# ; i)zcannot registerN)rw   rx   r   registerr   rr   define_boxingr   r)   s   &r   test_invalid_uses$TestStructRefBasic.test_invalid_uses   ss    ##J0ABBu/ C##J0ABB##EOOX> CB CBBBBs   %B**B1B.	1C	c                4   \         P                  ! ^
\         P                  R7      p^pW,           p\        W4      pV P	                  V\
        4       V P                  V\        V4      4       W2V,          ,           p\        V4      pV P                  WV4       R# 
   dtypeN)	nparangeintprR   assertNotIsInstancer   assertPreciseEqualr(   r=   )r*   rP   rQ   first_expected	first_gotsecond_expected
second_gots   &      r   test_MySimplerStructType+TestStructRefBasic.test_MySimplerStructType   sw    YYr)%b.	 	  H5
90EF(#I6#I.
<r   c                   \         P                  ! ^
\         P                  R7      p^p\        W4      pV P	                  V\
        P                  4       V P                  \        R4      ;_uu_ 4        VP                   RRR4       V P                  \        R4      ;_uu_ 4        VP                   RRR4       R#   + '       g   i     LE; i  + '       g   i     R# ; i)r   r   r   Nr   )r   r   r   rR   assertIsInstancer   r#   rw   AttributeErrorr   r   )r*   rP   rQ   wrappers   &   r   -test_MySimplerStructType_wrapper_has_no_attrs@TestStructRefBasic.test_MySimplerStructType_wrapper_has_no_attrs   s    YYr)#B,gy'?'?@##NH==NN >##NI>>OO ?> >=>>>s   2B<%C<C	C 	c                n   \         P                  ! ^
\         P                  R7      p^pVP                  4       p\	        W4      pV P                  V\        4       V P                  W4P                  4       W2,           p\        V4      pV P                  WV4       V P                  VP                  V4       R# r   )r   r   rv   copyrV   r   r   r   r   r=   rt   r   )r*   rP   rQ   first_expected_arrr   r   r   s   &      r   test_MyStructType$TestStructRefBasic.test_MyStructType   s    YYr,WWY!"*	i2 24D4DE,2#I.
<**C0r   c                   \         R  4       pV! ^RRR4      w  r#V P                  VP                  ^4       V P                  VP                  R4       V P                  VP                  R4       V P                  VP                  R4       R# )c                 .    \        W4      \        W#4      3# r!   rU   )xymns   &&&&r   
mixed_typeDTestStructRefBasic.test_MyStructType_mixed_types.<locals>.mixed_type   s    A>8A>11r   ffffff@y        333333@N)   )r   rt   r   r   )r*   r   ro   rp   s   &   r   test_MyStructType_mixed_types0TestStructRefBasic.test_MyStructType_mixed_types   sx    		2 
	2 !S$-1%C(4(D)r   c                n   \         P                  ! 4       p\        ^R4      VR&   V P                  VR,          P                  ^4       V P                  VR,          P
                  R4       \        ^R4      VR&   V P                  VR,          P                  ^4       V P                  VR,          P
                  R4       VR,          ;P                  ^
,          un        V P                  VR,          P                  ^4       V P                  VR,          P
                  R4       \        ^R4      VR&   R# )   r   ro   gffffff
@gffffff@rp   N)r   Dictr   rt   r   r   r*   tds   & r   test_MyStructType_in_dict,TestStructRefBasic.test_MyStructType_in_dict   s    ZZ\1c"3C+C#.1c"3C+C#.
3"C,C#.1c"3r   c                   V P                  4        \        P                  ! 4       p\        ^R4      VR&   V P	                  VR,          P
                  ^4       V P	                  VR,          P                  R4       V P                  \        P                  R4      ;_uu_ 4        \        R^4      VR&   RRR4       R#   + '       g   i     R# ; i)r   r   ro   zCannot cast numba.MyStructTyperp   N)
disable_leak_checkr   r   r   rt   r   r   rw   r   TypingErrorr   s   & r   *test_MyStructType_in_dict_mixed_type_error=TestStructRefBasic.test_MyStructType_in_dict_mixed_type_error   s    !ZZ\1c"3C+C#. ##F$6$6$EG G sA&BsG	G G G Gs   #B==C	c                j    \        ^^4      p\        V4       V P                  \        V4      ^4       R# r   N)r   r   rt   hash)r*   rK   s   & r   *test_MyStructType_hash_no_typeof_recursion=TestStructRefBasic.test_MyStructType_hash_no_typeof_recursion   s*     a^r
b1%r   r   N)r   r   r   r   rz   r   r   r   r   r   r   r   r   r   rB   rC   s   @r   rm   rm      s7     *?=1
*# '& &r   rm   r6   c                     R  pV# )c                 J    V P                   V,          V P                  ,           # r!   r3   r4   s   &&r   impl%_ol_mystructtype_testme.<locals>.impl  r8   r   r   )r*   r5   r   s   && r   _ol_mystructtype_testmer      s    0Kr   r:   c                     R  pV# )c                 2    V P                   V P                  3# r!   r3   r)   s   &r   get"_ol_mystructtype_prop.<locals>.get  s    {{DLL((r   r   r*   r   s   & r   _ol_mystructtype_propr     s    )Jr   c                   ,   a  ] tR tRt o R tR tRtV tR# )TestStructRefExtendingi  c                v    \         R  4       p^pV! V4      pVP                  V4      pV P                  W44       R# )c                     \         P                  ! ^
\         P                  R7      p^p\        W4      pVP	                  V 4      # r   r   )r   r   rv   r   r6   )r   rP   rQ   objs   &   r   check:TestStructRefExtending.test_overload_method.<locals>.check  s3    2RZZ0BC2#C::a= r   Nr   py_funcr   r*   r   r   gotexpects   &    r   test_overload_method+TestStructRefExtending.test_overload_method  s@    		! 
	! Ahq!,r   c                n    \         R  4       pV! 4       pVP                  4       pV P                  W#4       R# )c                      \         P                  ! ^
\         P                  R7      p ^p\        W4      pVP                  # r   )r   r   rv   r   r:   )rP   rQ   r   s      r   r   =TestStructRefExtending.test_overload_attribute.<locals>.check  s.    2RZZ0BC2#C88Or   Nr   r*   r   r   r   s   &   r   test_overload_attribute.TestStructRefExtending.test_overload_attribute  s6    		 
	 g,r   r   N)r   r   r   r   r   r   r   rB   rC   s   @r   r   r     s     -
- 
-r   r   c                     \        WR 7      pV# rT   rU   )r   r   structs   && r   caching_test_maker   (  s    Q*FMr   c                 $    V P                  V4      # r!   )r6   )r   zs   &&r   caching_test_user   -  s    ==r   c                   2   a  ] tR tRt o R tR tR tRtV tR# )TestStructRefCachingi1  c                   \        \        P                  4      V n        \	        R V P                  4      V n        V P
                  P                  4        \        P                  ! R4       \        P                  ! RRR7       R# )	CACHE_DIRerrorignore	typeguard)actionmoduleN)
r   r   r   
_cache_dirr   _cache_override	__enter__warningssimplefilterfilterwarningsr)   s   &r   setUpTestStructRefCaching.setUp2  sX    ()=)F)FG.{DOOL&&(g&xDr   c                j    V P                   P                  R R R 4       \        P                  ! 4        R # r!   )r   __exit__r   resetwarningsr)   s   &r   tearDownTestStructRefCaching.tearDown9  s&    %%dD$7 r   c                X   a aa V 3R  loV 3R loVVV 3R lpV! RR7       V! RR7       R# )c                    < SP                  \        V P                  4      ^4       SP                  \        V P                  4      ^ 4       R# r   rt   len
cache_hitscache_missesstatsr*   s   &r   assert_cachedBTestStructRefCaching.test_structref_caching.<locals>.assert_cached>  9    S!1!12A6S!3!34a8r   c                    < SP                  \        V P                  4      ^ 4       SP                  \        V P                  4      ^4       R# re   r   r   s   &r   assert_not_cachedFTestStructRefCaching.test_structref_caching.<locals>.assert_not_cachedB  r   r   c                   < \        R R7      ! \        4      p\        R R7      ! \        4      p\        P                  P	                  ^4      p^p^pV! W44      pV! We4      pW5,          V,           pSP                  Wx4       V '       d'   S	! VP                  4       S	! VP                  4       R# S
! VP                  4       S
! VP                  4       R# )T)cacheN)r   r   r   r   randomr   r   )cached
check_make	check_userP   rQ   factorrK   r   r   r   r  r*   s   &        r   r   :TestStructRefCaching.test_structref_caching.<locals>.checkF  s    D)*;<J4()9:I!!!$BCFB$BB'C[3&F##C0j../ioo.!*"2"23!)//2r   F)r  TNr   )r*   r   r   r  s   f @@r   test_structref_caching+TestStructRefCaching.test_structref_caching=  s$    	9	9	3$ 	UTr   )r   r   N)	r   r   r   r   r   r   r  r   rB   rC   s   @r   r   r   1  s     E! r   r   c                   &   a  ] tR tRt o R tRtV tR# )PolygonStructTypei\  c                    R \        V 4       2V n        \        R\        P                  ! \        P
                  4      3R\        P                  ! V 4      3.4      pV# )znumba.PolygonStructType#valueparent)idnametupler   Optionalrs   )r*   r   s   &&r   preprocess_fields#PolygonStructType.preprocess_fields_  sP    .r$xj9	ennU[[12u~~d+,
 
 r   )r  N)r   r   r   r   r  r   rB   rC   s   @r   r  r  \  s      r   r  r  r  c                   F   a  ] tR tRt o R t]R 4       t]R 4       tRtV t	R# )PolygonStructip  c                B    \         P                  P                  WV4      # r!   r"   )r%   r  r  s   &&&r   r$   PolygonStruct.__new__q  s    ''//FCCr   c                    \        V 4      # r!   )PolygonStruct_get_valuer)   s   &r   r  PolygonStruct.valuet  s    &t,,r   c                    \        V 4      # r!   )PolygonStruct_get_parentr)   s   &r   r  PolygonStruct.parentx  s    '--r   r   N)
r   r   r   r   r$   r@   r  r  r   rB   rC   s   @r   r  r  p  s3     D - - . .r   r  c                     V P                   # r!   r  r)   s   &r   r  r  }  s    ::r   c                     V P                   # r!   )r  r)   s   &r   r   r     s    ;;r   flipc                     R  pV# )c                 J    V P                   e   V P                   ) V n         R # R # r!   r#  r)   s   &r   r   %_ol_polygon_struct_flip.<locals>.impl  s    ::!**DJ "r   r   )r*   r   s   & r   _ol_polygon_struct_flipr)    s    % Kr   c                     R  pV# )c                 2    V P                   V P                  3# r!   )r  r  r)   s   &r   r   $_ol_polygon_struct_prop.<locals>.get  s    zz4;;&&r   r   r   s   & r   _ol_polygon_struct_propr-    s    'Jr   c                   2   a  ] tR tRt o R tR tR tRtV tR# )TestStructRefForwardTypingi  c                X    \         R  4       p^pV! V4      pTpV P                  W44       R# )c                     \        R R 4      p\        R R 4      pWn        W!n        Wn        VP                  P                  # r!   )r  r  r  r   polyp_polys   &  r   r   CTestStructRefForwardTyping.test_same_type_assignment.<locals>.check  s9     t,D"4.FJ KL;;$$$r   Nr   r   r   s   &    r   test_same_type_assignment4TestStructRefForwardTyping.test_same_type_assignment  s7    		% 
	% Ah,r   c                Z    \         R  4       p^pV! V4      pV) pV P                  W44       R# )c                     \        R R 4      p\        R R 4      pWn        W!n        Wn        VP                  4        VP                  P                  4        VP                  P                  # r!   )r  r  r  r%  r2  s   &  r   r   >TestStructRefForwardTyping.test_overload_method.<locals>.check  sR     t,D"4.FJ KLIIKKK;;$$$r   Nr6  r   s   &    r   r   /TestStructRefForwardTyping.test_overload_method  s9    		% 
	% Ah,r   c                R    \         R  4       pV! 4       p^pV P                  W#4       R# )c                  @    \        ^R4      p V P                  ^ ,          # )   N)r  r:   )r   s    r   r   ATestStructRefForwardTyping.test_overload_attribute.<locals>.check  s    4(C88A;r   Nr6  r   s   &   r   r   2TestStructRefForwardTyping.test_overload_attribute  s0    		 
	 g,r   r   N)	r   r   r   r   r7  r   r   r   rB   rC   s   @r   r/  r/    s     --"- -r   r/  )9r   r   numpyr   numbar   r   r   r   
numba.corer   numba.experimentalr   numba.extendingr   r	   numba.tests.supportr
   r   r   r   r}   rr   r   r   rI   r~   r#   r   rF   define_proxyrL   rJ   rR   rV   r(   r-   r0   r=   ra   rc   rm   r   r   r   r   r   r   r  Anypolygon_struct_typer  r  r   r)  r-  r/  r   r   r   <module>rK     s     - -  ( ? 
 	%// 	 	 #uzz!}%	5::'>? 
  +Y-E-E F$y'' $B 	5?? 	 	 
  y    
   , ,       " "  !h !m&( m&` x( ) L&) *-_h -6
(?H (V 
 
 
 (eiiuyy0  
.I,, 
.     
  h "F+ , %v. /)-( )-r   