
    `i                         d dl Z d dlZd dlmZ d dlmZmZmZ d dl	m
Z
  ed           G d dej                              Z G d d	e          Zed
k    r ej                     dS dS )    N)cuda)unittestskip_on_cudasimCUDATestCase)irz,This is testing CUDA backend code generationc                       e Zd Zd ZdS )TestConstStringCodegenc                    ddl m} ddlm} |j        }|                    d          }d}|                    ||          }|                    ||           t          j        dt          |                    }| 
                    t          |          d           t          j        t          j        d                                          g           }t          j        ||d	          }	t          j        |	                                          }
|
                    |t          j        t          j        d                    d
          }|
                    |           t          j        dt          |                    }| 
                    t          |          d           t          j        ||d          }	t          j        |	                                          }
|                    |
|          }|
                    |           t          j        dt          |                    }| 
                    t          |          d            |t          |                                        d          }t1          t          j        d|                    }| 
                    t          |          d           d S )Nr   )cuda_target)
compile_ir zA Little Brown Foxz7@\"__conststring__.*internal.*constant.*\[19\s+x\s+i8\]      test_insert_const_stringgeneric"test_insert_string_const_addrspaceasciiz\.const.*__conststring__)numba.cuda.descriptorr   numba.cuda.cudadrv.nvvmr   target_contextcreate_moduleinsert_const_stringrefindallstrassertEquallenr   FunctionTypeIntType
as_pointerFunction	IRBuilderappend_basic_blockaddrspacecastPointerTyperetinsert_string_const_addrspacedecodelist)selfr   r   	targetctxmod
textstringgv0resfntyfnbuildermatchesptxs                }/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/numba/cuda/tests/cudapy/test_const_string.pytest_const_stringz(TestConstStringCodegen.test_const_string
   ss   555555666666.	%%b)))
++C<< 	%%c:666j *+.s885 5 	S1%%%rz!}}77992>> [d$>??,r446677##C
1)F)F$-/ /C* ./23xx9 9Wq))) [d$HII,r44667755gzJJC* ./23xx9 9Wq)))jS""))'22rz"=sCCDDWq)))))    N)__name__
__module____qualname__r6    r7   r5   r	   r	      s#        ,* ,* ,* ,* ,*r7   r	   c                   &    e Zd Zd Zd Zd Zd ZdS )TestConstStringc                    t           j        d             }d}t          j        |dz   d          } |d|f         |           t          j        |          }d|d d<   d|d<   t          j                            ||           d S )	Nc                 b    t          j        d          }|t          |           k     rd| |<   d S d S )Nr   XYZr   gridr   arris     r5   
str_assignzDTestConstString.test_assign_const_unicode_string.<locals>.str_assign<   s2    	!A3s88||A |r7   r   r   <U12dtyper@   r   r   jitnpzeros
zeros_liketestingassert_equal)r*   rF   	n_stringsrD   expecteds        r5    test_assign_const_unicode_stringz0TestConstString.test_assign_const_unicode_string;   s    		 	 
	
 	hy1}F333 
1i< %%% =%%"

X.....r7   c                    t           j        d             }d}t          j        |dz   d          } |d|f         |           t          j        |          }d|d d<   d|d<   t          j                            ||           d S )	Nc                 b    t          j        d          }|t          |           k     rd| |<   d S d S )Nr      XYZrA   rC   s     r5   bytes_assignzCTestConstString.test_assign_const_byte_string.<locals>.bytes_assignN   s2    	!A3s88||A |r7   r   r   S12rH   rW   rJ   r7   rK   )r*   rX   rR   rD   rS   s        r5   test_assign_const_byte_stringz-TestConstString.test_assign_const_byte_stringM   s    		  	  
	 
 	hy1}E222"Q	\"3''' =%%"

X.....r7   c                 X   t           j        d             }t          j        dt          j        fdt          j        d          fg          }t          j        d|          } |d         |           t          j        ddg|	          }t          j                            ||           d S )
Nc                 ^    d| d         d<   d| d         d<   d| d         d<   d| d         d<   d S )Nr   r   xABCy   r@   r;   as    r5   fz=TestConstString.test_assign_const_string_in_record.<locals>.f`   s:    AaDIAaDIAaDIAaDIIIr7   r]   r_   rG   r`   r   r   )r   r^   )r`   r@   rH   )	r   rL   rM   rI   int32rN   asarrayrP   assert_array_equalr*   rc   dtrb   	references        r5   "test_assign_const_string_in_recordz2TestConstString.test_assign_const_string_in_record_   s    		 	 
	 XRXbhv.>.>(?@AAHQOO$


J
J7rBBB	

%%i33333r7   c                 X   t           j        d             }t          j        dt          j        fdt          j        d          fg          }t          j        d|          } |d         |           t          j        ddg|	          }t          j                            ||           d S )
Nc                 ^    d| d         d<   d| d         d<   d| d         d<   d| d         d<   d S )Nr   r   r]      ABCr_   r`   rW   r;   ra   s    r5   rc   z<TestConstString.test_assign_const_bytes_in_record.<locals>.fp   s:    AaDIAaDIAaDIAaDIIIr7   r]   r_   rY   r`   rd   )r   rn   )r`   rW   rH   )	r   rL   rM   rI   float32rN   rf   rP   rg   rh   s        r5   !test_assign_const_bytes_in_recordz1TestConstString.test_assign_const_bytes_in_recordo   s    		 	 
	 XRZ(3*@ABBHQOO$


J[9DDD	

%%i33333r7   N)r8   r9   r:   rT   rZ   rk   rp   r;   r7   r5   r=   r=   :   sP        / / /$/ / /$4 4 4 4 4 4 4 4r7   r=   __main__)r   numpyrM   numbar   numba.cuda.testingr   r   r   llvmliter   TestCaser	   r=   r8   mainr;   r7   r5   <module>rx      s    				           F F F F F F F F F F       ?@@-* -* -* -* -*X. -* -* A@-*bC4 C4 C4 C4 C4l C4 C4 C4L zHMOOOOO r7   