
    ۏDj                     Z    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	y)    N)Shadow)OptionsCythonScope
PyrexTypesErrorsc                   $    e Zd Zd Zd Zd Zd Zy)
TestShadowc                 N   g }g }t         j                  j                         D ]  }|j                  d      ^}}t         j                  j                  |      }|r8t        |      dk(  r*|d   dk(  r"t        t        |      r|j                  |       o|dk(  rut        t        |      s|j                  |       |st        t        |      }|D ].  }t        t        |      d      st        t        |      d      s.   | j                  |g        | j                  |g        y )N.   r   modulestaticmethod__getattr____getattribute__)r   directive_typeskeyssplitdirective_scopesgetlenhasattrr   appendgetattrtypeassertEqual)	selfmissing_directivesextra_directivesfull_directive	directiverestscopedirective_valuesubdirectives	            [C:\Crop_Prediction\Backend\crop-ai-system\venv\Lib\site-packages\Cython/Tests/TestShadow.pytest_all_directives_in_shadowz(TestShadow.test_all_directives_in_shadow   s   %55::< 	N-33C8I,,00@EUqU1X-A69-$++N;/ 69-")).9")&)"<$( L_ 5}E#D$9;MN	%	. 	+R0)2.    c                 (   t        j                  d       }g }|j                  j                         D ]L  }|j	                  d      r|j                  d      r&|dv r+t        t        |      r<|j                  |       N | j                  |g        y )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    "66t< '',,. 		*C~~d#T(:<< 63'$$S)		* 	+r'   c                    g }t         j                  D ]  }dD ]  }||z   }|rK|dv s|dk(  rB| j                  |t        t                      | j                  d|z   t        t                      Ut	        t         |      s|j                  |       t        dd      D ]/  }d|z  dz   |z   }t	        t         |      r|j                  |       1   | j                  |g        y )	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   r1   int_namesignnameptrptr_names          r%   test_int_types_in_shadowz#TestShadow.test_int_types_in_shadow6   s    (( 	7H& 7h  %J J	) $$T3v;7$$TD[#f+>vt,!((. A; 7C"Sy35H"684%,,X67!7	7* 	+r'   c                 n   t        j                  d       } G d d      }||_        t        j                          g }g }t
        j                  j                         D ]  \  \  }}}}|dk(  rt        t        |      s|j                  |       |j                  |      s|j                  |       t        dd      D ]Q  }	d|	z  dz   |z   }
t        t        |
      s|j                  |
       |j                  |
      rA|j                  |
       S  | j                  |g        | j                  |g        y )Nc                       e Zd ZdZdZg Zy)+TestShadow.test_most_types.<locals>.ContextF   N)__name__
__module____qualname__cpplanguage_levelfuture_directives r'   r%   ContextrO   U   s    CN "r'   rX   objectr   r@   rA   rB   )r   r,   _contextr   init_threadr   modifiers_and_name_to_typeitemsr   r   r   lookup_typerF   r   )r   r0   rX   r1   missing_lookupssignedlongnessrI   type_rJ   rK   s              r%   test_most_typeszTestShadow.test_most_typesO   s$    #66t<	# 	# !(/9/T/T/Z/Z/\ 	5+$VXtex64($$T*++D1&&t,Q{ 59s?T1vx0!((2#//9#**845	5 	+"-r'   N)rQ   rR   rS   r&   r3   rL   rc   rW   r'   r%   r	   r	      s    /:,$,2.r'   r	   )
unittestCythonr   Cython.Compilerr   r   r   r   TestCaser	   rW   r'   r%   <module>rh      s%      D Df."" f.r'   