ó
    G±‰jü  ã                   ó–   • S SK r S SKJr  S SKJrJrJrJrJrJ	r	J
r
JrJr  S SKJr  Sr\" \5      r\\4r " S S5      r " S S	\5      rg)
é    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)Ú	TimedTestÚcached_nextc                   ó$   • \ rS rSr\S 5       rSrg)ÚCachedé   c                 ó   • [        U5      $ ©N)Únext)ÚselfÚxs     ÚªC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\Cython/Tests/TestCythonUtils.pyr   ÚCached.cached_next   s   € ä�A‹wˆó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   Ú__static_attributes__r   r   r   r   r      s   † Øñó ór   r   c                   ó\   • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)ÚTestCythonUtilsé   c                 óÜ   • U R                  S[        S5      5        U R                  S[        S5      5        U R                  S[        S5      5        U R                  S[        S5      5        g )	NÚ
0x001D00A1z0.29a1Ú
0x001D03C4z	0.29.3rc4Ú
0x001D00F0z0.29Ú
0x040000F0z4.0)Ú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                 ó°   • Sn[        U5      n[        R                  " U5      nU R                  US 5        U R	                  UR                  S5      U5        g )NÚfooé   )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                 óÈ   • [        5       nU R                  [        U[        5      5        U R	                  [        U[
        5      5        U R                  U[        5       5        g 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Ø×Ñ ¤S£UÕ+r   c                 óL   • U R                  [        [        U5      5      U5        g r   )r(   r<   r   )r   r=   Úvalues      r   r;   Ú"TestCythonUtils.set_of_names_equal-   s   € Ø×ÑœÔ3°CÓ8Ó9¸5ÕAr   c                 óÒ   • [        5       nSn[        U5      n[        U[        0 5        [        X0 5        U R	                  [        X5      5        U R                  U[        X2415        g ©NÚbar)r   r   Úsetattrr8   r6   r7   r;   ÚNAMES)r   r=   r1   r2   s       r   Útest_find_cache_attributesÚ*TestCythonUtils.test_find_cache_attributes0   sY   € Ü‹hˆØˆÜ& {Ó3ˆ
ä�”Z Ô$Ü� Ô$à×Ñœ Ó2Ô3Ø×Ñ ¤e¨jÐ-FÐ%GÕHr   c                 óª  • [        5       n[        [        S5      5      nU4S0nU R                  UR	                  U5      S5        U R                  U[        15        U R                  [        U[        5      U5        U R                  UR	                  U5      S5        U R                  U[        15        U R                  [        U[        5      U5        g )Né   r   )	r   ÚiterÚranger(   r   r;   rG   Úgetattrr8   ©r   r=   rA   Úcaches       r   Útest_cached_methodÚ"TestCythonUtils.test_cached_method;   s©   € Ü‹hˆÜ”U˜1“X“ˆØ�˜1�ˆð 	×Ñ˜Ÿ™¨Ó/°Ô3Ø×Ñ ¤e WÔ-Ø×Ñœ ¤jÓ1°5Ô9ð 	×Ñ˜Ÿ™¨Ó/°Ô3Ø×Ñ ¤e WÔ-Ø×Ñœ ¤jÓ1°5Õ9r   c                 óf  • [        5       n[        [        S5      5      nU4S0nUR                  U5        [	        U5        U R                  U[        5       5        U R                  UR                  U5      S5        U R                  U[        15        U R                  [        U[        5      U5        g )NrK   r-   )r   rL   rM   r   r	   r;   r<   r(   rG   rN   r8   rO   s       r   Útest_clear_method_cachesÚ(TestCythonUtils.test_clear_method_cachesJ   s‰   € Ü‹hˆÜ”U˜1“X“ˆØ�˜1�ˆà�‰˜Ôä˜CÔ Ø×Ñ ¤S£UÔ+à×Ñ˜Ÿ™¨Ó/°Ô3Ø×Ñ ¤e WÔ-Ø×Ñœ ¤jÓ1°5Õ9r   c                 óò   • [        5       nSn[        U5      nX24n[        X[        5       5        U R	                  [        X5      5        U R                  X15        [        U5        U R                  X15        g rD   )r   r   rF   Úobjectr6   r7   r;   r	   )r   r=   r1   r2   Ú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                 óÞ  ^• / m[         U4S j5       nU" SSSSS9 nTS/:X  d   eU R                  USS	S045        S S S 5        TSS
/:X  d   e " S S[        5      nTS S 2	 U R                  U5         U" SSSS9 nTS/:X  d   eU R                  USSS045        U" S5      e! , (       d  f       Nn= f! , (       d  f       O= fTSS
/:X  d   e S S S 5        O! , (       d  f       O= fTS S 2	 U R                  [        5         U" SSSS9 nTS/:X  d   eU R                  USSS045        [	        S5      e! , (       d  f       O= fTSS
/:X  d   e S S S 5        g ! , (       d  f       g = f)Nc               ?   ó\   >#   • TR                  S5        X4v •  TR                  S5        g 7f)NÚenterÚexit)Úappend)ÚargsÚkwargsÚstatess     €r   ÚgenÚ<TestCythonUtils.test_try_finally_contextmanager.<locals>.genh   s&   øé € à�M‰M˜'Ô"Ø�.Ò Ø�M‰M˜&Õ!ùs   ƒ),r-   é   rK   é   )r   r]   )r-   re   rK   r   r^   c                   ó   • \ rS rSrSrg)ÚDTestCythonUtils.test_try_finally_contextmanager.<locals>.MyExceptionés   r   N)r   r   r   r   r   r   r   r   ÚMyExceptionrh   s   s   † Úr   rj   )Úy)r-   re   rk   zFAIL INSIDEÚSTOP)r
   r(   ÚRuntimeErrorÚassertRaisesÚStopIteration)r   rc   Ú	call_argsrj   rb   s       @r   Útest_try_finally_contextmanagerÚ/TestCythonUtils.test_try_finally_contextmanagerf   s†  ø€ ØˆÜ	#ô	"ó 
$ð	"ñ
 ��A�q˜AÒ )Ø˜g˜YÓ&Ð&Ð&Ø×Ñ˜Y¨°S¸!°HÐ(=Ô>÷ ð ˜' 6Ð*Ó*Ð*Ð*ô	œ,ô 	ð ’1ˆIØ×Ñ˜{Õ+Ù�Q˜˜Q’ 9Ø ' Ó*Ð*Ð*Ø× Ñ  ¨V°c¸1°XÐ,>Ô?Ù! -Ó0Ð0÷ Õú÷  •úð ˜g vÐ.Ó.Ð.Ñ.÷ ,×+Ö+úð ’1ˆIØ×Ñœ}Õ-Ù�Q˜˜Q’ 9Ø ' Ó*Ð*Ð*Ø× Ñ  ¨V°c¸1°XÐ,>Ô?Ü# FÓ+Ð+÷  •úð ˜g vÐ.Ó.Ð.Ñ.÷ .×-Ö-úsG   œ B$Á3	CÁ<(B5Â$
B2Â5
C	Â?CÃ
C(Ä	EÄ+D9Ä9
E	ÅEÅ
E,c                 ó°  • [         R                  n[         R                  n[        5       =n[         l        [        5       =n[         l         [	        5         U[         l        U[         l        UR                  5       nUR                  5       nSSKJn  U R                  XT5        U(       a  U R                  XS5        g g ! U[         l        U[         l        f = f)Nre   ©Ú__version__)	ÚsysÚstderrÚstdoutr   r   ÚgetvalueÚ ru   ÚassertIn)r   Úorig_stderrÚorig_stdoutrw   rx   Úversions         r   Útest_print_versionÚ"TestCythonUtils.test_print_version†   s•   € Ü—j‘jˆÜ—j‘jˆÜ&›jÐ(ˆ””Ü&›jÐ(ˆ””ð	%ÜŒOà$ŒCŒJØ$ŒCŒJà—‘Ó"ˆØ—‘Ó"ˆå-Ø�‰�gÔ&ÞØ�M‰M˜'Õ*ð øð %ŒCŒJØ$ŒC�Jús   Á
B= Â=Cc                 óŒ  • [         R                  n[         R                  n[        5       =n=[         l        [         l         [	        5         U[         l        U[         l        UR                  5       nSSKJn  U R                  XC5        U R                  UR                  U5      S5        g ! U[         l        U[         l        f = f)Nre   rt   r-   )rv   rw   rx   r   r   ry   rz   ru   r{   r(   Úcount)r   r|   r}   rx   r~   s        r   Útest_print_version_stdouterrÚ,TestCythonUtils.test_print_version_stdouterr™   s‡   € Ü—j‘jˆÜ—j‘jˆÜ+3«:Ð5ˆÐ5””œcœjð	%ÜŒOà$ŒCŒJØ$ŒCŒJà—‘Ó"ˆå-Ø�‰�gÔ&Ø×Ñ˜Ÿ™ gÓ.°Õ2øð %ŒCŒJØ$ŒC�Jús   Á
B+ Â+Cc                 ó
  • / SQnU Hy  u  p#U R                  [        U5      [        U5      5        [        U5      nU R                  [        U5      [        U5      5        U R                  XCSX$U[        U5      4-  5        M{     g )N))ú.0r†   )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.z.normalise_float_repr(%r) == %r != %r  (%.330f))r(   Úfloatr   )r   ÚexamplesÚ	float_strÚnorm_strÚresults        r   Útest_normalise_float_reprÚ)TestCythonUtils.test_normalise_float_repr©   s|   € ò
ˆó0 $,ÑˆIØ×ÑœU 9Ó-¬u°X«Ô?ä)¨)Ó4ˆFØ×ÑœU 9Ó-¬u°V«}Ô=Ø×ÑØØ@ÀIÐW_ÔafÐgpÓaqÐCrÑröò $,r   r   N)r   r   r   r   r)   r3   r>   r;   rH   rQ   rT   rY   rq   r   rƒ   r�   r   r   r   r   r!   r!      sB   † òAò6ò,òBò	Iò:ò:ò.ò/ò@+ò&3õ !r   r!   )rv   Úior   ÚCython.Utilsr   r   r   r   r   r	   r
   r   r   ÚCython.TestUtilsr   r:   r8   rG   r   r!   r   r   r   Ú<module>r•      sP   ðÛ 
Ý ÷÷ õ õ
 'à€Ù˜{Ó+€
Ø�KÐ€÷ñ ôu�iõ ur   