Ë
    Æ[;j™  ã                   óv   — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Zd dl
Zd dlmZ  G d„ de«      Zy)é    N)Ú
CythonTestc                   ó~   — 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d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestCyCachec                 ó@  — t        j                  | «       t        j                  dt        j
                  j                  d«      rdnd ¬«      | _        t        j                  d| j                  ¬«      | _        t        j                  d| j                  ¬«      | _	        y )Nzcycache-testÚTEST_TMP)ÚprefixÚdirÚsrcÚcache)
r   ÚsetUpÚtempfileÚmkdtempÚosÚpathÚisdirÚtemp_dirÚsrc_dirÚ	cache_dir©Úselfs    úgG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\Cython/Build/Tests/TestCyCache.pyr   zTestCyCache.setUp   sl   € Ü×Ñ˜ÔÜ ×(Ñ(Ø!Ü Ÿg™gŸm™m¨JÔ7‘
¸TôCˆŒô  ×'Ñ'¨u¸$¿-¹-ÔHˆŒÜ!×)Ñ)°¸d¿m¹mÔLˆ�ó    c                 ó|   — t        j                   t        j                  j                  | j                  |«      «      S ©N)Úglobr   r   Újoinr   )r   Ú	file_globs     r   Úcache_fileszTestCyCache.cache_files   s$   € Ü�y‰yœŸ™Ÿ™ d§n¡n°iÓ@ÓAÐAr   c                 óÐ   — t         j                  j                  «        d t         j                  j                  _        t        j                  j                  j                  |i |¤Ž y r   )ÚCythonÚUtilsÚclear_function_cachesÚBuildÚDependenciesÚ	_dep_treeÚ	cythonize©r   ÚargsÚkwargss      r   Úfresh_cythonizezTestCyCache.fresh_cythonize   sA   € Ü�‰×*Ñ*Ô,Ø.2Œ�‰×!Ñ!Ô+Ü�‰×!Ñ!×+Ñ+¨TÐ<°VÓ<r   c                 ó’   — t         j                  j                  «        t        j                  j                  j
                  |i |¤Ž y r   )r    r!   r"   ÚCompilerÚMainÚcompiler'   s      r   Úfresh_compilezTestCyCache.fresh_compile!   s/   € Ü�‰×*Ñ*Ô,Ü�‰×Ñ×$Ñ$ dÐ5¨fÓ5r   c                 óž  — d}d}t         j                  j                  | j                  d«      }|d d dz   }t	        |d«      5 }|j                  |«       d d d «        ||| j                  ¬«        ||| j                  ¬«       | j                  dt        | j                  d	«      «      «       t	        |«      5 }|j                  «       }d d d «       t        j                  |«       t	        |d«      5 }|j                  |«       d d d «        ||| j                  ¬«       t	        |«      5 }|j                  «       }d d d «       t        j                  |«       | j                  d
«       | j                  dt        | j                  d	«      «      «       t	        |d«      5 }|j                  |«       d d d «        ||| j                  ¬«       | j                  dt        | j                  d	«      «      «       t	        |«      5 }|j                  «       }	d d d «       | j                  	|dj                  t        t        j                  |	j!                  d«      |j!                  d«      «      «      d d «      ¬«       y # 1 sw Y   �Œ/xY w# 1 sw Y   �ŒÆxY w# 1 sw Y   �Œ˜xY w# 1 sw Y   �ŒmxY w# 1 sw Y   �ŒxY w# 1 sw Y   Œ¬xY w)Nz
value = 1
z
value = 2
úa.pyxéüÿÿÿú.cÚw©r   é   za.c*zC file not changed!é   Ú
é
   )Úmsg)r   r   r   r   ÚopenÚwriter   ÚassertEqualÚlenr   ÚreadÚunlinkÚassertNotEqualÚlistÚdifflibÚunified_diffÚsplit)
r   Úcompilation_methodÚcontent1Úcontent2Úa_pyxÚa_cÚfÚa_contents1Úa_contents2Ú
a_contentss
             r   Ú_test_cycache_switchz TestCyCache._test_cycache_switch&   s2  € Ø ˆØ ˆÜ—‘—‘˜TŸ\™\¨7Ó3ˆØ�C�Rˆj˜4Ñˆä�%˜Ô Ø�G‰G�HÔ÷ ñ 	˜5¨¯©Õ7Ù˜5¨¯©Õ7à×Ñ˜œC × 0Ñ 0°Ó 8Ó9Ô:Ü�#ŒY˜!ØŸ&™&›(ˆK÷ ä
�	‰	�#Œä�%˜Ô Ø�G‰G�HÔ÷ ñ 	˜5¨¯©Õ7ä�#ŒY˜!ØŸ&™&›(ˆK÷ ä
�	‰	�#Œà×Ñ˜K¨Ð6KÔLØ×Ñ˜œC × 0Ñ 0°Ó 8Ó9Ô:ä�%˜Ô Ø�G‰G�HÔ÷ ñ 	˜5¨¯©Õ7à×Ñ˜œC × 0Ñ 0°Ó 8Ó9Ô:Ü�#ŒY˜!ØŸ™›ˆJ÷ à×ÑØ˜Ø—	‘	œ$œw×3Ñ3Ø× Ñ  Ó&¨×(9Ñ(9¸$Ó(?ó Aó BØBEÀ2ðGó Hð 	õ 	I÷? Ñú÷ ‰Yú÷ Ñú÷
 ‰Yú÷ Ñú÷ ˆYúsH   ÁJÂ:JÃ4JÄ-J)Æ$J6ÈKÊJÊJÊJ&Ê)J3Ê6K ËKc                 ó:   — | j                  | j                  «       y r   )rO   r*   r   s    r   Útest_cycache_switch_cythonizez)TestCyCache.test_cycache_switch_cythonizeP   s   € Ø×!Ñ! $×"6Ñ"6Õ7r   c                 ó:   — | j                  | j                  «       y r   )rO   r/   r   s    r   Útest_cycache_switch_compilez'TestCyCache.test_cycache_switch_compileS   s   € Ø×!Ñ! $×"4Ñ"4Õ5r   c                 óä  — t         j                  j                  | j                  d«      }|d d dz   }t	        |d«      5 }|j                  d«       d d d «        ||| j                  ¬«       t         j                  j                  | j                  t        j                  | j                  «      d   «      }t        j                  |d«      5 }|j                  d	«       d d d «       t        j                  |«        ||| j                  ¬«       t	        |«      5 }|j                  «       }d d d «       | j                  d
d|d d z  «       y # 1 sw Y   ŒþxY w# 1 sw Y   Œ|xY w# 1 sw Y   Œ;xY w)Nr1   r2   r3   r4   Úpassr5   r   Úwbs
   fake stuffz
fake stuffzUnexpected contents: %s...éd   )r   r   r   r   r;   r<   r   ÚlistdirÚgzipÚGzipFiler@   r?   r=   )r   rF   rI   rJ   rK   Úa_cacheÚgzipfilerN   s           r   Ú_test_cycache_uses_cachez$TestCyCache._test_cycache_uses_cacheV   s  € Ü—‘—‘˜TŸ\™\¨7Ó3ˆØ�C�Rˆj˜4ÑˆÜ�%˜Ô Ø�G‰G�FŒO÷ ñ 	˜5¨¯©Õ7ä—'‘'—,‘,˜tŸ~™~¬r¯z©z¸$¿.¹.Ó/IÈ!Ñ/LÓMˆÜ�]‰]˜7 DÔ)¨XØ�N‰N˜=Ô)÷ *ä
�	‰	�#Œá˜5¨¯©Õ7ä�#ŒY˜!ØŸ™›ˆJ÷ à×Ñ˜ \Ø5¸
À4ÀCÐ8HÑHõ	J÷ Ðú÷ *Ð)ú÷ ˆYús#   ¿EÃEÄE&ÅEÅE#Å&E/c                 ó:   — | j                  | j                  «       y r   )r]   r*   r   s    r   Ú!test_cycache_uses_cache_cythonizez-TestCyCache.test_cycache_uses_cache_cythonizek   ó   € Ø×%Ñ% d×&:Ñ&:Õ;r   c                 ó:   — | j                  | j                  «       y r   )r]   r/   r   s    r   Útest_cycache_uses_cache_compilez+TestCyCache.test_cycache_uses_cache_compilen   ó   € Ø×%Ñ% d×&8Ñ&8Õ9r   c                 ó@  — t         j                  j                  | j                  d«      }|d d dz   }|d d dz   }t	        |d«      5 }|j                  d«       d d d «        ||| j                  d¬«       | j                  t         j                  j                  |«      |«       t        j                  |«       t        j                  |«        ||| j                  d¬«       | j                  t         j                  j                  |«      |«       y # 1 sw Y   Œ¼xY w)	Nr1   r2   r3   z.htmlr4   rU   Údefault)r   Úannotate)
r   r   r   r   r;   r<   r   Ú
assertTrueÚexistsr@   )r   rF   rI   rJ   Úa_htmlrK   s         r   Ú_test_cycache_annotationz$TestCyCache._test_cycache_annotationq   sÎ   € Ü—‘—‘˜TŸ\™\¨7Ó3ˆØ�C�Rˆj˜4ÑˆØ�s˜�˜gÑ%ˆÜ�%˜Ô Ø�G‰G�FŒO÷ ñ 	˜5¨¯©ÀÕKØ�‰œŸ™Ÿ™ vÓ.°Ô7Ü
�	‰	�&ÔÜ
�	‰	�#ŒÙ˜5¨¯©ÀÕKØ�‰œŸ™Ÿ™ vÓ.°Õ7÷ Ðús   ÁDÄDc                 ó:   — | j                  | j                  «       y r   )rj   r*   r   s    r   Ú!test_cycache_annotation_cythonizez-TestCyCache.test_cycache_annotation_cythonize   r`   r   c                 ó:   — | j                  | j                  «       y r   )rj   r/   r   s    r   Útest_cycache_annotation_compilez+TestCyCache.test_cycache_annotation_compile‚   rc   r   c                 ó¦  — t         j                  j                  | j                  d«      }|d d dz   }|d d dz   }|d d dz   }t	        |d«      5 }|j                  d«       d d d «        ||| j                  ¬«       |||g}|D ]F  }| j                  t         j                  j                  |«      |«       t        j                  |«       ŒH  ||| j                  ¬«       |D ]`  }| j                  t         j                  j                  |«      |«       | j                  t         j                  j                  |«      |«       Œb y # 1 sw Y   ŒçxY w)	Nr1   r2   r3   z.hz_api.hr4   z)cdef public api int foo(int x): return x
r5   )r   r   r   r   r;   r<   r   rg   rh   r@   Úisfile)	r   rF   rI   rJ   Úa_hÚa_api_hrK   ÚexpectedÚoutputs	            r   Ú_test_multi_file_outputz#TestCyCache._test_multi_file_output…   s  € Ü—‘—‘˜TŸ\™\¨7Ó3ˆØ�C�Rˆj˜4ÑˆØ�C�Rˆj˜4ÑˆØ˜˜�*˜xÑ'ˆÜ�%˜Ô Ø�G‰GÐ@ÔA÷ ñ 	˜5¨¯©Õ7à˜˜gÐ&ˆÛˆFØ�O‰OœBŸG™GŸN™N¨6Ó2°FÔ;Ü�I‰I�fÕð ñ 	˜5¨¯©Õ7ãˆFØ�O‰OœBŸG™GŸN™N¨6Ó2°FÔ;Ø�O‰OœBŸG™GŸN™N¨6Ó2°FÕ;ñ ÷ Ðús   ÁEÅEc                 ó:   — | j                  | j                  «       y r   )ru   r*   r   s    r   Ú test_multi_file_output_cythonizez,TestCyCache.test_multi_file_output_cythonizeš   s   € Ø×$Ñ$ T×%9Ñ%9Õ:r   c                 ó:   — | j                  | j                  «       y r   )ru   r/   r   s    r   Útest_multi_file_output_compilez*TestCyCache.test_multi_file_output_compile�   s   € Ø×$Ñ$ T×%7Ñ%7Õ8r   c                 óÊ  — t         j                  j                  | j                  d«      }|d t	        d«        dz   }|d t	        d«        dz   }t        |d«      5 }|j                  d«       d d d «        ||| j                  d¬«       | j                  d	t	        | j                  d
«      «      «       t        j                  |«        ||| j                  d¬«       | j                  dt	        | j                  d
«      «      «       	 t        j                  |«        ||| j                  dd¬«       | j                  dt	        | j                  d
«      «      «       t        j                  |«        ||| j                  dd¬«       | j                  dt	        | j                  d
«      «      «       y # 1 sw Y   �ŒIxY w# t        $ r t        j                  |«       Y ŒÃw xY w)Nzoptions.pyxz.pyxr3   z.cppr4   rU   F)r   Úcplusr6   z
options.c*Tr7   )r   r{   Úshow_version)r   r   r   r   r>   r;   r<   r   r=   r   r@   ÚFileNotFoundError)r   rF   Úhash_pyxÚhash_cÚhash_cpprK   s         r   Ú_test_options_invalidationz&TestCyCache._test_options_invalidation    sz  € Ü—7‘7—<‘< §¡¨mÓ<ˆØ˜-œC ›K˜<Ð(¨4Ñ/ˆØ˜Mœc &›k˜\Ð*¨VÑ3ˆä�(˜CÔ  AØ�G‰G�FŒO÷ !á˜8¨4¯>©>ÀÕGØ×Ñ˜œC × 0Ñ 0°Ó >Ó?Ô@ä
�	‰	�&Ôá˜8¨4¯>©>ÀÕFà×Ñ˜œC × 0Ñ 0°Ó >Ó?Ô@ð	 Ü�I‰I�fÔñ
 	˜8¨4¯>©>ÀÐUZÕ[à×Ñ˜œC × 0Ñ 0°Ó >Ó?Ô@ä
�	‰	�&Ôá˜8¨4¯>©>ÀÐUYÕZà×Ñ˜œC × 0Ñ 0°Ó >Ó?Õ@÷3 !Ñ ûô !ò 	 ä�I‰I�hÖð	 ús   ÁF4Ä	G Æ4F>ÇG"Ç!G"c                 ó:   — | j                  | j                  «       y r   )r�   r*   r   s    r   Ú#test_options_invalidation_cythonizez/TestCyCache.test_options_invalidation_cythonize¿   s   € Ø×'Ñ'¨×(<Ñ(<Õ=r   c                 ó:   — | j                  | j                  «       y r   )r�   r/   r   s    r   Ú!test_options_invalidation_compilez-TestCyCache.test_options_invalidation_compileÂ   s   € Ø×'Ñ'¨×(:Ñ(:Õ;r   N)Ú__name__Ú
__module__Ú__qualname__r   r   r*   r/   rO   rQ   rS   r]   r_   rb   rj   rl   rn   ru   rw   ry   r�   rƒ   r…   © r   r   r   r      sg   „ òMòBò=ò
6ò
(IòT8ò6òJò*<ò:ò8ò<ò:ò<ò*;ò9òAò>>ó<r   r   )rC   r   rY   r   Úsysr   ÚunittestÚCython.Build.Dependenciesr    ÚCython.Compiler.MainÚCython.UtilsÚCython.TestUtilsr   r   r‰   r   r   Ú<module>r�      s4   ðÛ Û Û Û 	Û 
Û Û ã  Û Û Ý 'ôt<�*õ t<r   