U
    Ã9%eø  ã                   @   sP   d Z ddlmZ ddlmZ ddlmZmZ G dd„ deƒZe	dkrLe 
¡  dS )	zW
Test function name mangling.
The mangling affects the ABI of numba compiled binaries.
é    )Útypes)Údefault_mangler)ÚunittestÚTestCasec                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestManglingc                 C   s&   d}t jf}t||ƒ}|  |d¡ d S )NÚfooZ_Z3fooi)r   Úint32r   ÚassertEqual©ÚselfÚfnameÚargtypesÚname© r   úX/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/numba/tests/test_mangling.pyÚtest_one_args   s    
zTestMangling.test_one_argsc                 C   s*   d}t jt jf}t||ƒ}|  |d¡ d S )Nr   Z_Z3fooif)r   r   Úfloat32r   r	   r
   r   r   r   Útest_two_args   s    
zTestMangling.test_two_argsc                 C   s|   d}t jt jf}t||ƒ}|  |t¡ |d }d dd„ | d¡D ƒ¡}d| }d t	|ƒ|¡}|  
||¡ |  |d	¡ d S )
Nu   foà² é   Ú c                 s   s   | ]}d   |¡V  qdS )z_{:02x}N)Úformat)Ú.0Úcr   r   r   Ú	<genexpr>   s   ÿz2TestMangling.test_unicode_fname.<locals>.<genexpr>Úutf8Úfoz_Z{}{}ifz^_Z[a-zA-Z0-9_\$]+$)r   r   r   r   ZassertIsInstanceÚstrÚjoinÚencoder   Úlenr	   ZassertRegexpMatches)r   r   r   r   ZunicharÚencÚtextÚexpectr   r   r   Útest_unicode_fname   s    

ÿzTestMangling.test_unicode_fnameN)Ú__name__Ú
__module__Ú__qualname__r   r   r#   r   r   r   r   r      s   r   Ú__main__N)Ú__doc__Z
numba.corer   Znumba.core.funcdescr   Znumba.tests.supportr   r   r   r$   Úmainr   r   r   r   Ú<module>   s   