
    -Ph                     X    d dl Z d dlmZ d dlmZmZmZmZ  G d de j                  Z	dS )    N)Shadow)OptionsCythonScope
PyrexTypesErrorsc                   &    e Zd Zd Zd Zd Zd ZdS )
TestShadowc                    g }g }t           j                                        D ]&}|                    d          }|d         |dd          }}t           j                            |          }|rJt          |          dk    r7|d         dk    r+t          t          |          r|	                    |           |dk    r|dk    rt          t          |          s|	                    |           |rVt          t          |          }|D ]>}	t          t          |          d          st          t          |          d          r n?(|                     |g            |                     |g            d S )	N.r      modulecollection_typestaticmethod__getattr____getattribute__)r   directive_typeskeyssplitdirective_scopesgetlenhasattrr   appendgetattrtypeassertEqual)
selfmissing_directivesextra_directivesfull_directivesplit_directive	directiverestscopedirective_valuesubdirectives
             W/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/Cython/Tests/TestShadow.pytest_all_directives_in_shadowz(TestShadow.test_all_directives_in_shadow   s   %5::<< 	 	N,22377O-a0/!""2EtI,00@@E UqU1X-A-A69-- <$++N;;;!222 // 69-- ")).9999 ")&)"<"<$(  L_ 5 5}EE #D$9$9;MNN  	+R000)2.....    c                 J   t          j        d           }g }|j                                        D ]\}|                    d          r|                    d          r-|dv r2t          t          |          s|                    |           ]| 	                    |g            d S )N__)PyTypeObjectPyObject_TypeCheck)
r   create_cython_scopeentriesr   
startswithendswithr   r   r   r   )r   cython_scopemissing_typeskeys       r'   test_all_types_in_shadowz#TestShadow.test_all_types_in_shadow*   s    "6t<< ',,.. 		* 		*C~~d## T(:(: <<< 63'' *$$S)))+++++r)   c                    g }t           j        D ]}dD ]}||z   }|r^|dv s|dk    rT|                     |t          t                                |                     d|z   t          t                                gt	          t           |          s|                    |           t          dd          D ]7}d|z  dz   |z   }t	          t           |          s|                    |           8ڌ|                     |g            d S )	N) us)
Py_UNICODEPy_UCS4
Py_ssize_tssize_t	ptrdiff_t	Py_hash_tusize_tp_r      p_)r   	int_typesassertNotIndirr   r   ranger   )r   r3   int_namesignnameptrptr_names          r'   test_int_types_in_shadowz#TestShadow.test_int_types_in_shadow<   s8   ( 	7 	7H& 7 7h   %J J J	)) $$T3v;;777$$TD[#f++>>>vt,, /!((... A;; 7 7C"Sy35H"6844 7%,,X6667!7( 	+++++r)   c                    t          j        d           } G d d          }||_        t          j                     g }g }t
          j                                        D ]\  \  }}}}|dk    rt          t          |          s|
                    |           |                    |          s|
                    |           t          dd          D ]a}	d|	z  dz   |z   }
t          t          |
          s|
                    |
           |                    |
          s|
                    |
           b|                     |g            |                     |g            d S )Nc                       e Zd ZdZdZg ZdS )+TestShadow.test_most_types.<locals>.ContextF   N)__name__
__module____qualname__cpplanguage_levelfuture_directives r)   r'   ContextrQ   [   s         CN "r)   rZ   objectr   rB   rC   rD   )r   r.   _contextr   init_threadr   modifiers_and_name_to_typeitemsr   r   r   lookup_typerH   r   )r   r2   rZ   r3   missing_lookupssignedlongnessrK   type_rL   rM   s              r'   test_most_typeszTestShadow.test_most_typesU   s    #6t<<	# 	# 	# 	# 	# 	# 	# 	# !(/9/T/Z/Z/\/\ 	5 	5+$VXtex64(( +$$T***++D11 -&&t,,,Q{{ 5 59s?T1vx00 3!((222#//99 5#**84445 	+++"-----r)   N)rS   rT   rU   r(   r5   rN   re   rY   r)   r'   r	   r	      sQ        !/ !/ !/F, , ,$, , ,2. . . . .r)   r	   )
unittestCythonr   Cython.Compilerr   r   r   r   TestCaser	   rY   r)   r'   <module>rj      s           D D D D D D D D D D D Dl. l. l. l. l." l. l. l. l. l.r)   