
    sh?                         S SK rS SKJrJrJrJr  S SKJr  S SK	J
r
Jr  S SK	Jr  SSKJr  SrS	rS
rS rS rS rS rS rS rS r " S S\5      r\S:X  a  \
R6                  " 5         gg)    N)cudafloat32int32void)TypingError)unittestCUDATestCase)skip_on_cudasim   )test_struct_model_type      )r   r   c                     [         R                  R                  [        [        S9n[         R
                  " S5      nX   X'   g )Nshapedtyper   )r   sharedarrayGLOBAL_CONSTANTr   gridAsais      |/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/cuda/tests/cudapy/test_sm_creation.pyudt_global_constantsr      s1    					@B		!A5AD    c                     [         R                  R                  [        [        4[
        S9n[         R                  " S5      u  p#XU4   XU4'   g Nr      r   r   r   r   GLOBAL_CONSTANT_2r   r   r   r   r   js       r   udt_global_build_tupler%      F    			/3D!E!( 
 
*B99Q<DAAhAdGr   c                     [         R                  R                  [        [        /[
        S9n[         R                  " S5      u  p#XU4   XU4'   g r   r!   r#   s       r   udt_global_build_listr(      r&   r   c                     [         R                  R                  [        [        S9n[         R
                  " S5      u  p#XU4   XU4'   g r   )r   r   r   GLOBAL_CONSTANT_TUPLEr   r   r#   s       r   udt_global_constant_tupler+   !   s<    			!6g		FB99Q<DAAhAdGr   c                     [         R                  R                  U S   [        S9n[         R                  " S5      nX   X'   g )Nr   r   r   r   r   r   r   r   r   s      r   udt_invalid_1r.   '   s5    			1W		5B		!A5ADr   c                     [         R                  R                  SU S   4[        S9n[         R                  " S5      u  p#XU4   XU4'   g )Nr   r   r   r    r-   r#   s       r   udt_invalid_2r0   -   sC    			!QqT'		:B99Q<DAAhAdGr   c                     [         R                  R                  SU S   4[        S9n[         R                  " S5      nXS4   X'   g )Nr   r   r   r-   r   s      r   udt_invalid_3r2   3   s=    			!QqT'		:B		!Ad8ADr   c                   P   \ rS rSrS rS rS rS r\" S5      S 5       r	S r
\" S	5      S
 5       r\" S	5      S 5       r\" S	5      S 5       r\" S	5      S 5       rS r\" S5      S 5       r\" S5      S 5       r\" S5      S 5       r\" S5      S 5       r\" S5      S 5       rSrg)TestSharedMemoryCreation9   c                 J    [         R                  " S[         R                  SS9$ )Nd   r   )r   ndmin)npr   r   selfs    r   getargTestSharedMemoryCreation.getarg:   s    xx2::Q77r   c                 B    U R                  5       R                  SS5      $ )Nr   )r<   reshaper:   s    r   getarg2 TestSharedMemoryCreation.getarg2=   s    {{}$$Qq))r   c                     [         R                  " [        S S  45      " [        5      nUS   " U R	                  5       5        g N)r   r   )r   jitr   r   r<   r;   udts     r   test_global_constants.TestSharedMemoryCreation.test_global_constants@   s.    hh
}%&:;D	$++- r   c                     [         R                  " [        S S 2S S 24   45      " [        5      nUS   " U R	                  5       5        g rC   )r   rD   r   r%   r@   rE   s     r   test_global_build_tuple0TestSharedMemoryCreation.test_global_build_tupleD   s3    hh1'()?@D	$,,.!r   z8Simulator does not prohibit lists for shared array shapec                 R   U R                  [        5       n[        R                  " [        S S 2S S 24   45      " [
        5        S S S 5        U R                  S[        WR                  5      5        U R                  S[        UR                  5      5        g ! , (       d  f       NY= f)N=No implementation of function Function(<function shared.arrayzTfound for signature:
 
 >>> array(shape=list(int64)<iv=[5, 6]>, dtype=class(float32))	assertRaisesr   r   rD   r   r(   assertInstr	exceptionr;   raisess     r   test_global_build_list/TestSharedMemoryCreation.test_global_build_listH   s    {+vHHgadm%&'<= , 	 8&**+	- 	 - &**+	- ,+   /B
B&c                     [         R                  " [        S S 2S S 24   45      " [        5      nUS   " U R	                  5       5        g rC   )r   rD   r   r+   r@   rE   s     r   test_global_constant_tuple3TestSharedMemoryCreation.test_global_constant_tupleU   s3    hh1'()BCD	$,,.!r   z&Can't check for constants in simulatorc                 F   U R                  [        5       n[        R                  " [        S S  45      " [
        5        S S S 5        U R                  S[        WR                  5      5        U R                  S[        UR                  5      5        g ! , (       d  f       NY= f)NrM   zFfound for signature:
 
 >>> array(shape=float32, dtype=class(float32)))	rN   r   r   rD   r   r.   rO   rP   rQ   rR   s     r   test_invalid_1'TestSharedMemoryCreation.test_invalid_1Y   s|     {+vHHgaj]#M2 , 	 8&**+	- 	 G&**+	- ,+   )B
B c                 R   U R                  [        5       n[        R                  " [        S S 2S S 24   45      " [
        5        S S S 5        U R                  S[        WR                  5      5        U R                  S[        UR                  5      5        g ! , (       d  f       NY= f)NrM   zlfound for signature:
 
 >>> array(shape=Tuple(Literal[int](1), array(float32, 1d, A)), dtype=class(float32)))	rN   r   r   rD   r   r0   rO   rP   rQ   rR   s     r   test_invalid_2'TestSharedMemoryCreation.test_invalid_2f   s     {+vHHgadm%&}5 , 	 8&**+	- 	 F &**+	- ,+rV   c                 F   U R                  [        5       n[        R                  " [        S S  45      " [
        5        S S S 5        U R                  S[        WR                  5      5        U R                  S[        UR                  5      5        g ! , (       d  f       NY= f)NrM   zDfound for signature:
 
 >>> array(shape=int32, dtype=class(float32)))	rN   r   r   rD   r   r.   rO   rP   rQ   rR   s     r   test_invalid_3'TestSharedMemoryCreation.test_invalid_3t   s|     {+vHHeAh[!-0 , 	 8&**+	- 	 E&**+	- ,+r]   c                 F   U R                  [        5       n[        R                  " [        S S  45      " [
        5        S S S 5        U R                  S[        WR                  5      5        U R                  S[        UR                  5      5        g ! , (       d  f       NY= f)NrM   z\found for signature:
 
 >>> array(shape=Tuple(Literal[int](1), int32), dtype=class(float32)))	rN   r   r   rD   r   r2   rO   rP   rQ   rR   s     r   test_invalid_4'TestSharedMemoryCreation.test_invalid_4   s}     {+vHHeAh[!-0 , 	 8&**+	- 	 . &**+	- ,+r]   c                     [        [        UR                  R                  5       5      5      R                  nUR
                  S   R                  nU R                  XB5        g )Ns)nextiter	overloadsvalues_type_annotationtypemapr   assertEqual)r;   fr   
annotationl_dtypes        r   check_dtype$TestSharedMemoryCreation.check_dtype   sH    $q{{11345FF
$$S)//(r   zCan't check typing in simulatorc                     [         R                  " [        [        S S S2   5      5      S 5       nU R	                  U[        5        g )Nr   c                 h    [         R                  R                  S[        S9nU S   US'   US   U S'   g N
   r   r   )r   r   r   r   xrh   s     r   rp   4TestSharedMemoryCreation.test_numba_dtype.<locals>.f   s5    !!"E!2AQ4AaDQ4AaDr   r   rD   r   r   rs   r;   rp   s     r   test_numba_dtype)TestSharedMemoryCreation.test_numba_dtype   >     
$uSqSz"	#	 
$	
 	E"r   c                     [         R                  " [        [        S S S2   5      5      S 5       nU R	                  U[        5        g )Nr   c                 |    [         R                  R                  S[        R                  S9nU S   US'   US   U S'   g rw   )r   r   r   r9   r   rz   s     r   rp   4TestSharedMemoryCreation.test_numpy_dtype.<locals>.f   s9    !!"BHH!5AQ4AaDQ4AaDr   r}   r~   s     r   test_numpy_dtype)TestSharedMemoryCreation.test_numpy_dtype   r   r   c                     [         R                  " [        [        S S S2   5      5      S 5       nU R	                  U[        5        g )Nr   c                 `    [         R                  R                  SSS9nU S   US'   US   U S'   g )Nrx   r   ry   r   r   r   r   rz   s     r   rp   5TestSharedMemoryCreation.test_string_dtype.<locals>.f   s5    !!"G!4AQ4AaDQ4AaDr   r}   r~   s     r   test_string_dtype*TestSharedMemoryCreation.test_string_dtype   r   r   c           	          SnU R                  [        U5         [        R                  " [	        [
        S S S2   5      5      S 5       nS S S 5        g ! , (       d  f       g = f)Nz*.*Invalid NumPy dtype specified: 'int33'.*r   c                 `    [         R                  R                  SSS9nU S   US'   US   U S'   g )Nrx   int33ry   r   r   rz   s     r   rp   =TestSharedMemoryCreation.test_invalid_string_dtype.<locals>.f   s5    KK%%b%8t!t!r   )assertRaisesRegexr   r   rD   r   r   )r;   rerp   s      r   test_invalid_string_dtype2TestSharedMemoryCreation.test_invalid_string_dtype   sM     :##K4XXd51:&' ( 544s   0A
A c                     [         R                  " [        [        S S S2   5      5      S 5       nU R	                  U[        5        g )Nr   c                 h    [         R                  R                  S[        S9nU S   US'   US   U S'   g rw   )r   r   r   r   rz   s     r   rp   DTestSharedMemoryCreation.test_type_with_struct_data_model.<locals>.f   s6    !!",B!CAQ4AaDQ4AaDr   )r   rD   r   r   rs   r~   s     r    test_type_with_struct_data_model9TestSharedMemoryCreation.test_type_with_struct_data_model   s?    	$-cc23	4	 
5	 	23r    N)__name__
__module____qualname____firstlineno__r<   r@   rG   rJ   r
   rT   rX   r[   r_   rb   re   rs   r   r   r   r   r   __static_attributes__r   r   r   r4   r4   9   s%   8*!" OP
- Q
-" =>
- ?
- =>- ?- =>
- ?
- =>- ?-) 67# 8# 67# 8# 67# 8# 67 8 674 84r   r4   __main__)numpyr9   numbar   r   r   r   numba.core.errorsr   numba.cuda.testingr   r	   r
   extensions_usecasesr   r   r"   r*   r   r%   r(   r+   r.   r0   r2   r4   r   mainr   r   r   <module>r      su     , , ) 5 . 7  P4| P4f zMMO r   