
    shc                         S SK r S SKrS SKrS SKrS SKJr  S SKJrJ	r	J
r
  S r\
" S5       " S S\	5      5       r\
" S5       " S S	\	5      5       r\S
:X  a  \R                  " 5         gg)    N)cuda)unittestCUDATestCaseskip_on_cudasimc                 F   ^  [         R                  " T 5      U 4S j5       nU$ )Nc                     > [         R                  " 5       nUR                  S5         UR                  T" U 0 UD65      UR	                  5         $ ! UR	                  5         f = f)NT)asyncionew_event_loop	set_debugrun_until_completeclose)argskwdsloopfs      y/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/cuda/tests/cudadrv/test_streams.pyrunner!with_asyncio_loop.<locals>.runner
   sM    %%'t	**1d+;d+;<JJLDJJLs   A A")	functoolswraps)r   r   s   ` r   with_asyncio_loopr   	   s%    __Q  M    z,CUDA Driver API unsupported in the simulatorc                   p    \ rS rSrS rS r\S 5       r\S 5       r\S 5       r	\S 5       r
\S 5       rS	rg
)TestCudaStream   c                     S n[         R                  " 5       n[        R                  " 5       nUR	                  X5        U R                  UR                  S5      5        g )Nc                 $    UR                  5         g N)set)streamstatusevents      r   callback2TestCudaStream.test_add_callback.<locals>.callback   s    IIKr         ?)r   r    	threadingEventadd_callback
assertTruewaitselfr#   r    callback_events       r   test_add_callback TestCudaStream.test_add_callback   sE    	 "*H5++C01r   c                    ^ ^ [         R                  " 5       mUU 4S jn[        R                  " 5       nUR	                  U5        T R                  TR                  S5      5        g )Nc                 H   > TR                  U5        TR                  5         g r   )assertIsNoner   )r    r!   argr-   r,   s      r   r#   CTestCudaStream.test_add_callback_with_default_arg.<locals>.callback#   s    c" r   r%   )r&   r'   r   r    r(   r)   r*   r+   s   `  @r   "test_add_callback_with_default_arg1TestCudaStream.test_add_callback_with_default_arg    sF    "*	! H%++C01r   c                 j   #    [         R                  " 5       nUR                  5       I S h  vN   g  N7fr   )r   r    
async_done)r,   r    s     r   test_async_doneTestCudaStream.test_async_done+   s"     !!!s   )313c                 $  ^ #    S[         S[         4U 4S jjn/ SQnU Vs/ s H  n[        R                  " U" U5      5      PM!     nn[        R                  " U6 I S h  vN nT R	                  [
        R                  " X%5      5        g s  snf  N/7f)Nvalue_inreturnc                 P  >#    [         R                  " 5       n[         R                  " S5      [         R                  " S5      p2XS S & [         R                  " X!S9nUR	                  X1S9  UR                  5       I S h  vN nTR                  XQ5        UR                  5       $  N%7f)N   r    )r   r    pinned_array	to_devicecopy_to_hostr8   assertEqualmean)r<   r    h_srch_dstd_arydone_resultr,   s         r   async_cuda_fn9TestCudaStream.test_parallel_tasks.<locals>.async_cuda_fn2   s     [[]F,,Q/1B1B11E5!HNN58Eu4 & 1 1 33K[1::< 4s   A;B&>B$?&B&)            )floatr	   create_taskgatherr)   npallclose)r,   rJ   	values_invtasks
values_outs   `     r   test_parallel_tasks"TestCudaStream.test_parallel_tasks0   ss     	 % 	 E 	  !	@IJ	1$$]1%56	J">>511
I:; K1s   B&B	BB0Bc                    #    [         R                  " 5       n[        S5       Vs/ s H  o!R                  5       PM     nn[        R
                  " U6 I S h  vN nU H  nU R                  XQ5        M     g s  snf  N$7fNrO   )r   r    ranger8   r	   rR   rD   )r,   r    _done_awsdoneds         r   test_multiple_async_done'TestCudaStream.test_multiple_async_doneA   s`     16q:A%%':^^X..AQ'  ;.s   #A=A6A=A;%A=c                 <  #    [        S5       Vs/ s H  n[        R                  " 5       PM     nnU Vs/ s H  o3R                  5       PM     nn[        R
                  " U6 I S h  vN nU R                  [        U5      [        U5      5        g s  snf s  snf  N37fr\   )r]   r   r    r8   r	   rR   assertSetEqualr   )r,   r^   streamsr    r_   r`   s         r   )test_multiple_async_done_multiple_streams8TestCudaStream.test_multiple_async_done_multiple_streamsI   st     */(3(Q4;;=(36=>gF%%'g>^^X.. 	CIs7|4 4>.s&   BBBBB&B'4Bc                 (  #    [         R                  " 5       nUR                  5       UR                  5       p2UR                  5         UI S h  vN   U R	                  UR                  5       5        U R	                  UR                  5       5        g  NC7fr   )r   r    r8   cancelr)   	cancelledr`   )r,   r    done1done2s       r   test_cancelled_future$TestCudaStream.test_cancelled_futureR   sc     ((*F,=,=,?u)*

% 	s   A
BBAB N)__name__
__module____qualname____firstlineno__r.   r5   r   r9   rY   rb   rg   rn   __static_attributes__rp   r   r   r   r      sp    2	2 " " < <  ( ( 5 5 & &r   r   c                   B    \ rS rSr\R
                  \S 5       5       rSrg)TestFailingStream\   c                   #    [         R                  " 5       nUR                  S5      nUR                  S5      n[         R                  " 5       nUR                  SSUS9R                  5         UR                  5       nU R                  [        5         UI S h  vN   S S S 5        U R                  UR                  5       5        g  N,! , (       d  f       N0= f7f)Nz
            .version 6.5
            .target sm_30
            .address_size 64
            .visible .entry failing_kernel() { trap; }
        failing_kernel)rL   r@   )r   current_contextcreate_module_ptxget_functionr    	configure__call__r8   assertRaises	ExceptionassertIsNotNone	exception)r,   ctxmodulerz   r    r`   s         r   test_failed_stream$TestFailingStream.test_failed_streame   s      ""$&& (   ,,-=>  tF ;DDF  "y)JJ *T^^-.  *)s0   BCCCC(CC
CCrp   N)	rq   rr   rs   rt   r   skipr   r   ru   rp   r   r   rw   rw   \   s"     ]]/  /r   rw   __main__)r	   r   r&   numpyrS   numbar   numba.cuda.testingr   r   r   r   r   rw   rq   mainrp   r   r   <module>r      s         F F	 ?@C&\ C& AC&L ?@/ / A/8 zMMO r   