+
    ;i                         ^ RI t ^ RIt^ RIHt ^ RIHtHt ^ RIHt ^ RI	t	 ! R R]4      t
 ! R R]4      t]R	8X  d   ]	P                  ! 4        R# R# )
    N)jit)TypingErrorNumbaWarning)TestCasec                   V   a  ] tR t^
t o R tR tR tR tR tR t	R t
R tR	 tR
tV tR# )TestSelfRecursionc                6    V P                  V! ^
4      ^74       R# )
   N)assertPreciseEqual)selfcfuncs   &&X/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_recursion.py	check_fibTestSelfRecursion.check_fib   s    b	2.    c                4    ^ RI Hp V P                  V4       R# )r   )fib1N)numba.tests.recursion_usecasesr   r   )r   r   s   & r   test_global_explicit_sig*TestSelfRecursion.test_global_explicit_sig       7tr   c                4    ^ RI Hp V P                  V4       R# )r   )fib2N)r   r   r   )r   r   s   & r   test_inner_explicit_sig)TestSelfRecursion.test_inner_explicit_sig   r   r   c                4    ^ RI Hp V P                  V4       R# )r   )fib3N)r   r   r   )r   r   s   & r   test_global_implicit_sig*TestSelfRecursion.test_global_implicit_sig   r   r   c                    ^ RI Hp V P                  \        4      ;_uu_ 4       pV! ^{4       RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)r   )runaway_selfN#cannot type infer runaway recursion)r   r!   assertRaisesr   assertInstr	exception)r   r!   raisess   &  r   test_runawayTestSelfRecursion.test_runaway   sK    ?{++v ,;&**+	- ,+   	AA,	c                |    ^ RI Hp V! 4       pV! \        RR7      4      pRpV P                  V! V!  V! V!  4       R# )r   )make_type_change_selfTnopythonN   g      ?)r   r,   r   r   )r   r,   pfuncr   argss   &    r   test_type_change"TestSelfRecursion.test_type_change"   s9    H%'%c4&89teTl;r   c                    ^ RI H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)r   )
raise_selfNr6   )r   r6   r#   
ValueErrorassertEqualr%   r&   )r   r6   r'   s   &  r   
test_raiseTestSelfRecursion.test_raise)   sJ    =z**fqM + 	V--.= +*r*   c                    ^ RI Hp V! 4       pV! \        RR7      4      pR F!  pV P                  V! V4      V! V4      4       K#  	  R# )r   )make_optional_return_caseTr-   N)r      r
      )r   r<   r   r8   )r   r<   r1   r   args   &    r   test_optional_return&TestSelfRecursion.test_optional_return0   s>    L)+)#t*<=!CU3Zs4 "r   c                   ^ RI Hp V! \        RR7      4      pV P                  \        4      ;_uu_ 4       pV! ^d4       RRR4       V P                  R\        XP                  4      4       R#   + '       g   i     L7; i)r   )make_growing_tuple_caseTr-   Nz3Return type of recursive function does not converge)r   rC   r   r#   r   r$   r%   r&   )r   rC   r   r'   s   &   r   test_growing_return_tuple+TestSelfRecursion.test_growing_return_tuple7   sY    J'T(:;{++v#J ,A  !	
 ,+s   	A..A>	 N)__name__
__module____qualname____firstlineno__r   r   r   r   r(   r3   r9   r@   rD   __static_attributes____classdictcell____classdict__s   @r   r   r   
   s7     /-<>5
 
r   r   c                   J   a  ] tR t^Bt o R tR tR tR tR tR t	R t
RtV tR	# )
TestMutualRecursionc                n    ^ RI Hp \        P                  ! ^
4      pV P	                  V! ^
4      V4       R# )r   )	outer_facN)r   rR   math	factorialr   )r   rR   expects   &  r   test_mutual_1!TestMutualRecursion.test_mutual_1D   s'    <#	"v6r   c           	         ^ RI Hp V! 4       w  r#V! \        RR7      4      w  rER FE  pV P                  V! VR7      V! VR7      4       V P                  V! V^R7      V! V^R7      4       KG  	  R# )r   )make_mutual2Tr-   )x)yzN)r         )r   rY   r   r   )r   rY   pfoopbarcfoocbarrZ   s   &      r   test_mutual_2!TestMutualRecursion.test_mutual_2I   s]    ?!^
!#t"45
A##D1Itay9##D1ND1NC r   c                    ^ RI Hp V P                  \        4      ;_uu_ 4       pV! ^{4       RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)r   )runaway_mutualNr"   )r   rg   r#   r   r$   r%   r&   )r   rg   r'   s   &  r   r(    TestMutualRecursion.test_runawayQ   sK    A{++v3 ,;&**+	- ,+r*   c                |    ^ RI Hp V! 4       pV! \        RR7      4      pRpV P                  V! V!  V! V!  4       R# )r   )make_type_change_mutualTr-   Nr/   )r   rj   r   r   )r   rj   r1   r   r2   s   &    r   r3   $TestMutualRecursion.test_type_changeX   s9    J')'T(:;teTl;r   c                    ^ RI Hp V! 4       pV! \        RR7      4      p^pV P                  V! V4      V! V4      4       R# )r   )make_four_levelTr-   N)r   rm   r   r   )r   rm   r1   r   r?   s   &    r   test_four_level#TestMutualRecursion.test_four_level_   s9    B!T 23c
E#J7r   c                "   ^ RI Hp V! \        RR7      4      pV P                  \        4      ;_uu_ 4       pV! ^4       RRR4       RpV P                  V\        XP                  4      4       V! \        RR7      4      pV! 4       p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\        R7       V! ^4      pRRR4       V P                  XV! ^4      4       R#   + '       g   i     L; i  + '       g   i     L=; i)	r   )make_inner_errorTr-   NzUnknown attribute 'ndim')forceobjignore)category)r   rq   r   r#   r   r$   r%   r&   warningscatch_warningsfilterwarningsr   r8   )r   rq   r   r'   errmsgr1   gots   &      r   test_inner_error$TestMutualRecursion.test_inner_errorf   s    C d!34{++v!H ,-fc&"2"234 !d!34 "$$&&##H|D(C ' 	eAh' ,+ '&s   	C+$%C>+C;	>D	c                    ^ RI Hp V! 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)r   )make_raise_mutualNraise_mutual)r   r}   r#   r7   r8   r%   r&   )r   r}   r   r'   s   &   r   r9   TestMutualRecursion.test_raisew   sR    D!#z**f!H + 	V--.? +*s   	A##A3	rF   N)rG   rH   rI   rJ   rV   rd   r(   r3   rn   rz   r9   rK   rL   rM   s   @r   rP   rP   B   s0     7
D-<8("@ @r   rP   __main__)rS   ru   numbar   numba.core.errorsr   r   numba.tests.supportr   unittestr   rP   rG   mainrF   r   r   <module>r      sK       7 ( 5
 5
p;@( ;@| zMMO r   