o
    fS                     @   sh   d dl Z d dlmZmZ dd ZG dd de jZG dd deZG d	d
 d
eZG dd de jZ	dS )    N)CodeUtilityCodec                 C   s(   | d o	| d   | d o| d   fS )Nr      )strip)tup r   a/var/www/html/mig_web/myenv/lib/python3.10/site-packages/Cython/Compiler/Tests/TestUtilityLoad.py
strip_2tup   s   (r	   c                   @   s@   e Zd ZdZdZdZeddZd ZdZ	e
jZdd Zd	d
 ZdS )TestUtilityLoaderz#
    Test loading UtilityCodes
    )ztest {{loader}} prototypeztest {{loader}} impl)zreq {{loader}} protozreq {{loader}} implLoader)loaderzTestUtilityLoader.cc                 C   s(   t | j| j| j}| || j d S )N)r	   clsload_as_stringnamefilenameassertEqualexpectedselfgotr   r   r   test_load_as_string   s   z%TestUtilityLoader.test_load_as_stringc                 C   s   | j j| j| jd}t|j|jf}| || j |j	\}t|j|jf}| || j
 | j j| j| jd}t|j|jf}| || j d S )N)	from_file)r   loadr   r   r	   protoimplr   r   requiresrequiredload_cachedr   utilityr   r   r   r   r   	test_load   s   zTestUtilityLoader.test_loadN)__name__
__module____qualname____doc__r   r   dictcontextr   r   r   r   r   r   r    r   r   r   r   r
   	   s    
r
   c                   @   sn   e Zd ZdZejd ddejd ddfZejd ddejd ddfZ	e
jZdd Zdd	 Zd
S )TestTempitaUtilityLoaderz=
    Test loading UtilityCodes with Tempita substitution
    r   z
{{loader}}r   r   c                 C   s.   t | jj| j| j| jd}| || j d S )Nr&   )r	   r   r   r   r   r&   r   expected_tempitar   r   r   r   r   6   s   z,TestTempitaUtilityLoader.test_load_as_stringc                 C   s   | j j| j| j| jd}t|j|jf}| || j	 |j
\}t|j|jf}| || j | j j| j| j| jd}t|j|jf}| || j	 d S )Nr(   )r   r&   )r   r   r   r   r&   r	   r   r   r   r)   r   required_tempitar   r   r   r   r    :   s   z"TestTempitaUtilityLoader.test_loadN)r!   r"   r#   r$   r
   r   replacer)   r   r*   r   TempitaUtilityCoder   r   r    r   r   r   r   r'   *   s    r'   c                   @   sJ   e Zd ZdZdZdZdZdZeddZ	dZ
d	ZejZd
e_ejZejZd
S )TestCythonUtilityLoaderz)
    Test loading CythonUtilityCodes
    )Nztest {{cy_loader}} impl)Nztest CyLoader impl)Nzreq {{cy_loader}} impl)Nzreq CyLoader implCyLoader)	cy_loaderTestCyUtilityLoaderzTestCyUtilityLoader.pyxN)r!   r"   r#   r$   r   r)   r   r*   r%   r&   r   r   r   CythonUtilityCoder   r   r
   r    r'   test_load_tempitar   r   r   r   r-   H   s    

r-   c                   @   s   e Zd Zdd ZdS )TestUtilityCodec           
      C   s   t jdd}t jdd}t jdd}t jdd}t jdd}t jdd}||||||g}tt|D ]$}tt|D ]}	|	|krQ| || ||	  q@| || ||	  q@q8d S )	NNumpyImportUFunczNumpyImportArray.cNumpyImportArraypyunicode_strlenzStringTools.cpyunicode_from_unicodeIncludeStringHIncludeCppStringH)r   r   r   rangelenr   assertNotEqual)
r   c1c2c3c4c5c6codesmnr   r   r   test_equalityb   s   zTestUtilityCode.test_equalityN)r!   r"   r#   rF   r   r   r   r   r3   a   s    r3   )
unittestCython.Compilerr   r   r	   TestCaser
   r'   r-   r3   r   r   r   r   <module>   s    !