
    wg?                         d dl Zd dlmZmZmZmZ d dlmZ d dl	m
Z
mZ d dl	mZ ddlmZ dZd	Zd
Zd Zd Zd Zd Zd Zd Zd Z G d de      Zedk(  r e
j6                          yy)    N)cudafloat32int32void)TypingError)unittestCUDATestCase)skip_on_cudasim   )test_struct_model_type      )r   r   c                     t         j                  j                  t        t              }t        j
                  d      }||   | |<   y )Nshapedtyper   )r   sharedarrayGLOBAL_CONSTANTr   gridAsais      m/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/numba/cuda/tests/cudapy/test_sm_creation.pyudt_global_constantsr      s5    					@B		!Aa5AaD    c                     t         j                  j                  t        t        ft
              }t        j                  d      \  }}|||f   | ||f<   y Nr      r   r   r   r   GLOBAL_CONSTANT_2r   r   r   r   r   js       r   udt_global_build_tupler%      L    			/3D!E!( 
 
*B99Q<DAqAhAadGr   c                     t         j                  j                  t        t        gt
              }t        j                  d      \  }}|||f   | ||f<   y r   r!   r#   s       r   udt_global_build_listr(      r&   r   c                     t         j                  j                  t        t              }t        j
                  d      \  }}|||f   | ||f<   y r   )r   r   r   GLOBAL_CONSTANT_TUPLEr   r   r#   s       r   udt_global_constant_tupler+   !   sB    			!6g		FB99Q<DAqAhAadGr   c                     t         j                  j                  | d   t              }t        j                  d      }||   | |<   y )Nr   r   r   r   r   r   r   r   r   s      r   udt_invalid_1r.   '   s9    			1W		5B		!Aa5AaDr   c                     t         j                  j                  d| d   ft              }t        j                  d      \  }}|||f   | ||f<   y )Nr   r   r   r    r-   r#   s       r   udt_invalid_2r0   -   sI    			!QqT'		:B99Q<DAqAhAadGr   c                     t         j                  j                  d| d   ft              }t        j                  d      }||df   | |<   y )Nr   r   r   r-   r   s      r   udt_invalid_3r2   3   sA    			!QqT'		:B		!Aad8AaDr   c                   H   e Zd Zd Zd Zd Zd Z ed      d        Zd Z	 ed      d	        Z
 ed      d
        Z ed      d        Z ed      d        Zd Z ed      d        Z ed      d        Z ed      d        Z ed      d        Z ed      d        Zy)TestSharedMemoryCreationc                 N    t        j                  dt         j                  d      S )Nd   r   )r   ndmin)npr   r   selfs    r   getargzTestSharedMemoryCreation.getarg:   s    xx2::Q77r   c                 B    | j                         j                  dd      S )Nr   )r;   reshaper9   s    r   getarg2z TestSharedMemoryCreation.getarg2=   s    {{}$$Qq))r   c                      t        j                  t        d d  f      t              } |d   | j	                                y N)r   r   )r   jitr   r   r;   r:   udts     r   test_global_constantsz.TestSharedMemoryCreation.test_global_constants@   s2    %dhh
}%&:;D	$++- r   c                      t        j                  t        d d d d f   f      t              } |d   | j	                                y r@   )r   rA   r   r%   r>   rB   s     r   test_global_build_tuplez0TestSharedMemoryCreation.test_global_build_tupleD   s7    (dhh1'()?@D	$,,.!r   z8Simulator does not prohibit lists for shared array shapec                 F   | j                  t              5 } t        j                  t        d d d d f   f      t
               d d d        | j                  dt        j                               | j                  dt        |j                               y # 1 sw Y   TxY w)N=No implementation of function Function(<function shared.arrayzTfound for signature:
 
 >>> array(shape=list(int64)<iv=[5, 6]>, dtype=class(float32))	assertRaisesr   r   rA   r   r(   assertInstr	exceptionr:   raisess     r   test_global_build_listz/TestSharedMemoryCreation.test_global_build_listH   s    {+ 	>v&DHHgadm%&'<=	> 	 8&**+	- 	 - &**+	-	> 	>   .BB c                      t        j                  t        d d d d f   f      t              } |d   | j	                                y r@   )r   rA   r   r+   r>   rB   s     r   test_global_constant_tuplez3TestSharedMemoryCreation.test_global_constant_tupleU   s7    (dhh1'()BCD	$,,.!r   z&Can't check for constants in simulatorc                 :   | j                  t              5 } t        j                  t        d d  f      t
               d d d        | j                  dt        j                               | j                  dt        |j                               y # 1 sw Y   TxY w)NrH   zFfound for signature:
 
 >>> array(shape=float32, dtype=class(float32)))	rI   r   r   rA   r   r.   rJ   rK   rL   rM   s     r   test_invalid_1z'TestSharedMemoryCreation.test_invalid_1Y   s     {+ 	3v#DHHgaj]#M2	3 	 8&**+	- 	 G&**+	-	3 	3   (BBc                 F   | j                  t              5 } t        j                  t        d d d d f   f      t
               d d d        | j                  dt        j                               | j                  dt        |j                               y # 1 sw Y   TxY w)NrH   zlfound for signature:
 
 >>> array(shape=Tuple(Literal[int](1), array(float32, 1d, A)), dtype=class(float32)))	rI   r   r   rA   r   r0   rJ   rK   rL   rM   s     r   test_invalid_2z'TestSharedMemoryCreation.test_invalid_2f   s     {+ 	6v&DHHgadm%&}5	6 	 8&**+	- 	 F &**+	-	6 	6rP   c                 :   | j                  t              5 } t        j                  t        d d  f      t
               d d d        | j                  dt        j                               | j                  dt        |j                               y # 1 sw Y   TxY w)NrH   zDfound for signature:
 
 >>> array(shape=int32, dtype=class(float32)))	rI   r   r   rA   r   r.   rJ   rK   rL   rM   s     r   test_invalid_3z'TestSharedMemoryCreation.test_invalid_3t   s     {+ 	1v!DHHeAh[!-0	1 	 8&**+	- 	 E&**+	-	1 	1rU   c                 :   | j                  t              5 } t        j                  t        d d  f      t
               d d d        | j                  dt        j                               | j                  dt        |j                               y # 1 sw Y   TxY w)NrH   z\found for signature:
 
 >>> array(shape=Tuple(Literal[int](1), int32), dtype=class(float32)))	rI   r   r   rA   r   r2   rJ   rK   rL   rM   s     r   test_invalid_4z'TestSharedMemoryCreation.test_invalid_4   s     {+ 	1v!DHHeAh[!-0	1 	 8&**+	- 	 . &**+	-	1 	1rU   c                     t        t        |j                  j                                     j                  }|j
                  d   j                  }| j                  ||       y )Ns)nextiter	overloadsvalues_type_annotationtypemapr   assertEqual)r:   fr   
annotationl_dtypes        r   check_dtypez$TestSharedMemoryCreation.check_dtype   sJ    $q{{11345FF
$$S)//%(r   zCan't check typing in simulatorc                     t        j                  t        t        d d d               d        }| j	                  |t               y )Nr   c                 n    t         j                  j                  dt              }| d   |d<   |d   | d<   y N
   r   r   )r   r   r   r   xr]   s     r   re   z4TestSharedMemoryCreation.test_numba_dtype.<locals>.f   s5    !!"E!2AQ4AaDQ4AaDr   r   rA   r   r   rh   r:   re   s     r   test_numba_dtypez)TestSharedMemoryCreation.test_numba_dtype   >     
$uSqSz"	#	 
$	
 	E"r   c                     t        j                  t        t        d d d               d        }| j	                  |t               y )Nr   c                     t         j                  j                  dt        j                        }| d   |d<   |d   | d<   y rk   )r   r   r   r8   r   rn   s     r   re   z4TestSharedMemoryCreation.test_numpy_dtype.<locals>.f   s9    !!"BHH!5AQ4AaDQ4AaDr   rp   rq   s     r   test_numpy_dtypez)TestSharedMemoryCreation.test_numpy_dtype   rs   r   c                     t        j                  t        t        d d d               d        }| j	                  |t               y )Nr   c                 f    t         j                  j                  dd      }| d   |d<   |d   | d<   y )Nrl   r   rm   r   r   r   r   rn   s     r   re   z5TestSharedMemoryCreation.test_string_dtype.<locals>.f   s5    !!"G!4AQ4AaDQ4AaDr   rp   rq   s     r   test_string_dtypez*TestSharedMemoryCreation.test_string_dtype   rs   r   c           	          d}| j                  t        |      5  t        j                  t	        t
        d d d               d        }d d d        y # 1 sw Y   y xY w)Nz*.*Invalid NumPy dtype specified: 'int33'.*r   c                 f    t         j                  j                  dd      }| d   |d<   |d   | d<   y )Nrl   int33rm   r   ry   rn   s     r   re   z=TestSharedMemoryCreation.test_invalid_string_dtype.<locals>.f   s5    KK%%b%8t!t!r   )assertRaisesRegexr   r   rA   r   r   )r:   rere   s      r   test_invalid_string_dtypez2TestSharedMemoryCreation.test_invalid_string_dtype   sV     :##K4 	XXd51:&' (	 	 	s   /AAc                     t        j                  t        t        d d d               d        }| j	                  |t               y )Nr   c                 n    t         j                  j                  dt              }| d   |d<   |d   | d<   y rk   )r   r   r   r   rn   s     r   re   zDTestSharedMemoryCreation.test_type_with_struct_data_model.<locals>.f   s6    !!",B!CAQ4AaDQ4AaDr   )r   rA   r   r   rh   rq   s     r    test_type_with_struct_data_modelz9TestSharedMemoryCreation.test_type_with_struct_data_model   s?    	$-cc23	4	 
5	 	23r   N)__name__
__module____qualname__r;   r>   rD   rF   r
   rO   rR   rT   rW   rY   r[   rh   rr   rv   rz   r   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__)numpyr8   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      sw     , , ) 5 . 7  P4| P4f zHMMO r   