+
    :i                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	t
^ RIHtHtHtHtHtHtHtHtHt ^ RIHtHt ^ RIHt ^ RIHtHt ^ RIHt ^ RIH t  ^ R	I!H"t" ^ R
I#H$t$ ^ RI%H&t&H't'H(t( ^ RI%H)t)  ! R R]*4      t+ ! R R]*4      t,R t- ! R R]']&4      t. ! R R]&]'4      t/]0R8X  d   ]Pb                  ! 4        R# R# )    N)OrderedDict)	booleandeferred_typefloat32float64int16int32njitoptionaltypeof)errorstypes)
Dispatcher)LoweringErrorTypingError)MemInfo)jitclass)_box)JitClassType)MemoryLeakMixinTestCaseskip_if_typeguard)skip_unless_scipyc                   2   a  ] tR t^t o RR^/R lltRtV tR# )
TestClass1ac               6    Wn         W n        W0n        W@n        R # N)xyzr   )selfr   r    r!   r   s   &&&&$Y/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_jitclasses.py__init__TestClass1.__init__   s        )r   r   r    r!   N   __name__
__module____qualname____firstlineno__r$   __static_attributes____classdictcell____classdict__s   @r#   r   r      s     q  r&   r   c                   2   a  ] tR t^ t o RR^/R lltRtV tR# )
TestClass2r   c               B    Wn         W n        W0n        WPn        W@n        R # r   )r   r    r!   argsr   )r"   r   r    r!   r   r5   s   &&&&$*r#   r$   TestClass2.__init__!   s    	r&   )r   r5   r   r    r!   Nr'   r)   r0   s   @r#   r3   r3       s     1  r&   r3   c                 h    \         P                  ! V 4      p\        V4      pVP                  4        V# r   )r   box_get_meminfoptrr   acquire)boxptrmis   &  r#   _get_meminfor=   )   s)    

!
!#
&C	BJJLIr&   c                   <  a  ] tR t^0t o R0R 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R tR tR tR tR tR tR tR tR t]R 4       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-R+ t.R, t/R- t0R. t1R/t2V t3R# )1TestJitClassNc                n   Vf    \        V4       ! R R\        4      4       pTpVP                  P                  p\	        VP
                  P                  4       4      p\	        VP
                  P                  4       4      pVf*   \        V\        4      '       d   VP                  4       pMTpVf   Q hV P                  \        V4      \        V4      4       \        \        Wg4      V4       FE  w  rV P                  V^ ,          V	^ ,          4       V P                  V^,          V	^,          4       KG  	  R # )Nc                   &   a  ] tR t^4t o R tRtV tR# )&TestJitClass._check_spec.<locals>.Testc                    R # r    r"   s   &r#   r$   /TestJitClass._check_spec.<locals>.Test.__init__7   s    r&   rD   Nr)   r0   s   @r#   TestrB   4   s      r&   rG   )r   object
class_typeinstance_typeliststructkeysvalues
isinstancer   itemsassertEquallenzip)
r"   spectest_clsall_expectedrG   clstynamesrN   gotexpecteds
   &&&&      r#   _check_specTestJitClass._check_spec2   s    d^v   H##11U\\&&()ell))+,$,,#zz|#'''US%67 U!3\BMCSVXa[1SVXa[1 Cr&   c                `    \        4       p\        VR &   \        VR&   V P                  V4       R# r   r    N)r   r	   r   r[   r"   rT   s   & r#   test_ordereddict_spec"TestJitClass.test_ordereddict_specL   s)    }S	S	r&   c                H    R \         3R\        3.pV P                  V4       R# r^   )r	   r   r[   r_   s   & r#   test_list_specTestJitClass.test_list_specR   s%    eg r&   c           	         R \         3.p\        V4       ! R R\        4      4       pV P                  WVR\        P
                  ! \        4      3.,           4       R# )r   c                   2   a  ] tR t^Zt o R tV 3R ltRtV tR# )1TestJitClass.test_type_annotations.<locals>.Test1c                    R # r   rD   rE   s   &r#   r$   :TestJitClass.test_type_annotations.<locals>.Test1.__init___       r&   c                V   < V ^8  d   Qh/ S[ ;R&   S[P                  S[,          ;R&   # )   r   r    )intptListfloat)formatr1   s   "r#   __annotate__>TestJitClass.test_type_annotations.<locals>.Test1.__annotate__Z   s$     F  wwu~ r&   rD   Nr*   r+   r,   r-   r$   __annotate_func__r.   r/   r0   s   @r#   Test1rg   Z   s     
  r&   rv   r    N)r	   r   rH   r[   r   ListTyper   )r"   rT   rv   s   &  r#   test_type_annotations"TestJitClass.test_type_annotationsW   sR    e~	$	F 	 
	 	dsENN74K.L-M&MNr&   c                     ! R  R4      p\          ! R RV4      4       pV P                  VR\        ^ 4      3R\        R4      3.R7       R# )	c                   ,   a  ] tR t^ft o V 3R ltRtV tR# ):TestJitClass.test_type_annotation_inheritance.<locals>.Fooc                &   < V ^8  d   Qh/ S[ ;R&   # rl   r   rm   )rq   r1   s   "r#   rr   GTestJitClass.test_type_annotation_inheritance.<locals>.Foo.__annotate__f        F r&   rD   N)r*   r+   r,   r-   ru   r.   r/   r0   s   @r#   Foor|   f   s      r&   r   c                   >   a  ] tR t^it o V 3R lR ltV 3R ltRtV tR# ):TestJitClass.test_type_annotation_inheritance.<locals>.Barc                $   < V ^8  d   QhRS[ RR/# )rl   valuereturnNrp   )rq   r1   s   "r#   rr   GTestJitClass.test_type_annotation_inheritance.<locals>.Bar.__annotate__m   s      e  r&   c                2    \        V4      V n        Wn        R # r   )rm   r   r    r"   r   s   &&r#   r$   CTestJitClass.test_type_annotation_inheritance.<locals>.Bar.__init__m   s    Ur&   c                &   < V ^8  d   Qh/ S[ ;R&   # )rl   r    r   )rq   r1   s   "r#   rr   r   i        H r&   r   r    Nrt   r0   s   @r#   Barr   i   s      	  r&   r   r   r            )rU   rV   N)r   r[   r   )r"   r   r   s   &  r#    test_type_annotation_inheritance-TestJitClass.test_type_annotation_inheritanced   sX    	 	 
	# 	 
	 	fQi(83s:L'M 	 	
r&   c                $   R \         3R\        R,          3.p^\        3R\        R,          3.p ! R R\        4      pV P	                  \
        4      ;_uu_ 4       p\        W14       RRR4       V P                  R\        XP                  4      4       V P	                  \
        4      ;_uu_ 4       p\        W24       RRR4       V P                  \        VP                  4      R4       R#   + '       g   i     L; i  + '       g   i     LJ; i)r   r    NNNc                   &   a  ] tR t^yt o R tRtV tR# )+TestJitClass.test_spec_errors.<locals>.Testc                    R # r   rD   rE   s   &r#   r$   4TestJitClass.test_spec_errors.<locals>.Test.__init__{   rj   r&   rD   Nr)   r0   s   @r#   rG   r   y         r&   rG   Nz*spec values should be Numba type instancesz"spec keys should be strings, got 1)rm   r   r	   rH   assertRaises	TypeErrorr   assertInstr	exceptionrQ   )r"   spec1spec2rG   raisess   &    r#   test_spec_errorsTestJitClass.test_spec_errorsu   s    sc71:./Uc71:./	6 	
 y))VT! *B&**+	-y))VT! *V--.=	? *) *)s   C,1C?,C<	?D	c                   \        . 4       ! R  R4      4       pV P                  \        P                  4      ;_uu_ 4       pV! 4        RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)c                   &   a  ] tR t^t o R tRtV tR# )+TestJitClass.test_init_errors.<locals>.Testc                    ^#    rD   rE   s   &r#   r$   4TestJitClass.test_init_errors.<locals>.Test.__init__       r&   rD   Nr)   r0   s   @r#   rG   r      s      r&   rG   Nz"__init__() should return None, not)r   r   r   r   r   r   r   )r"   rG   r   s   &  r#   test_init_errorsTestJitClass.test_init_errors   sj    	"	 	 
	 v1122fF 3 	:&**+	- 32s    A77B	c                    \        4       p\        VR &   \        VR&   \        R,          VR&   \        V4       ! R R\        4      4       pV# )r   r    r   arrc                   ,   a  ] tR t^t o R tR tRtV tR# )9TestJitClass._make_Float2AndArray.<locals>.Float2AndArrayc                *    Wn         W n        W0n        R # r   r   r    r   )r"   r   r    r   s   &&&&r#   r$   BTestJitClass._make_Float2AndArray.<locals>.Float2AndArray.__init__   s    r&   c                j    V ;P                   V,          un         V ;P                  V,          un        V# r   r   r"   vals   &&r#   add=TestJitClass._make_Float2AndArray.<locals>.Float2AndArray.add   s!    ##
r&   )r   r   r    N)r*   r+   r,   r-   r$   r   r.   r/   r0   s   @r#   Float2AndArrayr      s     
 r&   r   )r   r   r   rH   )r"   rT   r   s   &  r#   _make_Float2AndArray!TestJitClass._make_Float2AndArray   sM    }S	S	ajU	$
	V 
	 

	 r&   c                x    \        4       p\        VR &   \        VR&   \        V4       ! R R\        4      4       pV# )r   r    c                   &   a  ] tR t^t o R tRtV tR# )+TestJitClass._make_Vector2.<locals>.Vector2c                    Wn         W n        R # r   r   )r"   r   r    s   &&&r#   r$   4TestJitClass._make_Vector2.<locals>.Vector2.__init__   s    r&   r   Nr)   r0   s   @r#   Vector2r      s      r&   r   )r   r	   r   rH   )r"   rT   r   s   &  r#   _make_Vector2TestJitClass._make_Vector2   s?    }S	S		$	f 	 
	 r&   c                R  aaa V P                  4       oV P                  4       o\        R  4       o\        VVV3R l4       p\        P                  ! ^
\        P
                  R7      pV! V4      w  r4pV P                  V^4       V P                  V^4       V P                  WR4       R# )c                 <    V P                   V P                  ,           # r   r   objs   &r#   bar*TestJitClass.test_jit_class_1.<locals>.bar   s    55355= r&   c                    < S! ^^V 4      pVP                  ^{4       S! ^^4      pS! V4      S! V4      VP                  3# r'   )r   r   )r   r   vecr   r   r   s   &  r#   foo*TestJitClass.test_jit_class_1.<locals>.foo   s@     Aq)CGGCL!Q-Cs8SXsww..r&   dtypeN)r   r   r
   nponesr   rQ   assertPreciseEqual)	r"   r   inpr   bcr   r   r   s	   &     @@@r#   test_jit_class_1TestJitClass.test_jit_class_1   s    224$$&		! 
	! 
	/ 
	/ ggb

+c(a-.E"'r&   c                :   V P                  4       p\        R  4       p\        R 4       p\        P                  ! ^
\        P                  R7      pV! ^^V4      p\        V4      pV P                  VP                  ^4       V P                  VP                  \        P                  ! V4      4       V P                  VP                  P                  VP                  4       V! V4      p\        V4      pV P                  VP                  ^4       V P                  VP                  ^4       V P                  VP                  \        P                  ! V4      4       V P                  VP                  VP                  4       ??V P                  VP                  ^4       V! V4      w  rpV P                  V	^4       V P                  V
^4       V P                  W4       V P                  VP                  ^4       V P                  VP                  ^4       V P                  VP                   V4       V P                  VP#                  ^{4      ^{4       V P                  VP                  ^|4       V P                  VP                  ^}4       RVn        RVn        \        P                  ! ^\        P                  R7      ;Vn        pV P                  VP                  R4       V P                  VP                  R4       V P                  VP                   V4       R# )c                     V # r   rD   r   s   &r#   identity>TestJitClass.test_jitclass_usage_from_python.<locals>.identity   s    Jr&   c                 H    V P                   V P                  V P                  3# r   r   r   s   &r#   retrieve_attributesITestJitClass.test_jitclass_usage_from_python.<locals>.retrieve_attributes   s    55#%%((r&   r   iM  i  N)r   r
   r   aranger   r=   rQ   refcountdatar   box_get_dataptr_numba_type_rI   assertIsr   r    r   r   )r"   r   r   r   r   r   obj_meminfootherother_meminfoout_xout_yout_arrnewarrs   &            r#   test_jitclass_usage_from_python,TestJitClass.test_jitclass_usage_from_python   s{   224		 
	 
	) 
	) ii"**-Q3'"3'--q1))4+?+?+DE))44'22	4 $U+--q1//3++T-A-A%-HI++[-=-=> =--q1 !4C 8g""g# 	""cggs# 	s+(( 99Qbjj99&$$cggv&r&   c                    \        4       p\        VR &   \        V4       ! R R\        4      4       pV P	                  V! R4      P
                  4       V P                  V! R4      P
                  4       R# )r   c                   &   a  ] tR tRt o R tRtV tR# )2TestJitClass.test_jitclass_datalayout.<locals>.Fooi  c                    Wn         R # r   r   r   s   &&r#   r$   ;TestJitClass.test_jitclass_datalayout.<locals>.Foo.__init__      r&   r   Nr)   r0   s   @r#   r   r     s      r&   r   TFN)r   r   r   rH   
assertTruer   assertFalse)r"   rT   r   s   &  r#   test_jitclass_datalayout%TestJitClass.test_jitclass_datalayout  s[    }U	$	& 	 
	
 	D	&U(r&   c                  a	 \        4       p\        4       p\        VR &   \        V4      VR&   \        R 4       o	\        V4       ! V	3R lR\        4      4       pVP                  VP                  P                  4       V! ^{R4      pV P                  VP                  ^{4       V P                  VP                  4       V! RV4      p\        V4      p\        V4      pV P                  VP                  ^4       V P                  VP                  P                  VP                  4       V P                  VP                  ^4       V P                  VP                  ^4       VP!                  4       pV P                  WP                  4       V P                  VP                  4       VP#                  V! RR4      4       V P%                  VP                  4       V P                  VP                  P                  R4       V P                  VP                  P                  4       VP#                  V! RR4      4       V P%                  VP                  P                  4       V P                  VP                  P                  P                  R4       V P                  VP                  ^4       ??V P                  VP                  ^4       R# )	r   nextc                     V P                   # r   r   )nodes   &r#   get_data1TestJitClass.test_deferred_type.<locals>.get_data  s    99r&   c                   :   <a  ] tR tRt o R tV3R ltR tRtV tR# )3TestJitClass.test_deferred_type.<locals>.LinkedNodei  c                    Wn         W n        R # r   r   r   )r"   r   r   s   &&&r#   r$   <TestJitClass.test_deferred_type.<locals>.LinkedNode.__init__  s     	 	r&   c                (   < S! V P                   4      # r   r   )r"   r   s   &r#   get_next_dataATestJitClass.test_deferred_type.<locals>.LinkedNode.get_next_data#  s    		**r&   c                N    T pVP                   e   VP                   pK  Wn         R # r   r  )r"   r   curs   && r#   append_to_tailBTestJitClass.test_deferred_type.<locals>.LinkedNode.append_to_tail'  s    hh*((C r&   r  N)	r*   r+   r,   r-   r$   r	  r  r.   r/   )r1   r   s   @r#   
LinkedNoder    s     !+! !r&   r  NA  7  i  )r   r   r   r   r
   r   rH   definerI   rJ   rQ   r   assertIsNoner   r=   r   r	  r  assertIsNotNone)
r"   	node_typerT   r  firstsecondfirst_meminfosecond_meminfo	first_valr   s
   &        @r#   test_deferred_typeTestJitClass.test_deferred_type  s.   !O	}V	*V		 
	 
$	! 	! 
	!  	..<<=3%S)%**%C'$U+%f-//3))5::6//300!4 ((*	JJ/ 	%**%jd34UZZ(#.%**//*jd34UZZ__---s3 	//3N//3r&   c                l   \        4       p\        VR &   \        VR&   \        VR&   \	        V4       ! R R\
        4      4       pV! R^R4      p ! R R\        P                  4      p\        P                  ! \        P                  ! V4      4      p\        P                  ! V\        P                  ! V4      4      ^ ,          pV P                  VP                  VP                  4       V P                  VP                  VP                  4       V P                  VP                   VP                   4       R	# )
r   r   r   c                   &   a  ] tR tRt o R tRtV tR# )-TestJitClass.test_c_structure.<locals>.StructiU  c                *    Wn         W n        W0n        R # r   r   r   r   )r"   r   r   r   s   &&&&r#   r$   6TestJitClass.test_c_structure.<locals>.Struct.__init__X      r&   r!  Nr)   r0   s   @r#   Structr  U  s      r&   r$  iͫ  o!	@c                   h    ] tR tRtR]P
                  3R]P                  3R]P                  3.tRt	R# ).TestJitClass.test_c_structure.<locals>.CStructi_  r   r   r   rD   N)
r*   r+   r,   r-   ctypesc_int32c_int16c_double_fields_r.   rD   r&   r#   CStructr'  _  s-    fnn%fnn%foo&Hr&   r-  N)r   r	   r   r   r   rH   r(  	Structurec_void_pr   r   castPOINTERrQ   r   r   r   )r"   rT   r$  str-  r;   cstructs   &      r#   test_c_structureTestJitClass.test_c_structureO  s    }S	S	S		$	V 	 
	 FD&)	f&& 	 ood22267++c6>>'#:;A>BDD)BDD)BDD)r&   c                   V P                  4       pV! ^^4      p\        R 4       pV P                  \        4      ;_uu_ 4       pV! W"4       RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)r(   c                     WJ # r   rD   r   r   s   &&r#   do_is#TestJitClass.test_is.<locals>.do_isp  s	    6Mr&   Nzno default `is` implementation)r   r
   r   r   r   r   r   )r"   Vectorvec_ar9  r   s   &    r#   test_isTestJitClass.test_isl  st    ##%q!		 
	 }--% . 	6F<L<L8MN .-s   	A;;B	c                Z    V P                  4       pV! ^^4      pV P                  W!4       R# r(   N)r   assertIsInstance)r"   r   r   s   &  r#   test_isinstanceTestJitClass.test_isinstancey  s)    $$&amc+r&   c                    V P                  4       pV P                  \        4      ;_uu_ 4       p ! R  RV4      pRRR4       V P                  \	        XP
                  4      R4       R#   + '       g   i     L7; i)c                       ] tR tRtRtR# )+TestJitClass.test_subclassing.<locals>.SubVi  rD   N)r*   r+   r,   r-   r.   rD   r&   r#   SubVrF    s    r&   rG  Nzcannot subclass from a jitclass)r   r   r   rQ   r   r   )r"   r   r   rG  s   &   r#   test_subclassingTestJitClass.test_subclassing~  s]    $$&y))Vw  * 	V--.:	< *)s   A))A9	c                     ! R  R\         4      p\        R\        3.4       ! R RV4      4       pV! ^{4      pV P                  VP	                  4       ^{4       R# )c                   &   a  ] tR tRt o R tRtV tR# )*TestJitClass.test_base_class.<locals>.Basei  c                    V P                   # r   attrrE   s   &r#   what/TestJitClass.test_base_class.<locals>.Base.what  s    yy r&   rD   N)r*   r+   r,   r-   rP  r.   r/   r0   s   @r#   BaserL    s     ! !r&   rR  rO  c                   &   a  ] tR tRt o R tRtV tR# )*TestJitClass.test_base_class.<locals>.Testi  c                    Wn         R # r   rN  r"   rO  s   &&r#   r$   3TestJitClass.test_base_class.<locals>.Test.__init__       	r&   rN  Nr)   r0   s   @r#   rG   rT    s     ! !r&   rG   N)rH   r   r	   rQ   rP  )r"   rR  rG   r   s   &   r#   test_base_classTestJitClass.test_base_class  sV    	!6 	!
 
FE?#	$	!4 	! 
%	!
 3iS)r&   c                     ! R  R\         4      pV P                  \        4      ;_uu_ 4       p\        V4       RRR4       V P	                  \        XP                  4      R4       R#   + '       g   i     L7; i)c                   *   a  ] tR tRt o ^{tR tRtV tR# )'TestJitClass.test_globals.<locals>.Minei  c                    R # r   rD   rE   s   &r#   r$   0TestJitClass.test_globals.<locals>.Mine.__init__  rj   r&   rD   N)r*   r+   r,   r-   constantr$   r.   r/   r0   s   @r#   Miner]    s     H r&   ra  Nz-class members are not yet supported: constantrH   r   r   r   rQ   r   r   )r"   ra  r   s   &  r#   test_globalsTestJitClass.test_globals  sY    	6 	 y))VTN * 	V--.H	J *)   A((A8	c                   \        R \        3.4       ! R R\        4      4       pV! ^{4      pV P                  VP                  ^{4       V P                  VP
                  ^|4       RVn        V P                  VP                  R4       V P                  VP
                  R4       \        R 4       pV! VR4      w  rEpV P                  VR4       V P                  VR4       V P                  VR4       R# )	rO  c                   Z   a  ] tR tRt o R t]R 4       t]P                  R 4       tRtV t	R# )1TestJitClass.test_user_getter_setter.<locals>.Fooi  c                    Wn         R # r   rN  rV  s   &&r#   r$   :TestJitClass.test_user_getter_setter.<locals>.Foo.__init__  rX  r&   c                (    V P                   ^,           # r'   rN  rE   s   &r#   r   7TestJitClass.test_user_getter_setter.<locals>.Foo.value  s    yy1}$r&   c                "    V^,
          V n         R# r@  rN  r   s   &&r#   r   rl    s    !G	r&   rN  N)
r*   r+   r,   r-   r$   propertyr   setterr.   r/   r0   s   @r#   r   rh    s6     ! % % \\$ $r&   r   i  c                 ^    V P                   pWn         V P                   pV P                  pW#V3# r   )r   rO  )r   r   r   r   r   s   &&   r#   r   1TestJitClass.test_user_getter_setter.<locals>.bar  s+    		AI		AA7Nr&   r  Ni  i6  )r   r	   rH   rQ   rO  r   r
   )r"   r   r   r   r   r   r   s   &      r#   test_user_getter_setter$TestJitClass.test_user_getter_setter  s    	FE?#	$	$& 	$ 
%	$ #h3'G,	7+C( 
	 
	 c3-aC C G$r&   c                     ! R  R\         4      pV P                  \        4      ;_uu_ 4       p\        V4       RRR4       V P	                  \        XP                  4      R4       R#   + '       g   i     L7; i)c                   Z   a  ] tR tRt o R t]R 4       t]P                  R 4       tRtV t	R# )1TestJitClass.test_user_deleter_error.<locals>.Fooi  c                    R # r   rD   rE   s   &r#   r$   :TestJitClass.test_user_deleter_error.<locals>.Foo.__init__  rj   r&   c                    ^# r'   rD   rE   s   &r#   r   7TestJitClass.test_user_deleter_error.<locals>.Foo.value  s    r&   c                    R # r   rD   rE   s   &r#   r   rz        r&   rD   N)
r*   r+   r,   r-   r$   rn  r   deleterr.   r/   r0   s   @r#   r   rv    s6        ]] r&   r   Nzdeleter is not supported: valuerb  r"   r   r   s   &  r#   test_user_deleter_error$TestJitClass.test_user_deleter_error  sV    	& 	 y))VSM *V--.:	< *)re  c                    ! R  R\         4      pV P                  \        4      ;_uu_ 4       p\        VR\        3.4       RRR4       V P                  \        XP                  4      R4       V P                  \        4      ;_uu_ 4       p\        VR\        3.4       RRR4       V P                  \        VP                  4      R4       R#   + '       g   i     L; i  + '       g   i     LJ; i)c                   <   a  ] tR tRt o R t]R 4       tR tRtV t	R# )3TestJitClass.test_name_shadowing_error.<locals>.Fooi  c                    R # r   rD   rE   s   &r#   r$   <TestJitClass.test_name_shadowing_error.<locals>.Foo.__init__  rj   r&   c                    R # r   rD   rE   s   &r#   my_property?TestJitClass.test_name_shadowing_error.<locals>.Foo.my_property  r|  r&   c                    R # r   rD   rE   s   &r#   	my_method=TestJitClass.test_name_shadowing_error.<locals>.Foo.my_method  rj   r&   rD   N)
r*   r+   r,   r-   r$   rn  r  r  r.   r/   r0   s   @r#   r   r    s(        r&   r   r  Nzname shadowing: my_propertyr  zname shadowing: my_method)rH   r   	NameErrorr   r	   rQ   r   r   r~  s   &  r#   test_name_shadowing_error&TestJitClass.test_name_shadowing_error  s    
	& 
	 y))VSM5123 *V--.0MNy))VSK/01 *V--.0KL *) *)s   CC!C	!C1	c                   \        R \        3.4       ! R R\        4      4       pTp\        R \        3.4       ! R R\        4      4       pTpV! ^4      pV P                  VP                  ^4       V P                  VP                  4       ^4       V! ^4      pV P                  VP                  ^4       V P                  VP                  4       ^4       R# )r   c                   ,   a  ] tR tRt o R tR tRtV tR# )/TestJitClass.test_distinct_classes.<locals>.Fooi  c                "    V^,           V n         R# rl   Nr   r"   r   s   &&r#   r$   8TestJitClass.test_distinct_classes.<locals>.Foo.__init__      Qr&   c                (    V P                   ^,           # r'   r  rE   s   &r#   run3TestJitClass.test_distinct_classes.<locals>.Foo.run      vvz!r&   r  Nr*   r+   r,   r-   r$   r  r.   r/   r0   s   @r#   r   r         " "r&   r   c                   ,   a  ] tR tRt o R tR tRtV tR# )r  i  c                "    V^,
          V n         R# r  r  r  s   &&r#   r$   r    r  r&   c                (    V P                   ^,
          # r'   r  rE   s   &r#   r  r    r  r&   r  Nr  r0   s   @r#   r   r    r  r&   N)r   r	   rH   rQ   r   r  )r"   r   FirstFoo	SecondFoor   s   &    r#   test_distinct_classes"TestJitClass.test_distinct_classes  s    	C<.	!	"& 	" 
"	" 	C<.	!	"& 	" 
"	" 	qk"A&l"A&r&   c                  a  ! R  R\         4      oV3R lpV! ^{4      pV P                  VP                  ^{4       V! R4      pV P                  VP                  R4       V! \        P                  ! ^{.4      4      p\        P
                  P                  VP                  ^{.4       V! \        P                  ! R.4      4      p\        P
                  P                  VP                  R.4       R# )c                   &   a  ] tR tRt o R tRtV tR# )0TestJitClass.test_parameterized.<locals>.MyClassi  c                    Wn         R # r   r   r   s   &&r#   r$   9TestJitClass.test_parameterized.<locals>.MyClass.__init__      "
r&   r  Nr)   r0   s   @r#   MyClassr    s     # #r&   r  c                 D   < \        SR \        V 4      3.4      pV! V 4      # r  )r   r   )r   clsr  s   & r#   create_my_class8TestJitClass.test_parameterized.<locals>.create_my_class  s%    7gve}%=$>?Cu:r&   g(@N)rH   rQ   r   r   arraytestingassert_equal)r"   r  r   r   r   dr  s   &     @r#   test_parameterizedTestJitClass.test_parameterized  s    	#f 	#
	 C #&D!$'BHHcUO,


#/BHHdV,-


$0r&   c                $   R \         R\        R\         R\         /p\        V4       ! R R\        4      4       p^{pV! V4      pV P	                  VP
                  V4       V P	                  VP                  V^,          4       V P	                  VP                  V^,          4       V P	                  VP                  VP                  4       VP                  pV;P                  ^,          un        V P	                  VP                  V^,
          4       V P	                  VP                  R4      V^,          4       V P	                  VP                  V^,          4      R4       V P	                  VP                  ^4      VP                  ^,          4       V P	                  VP                  ^4      VP                  ^,          4       V P	                  VP                  V^,
          4       V;P                  ^d,          un        V P	                  VP                  V^e,
          4       \        R 4       pV P                  \        P                   4      ;_uu_ 4       pV! V4       RRR4       V P#                  R	\%        XP&                  4      4       V P                  \(        4      ;_uu_ 4       pVP+                  V4       RRR4       V P#                  R	\%        VP&                  4      4       R#   + '       g   i     L; i  + '       g   i     LJ; i)
r   _value__value	__value__c                      a  ] tR tRt o R t]R 4       t]R 4       t]P                  R 4       t]R 4       t	]	P                  R 4       t	R t
R	 tR
 tR tRtV tR# )2TestJitClass.test_protected_attrs.<locals>.MyClassi-  c                f    Wn         V^,          V n        V^,          V n        V^,
          V n        R# r  )r   r  _MyClass__valuer  r   s   &&r#   r$   ;TestJitClass.test_protected_attrs.<locals>.MyClass.__init__0  s(    "
#ai$qy!&r&   c                    V P                   # r   r  rE   s   &r#   private_value@TestJitClass.test_protected_attrs.<locals>.MyClass.private_value6      ||#r&   c                    V P                   # r   r  rE   s   &r#   _inner_value?TestJitClass.test_protected_attrs.<locals>.MyClass._inner_value:  s    {{"r&   c                    Wn         R # r   r  r"   vs   &&r#   r  r  >  s    r&   c                    V P                   # r   r  rE   s   &r#   __private_valueBTestJitClass.test_protected_attrs.<locals>.MyClass.__private_valueB  r  r&   c                    Wn         R # r   r  r  s   &&r#   r  r  F  s     r&   c                *    V P                   pWn         V# r   )_MyClass__private_value)r"   newolds   && r#   swap_private_valueETestJitClass.test_protected_attrs.<locals>.MyClass.swap_private_valueJ  s    **'*$
r&   c                (    V P                   V,          # r   r  r"   factors   &&r#   _protected_methodDTestJitClass.test_protected_attrs.<locals>.MyClass._protected_methodO  s    {{V++r&   c                (    V P                   V,          # r   r  r  s   &&r#   __private_methodCTestJitClass.test_protected_attrs.<locals>.MyClass.__private_methodR  s    ||f,,r&   c                $    V P                  V4      # r   )_MyClass__private_methodr  s   &&r#   check_private_methodGTestJitClass.test_protected_attrs.<locals>.MyClass.check_private_methodU  s    ,,V44r&   )r  r  r  r  r   N)r*   r+   r,   r-   r$   rn  r  r  ro  r  r  r  r  r  r.   r/   r0   s   @r#   r  r  -  s     + $ $ # #     !  $ $ ##! $!
,-5 5r&   r  r  c                     V P                   # r   )_TestJitClass__value)insts   &r#   access_dunder8TestJitClass.test_protected_attrs.<locals>.access_dundero  s    <<r&   Nr  )r	   r   r   rH   rQ   r   r  r  r  r  r  r  r  r
   r   r   r   r   r   r   AttributeErrorpy_func)r"   rT   r  r   r  freeze_inst_valuer  r   s   &       r#   test_protected_attrs!TestJitClass.test_protected_attrs%  sS   Ugu	
 
$(	5f (	5 
(	5T u~U+eai0++UQY7**DKK8 KKQ**,=,AB005uqyA00;SA//2DKK!OD2215t7I7IA7MN3#5 
	  
	  v1122f$ 3 	,c&2B2B.CD~..&!!$' /,c&2B2B.CD 32 /.s   	K,+K?,K<	?L	c                    ^RI Hp R\        /p\        W4      pV! ^4      pV P	                  VP
                  ^4       V P	                  VP                  ^4      ^4       R# )z=
Methods with annotations should compile fine (issue #1911).
)AnnotatedClassr   N)annotation_usecasesr  r	   r   rQ   r   r   )r"   r  rT   r  r   s   &    r#   test_annotationsTestJitClass.test_annotations}  sO    
 	8U|~,!f"Q'r&   c                R   \          ! R  R\        4      4       pV P                  VP                  R4       V P                  VP                  P                  R4       V P                  VP
                  P                  R4       V P                  VP                  P                  R4       R# )c                   @   a  ] tR tRt o RtR tR t]R 4       tRt	V t
R# )*TestJitClass.test_docstring.<locals>.Applei  Class docstringc                    R# )init docstringNrD   rE   s   &r#   r$   3TestJitClass.test_docstring.<locals>.Apple.__init__      r&   c                    R# )foo method docstringNrD   rE   s   &r#   r   .TestJitClass.test_docstring.<locals>.Apple.foo  r  r&   c                    R# )aval property docstringNrD   rE   s   &r#   aval/TestJitClass.test_docstring.<locals>.Apple.aval  r  r&   rD   N)r*   r+   r,   r-   __doc__r$   r   rn  r  r.   r/   r0   s   @r#   Appler    s&     !' * *r&   r  r  r  r  r  N)r   rH   rQ   r   r$   r   r  )r"   r  s   & r#   test_docstringTestJitClass.test_docstring  s    		*F 	* 
	* 	(9://1AB**,BC++-FGr&   c                   R \         3R\        3.p\        V4       ! R R\        4      4       p^p^pRpRVRV/pV! R	R^/VB pV P	                  VP
                  W4,          4       V P	                  VP                  V4       R# )
r   r   c                   &   a  ] tR tRt o R tRtV tR# )+TestJitClass.test_kwargs.<locals>.TestClassi  c                ,    W,          V n         W0n        R # r   r8  r"   r   r    r!   s   &&&&r#   r$   4TestJitClass.test_kwargs.<locals>.TestClass.__init__  s    r&   r8  Nr)   r0   s   @r#   	TestClassr    s      r&   r
  g?r    r!   r   NrD   )r	   r   r   rH   rQ   r   r   )r"   rT   r
  r   r    r!   kwargstcs   &       r#   test_kwargsTestJitClass.test_kwargs  s    eg  
$	 	 
	
 q#q!%%f%qu%q!r&   c                   R \         3R\         3R\         3.p\        V4       ! R R\        4      4       pV! ^^^4      pV P                  VP                  ^4       V P                  VP
                  ^4       V P                  VP                  ^4       V! ^^4      pV P                  VP                  ^4       V P                  VP
                  ^4       V P                  VP                  ^4       V! ^^^R7      pV P                  VP                  ^4       V P                  VP
                  ^4       V P                  VP                  ^4       R# )r   r    r!   c                   *   a  ] tR tRt o RR ltRtV tR# )1TestJitClass.test_default_args.<locals>.TestClassi  c                *    Wn         W n        W0n        R # r   r   r    r!   r  s   &&&&r#   r$   :TestJitClass.test_default_args.<locals>.TestClass.__init__  r#  r&   r  Nr'   r)   r0   s   @r#   r
  r    s      r&   r
  )r    r!   r   N)r	   r   rH   rQ   r   r    r!   r"   rT   r
  r  s   &   r#   test_default_argsTestJitClass.test_default_args  s   eee 
$	 	 
	 q!Qq!q!q!q!_q!q!q!a1%q!q!q!r&   c                6   R \         3R\         3R\         3R\         3.p\        \        V4      pV! ^^4      pV P                  VP                  ^4       V P                  VP
                  ^4       V P                  VP                  ^4       V P                  VP                  ^4       V! ^^^*^dR7      pV P                  VP                  ^4       V P                  VP
                  ^4       V P                  VP                  ^d4       V P                  VP                  ^*4       V! ^^^*R7      pV P                  VP                  ^4       V P                  VP
                  ^4       V P                  VP                  ^4       V P                  VP                  ^*4       V! ^^R7      pV P                  VP                  ^4       V P                  VP
                  ^4       V P                  VP                  ^4       V P                  VP                  ^4       R# )r   r    r!   r   )r    r   r   r!   )r    r   r   )r    r   N)r	   r   r   rQ   r   r    r!   r   r  s   &   r#   test_default_args_keyonly&TestJitClass.test_default_args_keyonly  s   eeee
 Z.	q!_q!q!q!q!a2-q!q!s#r"a2&q!q!q!r"a q!q!q!q!r&   c                n   R \         3R\         3R\         3R\        P                  ! \         ^4      3R\         3.pV P                  \        P
                  4      ;_uu_ 4       p\        \        V4       RRR4       RpV P                  V\        XP                  4      4       R#   + '       g   i     L9; i)r   r    r!   r5   r   Nz(VAR_POSITIONAL argument type unsupported)r	   r   UniTupler   r   UnsupportedErrorr   r3   r   r   r   )r"   rT   r   msgs   &   r#   &test_default_args_starargs_and_keyonly3TestJitClass.test_default_args_starargs_and_keyonly  s    eeeq12e	 v66776Z& 8 9c3v//01	 87s   "B$$B4	c                    . p\        V4       ! R  R\        4      4       pR p\        ^
4       FC  p\        V! V4      V! 4       P	                  V4      4       F  w  rVV P                  WV4       K  	  KE  	  R# )c                   ,   a  ] tR tRt o R tR tRtV tR# )5TestJitClass.test_generator_method.<locals>.TestClassi  c                    R # r   rD   rE   s   &r#   r$   >TestJitClass.test_generator_method.<locals>.TestClass.__init__  rj   r&   c              3  b   "   \        V4       F  p\        P                  ! V4      x  K  	  R # 5ir   ranger   r   )r"   niteris   && r#   gen9TestJitClass.test_generator_method.<locals>.TestClass.gen  s!     uA))A,& &   -/rD   N)r*   r+   r,   r-   r$   r+  r.   r/   r0   s   @r#   r
  r#    s     ' 'r&   r
  c              3   b   "   \        V 4       F  p\        P                  ! V4      x  K  	  R # 5ir   r'  )r)  r*  s   & r#   expected_gen8TestJitClass.test_generator_method.<locals>.expected_gen  s!     5\iil" "r-  N)r   rH   r(  rS   r+  r   )r"   rT   r
  r/  r)  expectrY   s   &      r#   test_generator_method"TestJitClass.test_generator_method  sk    	$	' 	' 
	'	# 2YE"<#6	8NO''4  P r&   c                <  a R \         R,          3.p\        V4       ! R R\        4      4       o\        V3R l4       p\        R 4       pV! 4       pV P	                  V! V^4      ^4       V P	                  V! V^4      ^4       V P	                  V! V^4      ^4       R# )r   r   c                   2   a  ] tR tRt o R tR tR tRtV tR# ),TestJitClass.test_getitem.<locals>.TestClassi  c                \    \         P                  ! ^
\         P                  R7      V n        R# 
   r   Nr   zerosr	   r   rE   s   &r#   r$   5TestJitClass.test_getitem.<locals>.TestClass.__init__      HHRrxx8	r&   c                "    W P                   V&   R # r   r   r"   keyr   s   &&&r#   __setitem__8TestJitClass.test_getitem.<locals>.TestClass.__setitem__      !%		#r&   c                (    V P                   V,          # r   r   r"   r@  s   &&r#   __getitem__8TestJitClass.test_getitem.<locals>.TestClass.__getitem__      yy~%r&   r   N	r*   r+   r,   r-   r$   rA  rF  r.   r/   r0   s   @r#   r
  r6         9&& &r&   r
  c                  4   < S! 4       p ^V ^&   ^V ^&   ^V ^&   V # r'   rD   )tr
  s    r#   create_and_set_indices9TestJitClass.test_getitem.<locals>.create_and_set_indices  s*    AAaDAaDAaDHr&   c                     W,          # r   rD   )rL  ns   &&r#   	get_index,TestJitClass.test_getitem.<locals>.get_index$  s	    4Kr&   Nr	   r   rH   r
   rQ   )r"   rT   rM  rQ  rL  r
  s   &    @r#   test_getitemTestJitClass.test_getitem  s    q"#	$	& 	& 
	& 
	 
	 
	 
	 #$1a!,1a!,1a!,r&   c                    R \         R,          3.p\        V4       ! R R\        4      4       pV! 4       p^
V^&   \        R 4       pV! V4      pV P	                  V^
4       V P	                  V^,          ^4       R# )r   r   c                   2   a  ] tR tRt o R tR tR tRtV tR# )2TestJitClass.test_getitem_unbox.<locals>.TestClassi0  c                \    \         P                  ! ^
\         P                  R7      V n        R# r8  r:  rE   s   &r#   r$   ;TestJitClass.test_getitem_unbox.<locals>.TestClass.__init__2  r=  r&   c                "    W P                   V&   R # r   r   r?  s   &&&r#   rA  >TestJitClass.test_getitem_unbox.<locals>.TestClass.__setitem__5  rC  r&   c                (    V P                   V,          # r   r   rE  s   &&r#   rF  >TestJitClass.test_getitem_unbox.<locals>.TestClass.__getitem__8  rH  r&   r   NrI  r0   s   @r#   r
  rX  0  rJ  r&   r
  c                     ^V ^&   V ^,          #    rD   rL  s   &r#   set2return14TestJitClass.test_getitem_unbox.<locals>.set2return1>  s    AaDQ4Kr&   NrS  )r"   rT   r
  rL  rc  t_1s   &     r#   test_getitem_unboxTestJitClass.test_getitem_unbox-  s    q"#	$	& 	& 
	& K!		 
	 !nb!1r"r&   c                L   R \         R,          3.p\        V4       ! R R\        4      4       pV! 4       p^V\        ^^4      &   \        R 4       p\        R 4       pV P                  V! V^^4      ^4       V! V^^^4       V P                  V\        ^^4      ,          ^4       R# )r   c                   2   a  ] tR tRt o R tR tR tRtV tR# )8TestJitClass.test_getitem_complex_key.<locals>.TestClassiJ  c                \    \         P                  ! R\         P                  R7      V n        R# r9  r   N)r9  r9  r:  rE   s   &r#   r$   ATestJitClass.test_getitem_complex_key.<locals>.TestClass.__init__L      HHXRXX>	r&   c                r    W P                   \        VP                  4      \        VP                  4      3&   R # r   r   rm   realimagr?  s   &&&r#   rA  DTestJitClass.test_getitem_complex_key.<locals>.TestClass.__setitem__O  s#    :>		#chh-SXX67r&   c                x    V P                   \        VP                  4      \        VP                  4      3,          # r   rp  rE  s   &&r#   rF  DTestJitClass.test_getitem_complex_key.<locals>.TestClass.__getitem__R  s&    yySXXCHH!=>>r&   r   NrI  r0   s   @r#   r
  rj  J  s     ??? ?r&   r
  c                 &    V \        W4      ,          # r   complex)rL  rq  rr  s   &&&r#   get_key6TestJitClass.test_getitem_complex_key.<locals>.get_keyY  s    WT())r&   c                      W0\        W4      &   R # r   rw  )rL  rq  rr  r   s   &&&&r#   set_key6TestJitClass.test_getitem_complex_key.<locals>.set_key]  s    %)gd!"r&   Nr   r   )r	   r   rH   rx  r
   rQ   )r"   rT   r
  rL  ry  r|  s   &     r#   test_getitem_complex_key%TestJitClass.test_getitem_complex_keyG  s    t%&	$	? 	? 
	? K'!Q-		* 
	* 
	* 
	* 	Aq)1-1a71a=)1-r&   c                   R \         R,          3.p\        V4       ! R R\        4      4       pV! 4       p^VR&   \        R 4       p\        R 4       pV P	                  V! V4      ^4       V! V^4       V P	                  VR,          ^4       R# )	r   c                   2   a  ] tR tRt o R tR tR tRtV tR# )6TestJitClass.test_getitem_tuple_key.<locals>.TestClassih  c                \    \         P                  ! R\         P                  R7      V n        R# rl  r:  rE   s   &r#   r$   ?TestJitClass.test_getitem_tuple_key.<locals>.TestClass.__init__j  rn  r&   c                B    W P                   V^ ,          V^,          3&   R# r   Nr   r?  s   &&&r#   rA  BTestJitClass.test_getitem_tuple_key.<locals>.TestClass.__setitem__m  s    ,0		#a&#a&.)r&   c                H    V P                   V^ ,          V^,          3,          # r   r   rE  s   &&r#   rF  BTestJitClass.test_getitem_tuple_key.<locals>.TestClass.__getitem__p  s    yyQQ00r&   r   NrI  r0   s   @r#   r
  r  h  s     ?11 1r&   r
  c                     V R,          # )r(   r(   r(   rD   rb  s   &r#   get112TestJitClass.test_getitem_tuple_key.<locals>.get11v  s    T7Nr&   c                     WR&   R# )rl   Nrl   rl   rD   rL  r   s   &&r#   set222TestJitClass.test_getitem_tuple_key.<locals>.set22z  s	    dGr&   Nr~  r  r  rS  )r"   rT   r
  rL  r  r  s   &     r#   test_getitem_tuple_key#TestJitClass.test_getitem_tuple_keye  s    t%&	$	1 	1 
	1 K$		 
	 
	 
	 	q2&a4"%r&   c                   R \         R,          3.p\        V4       ! R R\        4      4       pV! 4       p^VR&   V P                  VR,          ^4       V P                  VR,          ^4       \        R 4       pV P                  V! V4      ^4       \        R 4       pV! V^4       V P                  VR	,          ^4       V P                  VR
,          ^4       R# )r   r   c                   2   a  ] tR tRt o R tR tR tRtV tR# )6TestJitClass.test_getitem_slice_key.<locals>.TestClassi  c                \    \         P                  ! ^
\         P                  R7      V n        R# r8  r:  rE   s   &r#   r$   ?TestJitClass.test_getitem_slice_key.<locals>.TestClass.__init__  r=  r&   c                    W P                   VP                  &   W!P                  ,           V P                   VP                  &   R # r   )r   startstepstop)r"   slcr   s   &&&r#   rA  BTestJitClass.test_getitem_slice_key.<locals>.TestClass.__setitem__  s*    '+		#))$&*XXo		#((#r&   c                <    V P                   VP                  ,          # r   )r   r  )r"   r  s   &&r#   rF  BTestJitClass.test_getitem_slice_key.<locals>.TestClass.__getitem__  s    yy++r&   r   NrI  r0   s   @r#   r
  r    s     96, ,r&   r
  :r(      r(   :r(   r(   r(   :r  r  r  c                     V R ,          # ):r     r(   rD   rb  s   &r#   get51TestJitClass.test_getitem_slice_key.<locals>.get5  s    U8Or&   c                     WR &   R# ):rl   r  r(   NrD   r  s   &&r#   set262TestJitClass.test_getitem_slice_key.<locals>.set26  s	    eHr&   :rl   rl   r(   :r  r  r(   N)r	   r   rH   rQ   r
   )r"   rT   r
  rL  r  r  s   &     r#   test_getitem_slice_key#TestJitClass.test_getitem_slice_key  s    q"#	$		, 		, 
		, K%51%51%		 
	 	a!$ 
	 
	 	a51%51%r&   c                   \        ^4       Uu. uF  p\        \        R4      V,           4      NK   	  ppV Uu. uF  q3^
,          \        3NK  	  ppTP	                  V Uu. uF  q3P                  4       ^
,          \        3NK!  	  up4       \        V4       ! R R\        4      4       pV! 4       P                  4        R# u upi u upi u upi )   r   c                   2   a  ] tR tRt o R tR tR tRtV tR# )JTestJitClass.test_jitclass_longlabel_not_truncated.<locals>.TruncatedLabeli  c                    R V n         R# )g      $@N)
aaaaaaaaaarE   s   &r#   r$   STestJitClass.test_jitclass_longlabel_not_truncated.<locals>.TruncatedLabel.__init__  s	    "%r&   c                f    \         P                  ! V P                  V P                  4      V n        R # r   )randomgaussr  
bbbbbbbbbbrE   s   &r#   meth1PTestJitClass.test_jitclass_longlabel_not_truncated.<locals>.TruncatedLabel.meth1  s    "(,,t"Pr&   c                &    V P                  4        R # r   )r  rE   s   &r#   meth2PTestJitClass.test_jitclass_longlabel_not_truncated.<locals>.TruncatedLabel.meth2  s    

r&   )r  r  N)	r*   r+   r,   r-   r$   r  r  r.   r/   r0   s   @r#   TruncatedLabelr    s     &Q r&   r  N)	r(  chrordr   extendupperr   rH   r  )r"   r   alphabetletterrT   r  s   &     r#   %test_jitclass_longlabel_not_truncated2TestJitClass.test_jitclass_longlabel_not_truncated  s     05Ry9y!CC1%y95=>X6"g&X>(K(llnr)73(KL	$	V 	 
	 	 # :>Ks   $C C %C
c                   \          ! R  R\        4      4       pV! 4       p\        V4      pV P                  V\        P
                  4       \        P                  ! V4      pV P                  \        P                  ! V4      V4       R# )c                   &   a  ] tR tRt o R tRtV tR# )5TestJitClass.test_pickling.<locals>.PickleTestSubjecti  c                    R # r   rD   rE   s   &r#   r$   >TestJitClass.test_pickling.<locals>.PickleTestSubject.__init__  rj   r&   rD   Nr)   r0   s   @r#   PickleTestSubjectr    r   r&   r  N)
r   rH   r   rA  r   ClassInstanceTypepickledumpsr   loads)r"   r  r  typickleds   &    r#   test_picklingTestJitClass.test_pickling  si    		 	 
	 !"D\b%"9"9:,,r"fll7+R0r&   c                  a \        R \        3.4       ! R R4      4       p\        R \        3.4       ! R R4      4       pV P                  VP                  \        4       V P                  VP
                  \        4       V P                  VP                  \        4       V P                  VP                  VP                  4       V P                  ^VP                  ^^4      4       V P                  RVP                  ^^4      4       V P                  ^VP                  ^^4      4       V! ^ 4      pV! ^ 4      pV P                  ^VP                  ^4      4       V P                  RVP                  ^4      4       V P                  ^VP                  ^^4      4       V P                  ^ VP                  ^^4      4       V P                  ^ VP                  ^^4      4       V P                  RVP                  RR4      4       V P                  RVP                  RR4      4       V P                  RVP                  RR	4      4       V P                  \        4      ;_uu_ 4       pVP                  ^^4       R
R
R
4       V P                  R\        XP                  4      4       V P                  \        4      ;_uu_ 4       pVP                  ^4       R
R
R
4       V P                  R\        VP                  4      4       \        . 4       ! V3R lR4      4       oS! 4       pV P                  \        P                   4      ;_uu_ 4       pVP#                  4        R
R
R
4       V P                  R\        VP                  4      4       R
#   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L^; i)r   c                   L   a  ] tR tRt o R tR t]R 4       t]R 4       tRt	V t
R# )/TestJitClass.test_static_methods.<locals>.Test1i  c                    Wn         R # r   r  r  s   &&r#   r$   8TestJitClass.test_static_methods.<locals>.Test1.__init__      r&   c                \    V P                  V P                  V4      V n        V P                  # r   r   r   r"   r    s   &&r#   increase8TestJitClass.test_static_methods.<locals>.Test1.increase  !    $&&!,vvr&   c                    W,           # r   rD   r8  s   &&r#   r   3TestJitClass.test_static_methods.<locals>.Test1.add  	    ur&   c                    W,
          # r   rD   r8  s   &&r#   sub3TestJitClass.test_static_methods.<locals>.Test1.sub  r  r&   r  N)r*   r+   r,   r-   r$   r  staticmethodr   r  r.   r/   r0   s   @r#   rv   r    s7         r&   rv   c                   <   a  ] tR tRt o R tR t]R 4       tRtV t	R# )/TestJitClass.test_static_methods.<locals>.Test2i  c                    Wn         R # r   r  r  s   &&r#   r$   8TestJitClass.test_static_methods.<locals>.Test2.__init__  r  r&   c                \    V P                  V P                  V4      V n        V P                  # r   r  r  s   &&r#   r  8TestJitClass.test_static_methods.<locals>.Test2.increase  r  r&   c                    W,
          # r   rD   r8  s   &&r#   r   3TestJitClass.test_static_methods.<locals>.Test2.add  r  r&   r  N)
r*   r+   r,   r-   r$   r  r  r   r.   r/   r0   s   @r#   Test2r    s#       r&   r  y               @y              ?foobarr   r   Nzhas no attribute 'sub'z'not enough arguments: expected 2, got 1c                   D   <a  ] tR tRt o R t]R 4       tV3R ltRtV t	R# )/TestJitClass.test_static_methods.<locals>.Test3i
  c                    R # r   rD   rE   s   &r#   r$   8TestJitClass.test_static_methods.<locals>.Test3.__init__  rj   r&   c                    R # r   rD   r8  s   &&r#   a_static_method?TestJitClass.test_static_methods.<locals>.Test3.a_static_method  r|  r&   c                (   < SP                  ^^4      # r'   )r  )r"   Test3s   &r#   call_static;TestJitClass.test_static_methods.<locals>.Test3.call_static  s    ,,Q22r&   rD   N)
r*   r+   r,   r-   r$   r  r  r  r.   r/   )r1   r  s   @r#   r  r  
  s(       3 3r&   r  z#Unknown attribute 'a_static_method')r   r	   rA  r   r   r  assertNotEqualrQ   r  r   r  r   r   r   r   r   r   r  )r"   rv   r  t1t2r   invalidr  s   &      @r#   test_static_methods TestJitClass.test_static_methods  s   	C<.	!	 	 
"	  
C<.	!
	 
	 
"
	 	eii4eii4eii4EIIuyy1EIIaO,UYYq!_-EIIaO,1X1XBKKN+R[[^,BFF1aL)BFF1aL)BFF1aL)RVVB^,RVVB^,266%#78~..&IIaO /.&**+	- y))VIIaL *?&**+	- 
"		3 		3 
		3 'v1122f! 3 	;&**+	-; /..
 *)* 32s$   'NN N3N	 N0	3O	c                   \        \        R 7      p\        4        ! R R4      4       pV P                  V\        4       V P                  VP                  P                  V4       \        VR7       ! R R4      4       pV P                  V\        4       V P                  VP                  P                  V4       \         ! R R4      4       pV P                  V\        4       V P                  VP                  P                  V4       \        V4       ! R R	4      4       pV P                  V\        4       V P                  VP                  P                  V4       R
# )r  c                   2   a  ] tR tRt o R tV 3R ltRtV tR# )<TestJitClass.test_jitclass_decorator_usecases.<locals>.Test1i   c                    ^ V n         R# r  r  rE   s   &r#   r$   ETestJitClass.test_jitclass_decorator_usecases.<locals>.Test1.__init__$  	    r&   c                &   < V ^8  d   Qh/ S[ ;R&   # r~   r   )rq   r1   s   "r#   rr   ITestJitClass.test_jitclass_decorator_usecases.<locals>.Test1.__annotate__   r   r&   r  Nrt   r0   s   @r#   rv   r          	  r&   rv   rT   c                   &   a  ] tR tRt o R tRtV tR# )<TestJitClass.test_jitclass_decorator_usecases.<locals>.Test2i*  c                    ^ V n         R# r  r  rE   s   &r#   r$   ETestJitClass.test_jitclass_decorator_usecases.<locals>.Test2.__init__-  r	  r&   r  Nr)   r0   s   @r#   r  r  *        r&   r  c                   2   a  ] tR tRt o R tV 3R ltRtV tR# )<TestJitClass.test_jitclass_decorator_usecases.<locals>.Test3i3  c                    ^ V n         R# r  r  rE   s   &r#   r$   ETestJitClass.test_jitclass_decorator_usecases.<locals>.Test3.__init__7  r	  r&   c                &   < V ^8  d   Qh/ S[ ;R&   # r~   r   )rq   r1   s   "r#   rr   ITestJitClass.test_jitclass_decorator_usecases.<locals>.Test3.__annotate__3  r   r&   r  Nrt   r0   s   @r#   r  r  3  r  r&   r  c                   &   a  ] tR tRt o R tRtV tR# )<TestJitClass.test_jitclass_decorator_usecases.<locals>.Test4i=  c                    ^ V n         R# r  r  rE   s   &r#   r$   ETestJitClass.test_jitclass_decorator_usecases.<locals>.Test4.__init__@  r	  r&   r  Nr)   r0   s   @r#   Test4r  =  r  r&   r  Nr   r   r   rA  r   assertDictEqualrI   rL   )r"   rT   rv   r  r  r  s   &     r#    test_jitclass_decorator_usecases-TestJitClass.test_jitclass_decorator_usecases  s+   W%		 	 
	 	e\2U--44d;	t		 	 
	
 	e\2U--44d;		 	 
	 	e\2U--44d;	$	 	 
	
 	e\2U--44d;r&   c                j   \        \        R 7      p ! R R4      p\        V4      pV P                  V\        4       V P                  VP                  P                  V4        ! R R4      p\        WA4      pV P                  V\        4       V P                  VP                  P                  V4       R# )r  c                   2   a  ] tR tRt o R tV 3R ltRtV tR# )CTestJitClass.test_jitclass_function_usecases.<locals>.AnnotatedTestiI  c                    ^ V n         R# r  r  rE   s   &r#   r$   LTestJitClass.test_jitclass_function_usecases.<locals>.AnnotatedTest.__init__L  r	  r&   c                &   < V ^8  d   Qh/ S[ ;R&   # r~   r   )rq   r1   s   "r#   rr   PTestJitClass.test_jitclass_function_usecases.<locals>.AnnotatedTest.__annotate__I  s     H r&   r  Nrt   r0   s   @r#   AnnotatedTestr$  I  s       r&   r)  c                   &   a  ] tR tRt o R tRtV tR# )ETestJitClass.test_jitclass_function_usecases.<locals>.UnannotatedTestiS  c                    ^ V n         R# r  r  rE   s   &r#   r$   NTestJitClass.test_jitclass_function_usecases.<locals>.UnannotatedTest.__init__U  r	  r&   r  Nr)   r0   s   @r#   UnannotatedTestr+  S        r&   r.  Nr  )r"   rT   r)  JitTest1r.  JitTest2s   &     r#   test_jitclass_function_usecases,TestJitClass.test_jitclass_function_usecasesF  s    W%	 	 M*h5X0077>	 	
 O2h5X0077>r&   c                  aa \        \        R 7      p\        V4       ! R R\        4      4       o\        V4       ! R R\        4      4       oVV3R lpTp\	        V4      pV P                  S\        4       V P                  V! S! ^4      4      V! S! ^4      4      4       V P                  V! S! ^{4      4      V! S! ^{4      4      4       V P                  V! ^ 4      V! ^ 4      4       R# )r  c                   2   a  ] tR tRt o R tR tR tRtV tR# )2TestJitClass.test_jitclass_isinstance.<locals>.Fooi_  c                    Wn         R # r   r  r   s   &&r#   r$   ;TestJitClass.test_jitclass_isinstance.<locals>.Foo.__init__a  r  r&   c                    V P                   # r   r  rE   s   &r#   getValue;TestJitClass.test_jitclass_isinstance.<locals>.Foo.getValued      zz!r&   c                (    V P                   ^,           # r'   r  rE   s   &r#   getValueIncr?TestJitClass.test_jitclass_isinstance.<locals>.Foo.getValueIncrg  s    zzA~%r&   r  N)	r*   r+   r,   r-   r$   r:  r>  r.   r/   r0   s   @r#   r   r6  _  s     #"& &r&   r   c                   ,   a  ] tR tRt o R tR tRtV tR# )2TestJitClass.test_jitclass_isinstance.<locals>.Barij  c                    Wn         R # r   r  r   s   &&r#   r$   ;TestJitClass.test_jitclass_isinstance.<locals>.Bar.__init__l  r  r&   c                    V P                   # r   r  rE   s   &r#   r:  ;TestJitClass.test_jitclass_isinstance.<locals>.Bar.getValueo  r<  r&   r  N)r*   r+   r,   r-   r$   r:  r.   r/   r0   s   @r#   r   rA  j  s     #" "r&   r   c                    < \        V SS34      '       dU   V P                  4       p\        V S4      '       d   V P                  4       V,           R 3# V P                  4       V,           R3# R# )r   r   zno match)rO   r:  r>  )r   r   r   r   s   & r#   test_jitclass_isinstanceGTestJitClass.test_jitclass_isinstance.<locals>.test_jitclass_isinstancer  s^    #Sz**LLNc3''++-1588<<>A-u44!r&   N)r   r	   r   rH   r
   rA  r   rQ   )r"   rT   rG  pyfunccfuncr   r   s   &    @@r#   rG  %TestJitClass.test_jitclass_isinstance\  s    '	$	&& 	& 
	& 
$	"& 	" 
	"		" *-.c<0As1v7C)5S?;E!H-r&   c                    V P                  \        4      ;_uu_ 4       p\         ! R  R\        4      4       pV! 4        RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)c                   ,   a  ] tR tRt o R tR tRtV tR# ):TestJitClass.test_jitclass_unsupported_dunder.<locals>.Fooi  c                    R # r   rD   rE   s   &r#   r$   CTestJitClass.test_jitclass_unsupported_dunder.<locals>.Foo.__init__  s    r&   c                    R # r   rD   rE   s   &r#   	__enter__DTestJitClass.test_jitclass_unsupported_dunder.<locals>.Foo.__enter__  s    r&   rD   N)r*   r+   r,   r-   r$   rR  r.   r/   r0   s   @r#   r   rN    s        r&   r   Nz$Method '__enter__' is not supported.)r   r   r   rH   r   r   r   )r"   er   s   &  r#    test_jitclass_unsupported_dunder-TestJitClass.test_jitclass_unsupported_dunder  s]    y))Q f     E * 	<c!++>NO *)s    A--A=	c                |    \          ! R  R\        4      4       p\        pVP                  pV P	                  W#4       R# )c                   &   a  ] tR tRt o R tRtV tR# )1TestJitClass.test_modulename.<locals>.TestModnamei  c                    ^V n         R# )   Nr  rE   s   &r#   r$   :TestJitClass.test_modulename.<locals>.TestModname.__init__  s	    r&   r  Nr)   r0   s   @r#   TestModnamerY    s      r&   r]  N)r   rH   r*   r+   rQ   )r"   r]  
thisModuleclassModules   &   r#   test_modulenameTestJitClass.test_modulename  s;    		& 	 
	 
!,,1r&   rD   )NNN)4r*   r+   r,   r-   r[   r`   rc   rx   r   r   r   r   r   r   r   r   r  r4  r=  rB  rH  rY  rc  rr  r  r  r  r  r  r   r  r  r  r  r  r  r2  rT  rf  r  r  r  r  r  r  r   r2  rG  rU  r`  r.   r/   r0   s   @r#   r?   r?   0   s    24
O
"?$-*(,4'l)<4|*:O,
<*J$%L<&M*'<1,VEp ( (H*"$"6"@25(->#4.<&:#&J!.
1Q-f'<R?,'.R
P2 2r&   r?   c                      a  ] tR tRt o  ! R R4      t]R 4       t]R 4       tRR ltR t	R	 t
R
 tR tR tR tR tR tR t]R 4       tR tR tR tRtV tR# )TestJitClassOverloadsi  c                   b   a  ] tR tRt o 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# )TestJitClassOverloads.PyListi  c                    ^ .V n         R# r  r  rE   s   &r#   r$   %TestJitClassOverloads.PyList.__init__  s    SDFr&   c                <    V P                   P                  V4       R # r   r   appendr  s   &&r#   rj  #TestJitClassOverloads.PyList.append  s    FFMM!r&   c                :    V P                   P                  4        R # r   )r   clearrE   s   &r#   rm  "TestJitClassOverloads.PyList.clear  s    FFLLNr&   c                :    \        V P                  4      ^,          # r   rR   r   rE   s   &r#   __abs__$TestJitClassOverloads.PyList.__abs__      tvv;?"r&   c                @    \        V P                  4      ^,          ^ 8g  # )   rp  rE   s   &r#   __bool__%TestJitClassOverloads.PyList.__bool__  s    tvv;?a''r&   c                r    \        ^4      pV P                  '       d   WP                  ^ ,          ,          pV# )rl   )rx  r   )r"   r   s   & r#   __complex__(TestJitClassOverloads.PyList.__complex__  s(    
AvvvVVAYHr&   c                    WP                   9   # r   r  r  s   &&r#   __contains__)TestJitClassOverloads.PyList.__contains__  s    ;r&   c                `    R pV P                   '       d   WP                   ^ ,          ,          pV# r%  r  )r"   fs   & r#   	__float__&TestJitClassOverloads.PyList.__float__  s$    AvvvVVAYHr&   c                `    ^pV P                   '       d   WP                   ^ ,          ,          pV# )r  r  )r"   r*  s   & r#   __int__$TestJitClassOverloads.PyList.__int__  s$    AvvvVVAYHr&   c                :    \        V P                  4      ^,           # r'   rp  rE   s   &r#   __len__$TestJitClassOverloads.PyList.__len__  rs  r&   c                >    \        V P                  4      ^ 8X  d   R# R# )r   zPyList emptyzPyList non-emptyrp  rE   s   &r#   __str__$TestJitClassOverloads.PyList.__str__  s    466{a%)r&   r  N)r*   r+   r,   r-   r$   rj  rm  rq  rv  ry  r|  r  r  r  r  r.   r/   r0   s   @r#   PyListre    sA     				#	(					#	* 	*r&   r  c                 `   a  \        R \        P                  3.4       ! V 3R lR4      4       o S # )r   c                   p   <a  ] tR tRt o R tR tR tV3R ltV3R ltV3R lt	V3R lt
V3R	 ltR
tV tR# )9TestJitClassOverloads.get_int_wrapper.<locals>.IntWrapperi  c                    Wn         R # r   r  r   s   &&r#   r$   BTestJitClassOverloads.get_int_wrapper.<locals>.IntWrapper.__init__      r&   c                4    V P                   VP                   8H  # r   r  r"   r   s   &&r#   __eq__@TestJitClassOverloads.get_int_wrapper.<locals>.IntWrapper.__eq__      vv((r&   c                    V P                   # r   r  rE   s   &r#   __hash__BTestJitClassOverloads.get_int_wrapper.<locals>.IntWrapper.__hash__      vvr&   c                J   < S! V P                   VP                   ,          4      # r   r  r"   r   
IntWrappers   &&r#   
__lshift__DTestJitClassOverloads.get_int_wrapper.<locals>.IntWrapper.__lshift__      !$&&EGG"344r&   c                J   < S! V P                   VP                   ,	          4      # r   r  r  s   &&r#   
__rshift__DTestJitClassOverloads.get_int_wrapper.<locals>.IntWrapper.__rshift__  r  r&   c                J   < S! V P                   VP                   ,          4      # r   r  r  s   &&r#   __and__ATestJitClassOverloads.get_int_wrapper.<locals>.IntWrapper.__and__      !$&&577"233r&   c                J   < S! V P                   VP                   ,          4      # r   r  r  s   &&r#   __or__@TestJitClassOverloads.get_int_wrapper.<locals>.IntWrapper.__or__  r  r&   c                J   < S! V P                   VP                   ,          4      # r   r  r  s   &&r#   __xor__ATestJitClassOverloads.get_int_wrapper.<locals>.IntWrapper.__xor__  r  r&   r  N)r*   r+   r,   r-   r$   r  r  r  r  r  r  r  r.   r/   )r1   r  s   @r#   r  r    s2     )55444 4r&   r  )r   r   intp)r  s   @r#   get_int_wrapper%TestJitClassOverloads.get_int_wrapper  s3    	C$%	&	4 	4 
'	42 r&   c                 `   a  \        R \        P                  3.4       ! V 3R lR4      4       o S # )r   c                      <a  ] tR tRt o R tR tR tR tR tR t	R t
V3R	 ltV3R
 ltV3R ltV3R ltV3R ltV3R ltV3R ltV3R ltV3R ltRtV tR# )=TestJitClassOverloads.get_float_wrapper.<locals>.FloatWrapperi  c                    Wn         R # r   r  r   s   &&r#   r$   FTestJitClassOverloads.get_float_wrapper.<locals>.FloatWrapper.__init__  r  r&   c                4    V P                   VP                   8H  # r   r  r  s   &&r#   r  DTestJitClassOverloads.get_float_wrapper.<locals>.FloatWrapper.__eq__  r  r&   c                    V P                   # r   r  rE   s   &r#   r  FTestJitClassOverloads.get_float_wrapper.<locals>.FloatWrapper.__hash__  r  r&   c                4    V P                   VP                   8  # r   r  r  s   &&r#   __ge__DTestJitClassOverloads.get_float_wrapper.<locals>.FloatWrapper.__ge__  r  r&   c                4    V P                   VP                   8  # r   r  r  s   &&r#   __gt__DTestJitClassOverloads.get_float_wrapper.<locals>.FloatWrapper.__gt__      vv''r&   c                4    V P                   VP                   8*  # r   r  r  s   &&r#   __le__DTestJitClassOverloads.get_float_wrapper.<locals>.FloatWrapper.__le__  r  r&   c                4    V P                   VP                   8  # r   r  r  s   &&r#   __lt__DTestJitClassOverloads.get_float_wrapper.<locals>.FloatWrapper.__lt__  r  r&   c                J   < S! V P                   VP                   ,           4      # r   r  r"   r   FloatWrappers   &&r#   __add__ETestJitClassOverloads.get_float_wrapper.<locals>.FloatWrapper.__add__      #DFFUWW$455r&   c                J   < S! V P                   VP                   ,          4      # r   r  r  s   &&r#   __floordiv__JTestJitClassOverloads.get_float_wrapper.<locals>.FloatWrapper.__floordiv__      #DFFegg$566r&   c                J   < S! V P                   VP                   ,          4      # r   r  r  s   &&r#   __mod__ETestJitClassOverloads.get_float_wrapper.<locals>.FloatWrapper.__mod__
  r  r&   c                J   < S! V P                   VP                   ,          4      # r   r  r  s   &&r#   __mul__ETestJitClassOverloads.get_float_wrapper.<locals>.FloatWrapper.__mul__  r  r&   c                *   < S! V P                   ) 4      # r   r  r  s   &&r#   __neg__ETestJitClassOverloads.get_float_wrapper.<locals>.FloatWrapper.__neg__      #TVVG,,r&   c                *   < S! V P                   54      # r   r  r  s   &&r#   __pos__ETestJitClassOverloads.get_float_wrapper.<locals>.FloatWrapper.__pos__  r  r&   c                J   < S! V P                   VP                   ,          4      # r   r  r  s   &&r#   __pow__ETestJitClassOverloads.get_float_wrapper.<locals>.FloatWrapper.__pow__  r  r&   c                J   < S! V P                   VP                   ,
          4      # r   r  r  s   &&r#   __sub__ETestJitClassOverloads.get_float_wrapper.<locals>.FloatWrapper.__sub__  r  r&   c                J   < S! V P                   VP                   ,          4      # r   r  r  s   &&r#   __truediv__ITestJitClassOverloads.get_float_wrapper.<locals>.FloatWrapper.__truediv__  r  r&   r  N)r*   r+   r,   r-   r$   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r.   r/   )r1   r  s   @r#   r  r    sZ     ))()(6766--766 6r&   r  )r   r   r   )r  s   @r#   get_float_wrapper'TestJitClassOverloads.get_float_wrapper  s4    	C'(	)0	6 0	6 
*0	6d r&   Nc                x    V P                  \        V4      \        V4      VR 7       V P                  WVR 7       R# ))r  N)rQ   type)r"   r  r  r  s   &&&&r#   
assertSame TestJitClassOverloads.assertSame!  s2    ed6l<C0r&   c                   \        R \        P                  ! \        P                  4      /4      ! V P                  4      pR R R R R R R R R	 R
 R R R R R R R .pV Uu. uF  p\        V4      NK  	  ppV P	                  4       pV! 4       p\        W$4       FA  w  rxV P                  V! V4      V! V4      4       V P                  V! V4      V! V4      4       KC  	  VP                  ^4       VP                  ^4       \        W$4       FA  w  rxV P                  V! V4      V! V4      4       V P                  V! V4      V! V4      4       KC  	  VP                  R4       VP                  R4       \        W$4       FA  w  rxV P                  V! V4      V! V4      4       V P                  V! V4      V! V4      4       KC  	  VP                  4        VP                  4        \        W$4       FA  w  rxV P                  V! V4      V! V4      4       V P                  V! V4      V! V4      4       KC  	  R# u upi )r   c                     \        V 4      # r   )absr  s   &r#   <lambda>6TestJitClassOverloads.test_overloads.<locals>.<lambda>+      c!fr&   c                 "    V P                  4       # r   )rq  r  s   &r#   r  r  ,  
    aiikr&   c                     \        V 4      # r   boolr  s   &r#   r  r  -  s    d1gr&   c                 "    V P                  4       # r   )rv  r  s   &r#   r  r  .  s
    ajjlr&   c                     \        V 4      # r   rw  r  s   &r#   r  r  /  s    gajr&   c                 "    V P                  4       # r   )ry  r  s   &r#   r  r  0  s
    ammor&   c                     ^ V 9   # r  rD   r  s   &r#   r  r  1  s    a1fr&   c                 $    V P                  ^ 4      # r  )r|  r  s   &r#   r  r  2  s    annQ'r&   c                     \        V 4      # r   r   r  s   &r#   r  r  3  s    eAhr&   c                 "    V P                  4       # r   )r  r  s   &r#   r  r  4  s
    akkmr&   c                     \        V 4      # r   r   r  s   &r#   r  r  5  r  r&   c                 "    V P                  4       # r   )r  r  s   &r#   r  r  6  r  r&   c                     \        V 4      # r   )rR   r  s   &r#   r  r  7  r  r&   c                 "    V P                  4       # r   )r  r  s   &r#   r  r  8  r  r&   c                     \        V 4      # r   )r   r  s   &r#   r  r  9  r  r&   c                 "    V P                  4       # r   )r  r  s   &r#   r  r  :  r  r&   c                     V '       d   ^# ^ # r'   rD   r  s   &r#   r  r  ;  s    1am!mr&   N)
r   r   ro   r  r  r
   rS   r  rj  rm  )	r"   JitListpy_funcsr  	jit_funcspy_listjit_listpy_fjit_fs	   &        r#   test_overloads$TestJitClassOverloads.test_overloads%  s    CEJJ!789$++F !" %'#!!!##
& '//hT!Wh	/++-9x3KDOODM4>:OODM5?; 4 	qx3KDOODM4>:OODM5?; 4 	rx3KDOODM4>:OODM5?; 4 	x3KDOODM4>:OODM5?; 4- 0s   (H;c                   R  p\        V4      p\        R\        P                  ! \        P                  4      3.4       ! R R4      4       pV! . RO4      pV P                  V! V4      4       V P                  V! V4      4       VP                  ^4       V P                  V! V4      4       V P                  V! V4      4       VP                  4        V P                  V! V4      4       V P                  V! V4      4       \        R\        P                  3.4       ! R R4      4       pV! ^ 4      pV P                  V! V4      4       V P                  V! V4      4       R# )	c                     \        V 4      # r   r  r  s   &r#   py_b6TestJitClassOverloads.test_bool_fallback.<locals>.py_bY      7Nr&   r   c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# ):TestJitClassOverloads.test_bool_fallback.<locals>.LenClassi^  c                    Wn         R # r   r  r  s   &&r#   r$   CTestJitClassOverloads.test_bool_fallback.<locals>.LenClass.__init__`  r  r&   c                :    \        V P                  4      ^,          # )   rp  rE   s   &r#   r  BTestJitClassOverloads.test_bool_fallback.<locals>.LenClass.__len__c  s    466{Q&r&   c                <    V P                   P                  V4       R # r   ri  r  s   &&r#   rj  ATestJitClassOverloads.test_bool_fallback.<locals>.LenClass.appendf  s    a r&   c                <    V P                   P                  ^ 4       R# r  )r   poprE   s   &r#   r   >TestJitClassOverloads.test_bool_fallback.<locals>.LenClass.popi  s    

1r&   r  N)
r*   r+   r,   r-   r$   r  rj  r   r.   r/   r0   s   @r#   LenClassr  ^  s     '! r&   r"  r    c                   &   a  ] tR tRt o R tRtV tR# )=TestJitClassOverloads.test_bool_fallback.<locals>.NormalClassix  c                    Wn         R # r   r    r  s   &&r#   r$   FTestJitClassOverloads.test_bool_fallback.<locals>.NormalClass.__init__z  r  r&   r&  Nr)   r0   s   @r#   NormalClassr$  x  r/  r&   r(  N)r(   rl   ru  )
r
   r   r   ro   r  r   rj  r   r   r   )r"   r  jit_br"  r   r(  s   &     r#   test_bool_fallback(TestJitClassOverloads.test_bool_fallbackW  s   	 T
	CEJJ/01	2	 	 
3	 y!S	"c
#

1c#s$	S	"c
#	C'(	)	 	 
*	 !nS	"c
#r&   c                	   R  pR pR p\        V4      p\        V4      p\        V4      p\        . 4       ! R R4      4       pV! 4       pV P                  V! V4      \        R4      4       V P                  V! V4      \        R4      4       V P                  V! V4      R4       V P                  V! V4      R4       V P	                  \
        4      ;_uu_ 4       p	V! V4       RRR4       V P                  R\        X	P                  4      4       V P	                  \        4      ;_uu_ 4       p	V! V4       RRR4       V P                  R\        V	P                  4      4       \        . 4       ! R R	4      4       p
V
! 4       pV P                  V! V4      ^4       V P                  V! V4      ^4       V P	                  \
        4      ;_uu_ 4       p	V! V4       RRR4       V P                  R
\        V	P                  4      4       V P	                  \        4      ;_uu_ 4       p	V! V4       RRR4       V P                  R
\        V	P                  4      4       V P	                  \
        4      ;_uu_ 4       p	V! V4       RRR4       V P                  R\        V	P                  4      4       V P	                  \        4      ;_uu_ 4       p	V! V4       RRR4       V P                  R\        V	P                  4      4       \        . 4       ! R R4      4       pV! 4       pV P                  V! V4      \        ^4      4       V P                  V! V4      \        ^4      4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      ^4       V P                  V! V4      ^4       \        . 4       ! R R4      4       pV! 4       pV P                  V! V4      \        R4      4       V P                  V! V4      \        R4      4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      ^4       V P                  V! V4      ^4       R#   + '       g   i     EL; i  + '       g   i     ELi; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL]; i  + '       g   i     EL; i)c                     \        V 4      # r   rw  r  s   &r#   py_c9TestJitClassOverloads.test_numeric_fallback.<locals>.py_c  s    1:r&   c                     \        V 4      # r   r   r  s   &r#   r  9TestJitClassOverloads.test_numeric_fallback.<locals>.py_f  s    8Or&   c                     \        V 4      # r   r   r  s   &r#   py_i9TestJitClassOverloads.test_numeric_fallback.<locals>.py_i  s    q6Mr&   c                   ,   a  ] tR tRt o R tR tRtV tR# )?TestJitClassOverloads.test_numeric_fallback.<locals>.FloatClassi  c                    R # r   rD   rE   s   &r#   r$   HTestJitClassOverloads.test_numeric_fallback.<locals>.FloatClass.__init__  rj   r&   c                    R # r  rD   rE   s   &r#   r  ITestJitClassOverloads.test_numeric_fallback.<locals>.FloatClass.__float__      r&   rD   N)r*   r+   r,   r-   r$   r  r.   r/   r0   s   @r#   
FloatClassr6    s      r&   r<  r%  Nrm   c                   ,   a  ] tR tRt o R tR tRtV tR# )=TestJitClassOverloads.test_numeric_fallback.<locals>.IntClassi  c                    R # r   rD   rE   s   &r#   r$   FTestJitClassOverloads.test_numeric_fallback.<locals>.IntClass.__init__  rj   r&   c                    ^# r   rD   rE   s   &r#   r  ETestJitClassOverloads.test_numeric_fallback.<locals>.IntClass.__int__  r   r&   rD   N)r*   r+   r,   r-   r$   r  r.   r/   r0   s   @r#   IntClassr>          r&   rC  rx  rp   c                   ,   a  ] tR tRt o R tR tRtV tR# )?TestJitClassOverloads.test_numeric_fallback.<locals>.IndexClassi  c                    R # r   rD   rE   s   &r#   r$   HTestJitClassOverloads.test_numeric_fallback.<locals>.IndexClass.__init__  rj   r&   c                    ^# r'   rD   rE   s   &r#   	__index__ITestJitClassOverloads.test_numeric_fallback.<locals>.IndexClass.__index__  r   r&   rD   N)r*   r+   r,   r-   r$   rJ  r.   r/   r0   s   @r#   
IndexClassrF    rD  r&   rL        ?c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )GTestJitClassOverloads.test_numeric_fallback.<locals>.FloatIntIndexClassi  c                    R # r   rD   rE   s   &r#   r$   PTestJitClassOverloads.test_numeric_fallback.<locals>.FloatIntIndexClass.__init__  rj   r&   c                    R # r  rD   rE   s   &r#   r  QTestJitClassOverloads.test_numeric_fallback.<locals>.FloatIntIndexClass.__float__  r;  r&   c                    ^# r   rD   rE   s   &r#   r  OTestJitClassOverloads.test_numeric_fallback.<locals>.FloatIntIndexClass.__int__  r   r&   c                    ^# r'   rD   rE   s   &r#   rJ  QTestJitClassOverloads.test_numeric_fallback.<locals>.FloatIntIndexClass.__index__  r   r&   rD   N)
r*   r+   r,   r-   r$   r  r  rJ  r.   r/   r0   s   @r#   FloatIntIndexClassrO    s      r&   rX  )
r
   r   r  rx  r   r   r   r   r   r   )r"   r.  r  r3  jit_cr  jit_ir<  r   rT  rC  rL  rX  s   &            r#   test_numeric_fallback+TestJitClassOverloads.test_numeric_fallback  s   			 T
T
T
	"	 	 
	 lS	76?3c
GFO4S	6*c
F+y))QI *eS-.{++q#J ,eS-.	"	 	 
	 jS	1%c
A&y))QI *iQ[[!12{++q#J ,iQ[[!12y))QI *gs1;;/0{++q#J ,gs1;;/0	"	 	 
	 lS	71:.c
GAJ/S	2&c
B'S	1%c
A&	"	 	 
	 !"S	76?3c
GFO4S	6*c
F+S	1%c
A&K *)) ,++  *)) ,++ *)) ,++sH   	R,	R	R)!	R=4	S	S%R	R&	)R:	=S	S"	%S6	c                   V P                  4       pV P                  4       pR  R R R R R R R R R	 R
 R R .pR R R R R R R .p. ROpR p\        P                  ! \	        \
        V4      V4       F  w  pw  rVP                  p
V
! W4      pV! V4      pV! V	4      p\        V4      \        Jd   V P                  MV P                  pV! W! W4      4       V! W! V
! W4      4      4       V! W! V! W4      4      4       K  	  \        P                  ! \	        \
        V4      V4       F  w  pw  rVP                  p
\        V4      \        V	4      rV
! W4      pV! V4      pV! V	4      pV P                  W! W4      4       V P                  W! V
! W4      4      4       V P                  W! V! W4      4      4       K  	  R# )c                 
    W8H  # r   rD   r   s   &&r#   r  ?TestJitClassOverloads.test_arithmetic_logical.<locals>.<lambda>      r&   c                 
    W8g  # r   rD   r   s   &&r#   r  r_    r`  r&   c                 
    W8  # r   rD   r   s   &&r#   r  r_    r`  r&   c                 
    W8  # r   rD   r   s   &&r#   r  r_        r&   c                 
    W8*  # r   rD   r   s   &&r#   r  r_    r`  r&   c                 
    W8  # r   rD   r   s   &&r#   r  r_    rd  r&   c                     W,           # r   rD   r   s   &&r#   r  r_        r&   c                     W,          # r   rD   r   s   &&r#   r  r_        r&   c                     W,          # r   rD   r   s   &&r#   r  r_    rh  r&   c                     W,          # r   rD   r   s   &&r#   r  r_    rh  r&   c                     W,          # r   rD   r   s   &&r#   r  r_    rj  r&   c                     W,
          # r   rD   r   s   &&r#   r  r_    rh  r&   c                     W,          # r   rD   r   s   &&r#   r  r_    rh  r&   c                 
    W8H  # r   rD   r   s   &&r#   r  r_    r`  r&   c                 
    W8g  # r   rD   r   s   &&r#   r  r_    r`  r&   c                     W,          # r   rD   r   s   &&r#   r  r_    rj  r&   c                     W,	          # r   rD   r   s   &&r#   r  r_    rj  r&   c                     W,          # r   rD   r   s   &&r#   r  r_    rh  r&   c                     W,          # r   rD   r   s   &&r#   r  r_    rh  r&   c                     W,          # r   rD   r   s   &&r#   r  r_    rh  r&   c                     \        V R V 4      # r  )getattrr  s   &r#   unwrap=TestJitClassOverloads.test_arithmetic_logical.<locals>.unwrap  s    5#u--r&   N)r          @)gX9v?r%  )g333333*@g)\(?)r  r  	itertoolsproductmapr
   r  r  rp   rQ   assertAlmostEqualrm   )r"   r  r  float_py_funcsint_py_funcstest_valuesry  r  r   r    r  rZ   jit_xjit_ychecks   &              r#   test_arithmetic_logical-TestJitClassOverloads.test_arithmetic_logical  s   ))+
--/  
   

	. '..D.);8ME6A ==DAzH OE OE >.   ++ 
 (E!K((F4#567(F5#678!8$ '..D,'6ME6A ==Dq63q6qAzHqMEqMEXuQ{3Xvd5.@'ABXveE.A'BC6r&   c           
     j  aa V P                  4       pV P                  4       pVP                  4       ^,          pVP                  4       ^,          p\        R\        P
                  3.4       ! V3R lRV4      4       o\        R\        P                  /4       ! V3R lRV4      4       oSP                  4       ^,          pSP                  4       ^,          pR pR Uu. uF
  q! V4      NK  	  p	pR	 Uu. uF
  q! V4      NK  	  p
p. R
Op\        P                  ! \        \        V	4      WB3VS3.V4       F  w  pw  rw  ppVP                  pV! V! V4      V! V4      4      P                  pV P                  VV! V! V4      V! V4      4      P                  4       V P                  VV! V! V4      V! V4      4      P                  4       K  	  \        P                  ! \        \        V
4      W13VS3.V4       F  w  pw  rw  pp\        V4      \        V4      ppVP                  pV! V! V4      V! V4      4      P                  pV P                  VV! V! V4      V! V4      4      P                  4       V P                  VV! V! V4      V! V4      4      P                  4       K  	  R# u upi u upi )r(   r   c                   d   <a  ] tR tRt o R tV3R ltV3R ltV3R ltV3R ltV3R lt	Rt
V tR	# )
RTestJitClassOverloads.test_arithmetic_logical_inplace.<locals>.JitIntUpdateWrapperi3  c                    Wn         R # r   r  r   s   &&r#   r$   [TestJitClassOverloads.test_arithmetic_logical_inplace.<locals>.JitIntUpdateWrapper.__init__5  r  r&   c                J   < S! V P                   VP                   ,          4      # r   r  r"   r   JitIntUpdateWrappers   &&r#   __ilshift__^TestJitClassOverloads.test_arithmetic_logical_inplace.<locals>.JitIntUpdateWrapper.__ilshift__8      *466UWW+<==r&   c                J   < S! V P                   VP                   ,	          4      # r   r  r  s   &&r#   __irshift__^TestJitClassOverloads.test_arithmetic_logical_inplace.<locals>.JitIntUpdateWrapper.__irshift__;  r  r&   c                J   < S! V P                   VP                   ,          4      # r   r  r  s   &&r#   __iand__[TestJitClassOverloads.test_arithmetic_logical_inplace.<locals>.JitIntUpdateWrapper.__iand__>      *466EGG+;<<r&   c                J   < S! V P                   VP                   ,          4      # r   r  r  s   &&r#   __ior__ZTestJitClassOverloads.test_arithmetic_logical_inplace.<locals>.JitIntUpdateWrapper.__ior__A  r  r&   c                J   < S! V P                   VP                   ,          4      # r   r  r  s   &&r#   __ixor__[TestJitClassOverloads.test_arithmetic_logical_inplace.<locals>.JitIntUpdateWrapper.__ixor__D  r  r&   r  N)r*   r+   r,   r-   r$   r  r  r  r  r  r.   r/   )r1   r  s   @r#   r  r  3  s(     >>=== =r&   r  c                   |   <a  ] tR tRt o R tV3R ltV3R ltV3R ltV3R ltV3R lt	V3R lt
V3R	 ltR
tV tR# )TTestJitClassOverloads.test_arithmetic_logical_inplace.<locals>.JitFloatUpdateWrapperiG  c                    Wn         R # r   r  r   s   &&r#   r$   ]TestJitClassOverloads.test_arithmetic_logical_inplace.<locals>.JitFloatUpdateWrapper.__init__J  r  r&   c                X   < S! V P                   R VP                   ,          ,           4      # gX9v@r  r"   r   JitFloatUpdateWrappers   &&r#   __iadd__]TestJitClassOverloads.test_arithmetic_logical_inplace.<locals>.JitFloatUpdateWrapper.__iadd__M  s    ,TVVeeggo-EFFr&   c                X   < S! V P                   R ,          VP                   ,          4      # r  r  r  s   &&r#   __ifloordiv__bTestJitClassOverloads.test_arithmetic_logical_inplace.<locals>.JitFloatUpdateWrapper.__ifloordiv__P  s    ,TVVe^uww-FGGr&   c                X   < S! V P                   VP                   ^,           ,          4      # r'   r  r  s   &&r#   __imod__]TestJitClassOverloads.test_arithmetic_logical_inplace.<locals>.JitFloatUpdateWrapper.__imod__S  s    ,TVVuww{-CDDr&   c                X   < S! V P                   VP                   ,          ^,           4      # r'   r  r  s   &&r#   __imul__]TestJitClassOverloads.test_arithmetic_logical_inplace.<locals>.JitFloatUpdateWrapper.__imul__V  s     ,TVVegg-=-ABBr&   c                X   < S! V P                   VP                   ,          ^,           4      # r'   r  r  s   &&r#   __ipow__]TestJitClassOverloads.test_arithmetic_logical_inplace.<locals>.JitFloatUpdateWrapper.__ipow__Y  s     ,TVVuww->-BCCr&   c                X   < S! V P                   R VP                   ,          ,
          4      # r  r  r  s   &&r#   __isub__]TestJitClassOverloads.test_arithmetic_logical_inplace.<locals>.JitFloatUpdateWrapper.__isub__\  s     ,TVVfuww6F-FGGr&   c                X   < S! V P                   ^,           VP                   ,          4      # r'   r  r  s   &&r#   __itruediv__aTestJitClassOverloads.test_arithmetic_logical_inplace.<locals>.JitFloatUpdateWrapper.__itruediv___  s    ,dffqjEGG-CDDr&   r  N)r*   r+   r,   r-   r$   r  r  r  r  r  r  r  r.   r/   )r1   r  s   @r#   r  r  G  s:     GHECDHE Er&   r  c                 :    R V  R2p/ p\        W4       VR,          # )z
def f(x, y):
    x z= y
    return x
r  )exec)optemplate	namespaces   &  r#   get_update_funcNTestJitClassOverloads.test_arithmetic_logical_inplace.<locals>.get_update_funce  s1    	d H
 I%S>!r&   N)+//%***-/)<<>>&|^r{  )r  r  mror   r   r  r   r}  r~  r  r
   r  r   r  rm   rQ   )r"   JitIntWrapperJitFloatWrapperPyIntWrapperPyFloatWrapperPyIntUpdateWrapperPyFloatUpdateWrapperr  r  r  r  r  r  py_clsjit_clsr   r    r  rZ   r  r  s   &                  @@r#   test_arithmetic_logical_inplace5TestJitClassOverloads.test_arithmetic_logical_inplace*  s    ,,.002$((*1-(,,.q1	C$%	&	=, 	= 
'	=& 
3&	'	EN 	E 
(	E4 1446q9488:1=	"9
  9
"/"- 9
 7
  7
+ 7
 
 1:0A0AD.)#5)+@A 1,E$Ffq! ==DF1Ivay133H""8T'!*gaj-I-K-KL""8U71:wqz-J-L-LM1 1:0A0AD,'!1')<= 1,E$Ffq! q63q6qA==DF1Ivay133HXtGAJ
'C'E'EFXuWQZ'D'F'FG15s   J+5J0c           
     @    ! R  R4      p ! R RV4      pR pR pR pR p. ROp\         P                  ! W.RR	.4       F  w  rV	'       d   \        MTp
V
! V4      pV
! V4      pV
! V4      p\        V4      pR F(  pV P	                  V! V! V4      4      V^
,          4       K*  	  V Fn  w  ppV P	                  V! V! V4      V! V4      4      V! V4      V! V4      8H  4       V P	                  V! V! V4      V! V4      4      V! V4      V! V4      8g  4       Kp  	  K  	  R
# )c                   >   a  ] tR tRt o R tR tR tV 3R ltRtV t	R# )9TestJitClassOverloads.test_hash_eq_ne.<locals>.HashEqTesti  c                    Wn         R # r   r  r  s   &&r#   r$   BTestJitClassOverloads.test_hash_eq_ne.<locals>.HashEqTest.__init__  r  r&   c                (    V P                   ^
,          # )r9  r  rE   s   &r#   r  BTestJitClassOverloads.test_hash_eq_ne.<locals>.HashEqTest.__hash__  s    vv{"r&   c                P    V P                   VP                   ,
          ^,          ^ 8H  # r`  r  r"   os   &&r#   r  @TestJitClassOverloads.test_hash_eq_ne.<locals>.HashEqTest.__eq__  s    *a//r&   c                &   < V ^8  d   Qh/ S[ ;R&   # r~   r   )rq   r1   s   "r#   rr   FTestJitClassOverloads.test_hash_eq_ne.<locals>.HashEqTest.__annotate__  r   r&   r  N)
r*   r+   r,   r-   r$   r  r  ru   r.   r/   r0   s   @r#   
HashEqTestr    s     #0  r&   r  c                   &   a  ] tR tRt o R tRtV tR# );TestJitClassOverloads.test_hash_eq_ne.<locals>.HashEqNeTesti  c                P    V P                   VP                   ,
          ^,          ^8  # r`  r  r  s   &&r#   __ne__BTestJitClassOverloads.test_hash_eq_ne.<locals>.HashEqNeTest.__ne__  s    *Q..r&   rD   N)r*   r+   r,   r-   r  r.   r/   r0   s   @r#   HashEqNeTestr    s     / /r&   r  c                     \        V 4      # r   )hashr  s   &r#   py_hash6TestJitClassOverloads.test_hash_eq_ne.<locals>.py_hash  r  r&   c                 
    W8H  # r   rD   r   s   &&r#   py_eq4TestJitClassOverloads.test_hash_eq_ne.<locals>.py_eq  	    6Mr&   c                 
    W8g  # r   rD   r   s   &&r#   py_ne4TestJitClassOverloads.test_hash_eq_ne.<locals>.py_ne  r  r&   c                     V # r   rD   )r  s   &r#   identity_decoratorATestJitClassOverloads.test_hash_eq_ne.<locals>.identity_decorator  s    Hr&   FTN))r   r(   )rl      )r   r9  )ru  ru  )r   rl   r9     i)r}  r~  r
   r   rQ   )r"   r  r  r  r  r  r  comparisonsbase_clsuse_jit	decorator	hash_funceq_funcne_funcr  r  r   r    s   &                 r#   test_hash_eq_ne%TestJitClassOverloads.test_hash_eq_ne  s&   
	0 
	0	/: 	/				
 "+!2!2&"
H !(-?I!'*I&G&Gx(G'  71:!6B? ( $1  GAJ
3QK8A;.   GAJ
3QK8A;. $"
r&   c                    ! R  R4      pTp\        R\        P                  3.4      ! V4      pV! ^ 4      P                  4       pV! ^4      P                  4       pV! ^ 4      P                  4       pV! ^4      P                  4       pV P	                  WF4       V P	                  WW4       V P	                  \        V4      \        V4      4       V P	                  \        V4      \        V4      4       R# )c                   2   a  ] tR tRt o R tR tR tRtV tR# )BTestJitClassOverloads.test_bool_fallback_len.<locals>.NoBoolHasLeni  c                    Wn         R # r   r   r   s   &&r#   r$   KTestJitClassOverloads.test_bool_fallback_len.<locals>.NoBoolHasLen.__init__  r   r&   c                    V P                   # r   r   rE   s   &r#   r  JTestJitClassOverloads.test_bool_fallback_len.<locals>.NoBoolHasLen.__len__  s    xxr&   c                    \        V 4      # r   r  rE   s   &r#   get_boolKTestJitClassOverloads.test_bool_fallback_len.<locals>.NoBoolHasLen.get_bool      Dz!r&   r   N)	r*   r+   r,   r-   r$   r  r  r.   r/   r0   s   @r#   NoBoolHasLenr
    s      " "r&   r  r   N)r   r   int64r  rQ   r  )r"   r  py_classjitted_classpy_class_0_boolpy_class_2_booljitted_class_0_booljitted_class_2_bools   &       r#   test_bool_fallback_len,TestJitClassOverloads.test_bool_fallback_len  s    "	" 	"  %!5 67A"1+..0"1+..0*1o668*1o668 	>> 	o.5H0IJo.5H0IJr&   c                     ! R  R4      pTp\        . 4      ! V4      pV! 4       P                  4       pV! 4       P                  4       pV P                  WE4       V P                  \        V4      \        V4      4       R# )c                   ,   a  ] tR tRt o R tR tRtV tR# )ETestJitClassOverloads.test_bool_fallback_default.<locals>.NoBoolNoLeni  c                    R # r   rD   rE   s   &r#   r$   NTestJitClassOverloads.test_bool_fallback_default.<locals>.NoBoolNoLen.__init__  rj   r&   c                    \        V 4      # r   r  rE   s   &r#   r  NTestJitClassOverloads.test_bool_fallback_default.<locals>.NoBoolNoLen.get_bool  r  r&   rD   N)r*   r+   r,   r-   r$   r  r.   r/   r0   s   @r#   NoBoolNoLenr    s     " "r&   r$  N)r   r  rQ   r  )r"   r$  r  r  py_class_booljitted_class_bools   &     r#   test_bool_fallback_default0TestJitClassOverloads.test_bool_fallback_default  so    	" 	" |H- 
++-(N335 	: 	m,d3D.EFr&   c                    ! R  R4      p ! R R4      pR\         P                  3.p\        V4      ! V4      p\        V4      ! V4      pV! ^4      pV! ^4      pV! ^4      pV! ^4      p	V P                  Wv8H  W8H  4       V P                  Wv8*  W8*  4       V P                  Wv8  W8  4       V P                  Wv8  W8  4       V P                  Wv8  W8  4       R# )c                   D   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
HTestJitClassOverloads.test_operator_reflection.<locals>.OperatorsDefinedi  c                    Wn         R # r   r  r  s   &&r#   r$   QTestJitClassOverloads.test_operator_reflection.<locals>.OperatorsDefined.__init__  r  r&   c                4    V P                   VP                   8H  # r   r  r  s   &&r#   r  OTestJitClassOverloads.test_operator_reflection.<locals>.OperatorsDefined.__eq__  r  r&   c                4    V P                   VP                   8*  # r   r  r  s   &&r#   r  OTestJitClassOverloads.test_operator_reflection.<locals>.OperatorsDefined.__le__  r  r&   c                4    V P                   VP                   8  # r   r  r  s   &&r#   r  OTestJitClassOverloads.test_operator_reflection.<locals>.OperatorsDefined.__lt__   r  r&   c                4    V P                   VP                   8  # r   r  r  s   &&r#   r  OTestJitClassOverloads.test_operator_reflection.<locals>.OperatorsDefined.__ge__#  r  r&   c                4    V P                   VP                   8  # r   r  r  s   &&r#   r  OTestJitClassOverloads.test_operator_reflection.<locals>.OperatorsDefined.__gt__&  r  r&   r  N)r*   r+   r,   r-   r$   r  r  r  r  r  r.   r/   r0   s   @r#   OperatorsDefinedr+    s(     ))()( (r&   r8  c                   &   a  ] tR tRt o R tRtV tR# )JTestJitClassOverloads.test_operator_reflection.<locals>.NoOperatorsDefinedi)  c                    Wn         R # r   r  r  s   &&r#   r$   STestJitClassOverloads.test_operator_reflection.<locals>.NoOperatorsDefined.__init__*  r  r&   r  Nr)   r0   s   @r#   NoOperatorsDefinedr:  )        r&   r=  r   N)r   r	   r   rQ   )
r"   r8  r=  rT   JitOperatorsDefinedJitNoOperatorsDefinedpy_ops_definedpy_ops_not_definedjit_ops_definedjit_ops_not_defineds
   &         r#   test_operator_reflection.TestJitClassOverloads.test_operator_reflection  s   	( 	(&	 	 ekk"#&tn-=> (/A B)!,/2-a03A6+=,?	A 	+=,?	A 	+<,>	@ 	+=,?	A 	+<,>	@r&   c                    ! R  R4      p ! R R4      p^p\         P                  P                  ^4       \         P                  P                  V3R7      p\         P                  P                  W33R7      pV! V4      pV! V4      p\        VR\        R,          /R7      ! V4      p\        VR\        R,          /R7      ! V4      p	V! V4      p
V! V4      p\        VR\        R	,          /R7      ! V4      p\        VR\        R	,          /R7      ! V4      p\         P
                  P                  Wv,          W,          4       \         P
                  P                  Wz,          W,          4       \         P
                  P                  W,          W,          4       \         P
                  P                  W,          W,          4       \         P
                  P                  Wg,          W,          4       \         P
                  P                  Wk,          W,          4       \         P
                  P                  W,          W,          4       \         P
                  P                  W,          W,          4       Wz,          pW,          pW,          p	W,          p\         P
                  P                  VP                  V	P                  4       \         P
                  P                  VP                  VP                  4       R# )
c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# );TestJitClassOverloads.test_matmul_operator.<locals>.ArrayAtiH  c                    Wn         R # r   r   r"   r  s   &&r#   r$   DTestJitClassOverloads.test_matmul_operator.<locals>.ArrayAt.__init__I       r&   c                <    V P                   VP                   ,          # r   rK  r  s   &&r#   
__matmul__FTestJitClassOverloads.test_matmul_operator.<locals>.ArrayAt.__matmul__L  s    xx%))++r&   c                <    VP                   V P                   ,          # r   rK  r  s   &&r#   __rmatmul__GTestJitClassOverloads.test_matmul_operator.<locals>.ArrayAt.__rmatmul__O  s    yy488++r&   c                J    V P                   VP                   ,          V n         V # r   rK  r  s   &&r#   __imatmul__GTestJitClassOverloads.test_matmul_operator.<locals>.ArrayAt.__imatmul__R  s    88eii/r&   rK  N)
r*   r+   r,   r-   r$   rP  rS  rV  r.   r/   r0   s   @r#   ArrayAtrI  H  s     !,, r&   rX  c                   &   a  ] tR tRt o R tRtV tR# )=TestJitClassOverloads.test_matmul_operator.<locals>.ArrayNoAtiV  c                    Wn         R # r   rK  rL  s   &&r#   r$   FTestJitClassOverloads.test_matmul_operator.<locals>.ArrayNoAt.__init__W  rN  r&   rK  Nr)   r0   s   @r#   	ArrayNoAtrZ  V  s     ! !r&   r]  )sizer   NNr(   r  N)r   r_  )r   r  seedr   r   r  assert_allcloser   )r"   rX  r]  rP  r   matvector_noat	vector_atjit_vector_noatjit_vector_atmatrix_noat	matrix_atjit_matrix_noatjit_matrix_ats   &             r#   test_matmul_operator*TestJitClassOverloads.test_matmul_operatorF  s=   	 		! 	! 
		qiiQD)iiQF+nCL	"9E73<3HI#N ws|/DEcJnCL	"9E75>3JKCP wu~/FGL 	

""9#:#0#B	D


""9#:#0#B	D


""9#:#0#B	D


""9#:#0#B	D 	

"";#:#2#B	D


"";#:#2#B	D


"";#:#2#B	D


"";#:#2#B	D 	 	 	((


""9==-2C2CD


""9==-2C2CDr&   c                    ! R  R4      p ! R R4      p. ROp. VORNRNRNRNRNp\         VR3\        VR3\        R	,          V\        P                  ! . RO4      \        P                  ! . RO4      333 F  w  rVpR
V/p\	        W4      p	\	        W(4      p
V! V^ ,          4      pV! V^,          4      pV	! V^ ,          4      pV
! V^,          4      pV F  pR\        V4      9   g/   V P                  \        RV R24      \        RV R24      4       KA  V P                  \        \        RV R24      4      \        \        RV R24      4      4       K  	  K  	  R# )c                   n   a  ] tR tRt o 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# )RTestJitClassOverloads.test_arithmetic_logical_reflection.<locals>.OperatorsDefinedi  c                    Wn         R # r   r  r  s   &&r#   r$   [TestJitClassOverloads.test_arithmetic_logical_reflection.<locals>.OperatorsDefined.__init__  r  r&   c                <    VP                   V P                   ,           # r   r  r  s   &&r#   __radd__[TestJitClassOverloads.test_arithmetic_logical_reflection.<locals>.OperatorsDefined.__radd__      ww''r&   c                <    VP                   V P                   ,
          # r   r  r  s   &&r#   __rsub__[TestJitClassOverloads.test_arithmetic_logical_reflection.<locals>.OperatorsDefined.__rsub__  ru  r&   c                <    VP                   V P                   ,          # r   r  r  s   &&r#   __rmul__[TestJitClassOverloads.test_arithmetic_logical_reflection.<locals>.OperatorsDefined.__rmul__  ru  r&   c                <    VP                   V P                   ,          # r   r  r  s   &&r#   __rtruediv___TestJitClassOverloads.test_arithmetic_logical_reflection.<locals>.OperatorsDefined.__rtruediv__  ru  r&   c                <    VP                   V P                   ,          # r   r  r  s   &&r#   __rfloordiv__`TestJitClassOverloads.test_arithmetic_logical_reflection.<locals>.OperatorsDefined.__rfloordiv__      ww$&&((r&   c                <    VP                   V P                   ,          # r   r  r  s   &&r#   __rmod__[TestJitClassOverloads.test_arithmetic_logical_reflection.<locals>.OperatorsDefined.__rmod__  ru  r&   c                <    VP                   V P                   ,          # r   r  r  s   &&r#   __rpow__[TestJitClassOverloads.test_arithmetic_logical_reflection.<locals>.OperatorsDefined.__rpow__  r  r&   c                <    VP                   V P                   ,          # r   r  r  s   &&r#   __rlshift__^TestJitClassOverloads.test_arithmetic_logical_reflection.<locals>.OperatorsDefined.__rlshift__  r  r&   c                <    VP                   V P                   ,	          # r   r  r  s   &&r#   __rrshift__^TestJitClassOverloads.test_arithmetic_logical_reflection.<locals>.OperatorsDefined.__rrshift__  r  r&   c                <    VP                   V P                   ,          # r   r  r  s   &&r#   __rand__[TestJitClassOverloads.test_arithmetic_logical_reflection.<locals>.OperatorsDefined.__rand__  ru  r&   c                <    VP                   V P                   ,          # r   r  r  s   &&r#   __rxor__[TestJitClassOverloads.test_arithmetic_logical_reflection.<locals>.OperatorsDefined.__rxor__  ru  r&   c                <    VP                   V P                   ,          # r   r  r  s   &&r#   __ror__ZTestJitClassOverloads.test_arithmetic_logical_reflection.<locals>.OperatorsDefined.__ror__  ru  r&   r  N)r*   r+   r,   r-   r$   rs  rw  rz  r}  r  r  r  r  r  r  r  r  r.   r/   r0   s   @r#   r8  ro    sK     (((()()))((( (r&   r8  c                   &   a  ] tR tRt o R tRtV tR# )TTestJitClassOverloads.test_arithmetic_logical_reflection.<locals>.NoOperatorsDefinedi  c                    Wn         R # r   r  r  s   &&r#   r$   ]TestJitClassOverloads.test_arithmetic_logical_reflection.<locals>.NoOperatorsDefined.__init__  r  r&   r  Nr)   r0   s   @r#   r=  r    r>  r&   r=  r  r  r  r  r  r_  r   r  zpy_ops_not_defined z py_ops_definedzjit_ops_not_defined z jit_ops_definedN)r  r  r  r  r  r  r  )rl   r  )r|        @)rM  r|  r  )g      4@g      8rM  )
r	   r   r   r  r   r   rQ   evalassertTupleEqualtuple)r"   r8  r=  float_opint_op	test_typetest_op
test_valuerT   r?  r@  rA  rB  rC  rD  r  s   &               r#   "test_arithmetic_logical_reflection8TestJitClassOverloads.test_arithmetic_logical_reflection  sw   &	( &	(P	 	 9888T848#8s8C8 FF#h)S\8,'/)BCE/
*I
 #D"*+;"B$,-?$F!-jm<N!3JqM!B1*Q-@O"7
1"F3y>1$$22$oFG3B47GHI
 ))d%8O#LMNd%9"=M#NOP !/
r&   c                p     ! R  R4      p\        . 4      ! V4      pV! 4       pV P                  W38H  4       R# )c                   ,   a  ] tR tRt o R tR tRtV tR# )GTestJitClassOverloads.test_implicit_hash_compiles.<locals>.ImplicitHashi  c                    R # r   rD   rE   s   &r#   r$   PTestJitClassOverloads.test_implicit_hash_compiles.<locals>.ImplicitHash.__init__  rj   r&   c                    R # )FrD   r  s   &&r#   r  NTestJitClassOverloads.test_implicit_hash_compiles.<locals>.ImplicitHash.__eq__  s    r&   rD   N)r*   r+   r,   r-   r$   r  r.   r/   r0   s   @r#   ImplicitHashr    s      r&   r  N)r   r   )r"   r  jittedinstances   &   r#   test_implicit_hash_compiles1TestJitClassOverloads.test_implicit_hash_compiles  s4    	 	 "l+8-.r&   c                V  a \        R \        P                  3.4       ! V3R lR4      4       oS! ^*4      pV( pV P                  VS4       V P	                  VP
                  R4       \        R 4       pV! V4      pV P                  VS4       V P	                  VP
                  R4       R# )r   c                   4   <a  ] tR tRt o R tV3R ltRtV tR# )ATestJitClassOverloads.test_invert_operator.<locals>.InvertWrapperi  c                    Wn         R # r   r  r   s   &&r#   r$   JTestJitClassOverloads.test_invert_operator.<locals>.InvertWrapper.__init__  r  r&   c                *   < S! V P                   ( 4      # r   r  )r"   InvertWrappers   &r#   
__invert__LTestJitClassOverloads.test_invert_operator.<locals>.InvertWrapper.__invert__  s    $dffW--r&   r  N)r*   r+   r,   r-   r$   r  r.   r/   )r1   r  s   @r#   r  r    s     . .r&   r  c                     V ( # r   rD   )r  s   &r#   	do_invert=TestJitClassOverloads.test_invert_operator.<locals>.do_invert  s	    2Ir&   Ni)r   r   r  rA  rQ   r   r
   )r"   r   	py_resultr  njit_resultr  s   &    @r#   test_invert_operator*TestJitClassOverloads.test_invert_operator  s    	C$%	&	. 	. 
'	. BD	i7c* 
	 
	  nk=9,r&   rD   r   )r*   r+   r,   r-   r  r  r  r  r  r  r*  r[  r  r  r  r  r'  rE  r   rk  r  r  r  r.   r/   r0   s   @r#   rc  rc    s     ,* ,*\  : 4 4l10<d($Ta'FDDLkHZ:x)KVG./@b =E =E~JX/ - -r&   rc  __main__)2r(  r}  r  r  typingrn   unittestcollectionsr   numpyr   numbar   r   r   r   r   r	   r
   r   r   
numba.corer   r   numba.core.dispatcherr   numba.core.errorsr   r   numba.core.runtime.nrtr   numba.experimentalr   numba.experimental.jitclassr    numba.experimental.jitclass.baser   numba.tests.supportr   r   r   r   rH   r   r3   r=   r?   rc  r*   mainrD   r&   r#   <module>r     s          # + + + $ , 8 * ' , 9 L L 1  i28_ i2X#\-OX \-~ zMMO r&   