+
    VBi#                         ^ RI t ^ RIt^ RIHt ^ RIHtHtHtHtH	t	H
t
HtHtHt Rt]! ]4      t]]3t ! R R4      t ! R R]P$                  4      tR# )	    N)StringIO)	_CACHE_NAME_PATTERN_build_cache_name_find_cache_attributesbuild_hex_versioncached_methodclear_method_cachestry_finally_contextmanagerprint_versionnormalise_float_reprcached_nextc                   0   a  ] tR t^t o ]R 4       tRtV tR# )Cachedc                    \        V4      # N)next)selfxs   &&A/usr/lib/python3.14/site-packages/Cython/Tests/TestCythonUtils.pyr   Cached.cached_next   s    Aw     N)__name__
__module____qualname____firstlineno__r   r   __static_attributes____classdictcell____classdict__s   @r   r   r      s      r   r   c                   h   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tRtV tR# )TestCythonUtilsc                    V P                  R \        R4      4       V P                  R\        R4      4       V P                  R\        R4      4       V P                  R\        R4      4       R# )	
0x001D00A1z0.29a1
0x001D03C4z	0.29.3rc4
0x001D00F0z0.29
0x040000F0z4.0N)assertEqualr   )r   s   &r   test_build_hex_version&TestCythonUtils.test_build_hex_version   sZ    '8'BC'8'EF'8'@A'8'?@r   c                    R p\        V4      p\        P                  ! V4      pV P                  VR4       V P	                  VP                  ^4      V4       R# )fooN)r   r   matchassertIsNotr(   group)r   method_name
cache_namer-   s   &   r   test_cache_method_name&TestCythonUtils.test_cache_method_name   sI    &{3
#))*5%Q5r   c                    \        4       pV P                  \        V\        4      4       V P	                  \        V\
        4      4       V P                  V\        4       4       R # r   )r   assertFalsehasattr
CACHE_NAME
assertTrueMETHOD_NAMEset_of_names_equalset)r   objs   & r   test_requirements_for_Cached,TestCythonUtils.test_requirements_for_Cached&   sC    hj12[12SU+r   c                N    V P                  \        \        V4      4      V4       R # r   )r(   r;   r   )r   r<   values   &&&r   r:   "TestCythonUtils.set_of_names_equal-   s    3C895Ar   c                    \        4       pR p\        V4      p\        V\        / 4       \        W/ 4       V P	                  \        W4      4       V P                  V\        W2304       R# barN)r   r   setattrr7   r5   r6   r:   NAMES)r   r<   r0   r1   s   &   r   test_find_cache_attributes*TestCythonUtils.test_find_cache_attributes0   sY    h&{3
Z$$23ej-F%GHr   c                   \        4       p\        \        ^4      4      pV3^ /pV P                  VP	                  V4      ^ 4       V P                  V\        04       V P                  \        V\        4      V4       V P                  VP	                  V4      ^ 4       V P                  V\        04       V P                  \        V\        4      V4       R#    N)	r   iterranger(   r   r:   rF   getattrr7   r   r<   r@   caches   &   r   test_cached_method"TestCythonUtils.test_cached_method;   s    hU1X1 	/3eW-j159 	/3eW-j159r   c                h   \        4       p\        \        ^4      4      pV3^/pVP                  V4       \	        V4       V P                  V\        4       4       V P                  VP                  V4      ^4       V P                  V\        04       V P                  \        V\        4      V4       R# rJ   )r   rL   rM   r   r	   r:   r;   r(   rF   rN   r7   rO   s   &   r   test_clear_method_caches(TestCythonUtils.test_clear_method_cachesJ   s    hU1X1C SU+/3eW-j159r   c                    \        4       pR p\        V4      pW23p\        W\        4       4       V P	                  \        W4      4       V P                  W04       \        V4       V P                  W04       R# rC   )r   r   rE   objectr5   r6   r:   r	   )r   r<   r0   r1   namess   &    r   ,test_clear_method_caches_with_missing_method<TestCythonUtils.test_clear_method_caches_with_missing_methodX   sg    h&{3
'*23W-C W-r   c           
     \  a . o\         V3R  l4       pV! ^^^^R7      ;_uu_ 4       pSR.8X  g   Q hV P                  VRR^/34       RRR4       SRR.8X  g   Q h ! R R\        4      pSR V P                  V4      ;_uu_ 4        V! ^^^R	7      ;_uu_ 4       pSR.8X  g   Q hV P                  VRR
^/34       V! R4      h  + '       g   i     L; i  + '       g   i     M; iSRR.8X  g   Q h RRR4       M  + '       g   i     M; iSR T P                  \        4      ;_uu_ 4        T! ^^^R	7      ;_uu_ 4       pSR.8X  g   Q hT P                  TRR
^/34       \	        R4      h  + '       g   i     M; iSRR.8X  g   Q h RRR4       R#   + '       g   i     R# ; i)c               ?   ^   <"   SP                  R 4       W3x  SP                  R4       R# 5i)enterexitN)append)argskwargsstatess   *,r   gen<TestCythonUtils.test_try_finally_contextmanager.<locals>.genh   s&     MM'". MM&!s   *-)r   r]   r   Nr^   c                       ] tR t^stRtR# )DTestCythonUtils.test_try_finally_contextmanager.<locals>.MyExceptionr   N)r   r   r   r   r   r   r   r   MyExceptionrf   s   s    r   rg   :NNN)yrh   zFAIL INSIDESTOP)      rK   )rj   rk   )r
   r(   RuntimeErrorassertRaisesStopIteration)r   rc   	call_argsrg   rb   s   &   @r   test_try_finally_contextmanager/TestCythonUtils.test_try_finally_contextmanagerf   s   	#	" 
$	"
 AqA)gY&&&YS!H(=>  '6****	, 	 1I{++QQ9'***  Vc1X,>?!-00    gv.... ,+++ 1I}--QQ9'***  Vc1X,>?#F++   gv.... .---sG   !CC>)C	C	C&!C>>D	1F,E1	1F<FF+	c                   \         P                  p\         P                  p\        4       ;p\         n        \        4       ;p\         n         \	        4        V\         n        V\         n        TP                  4       pVP                  4       p^RIHp V P                  WT4       V'       d   V P                  WS4       R# R#   T\         n        T\         n        i ; irk   )__version__N)	sysstderrstdoutr   r   getvalue rt   assertIn)r   orig_stderrorig_stdoutrv   rw   versions   &     r   test_print_version"TestCythonUtils.test_print_version   s    jjjj&j(&j(	%O$CJ$CJ""-g&MM'*  %CJ$CJs   
C   Cc                   \         P                  p\         P                  p\        4       ;p;\         n        \         n         \	        4        V\         n        V\         n        TP                  4       p^RIHp V P                  WC4       V P                  VP                  V4      ^4       R#   T\         n        T\         n        i ; irs   )ru   rv   rw   r   r   rx   ry   rt   rz   r(   count)r   r{   r|   rw   r}   s   &    r   test_print_version_stdouterr,TestCythonUtils.test_print_version_stdouterr   s    jjjj+3:55cj	%O$CJ$CJ"-g&g.2 %CJ$CJs   
B, ,Cc                   . ROpV F}  w  r#V P                  \        V4      \        V4      4       \        V4      pV P                  \        V4      \        V4      4       V P                  WCRW$V\        V4      3,          4       K  	  R# ).0z.normalise_float_repr(%r) == %r != %r  (%.330f)N))r   r   )z.000000r   ).1r   )1.r   )z1.0r   )z1.000000000000000000000r   )z-00000000000000000000001.000000000000000000000r   )
12345.0025r   )1E5z100000.)z.1E-5z.000001)z1.1E-5z.000011)z12.3E-5z.000123)z.1E10z1000000000.)z1.1E10z11000000000.)z123.4E10z1234000000000.)z	123.456E0z123.456)z
123.456E-1z12.3456)z
123.456E-2z1.23456)z	123.456E1z1234.56)z	123.456E2z12345.6)z2.1E80zR210000000000000000000000000000000000000000000000000000000000000000000000000000000.)r(   floatr   )r   examples	float_strnorm_strresults   &    r   test_normalise_float_repr)TestCythonUtils.test_normalise_float_repr   s|    
0 $,IU9-uX?))4FU9-uV}=@IW_afgpaqCrr $,r   r   N)r   r   r   r   r)   r2   r=   r:   rG   rQ   rT   rY   rp   r~   r   r   r   r   r   s   @r   r"   r"      sJ     A6,B	I::./@+&3 ! !r   r"   )ru   unittestior   Cython.Utilsr   r   r   r   r   r	   r
   r   r   r9   r7   rF   r   TestCaser"   r   r   r   <module>r      sV    
     {+
K uh'' ur   