
    `i?                         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
j                     dS dS )    N)cudafloat32int32void)TypingError)unittestCUDATestCase)skip_on_cudasim   )test_struct_model_type      )r   r   c                     t           j                            t          t                    }t          j        d          }||         | |<   d S )Nshapedtyper   )r   sharedarrayGLOBAL_CONSTANTr   gridAsais      |/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/numba/cuda/tests/cudapy/test_sm_creation.pyudt_global_constantsr      s:    					@	@B	!Aa5AaDDD    c                     t           j                            t          t          ft
                    }t          j        d          \  }}|||f         | ||f<   d S Nr      r   r   r   r   GLOBAL_CONSTANT_2r   r   r   r   r   js       r   udt_global_build_tupler%      S    			/3D!E!( 
 
* 
*B9Q<<DAqAhAadGGGr   c                     t           j                            t          t          gt
                    }t          j        d          \  }}|||f         | ||f<   d S r   r!   r#   s       r   udt_global_build_listr(      r&   r   c                     t           j                            t          t                    }t          j        d          \  }}|||f         | ||f<   d S r   )r   r   r   GLOBAL_CONSTANT_TUPLEr   r   r#   s       r   udt_global_constant_tupler+   !   sG    			!6g		F	FB9Q<<DAqAhAadGGGr   c                     t           j                            | d         t                    }t          j        d          }||         | |<   d S )Nr   r   r   r   r   r   r   r   r   s      r   udt_invalid_1r.   '   s>    			1W		5	5B	!Aa5AaDDDr   c                     t           j                            d| d         ft                    }t          j        d          \  }}|||f         | ||f<   d S )Nr   r   r   r    r-   r#   s       r   udt_invalid_2r0   -   sN    			!QqT'		:	:B9Q<<DAqAhAadGGGr   c                     t           j                            d| d         ft                    }t          j        d          }||df         | |<   d S )Nr   r   r   r-   r   s      r   udt_invalid_3r2   3   sF    			!QqT'		:	:B	!Aad8AaDDDr   c                      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dS )TestSharedMemoryCreationc                 D    t          j        dt           j        d          S )Nd   r   )r   ndmin)npr   r   selfs    r   getargzTestSharedMemoryCreation.getarg:   s    x2:Q7777r   c                 R    |                                                      dd          S )Nr   )r;   reshaper9   s    r   getarg2z TestSharedMemoryCreation.getarg2=   s     {{}}$$Qq)))r   c                      t          j        t          d d          f          t                    } |d         |                                            d S N)r   r   )r   jitr   r   r;   r:   udts     r   test_global_constantsz.TestSharedMemoryCreation.test_global_constants@   sH    %dh
}%%&:;;D	$++--     r   c                      t          j        t          d d d d f         f          t                    } |d         |                                            d S r@   )r   rA   r   r%   r>   rB   s     r   test_global_build_tuplez0TestSharedMemoryCreation.test_global_build_tupleD   sQ    (dh111'(()?@@D	$,,..!!!!!r   z8Simulator does not prohibit lists for shared array shapec                 r   |                      t                    5 } t          j        t          d d d d f         f          t
                     d d d            n# 1 swxY w Y   |                     dt          |j                             |                     dt          |j                             d S )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&DHgaaadm%&&'<===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	 8&*++	- 	- 	- 	 - &*++	- 	- 	- 	- 	-   5AA #A c                      t          j        t          d d d d f         f          t                    } |d         |                                            d S r@   )r   rA   r   r+   r>   rB   s     r   test_global_constant_tuplez3TestSharedMemoryCreation.test_global_constant_tupleU   sQ    (dh111'(()BCCD	$,,..!!!!!r   z&Can't check for constants in simulatorc                 j   |                      t                    5 } t          j        t          d d          f          t
                     d d d            n# 1 swxY w Y   |                     dt          |j                             |                     dt          |j                             d S )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#DHgaaaj]##M222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	 8&*++	- 	- 	- 	 G&*++	- 	- 	- 	- 	-   1AAAc                 r   |                      t                    5 } t          j        t          d d d d f         f          t
                     d d d            n# 1 swxY w Y   |                     dt          |j                             |                     dt          |j                             d S )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&DHgaaadm%&&}555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	 8&*++	- 	- 	- 	 F &*++	- 	- 	- 	- 	-rP   c                 j   |                      t                    5 } t          j        t          d d          f          t
                     d d d            n# 1 swxY w Y   |                     dt          |j                             |                     dt          |j                             d S )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!DHeAAAh[!!-000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	 8&*++	- 	- 	- 	 E&*++	- 	- 	- 	- 	-rU   c                 j   |                      t                    5 } t          j        t          d d          f          t
                     d d d            n# 1 swxY w Y   |                     dt          |j                             |                     dt          |j                             d S )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!DHeAAAh[!!-000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	 8&*++	- 	- 	- 	 . &*++	- 	- 	- 	- 	-rU   c                     t          t          |j                                                            j        }|j        d         j        }|                     ||           d S )Ns)nextiter	overloadsvalues_type_annotationtypemapr   assertEqual)r:   fr   
annotationl_dtypes        r   check_dtypez$TestSharedMemoryCreation.check_dtype   sT    $q{11334455F
$S)/%(((((r   zCan't check typing in simulatorc                     t          j        t          t          d d d                             d             }|                     |t                     d S )Nr   c                 ~    t           j                            dt                    }| d         |d<   |d         | d<   d S N
   r   r   )r   r   r   r   xr]   s     r   re   z4TestSharedMemoryCreation.test_numba_dtype.<locals>.f   s:    !!"E!22AQ4AaDQ4AaDDDr   r   rA   r   r   rh   r:   re   s     r   test_numba_dtypez)TestSharedMemoryCreation.test_numba_dtype   X     
$uSSqSz""	#	#	 	 
$	#	
 	E"""""r   c                     t          j        t          t          d d d                             d             }|                     |t                     d S )Nr   c                     t           j                            dt          j                  }| d         |d<   |d         | d<   d S rk   )r   r   r   r8   r   rn   s     r   re   z4TestSharedMemoryCreation.test_numpy_dtype.<locals>.f   s<    !!"BH!55AQ4AaDQ4AaDDDr   rp   rq   s     r   test_numpy_dtypez)TestSharedMemoryCreation.test_numpy_dtype   rs   r   c                     t          j        t          t          d d d                             d             }|                     |t                     d S )Nr   c                 t    t           j                            dd          }| d         |d<   |d         | d<   d S )Nrl   r   rm   r   r   r   r   rn   s     r   re   z5TestSharedMemoryCreation.test_string_dtype.<locals>.f   s:    !!"G!44AQ4AaDQ4AaDDDr   rp   rq   s     r   test_string_dtypez*TestSharedMemoryCreation.test_string_dtype   rs   r   c           	          d}|                      t          |          5  t          j        t	          t
          d d d                             d             }d d d            d S # 1 swxY w Y   d S )Nz*.*Invalid NumPy dtype specified: 'int33'.*r   c                 t    t           j                            dd          }| d         |d<   |d         | d<   d S )Nrl   int33rm   r   ry   rn   s     r   re   z=TestSharedMemoryCreation.test_invalid_string_dtype.<locals>.f   s:    K%%b%88t!t!r   )assertRaisesRegexr   r   rA   r   r   )r:   rere   s      r   test_invalid_string_dtypez2TestSharedMemoryCreation.test_invalid_string_dtype   s     :##K44 	 	Xd51:&&''  ('	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   9A$$A(+A(c                     t          j        t          t          d d d                             d             }|                     |t                     d S )Nr   c                 ~    t           j                            dt                    }| d         |d<   |d         | d<   d S rk   )r   r   r   r   rn   s     r   re   zDTestSharedMemoryCreation.test_type_with_struct_data_model.<locals>.f   s;    !!",B!CCAQ4AaDQ4AaDDDr   )r   rA   r   r   rh   rq   s     r    test_type_with_struct_data_modelz9TestSharedMemoryCreation.test_type_with_struct_data_model   sY    	$-ccc233	4	4	 	 
5	4	 	23333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 8 8* * *! ! !" " " _OPP
- 
- QP
-" " " _=>>
- 
- ?>
- _=>>- - ?>- _=>>
- 
- ?>
- _=>>- - ?>-) ) ) _677# # 87# _677# # 87# _677# # 87# _677  87 _6774 4 874 4 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      sV       , , , , , , , , , , , , ) ) ) ) ) ) 5 5 5 5 5 5 5 5 . . . . . . 7 7 7 7 7 7                P4 P4 P4 P4 P4| P4 P4 P4f zHMOOOOO r   