ó
    „ñ:it  ã                   ó@  • S SK r S SKJr  S SKrS SKJr  S SKJrJr  S SKJ	r	J
r
  S SKr S SKr S SKr\R                  " \SL S5       " S S\
5      5       r " S	 S
\R                  5      r\S:X  a  \R&                  " 5         gg! \ a    Sr N`f = f! \ a    Sr Nif = f)é    N)ÚStringIO)Útypes)ÚjitÚnjit)Úoverride_configÚTestCasez#please install the 'jinja2' packagec                   ó¶   • \ rS rSr\R
                  S 5       r\R
                  S 5       r\R
                  S 5       r\	R                  " \SL S5      S 5       rSrg)	ÚTestAnnotationé   c                 óR  • S n[        [        R                  [        R                  45      " U5      nUR                  UR                  S      nUR
                  n[        5       nUR                  U5        UR                  5       nUR                  5         U R                  SU5        g)z$
Ensures template.html is available
c                 ó6   • Un[        U 5       H  nX#-  nM	     U$ ©N©Úrange)ÚnÚaÚsÚis       Ú_/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_annotations.pyÚfooÚ3TestAnnotation.test_exercise_code_path.<locals>.foo   s!   € ØˆAÜ˜1–X�Ø‘’ñ àˆHó    r   r   N)r   r   Úint32Ú	overloadsÚ
signaturesÚtype_annotationr   Úhtml_annotateÚgetvalueÚcloseÚassertIn)Úselfr   ÚcfuncÚcresÚtaÚbufÚoutputs          r   Útest_exercise_code_pathÚ&TestAnnotation.test_exercise_code_path   s€   € ò	ô ”e—k‘k¤5§;¡;Ð/Ô0°Ó5ˆØ�‰˜u×/Ñ/°Ñ2Ñ3ˆØ×!Ñ!ˆä‹jˆØ
×Ñ˜ÔØ—‘“ˆØ�	‰	ŒØ�‰�e˜VÕ$r   c                 óŠ  ^• S mU4S jn[        [        R                  4SSS9" U5      nUR                  UR                  S      nUR
                  n[        5       nUR                  U5        UR                  5       nUR                  5         U R                  SU5        U R                  SU5        U R                  SU5        g	)
z=
Ensures that lifted loops are handled correctly in obj mode
c                 ó   • U $ r   © )Úxs    r   ÚbarÚDTestAnnotation.test_exercise_code_path_with_lifted_loop.<locals>.bar4   s   € ØˆHr   c                 óˆ   >• Sn[        U 5       H  nX-   nM	     [        U 5       H  nX-   nM	     U (       a  UT" U 5      -
  nU$ )Ng        r   )r,   Úhr   Úkr-   s       €r   r   ÚDTestAnnotation.test_exercise_code_path_with_lifted_loop.<locals>.foo7   sG   ø€ ØˆAÜ˜1–X�Ø‘E’ñ ä˜1–X�Ø‘E’ñ æØ™˜A›‘J�ØˆHr   T)ÚforceobjÚloopliftr   r-   r   Ú
LiftedLoopN)r   r   Úintpr   r   r   r   r   r   r   r    )r!   r   r"   r#   r$   r%   r&   r-   s          @r   Ú(test_exercise_code_path_with_lifted_loopÚ7TestAnnotation.test_exercise_code_path_with_lifted_loop.   sŸ   ø€ ò	õ	ô ”U—Z‘Z�M¨D¸4Ò@ÀÓEˆØ�‰˜u×/Ñ/°Ñ2Ñ3ˆà×!Ñ!ˆä‹jˆØ
×Ñ˜ÔØ—‘“ˆØ�	‰	ŒØ�‰�e˜VÔ$Ø�‰�e˜VÔ$Ø�‰�l FÕ+r   c                 óÊ  • [         R                  " SS9S 5       n[        R                  " S[        R                  5      n[
        R                  4nUR                  U5        UR                  U   n[        5       nUR                  R                  U5        UR                  5       nUR                  5         U R                  UR                  S5      S5        SnU R                  UR                  UR                  U5      5      S5        U R                  [!        [        R"                  " X&5      5      SU< SU< 3S	9  [
        R$                  4nUR                  U5        UR                  U   n[        5       nUR                  R                  U5        UR                  5       nUR                  5         U R                  UR                  S5      S
5        U R                  UR                  UR                  U5      5      S5        U R                  UR                  UR                  U5      5      S5        U R                  [!        [        R"                  " X&5      5      S
5        g)zG
Test some format and behavior of the html annotation with lifted loop
T)r3   c                 óJ   • [        5         Sn[        U 5       H  nX-  nM	     U$ )Nr   )Úobjectr   )r,   Úzr   s      r   ÚudtÚ=TestAnnotation.test_html_output_with_lifted_loop.<locals>.udtT   s&   € äŒHØˆAÜ˜1–X�Ø‘’ñ àˆHr   z<td class="lifted_tag">\s*\s*<details>\s*<summary>\s*<code>\s*[0-9]+:\s*[&nbsp;]+for i in range\(x\):  # this line is tagged\s*zFunction name: udté   z!with signature: {} -&gt; pyobjectz not found in )Úmsgé   N)Únumbar   ÚreÚcompileÚ	MULTILINEr   Úint64r   r   r   r   r   r   ÚassertEqualÚcountÚformatÚlenÚfindallÚfloat64)	r!   r=   Úre_lifted_tagÚsig_i64r#   r%   r&   ÚsigfmtÚsig_f64s	            r   Ú!test_html_output_with_lifted_loopÚ0TestAnnotation.test_html_output_with_lifted_loopO   sÞ  € ô
 
�Š˜DÑ	!ñ	ó 
"ð	ô Ÿ
š
ðJô �L‰Lóˆô —;‘;�.ˆØ�‰�GÔØ�}‰}˜WÑ%ˆô ‹jˆØ×Ñ×*Ñ*¨3Ô/Ø—‘“ˆØ�	‰	Œð 	×Ñ˜Ÿ™Ð&:Ó;¸QÔ?à4ˆØ×Ñ˜Ÿ™ f§m¡m°GÓ&<Ó=¸qÔAà×ÑœœRŸZšZ¨Ó>Ó?ÀÛ5BÂFÐKð 	ñ 	Mô —=‘=Ð"ˆØ�‰�GÔØ�}‰}˜WÑ%ˆô ‹jˆØ×Ñ×*Ñ*¨3Ô/Ø—‘“ˆØ�	‰	Œð 	×Ñ˜Ÿ™Ð&:Ó;¸QÔ?Ø×Ñ˜Ÿ™ f§m¡m°GÓ&<Ó=¸qÔAØ×Ñ˜Ÿ™ f§m¡m°GÓ&<Ó=¸qÔAà×ÑœœRŸZšZ¨Ó>Ó?ÀÕCr   Nz%please install the 'pygments' packagec                 ó(  • [         R                  S 5       nU" SS5        UR                  SS9  U R                  [        5       nUR                  SSS9  S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)	Nc                 ó   • X4$ r   r+   )r,   Úys     r   r   Ú-TestAnnotation.test_pretty_print.<locals>.foo�   s	   € à�4ˆKr   r?   rA   T)Úprettyzshould be None)rW   Úfilez$`file` must be None if `pretty=True`)rB   r   Úinspect_typesÚassertRaisesÚ
ValueErrorr    ÚstrÚ	exception)r!   r   Úraisess      r   Útest_pretty_printÚ TestAnnotation.test_pretty_printŒ   s‡   € ô 
�‰ñ	ó 
ð	ñ 	ˆAˆqŒ	à×Ñ ÐÑ&ð ×ÑœzÔ*¨fØ×Ñ TÐ0@ÐÑA÷ +à�‰Ð<Ü˜&×*Ñ*Ó+õ	-÷ +Õ*ús   ÁBÂ
Br+   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Úrun_test_in_subprocessr'   r7   rQ   ÚunittestÚskipIfÚpygmentsr_   Ú__static_attributes__r+   r   r   r
   r
      sz   † ð ×$Ñ$ñ%ó %ð%ð* ×$Ñ$ñ,ó %ð,ð@ ×$Ñ$ñ:Dó %ð:Dðx ‡_‚_�X Ð%Ð'NÓOñ-ó Pó-r   r
   c                   ó8   • \ rS rSrS rS rS rS rS rS r	Sr
g	)
ÚTestTypeAnnotationéž   c                 óp   • [        U5       H  u  p4X$;   d  M  Us  $    [        SR                  U5      5      e)Nzcan't find {!r})Ú	enumerater[   rI   )r!   ÚlinesÚpatr   Úlns        r   Ú
findpatlocÚTestTypeAnnotation.findpatloc    s6   € Ü˜uÖ%‰EˆAØ�yØ’ñ &ô Ð*×1Ñ1°#Ó6Ó7Ð7r   c                 ót   • [        5       nUR                  U5        UR                  5       R                  5       $ r   )r   rY   r   Ú
splitlines)r!   ÚfuncÚstrbufs      r   ÚgetlinesÚTestTypeAnnotation.getlines¦   s-   € Ü“ˆØ×Ñ˜6Ô"Ø�‰Ó ×+Ñ+Ó-Ð-r   c                 ó8  • [         R                  S 5       nU" SS5        U R                  U5      nU R                  US5      nU R                  US5      nU R                  US5      nU R                  US5      nU R	                  X55        U R	                  XF5        g )Nc                 ó
   • X-   $ r   r+   )ÚappleorangeÚberrycherrys     r   r   Ú+TestTypeAnnotation.test_delete.<locals>.foo¬   s   € àÑ,Ð,r   r?   rA   z&appleorange = arg(0, name=appleorange)z&berrycherry = arg(1, name=berrycherry)zdel appleorangezdel berrycherry)rB   r   rx   rr   Ú
assertLess)r!   r   ro   ÚsaÚsbÚeaÚebs          r   Útest_deleteÚTestTypeAnnotation.test_delete«   s�   € Ü	�‰ñ	-ó 
ð	-ñ 	ˆAˆqŒ	à—‘˜cÓ"ˆð �_‰_˜UÐ$LÓMˆØ�_‰_˜UÐ$LÓMˆà�_‰_˜UÐ$5Ó6ˆØ�_‰_˜UÐ$5Ó6ˆà�‰˜ÔØ�‰˜Õr   c                 ó|  • [        SU5         [        S 5       nSnU" U5      nU R                  XC5        S S S 5        U R                  W5      nU R	                  US5      nU R	                  US5      nU R	                  US5      nU R	                  US5      n	U R	                  US5      n
XgX‰U
4$ ! , (       d  f       N~= f)	NÚEXTEND_VARIABLE_LIFETIMESc                 ó
   • U nU$ r   r+   )r   Úbs     r   r   Ú/TestTypeAnnotation._lifetimes_impl.<locals>.fooÀ   s   € à�Ø�r   é
   za = arg(0, name=a)zb = azcast(value=b)zdel azdel b)r   r   rG   rx   rr   )r!   Úextendr   r,   r‰   ro   r€   r�   Úcast_retÚdelaÚdelbs              r   Ú_lifetimes_implÚ"TestTypeAnnotation._lifetimes_impl¾   s»   € ÜÐ8¸&ÕAÜñó ðð ˆAÙ�A“ˆAØ×Ñ˜QÔ"÷ Bð —‘˜cÓ"ˆà�_‰_˜UÐ$8Ó9ˆØ�_‰_˜U GÓ,ˆà—?‘? 5¨/Ó:ˆà�‰˜u gÓ.ˆØ�‰˜u gÓ.ˆà�x tÐ+Ð+÷' BÕAús   �(B-Â-
B;c                 ó²   • U R                  SS9u  pp4nU R                  X5        U R                  X%5        U R                  XC5        U R                  XS5        g )Nr   ©rŒ   ©r�   r   ÚassertGreater©r!   r€   r�   r�   rŽ   r�   s         r   Útest_delete_standard_lifetimesÚ1TestTypeAnnotation.test_delete_standard_lifetimesÔ   sP   € ð (,×';Ñ';À1Ð';Ð'EÑ$ˆ� à�‰˜Ô!Ø�‰˜Ô!à�‰˜Ô'Ø×Ñ˜4Õ*r   c                 ó²   • U R                  SS9u  pp4nU R                  X5        U R                  X%5        U R                  XC5        U R                  XS5        g )Nr?   r“   r”   r–   s         r   Útest_delete_extended_lifetimesÚ1TestTypeAnnotation.test_delete_extended_lifetimesç   sR   € ð (,×';Ñ';À1Ð';Ð'EÑ$ˆ� à�‰˜Ô!Ø�‰˜Ô!à×Ñ˜4Ô*Ø×Ñ˜4Õ*r   r+   N)ra   rb   rc   rd   rr   rx   r„   r�   r—   rš   ri   r+   r   r   rk   rk   ž   s    † ò8ò.ò
 ò&,ò,+õ&+r   rk   Ú__main__)rC   Úior   rB   Ú
numba.corer   r   r   Únumba.tests.supportr   r   rf   Újinja2ÚImportErrorrh   rg   r
   rk   ra   Úmainr+   r   r   Ú<module>r£      s³   ðÛ 	Ý ã Ý ß ß 9Û ðÛðÛð
 
‡‚�˜4�Ð!FÓGôE-�Xó E-ó HðE-ôPZ+˜×*Ñ*ô Z+ðz ˆzÓØ‡M‚M…Oð øð_ ó Ø‚Fðûð
 ó Ø‚Hðús"   ªB ¯B ÂBÂBÂBÂB