+
    :i9                         ^ RI Ht ^ RIHt ^ RIHtHt ^ RIt^ RI	t	 ! R R]4      t
]R8X  d   ]	P                  ! 4        R# R# )    )cuda)TypingError)CUDATestCaseskip_on_cudasimNc                     a a ] tR t^t oV 3R ltR tR tR tR t]	! R4      R 4       t
]P                  ! R4      R	 4       t]P                  R
 4       t]P                  ! R4      R 4       t]	! R4      R 4       tRtVtV ;t# )TestSelfRecursionc                <   < ^ RI Hp Wn        \        SV `  4        R# )r   )recursion_usecasesN)numba.cuda.tests.cudapyr
   modsupersetUp)selfr
   	__class__s   & d/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/cuda/tests/cudapy/test_recursion.pyr   TestSelfRecursion.setUp
   s     	?%    c                
  a \         P                  V3R  l4       p\        P                  ! ^
.\        P                  R7      p\        P
                  ! V4      pVR,          ! WC4       V^ ,          p^7pV P                  WV4       R# )c                 ,   < S! V^ ,          4      V ^ &   R# r   N )rxcfuncs   &&r   kernel+TestSelfRecursion.check_fib.<locals>.kernel   s    1;AaDr   dtypeN   r    )r   jitnpasarrayint64
zeros_likeassertPreciseEqual)r   r   r   r   r   actualexpecteds   &f     r   	check_fibTestSelfRecursion.check_fib   sg    		 
	 JJt288,MM!tQ11r   c                P    V P                  V P                  P                  4       R # N)r)   r   fib1r   s   &r   test_global_explicit_sig*TestSelfRecursion.test_global_explicit_sig       txx}}%r   c                P    V P                  V P                  P                  4       R # r,   )r)   r   fib2r.   s   &r   test_inner_explicit_sig)TestSelfRecursion.test_inner_explicit_sig!   r1   r   c                P    V P                  V P                  P                  4       R # r,   )r)   r   fib3r.   s   &r   test_global_implicit_sig*TestSelfRecursion.test_global_implicit_sig$   r1   r   zSimulator does not compilec                .  a V P                  \        4      ;_uu_ 4       pV P                  P                  o\        P
                  ! R 4      V3R l4       pRRR4       V P                  R\        XP                  4      4       R#   + '       g   i     L7; i)void()c                     < S ! ^4       R# )r    Nr   r   s   r   r   .TestSelfRecursion.test_runaway.<locals>.kernel,   s
    ar   Nz#cannot type infer runaway recursion)	assertRaisesr   r   runaway_selfr   r!   assertInstr	exceptionr   raisesr   r   s   &  @r   test_runawayTestSelfRecursion.test_runaway'   sm    {++vHH))EXXh  	 , 	;&**+	- ,+s   6BB	z-Needs insert_unresolved_ref support in targetc                  a	 V P                   P                  P                  pV P                   P                  o	\        P                  V	3R  l4       pRp\
        P                  ! V^ ,          .\
        P                  R7      p\
        P                  ! V^,          .\
        P                  R7      p\
        P                  ! V4      pVR,          ! WdV4       V! V!  pV^ ,          pV P                  W4       R# )c                 <   < S! V^ ,          V^ ,          4      V ^ &   R# r   r   )r   r   yr   s   &&&r   r   2TestSelfRecursion.test_type_change.<locals>.kernel8   s    1qt$AaDr   r   N)   g      ?r   )r   type_change_selfpy_funcr   r!   r"   r#   r$   float64r%   r&   )
r   pfuncr   argsr   rJ   r   r(   r'   r   s
   &        @r   test_type_change"TestSelfRecursion.test_type_change3   s    ))11))		% 
	% JJQy1JJQy

3MM!tQ1$<11r   c                   V P                  \        4      ;_uu_ 4       pV P                  P                  R,          ! ^4       RRR4       V P	                  \        XP                  4      R4       R#   + '       g   i     L7; i)r    N
raise_selfr   )r?   
ValueErrorr   raise_self_kernelassertEqualrB   rC   )r   rE   s   & r   
test_raiseTestSelfRecursion.test_raiseH   sY    
 z**fHH&&t,Q/ + 	V--.= +*s   $A11B	c                  aa	 V P                   P                  4       o	V P                   P                  \        P                  4      o\        P                  V3R  l4       pV	3R lpR Fq  pV! V4      p\        P
                  ! V.\        P                  R7      p\        P                  ! V4      pVR,          ! We4       V^ ,          pV P                  WG4       Ks  	  R# )c                 :   < S! V^ ,          4      pVf   RpW ^ &   R# )r   N  r   )r   r   resr   s   && r   r   6TestSelfRecursion.test_optional_return.<locals>.kernelW   s!    !+C{aDr   c                 $   < S! V 4      pVf   RpV# )Nr]   r   )r   r^   rP   s   & r   
cpu_kernel:TestSelfRecursion.test_optional_return.<locals>.cpu_kernel^   s    (C{Jr   r   N)r      
      r   )	r   make_optional_return_caser   r!   r"   r#   r$   r%   rX   )
r   r   ra   argr(   r   r   r'   r   rP   s
   &       @@r   test_optional_return&TestSelfRecursion.test_optional_returnR   s    22422488<		 
		 "C!#H

C51Aa A4LqTFX. "r   z4Recursion handled because simulator does not compilec                T  a V P                   P                  \        P                  4      oV P	                  \
        4      ;_uu_ 4       p\        P                  ! R 4      V3R l4       pRRR4       V P                  R\        XP                  4      4       R#   + '       g   i     L7; i)r;   c                     < S ! ^d4       R# )d   Nr   r=   s   r   r   ;TestSelfRecursion.test_growing_return_tuple.<locals>.kernelr   s
    c
r   Nz3Return type of recursive function does not converge)	r   make_growing_tuple_caser   r!   r?   r   rA   rB   rC   rD   s   &  @r   test_growing_return_tuple+TestSelfRecursion.test_growing_return_tuplem   sv    00:{++vXXh   ,
 	A  !	
 ,+s    BB'	)r   )__name__
__module____qualname____firstlineno__r   r)   r/   r4   r8   r   rF   unittestskiprR   expectedFailurerY   rh   ro   __static_attributes____classdictcell____classcell__)r   __classdict__s   @@r   r   r      s     2&&& 12	- 3	- ]]BC2 D2( > > ]]BC/ D/4 KL
 M
 
r   r   __main__)numbar   numba.core.errorsr   numba.cuda.testingr   r   numpyr"   ru   r   rq   mainr   r   r   <module>r      s;     ) <  q
 q
h zMMO r   