
    wg                         d dl Z d dlmZmZ d dlmZ  ed       G d de             Zedk(  r e j                          yy)    N)CUDATestCaseskip_on_cudasim)captured_stdoutz4cudasim doesn't support cuda import at non-top-levelc                   2     e Zd ZdZ fdZ fdZd Z xZS )TestReductionz&
    Test shared memory reduction
    c                 t    t               | _        | j                  j                          t        |           y N)r   _captured_stdout	__enter__supersetUpself	__class__s    q/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/numba/cuda/tests/doc_examples/test_reduction.pyr   zTestReduction.setUp   s)     / 1'')    c                 \    | j                   j                  d d d        t        |           y r	   )r
   __exit__r   tearDownr   s    r   r   zTestReduction.tearDown   s&    &&tT48r   c                    dd l }ddlm ddlm j                  |j                  d            }t        |      j                  fd       } |df   |       t        |d          t        t        |j                  d                   |j                  j                  |d   t        |j                  d                   y )Nr   )cuda)int32i   c                    j                   j                  }t        |       }||k  rj                  d      }j                  j                        }| |   ||<   j                          d}|j                  j                  k  rM|d|z  z  dk(  r||xx   |||z      z  cc<   |dz  }j                          |j                  j                  k  rM|dk(  r	||   | |<   y y y )N      r   )	threadIdxxlengridsharedarraysyncthreadsblockDim)	datatidsizeishrsr   r   nelems	         r   	array_sumz2TestReduction.test_ex_reduction.<locals>.array_sum&   s    ..""Ct9DTzIIaL kk''u57C   "$--//)a!e})CCaL0FA$$& $--//) !8 #CDI ) r   r   )numpynumbar   numba.typesr   	to_devicearanger   jitprintsumtestingassert_equal)r   npar+   r   r   r*   s       @@@r   test_ex_reductionzTestReduction.test_ex_reduction   s    %
 NN299T?+A 
	) 
	)8 		!U(Aadc"))D/"# 	

!c"))D/&:;r   )__name__
__module____qualname____doc__r   r   r8   __classcell__)r   s   @r   r   r      s    
0<r   r   __main__)	unittestnumba.cuda.testingr   r   numba.tests.supportr   r   r9   main r   r   <module>rD      sN     < / GH@<L @< I@<F zHMMO r   