Ë
    È[;jí  ã                   ó¦   — d dl Z d dlZd dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZ dZ ee«      ZeefZ G d„ d«      Z G d„ dej$                  «      Zy)	é    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                   ó   — e Zd Zed„ «       Zy)ÚCachedc                 ó   — t        |«      S ©N)Únext)ÚselfÚxs     úeG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\Cython/Tests/TestCythonUtils.pyr   zCached.cached_next   s   € ä�A‹wˆó    N)Ú__name__Ú
__module__Ú__qualname__r   r   © r   r   r   r      s   „ Øñó ñr   r   c                   óT   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zy)ÚTestCythonUtilsc                 óÜ   — | j                  dt        d«      «       | j                  dt        d«      «       | j                  dt        d«      «       | j                  dt        d«      «       y )	NÚ
0x001D00A1z0.29a1Ú
0x001D03C4z	0.29.3rc4Ú
0x001D00F0z0.29Ú
0x040000F0z4.0)ÚassertEqualr   )r   s    r   Útest_build_hex_versionz&TestCythonUtils.test_build_hex_version   sZ   € Ø×Ñ˜Ô'8¸Ó'BÔCØ×Ñ˜Ô'8¸Ó'EÔFØ×Ñ˜Ô'8¸Ó'@ÔAØ×Ñ˜Ô'8¸Ó'?Õ@r   c                 ó®   — d}t        |«      }t        j                  |«      }| j                  |d «       | j	                  |j                  d«      |«       y )NÚfooé   )r   r   ÚmatchÚassertIsNotr"   Úgroup)r   Úmethod_nameÚ
cache_namer'   s       r   Útest_cache_method_namez&TestCythonUtils.test_cache_method_name   sI   € ØˆÜ& {Ó3ˆ
Ü#×)Ñ)¨*Ó5ˆà×Ñ˜ Ô%Ø×Ñ˜Ÿ™ Q›¨Õ5r   c                 óÈ   — t        «       }| j                  t        |t        «      «       | j	                  t        |t
        «      «       | j                  |t        «       «       y r   )r   ÚassertFalseÚhasattrÚ
CACHE_NAMEÚ
assertTrueÚMETHOD_NAMEÚset_of_names_equalÚset)r   Úobjs     r   Útest_requirements_for_Cachedz,TestCythonUtils.test_requirements_for_Cached&   sC   € Ü‹hˆà×Ñœ ¤jÓ1Ô2Ø�‰œ ¤[Ó1Ô2Ø×Ñ ¤S£UÕ+r   c                 óL   — | j                  t        t        |«      «      |«       y r   )r"   r4   r   )r   r5   Úvalues      r   r3   z"TestCythonUtils.set_of_names_equal-   s   € Ø×ÑœÔ3°CÓ8Ó9¸5ÕAr   c                 óØ   — t        «       }d}t        |«      }t        |t        i «       t        ||i «       | j	                  t        ||«      «       | j                  |t        ||fh«       y ©NÚbar)r   r   Úsetattrr0   r.   r/   r3   ÚNAMES)r   r5   r*   r+   s       r   Útest_find_cache_attributesz*TestCythonUtils.test_find_cache_attributes0   s_   € Ü‹hˆØˆÜ& {Ó3ˆ
ä�”Z Ô$Ü��Z Ô$à×Ñœ  kÓ2Ô3Ø×Ñ ¤e¨j¸+Ð-FÐ%GÕHr   c                 óª  — t        «       }t        t        d«      «      }|fdi}| j                  |j	                  |«      d«       | j                  |t        h«       | j                  t        |t        «      |«       | j                  |j	                  |«      d«       | j                  |t        h«       | j                  t        |t        «      |«       y )Né   r   )	r   ÚiterÚranger"   r   r3   r=   Úgetattrr0   ©r   r5   r8   Úcaches       r   Útest_cached_methodz"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  — t        «       }t        t        d«      «      }|fdi}|j                  |«       t	        |«       | j                  |t        «       «       | j                  |j                  |«      d«       | j                  |t        h«       | j                  t        |t        «      |«       y )Nr@   r&   )r   rA   rB   r   r	   r3   r4   r"   r=   rC   r0   rD   s       r   Útest_clear_method_cachesz(TestCythonUtils.test_clear_method_cachesJ   s‰   € Ü‹hˆÜ”U˜1“X“ˆØ�˜1�ˆà�‰˜Ôä˜CÔ Ø×Ñ ¤S£UÔ+à×Ñ˜Ÿ™¨Ó/°Ô3Ø×Ñ ¤e WÔ-Ø×Ñœ ¤jÓ1°5Õ9r   c                 óü   — t        «       }d}t        |«      }||f}t        ||t        «       «       | j	                  t        ||«      «       | j                  ||h«       t        |«       | j                  ||h«       y r:   )r   r   r<   Úobjectr.   r/   r3   r	   )r   r5   r*   r+   Únamess        r   Ú,test_clear_method_caches_with_missing_methodz<TestCythonUtils.test_clear_method_caches_with_missing_methodX   sq   € Ü‹hˆØˆÜ& {Ó3ˆ
Ø˜KÐ'ˆä��Z¤£Ô*à×Ñœ  kÓ2Ô3Ø×Ñ  e WÔ-ä˜CÔ Ø×Ñ  e WÕ-r   c                 ó°  ‡— g Št         ˆfd„«       } |dddd¬«      5 }‰dgk(  sJ ‚| j                  |dd	dif«       d d d «       ‰dd
gk(  sJ ‚ G d„ dt        «      }‰d d …= | j                  |«      5   |ddd¬«      5 }‰dgk(  sJ ‚| j                  |dddif«        |d«      ‚# 1 sw Y   ŒjxY w# 1 sw Y   nxY w‰dd
gk(  sJ ‚	 d d d «       n# 1 sw Y   nxY w‰d d …= | j                  t        «      5   |ddd¬«      5 }‰dgk(  sJ ‚| j                  |dddif«       t	        d«      ‚# 1 sw Y   nxY w‰dd
gk(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nc               ?   ó^   •K  — ‰j                  d«       | |f–— ‰j                  d«       y ­w)NÚenterÚexit)Úappend)ÚargsÚkwargsÚstatess     €r   Úgenz<TestCythonUtils.test_try_finally_contextmanager.<locals>.genh   s)   øè ø€ à�M‰M˜'Ô"Ø˜�.Ò Ø�M‰M˜&Õ!ùs   ƒ*-r&   é   r@   é   )r   rO   )r&   rV   r@   r   rP   c                   ó   — e Zd Zy)úDTestCythonUtils.test_try_finally_contextmanager.<locals>.MyExceptionN)r   r   r   r   r   r   ÚMyExceptionrY   s   s   „ Ør   rZ   )Úy)r&   rV   r[   zFAIL INSIDEÚSTOP)r
   r"   ÚRuntimeErrorÚassertRaisesÚStopIteration)r   rU   Ú	call_argsrZ   rT   s       @r   Útest_try_finally_contextmanagerz/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Á?'B2Â&B/Â2B;	Â7CÃCÃ7EÄ*D-Ä-D6	Ä2EÅEc                 óª  — t         j                  }t         j                  }t        «       x}t         _        t        «       x}t         _        	 t	        «        |t         _        |t         _        |j                  «       }|j                  «       }ddlm} | j                  ||«       |r| j                  ||«       y y # |t         _        |t         _        w xY w)NrV   ©Ú__version__)	ÚsysÚstderrÚstdoutr   r   ÚgetvalueÚ rd   ÚassertIn)r   Úorig_stderrÚorig_stdoutrf   rg   Úversions         r   Útest_print_versionz"TestCythonUtils.test_print_version†   s™   € Ü—j‘jˆÜ—j‘jˆÜ&›jÐ(ˆ””Ü&›jÐ(ˆ””ð	%ÜŒOà$ŒCŒJØ$ŒCŒJà—‘Ó"ˆØ—‘Ó"ˆå-Ø�‰�g˜vÔ&ÙØ�M‰M˜' 6Õ*ð øð %ŒCŒJØ$ŒC�Jús   Á
B: Â:Cc                 óŽ  — t         j                  }t         j                  }t        «       x}xt         _        t         _        	 t	        «        |t         _        |t         _        |j                  «       }ddlm} | j                  ||«       | j                  |j                  |«      d«       y # |t         _        |t         _        w xY w)NrV   rc   r&   )re   rf   rg   r   r   rh   ri   rd   rj   r"   Úcount)r   rk   rl   rg   rm   s        r   Útest_print_version_stdouterrz,TestCythonUtils.test_print_version_stdouterr™   s‰   € Ü—j‘jˆÜ—j‘jˆÜ+3«:Ð5ˆÐ5””œcœjð	%ÜŒOà$ŒCŒJØ$ŒCŒJà—‘Ó"ˆå-Ø�‰�g˜vÔ&Ø×Ñ˜Ÿ™ gÓ.°Õ2øð %ŒCŒJØ$ŒC�Jús   Á
B, Â,Cc                 ó  — g d¢}|D ]{  \  }}| j                  t        |«      t        |«      «       t        |«      }| j                  t        |«      t        |«      «       | j                  ||d|||t        |«      fz  «       Œ} y )N))ú.0rs   )z.000000rs   )ú.1rt   )ú1.ru   )z1.0ru   )z1.000000000000000000000ru   )z-00000000000000000000001.000000000000000000000ru   )ú
12345.0025rv   )Ú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_reprz)TestCythonUtils.test_normalise_float_repr©   s‚   € ò
ˆó0 $,ÑˆI�xØ×ÑœU 9Ó-¬u°X«Ô?ä)¨)Ó4ˆFØ×ÑœU 9Ó-¬u°V«}Ô=Ø×ÑØ˜Ø@ÀIÈvÐW_ÔafÐgpÓaqÐCrÑrõñ $,r   N)r   r   r   r#   r,   r6   r3   r>   rF   rH   rL   ra   rn   rq   r}   r   r   r   r   r      sB   „ òAò6ò,òBò	Iò:ò:ò.ò/ò@+ò&3ó !r   r   )re   ÚunittestÚior   ÚCython.Utilsr   r   r   r   r   r	   r
   r   r   r2   r0   r=   r   ÚTestCaser   r   r   r   Ú<module>r‚      sV   ðÛ 
Û Ý ÷÷ õ ð €Ù˜{Ó+€
Ø�KÐ€÷ñ ôu�h×'Ñ'õ ur   