
    sh                         S SK rS SKJr  S SKJrJrJr  S SKJ	r	J
r
  S SKJr  S SKr\" S5       " S S\5      5       r\S	:X  a  \R                   " 5         gg)
    N)cuda)unittestCUDATestCaseskip_on_cudasim)
linux_onlyoverride_config)NumbaPerformanceWarningz+cudasim does not raise performance warningsc                   `    \ rS rSrS rS rS rS rS r\	S 5       r
S rS	 rS
 rS rS rSrg)TestWarnings	   c                    [         R                  S 5       n[        SS5         [        R                  " SS9 nUS   " 5         S S S 5        S S S 5        U R                  WS   R                  [        5        U R                  S[        US   R                  5      5        U R                  S	[        US   R                  5      5        g ! , (       d  f       N= f! , (       d  f       N= f)
Nc                      g N r       x/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/cuda/tests/cudapy/test_warning.pykernelBTestWarnings.test_inefficient_launch_configuration.<locals>.kernel       r   CUDA_LOW_OCCUPANCY_WARNINGS   Trecord)r   r   r   z	Grid sizezlow occupancy)r   jitr   warningscatch_warningsassertEqualcategoryr	   assertInstrmessageselfr   ws      r   %test_inefficient_launch_configuration2TestWarnings.test_inefficient_launch_configuration   s    		 
	 :A>((5t 6 ? 	1(?@k3qt||#45os1Q4<<'89 65 ?>s"   CCC
C	C
C&c                 "   [         R                  S 5       n[        SS5         [        R                  " SS9 nUS   " 5         S S S 5        S S S 5        U R                  [        W5      S5        g ! , (       d  f       N2= f! , (       d  f       N;= f)Nc                      g r   r   r   r   r   r   @TestWarnings.test_efficient_launch_configuration.<locals>.kernel   r   r   r   r   Tr   )   r*   r   )r   r   r   r   r   r   lenr"   s      r   #test_efficient_launch_configuration0TestWarnings.test_efficient_launch_configuration   sr    		 
	 :A>((5x " 6 ? 	Q# 65 ?>s"   B A/B /
A=	9B  
Bc                 "   [         R                  S 5       nSn[        R                  " U[        R                  S9n[        SS5         [        R                  " SS9 nUSU4   " X25        S S S 5        S S S 5        U R                  WS   R                  [        5        U R                  S	[        US   R                  5      5        U R                  S
[        US   R                  5      5        g ! , (       d  f       N= f! , (       d  f       N= f)Nc                     US-   U S'   g Nr   r   r   rxs     r   foo1TestWarnings.test_warn_on_host_array.<locals>.foo$       q5AaDr   
   dtypeCUDA_WARN_ON_IMPLICIT_COPYr   Tr   r   )Host array used in CUDA kernel will incurcopy overhead)r   r   npzerosfloat32r   r   r   r   r   r	   r   r    r!   )r#   r4   Narr_f32r$   s        r   test_warn_on_host_array$TestWarnings.test_warn_on_host_array#   s    		 
	 ((1BJJ/91=((5AqD	'% 6 > 	1(?@A!A$,,'	)os1Q4<<'89 65 >=$   D C/+D /
C=	9D  
Dc                 "   [         R                  S 5       nSn[         R                  " U[        R                  S9n[        SS5         [        R                  " SS9 nUSU4   " X25        S S S 5        S S S 5        U R                  WS   R                  [        5        U R                  S	[        US   R                  5      5        U R                  S
[        US   R                  5      5        g ! , (       d  f       N= f! , (       d  f       N= f)Nc                     US-   U S'   g r0   r   r1   s     r   r4   8TestWarnings.test_pinned_warn_on_host_array.<locals>.foo4   r6   r   r7   r8   r:   r   Tr   r   r;   r<   )r   r   pinned_arrayr=   r?   r   r   r   r   r   r	   r   r    r!   r#   r4   r@   aryr$   s        r   test_pinned_warn_on_host_array+TestWarnings.test_pinned_warn_on_host_array3   s    		 
	 491=((5AqD	#! 6 > 	1(?@A!A$,,'	)os1Q4<<'89 65 >=rD   c                 r   [         R                  S 5       nSn[         R                  " U[        R                  S9n[        SS5         [        R                  " SS9 nUSU4   " X25        S S S 5        S S S 5        U R                  [        W5      S5        g ! , (       d  f       N2= f! , (       d  f       N;= f)	Nc                     US-   U S'   g r0   r   r1   s     r   r4   5TestWarnings.test_nowarn_on_mapped_array.<locals>.fooE   r6   r   r7   r8   r:   r   Tr   r   )
r   r   mapped_arrayr=   r?   r   r   r   r   r+   rI   s        r   test_nowarn_on_mapped_array(TestWarnings.test_nowarn_on_mapped_arrayD       		 
	 491=((5AqD	#! 6 > 	Q# 65 >=$   B(B+B(
B%	!B((
B6c                 r   [         R                  S 5       nSn[         R                  " U[        R                  S9n[        SS5         [        R                  " SS9 nUSU4   " X25        S S S 5        S S S 5        U R                  [        W5      S5        g ! , (       d  f       N2= f! , (       d  f       N;= f)	Nc                     US-   U S'   g r0   r   r1   s     r   r4   6TestWarnings.test_nowarn_on_managed_array.<locals>.fooT   r6   r   r7   r8   r:   r   Tr   r   )
r   r   managed_arrayr=   r?   r   r   r   r   r+   rI   s        r   test_nowarn_on_managed_array)TestWarnings.test_nowarn_on_managed_arrayR   s    		 
	   "**591=((5AqD	#! 6 > 	Q# 65 >=rT   c                 r   [         R                  S 5       nSn[         R                  " U[        R                  S9n[        SS5         [        R                  " SS9 nUSU4   " X25        S S S 5        S S S 5        U R                  [        W5      S5        g ! , (       d  f       N2= f! , (       d  f       N;= f)	Nc                     US-   U S'   g r0   r   r1   s     r   r4   5TestWarnings.test_nowarn_on_device_array.<locals>.foob   r6   r   r7   r8   r:   r   Tr   r   )
r   r   device_arrayr=   r?   r   r   r   r   r+   rI   s        r   test_nowarn_on_device_array(TestWarnings.test_nowarn_on_device_arraya   rS   rT   c                    [         R                  " SS9 n[        R                  " SSS9  S S S 5        U R	                  [        W5      S5        U R                  S[        US   R                  5      5        g ! , (       d  f       NR= f)NTr   debugoptr   not supported by CUDAr   	r   r   r   r   r   r+   r   r    r!   r#   r$   s     r   test_warn_on_debug_and_opt'TestWarnings.test_warn_on_debug_and_opto   s`    $$D1QHH4T* 2 	Q#-s1Q4<</@A	 21s   A77
Bc                    [         R                  " SS9 n[        R                  " SS9  S S S 5        U R	                  [        W5      S5        U R                  S[        US   R                  5      5        g ! , (       d  f       NR= f)NTr   )rc   r   re   r   rf   rg   s     r   "test_warn_on_debug_and_opt_default/TestWarnings.test_warn_on_debug_and_opt_defaultv   s^    $$D1QHH4  2 	Q#-s1Q4<</@A	 21s   A66
Bc                     [         R                  " SS9 n[        R                  " SSS9  S S S 5        U R	                  [        W5      S5        g ! , (       d  f       N*= f)NTr   Frb   r   r   r   r   r   r   r+   rg   s     r    test_no_warn_on_debug_and_no_opt-TestWarnings.test_no_warn_on_debug_and_no_opt}   sD    $$D1QHH4U+ 2 	Q# 21   A
Ac                     [         R                  " SS9 n[        R                  " 5         S S S 5        U R	                  [        W5      S5        g ! , (       d  f       N*= f)NTr   r   rn   rg   s     r   )test_no_warn_with_no_debug_and_opt_kwargs6TestWarnings.test_no_warn_with_no_debug_and_opt_kwargs   s?    $$D1QHHJ 2 	Q# 21rq   r   N)__name__
__module____qualname____firstlineno__r%   r,   rB   rK   rQ   r   rY   r_   rh   rk   ro   rs   __static_attributes__r   r   r   r   r   	   sJ    :	$: :"$ $ $$BB$$r   r   __main__)numpyr=   numbar   numba.cuda.testingr   r   r   numba.tests.supportr   r   numba.core.errorsr	   r   r   ru   mainr   r   r   <module>r      sX      F F ; 5  >?}$< }$ @}$@ zMMO r   