o
    ¢øÁf8  ã                   @   sB   d dl Z d dlmZ d dlmZmZmZmZ G dd„ de jƒZ	dS )é    N)ÚShadow)ÚOptionsÚCythonScopeÚ
PyrexTypesÚErrorsc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú
TestShadowc                 C   sb   t  d ¡}g }|j ¡ D ]}| d¡r| d¡rq|dv rqtt|ƒs(| |¡ q|  	|g ¡ d S )NÚ__)ÚPyTypeObjectÚPyObject_TypeCheck)
r   Úcreate_cython_scopeÚentriesÚkeysÚ
startswithÚendswithÚhasattrr   ÚappendÚassertEqual)ÚselfÚcython_scopeÚmissing_typesÚkey© r   úS/var/www/html/mig_web/myenv/lib/python3.10/site-packages/Cython/Tests/TestShadow.pyÚtest_all_types_in_shadow   s   


€z#TestShadow.test_all_types_in_shadowc                 C   s´   g }t jD ]L}dD ]G}|| }|r,|dv s|dkr,|  |tt ƒ¡ |  d| tt ƒ¡ q	tt |ƒs6| |¡ tddƒD ]}d| d | }tt |ƒsO| |¡ q;q	q|  |g ¡ d S )	N)Ú ÚuÚs)Ú
Py_UNICODEÚPy_UCS4Ú
Py_ssize_tÚssize_tÚ	ptrdiff_tÚ	Py_hash_tÚusize_tÚp_é   é   ÚpÚ_)r   Ú	int_typesÚassertNotInÚdirr   r   Úranger   )r   r   Úint_nameÚsignÚnameÚptrÚptr_namer   r   r   Útest_int_types_in_shadow   s(   




€ýðz#TestShadow.test_int_types_in_shadowc                 C   sÞ   t  d ¡}G dd„ dƒ}||_t ¡  g }g }tj ¡ D ]D\\}}}}|dkr(qtt	|ƒs2| 
|¡ | |¡s<| 
|¡ tddƒD ]}	d|	 d | }
tt	|
ƒsU| 
|
¡ | |
¡s_| 
|
¡ qAq|  |g ¡ |  |g ¡ d S )Nc                   @   s   e Zd ZdZdZg ZdS )z+TestShadow.test_most_types.<locals>.ContextFé   N)Ú__name__Ú
__module__Ú__qualname__ÚcppÚlanguage_levelÚfuture_directivesr   r   r   r   ÚContext8   s    r:   Úobjectr%   r&   r'   r(   )r   r   Úcontextr   Úinit_threadr   Úmodifiers_and_name_to_typeÚitemsr   r   r   Úlookup_typer,   r   )r   r   r:   r   Úmissing_lookupsÚsignedÚlongnessr/   Útype_r0   r1   r   r   r   Útest_most_types2   s.   








€ûzTestShadow.test_most_typesN)r4   r5   r6   r   r2   rE   r   r   r   r   r      s    r   )
ÚunittestÚCythonr   ÚCython.Compilerr   r   r   r   ÚTestCaser   r   r   r   r   Ú<module>   s    