ó
    „ñ:iyC  ã                   óf  • 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Jr  S SKr\" 5       rS\l        S\l        \R#                  5       rS\l        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 S\\
5      r  " S S\
5      r! " S S\\
5      r"\#S:X  a  \RH                  " 5         gg)é    )ÚStringION)Útypes)Úcompile_extraÚFlags)ÚTestCaseÚtagÚMemoryLeakMixinTc                 óœ   • SSK Jn  UR                  SS 5        UR                  S0 5        [        UR                  UR
                  U U40 UD6$ )Nr   ©Ú
cpu_targetÚreturn_typeÚlocals)Únumba.core.registryr   Ú
setdefaultr   Útyping_contextÚtarget_context)ÚpyfuncÚargtypesÚkwargsr   s       Ú_/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_looplifting.pyÚcompile_isolatedr      sT   € Ý.à
×Ñ�m TÔ*Ø
×Ñ�h Ô#ÜØ×!Ñ!Ø×!Ñ!ØØñ	ð
 ñð ó    c                 ór   • [         R                  " S5      n[        UR                  5       H  nXU'   M	     U$ )Né   )ÚnpÚemptyÚrangeÚsize©ÚxÚaÚis      r   Úlift1r#       s/   € ä
�Š�‹€AÜ�1—6‘6Ž]ˆàˆ!‹ñ ð €Hr   c                 ó¸   • [         R                  " S5      n[        UR                  S   5       H'  n[        UR                  S   5       H  nXX#4'   M
     M)     U$ )N)r   é   r   é   )r   r   r   Úshape)r    r!   r"   Újs       r   Úlift2r)   )   sN   € ä
�Š�Ó€AÜ�1—7‘7˜1‘:ÖˆÜ�q—w‘w˜q‘zÖ"ˆAàˆaˆd‹Gó #ñ ð €Hr   c                 ó¶   • [        5       n[        R                  " S[        R                  S9nSn[	        UR
                  S   5       H  nX2U   U -  -  nM     U$ ©Né   ©Údtyper   ©Úobjectr   ÚarangeÚint64r   r'   )r    Ú_r!   Úcr"   s        r   Úlift3r5   3   sM   € ä‹€AÜ
�	Š	�!œ2Ÿ8™8Ñ$€AØ	€AÜ�1—7‘7˜1‘:ÖˆØ	ˆq‰T�A‰X‰Šñ à€Hr   c                 óÆ   • [        5       n[        R                  " S[        R                  S9nSnSn[	        UR
                  S   5       H  nX2U   U -  -  nXC-  nM     X4-   $ r+   r/   )r    r3   r!   r4   Údr"   s         r   Úlift4r8   <   s]   € ä‹€AÜ
�	Š	�!œ2Ÿ8™8Ñ$€AØ	€AØ	€AÜ�1—7‘7˜1‘:ÖˆØ	ˆq‰T�A‰X‰ˆØ	‰Šñ ð ‰5€Lr   c                 ó–   • [        5       n[        R                  " S5      n[        UR                  S   5       H  nUS:”  d  M    U$    U$ )Nr%   r   é   ©r0   r   r1   r   r'   ©r    r3   r!   r"   s       r   Úlift5r=   G   sC   € Ü‹€AÜ
�	Š	�!‹€AÜ�1—7‘7˜1‘:Öˆàˆq�5ØØ€Hñ	 ð €Hr   c              #   ó°   #   • [         R                  " S5      nSv •  [        UR                  5       H  nXU'   M	     [         R                  " U5      v •  g 7f)Nr   r   )r   r   r   r   Úsumr   s      r   Ú	lift_gen1r@   P   s?   é € ä
�Š�‹€AØ
‚GÜ�1—6‘6Ž]ˆàˆ!‹ñ ô �&Š&�‹)ƒOùs   ‚AAc                  óz   • [         R                  " S5        [        S5       H  n [        S5       H  n    g   M     g)Nr&   é
   r:   )r   r   r   )r"   r(   s     r   Úlift_issue2561rC   Y   s1   € Ü‡H‚HˆQ„KÜ�2ŽYˆÜ�r–ˆAÚó ñ ð r   c                 ót   • [         R                  " S5      n[        UR                  S   5       H  nUs  $    U$ ©Nr%   r   )r   r1   r   r'   r   s      r   Úreject1rF   `   s2   € Ü
�	Š	�!‹€AÜ�1—7‘7˜1‘:ÖˆàŠñ ð €Hr   c              #   ó–   #   • [        5       n[        R                  " S5      n[        UR                  S   5       H	  nX#   v •  M     g 7frE   r;   r<   s       r   Úreject_gen1rH   h   s7   é € Ü‹€AÜ
�	Š	�!‹€AÜ�1—7‘7˜1‘:Öˆà‰dŒ
ò ùs   ‚AA	c              #   óÈ   #   • [        5       n[        R                  " S5      n[        UR                  5       H%  nX#   U -   n[        U5       H  nUS-  nM
     Uv •  M'     g 7f)Nr   r:   )r0   r   r1   r   r   )r    r3   r!   r"   Úresr(   s         r   Úreject_gen2rK   o   sV   é € Ü‹€AÜ
�	Š	�!‹€AÜ�1—6‘6Ž]ˆà‰d�Q‰hˆÜ�q–ˆAð ˜‘(ŠCñ ð Œ	ò ùs   ‚A A"c                 óÔ   • [         R                  " S[         R                  S9n[        UR                  5       H+  n[        5       n[         R                  " US-   5      U   X'   M-     U$ )Nr   r-   r&   )r   r   Úint32r   r   r0   r1   )r    r!   r"   r3   s       r   Úreject_npm1rN   {   sO   € Ü
�Š�œ"Ÿ(™(Ñ#€AÜ�1—6‘6Ž]ˆä‹HˆÜ�yŠy˜˜Q™Ó Ñ"ˆ‹ñ ð
 €Hr   c                   ót   • \ 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S rS rS rSrg)ÚTestLoopLiftingé…   c           
      ó¨   • SSK Jn  [        UR                  UR                  XS [
        0 S9nU R                  [        UR                  5      S5        U$ )Nr   r   )r   Úflagsr   r&   )	r   r   r   r   r   Úlooplift_flagsÚassertEqualÚlenÚlifted)Úselfr   r   r   Úcress        r   Útry_liftÚTestLoopLifting.try_lift‡   sK   € Ý2äØ×%Ñ%Ø×%Ñ%ØØ¤N¸2ñ	
ˆð 	×Ñœ˜TŸ[™[Ó)¨1Ô-Øˆr   c                 ó¤   • UR                   S   nUR                  R                  5       u  nU R                  UR                  R
                  5        g ©Nr   )rW   Ú	overloadsÚvaluesÚ
assertTrueÚfndescÚnative)rX   rY   ÚjitloopÚloopcress       r   Úassert_lifted_nativeÚ$TestLoopLifting.assert_lifted_native”   s;   € à—+‘+˜a‘.ˆØ×&Ñ&×-Ñ-Ó/‰
ˆØ�‰˜Ÿ™×.Ñ.Õ/r   c                 ó’   • U R                  X5      nU" U6 nUR                  " U6 nU R                  U5        U R                  XV5        g)z8
Check that pyfunc can loop-lift even in nopython mode.
N)rZ   Úentry_pointre   ÚassertPreciseEqual©rX   r   r   ÚargsrY   ÚexpectedÚgots          r   Úcheck_lift_okÚTestLoopLifting.check_lift_okš   sG   € ð �}‰}˜VÓ.ˆÙ˜4�=ˆØ×Ò Ð%ˆØ×!Ñ! $Ô'à×Ñ Õ.r   c                 ó¶   • U R                  X5      n[        U" U6 5      n[        UR                  " U6 5      nU R                  U5        U R	                  XV5        g)zO
Check that pyfunc (a generator function) can loop-lift even in
nopython mode.
N)rZ   Úlistrh   re   ri   rj   s          r   Úcheck_lift_generator_okÚ'TestLoopLifting.check_lift_generator_ok¥   sQ   € ð
 �}‰}˜VÓ.ˆÜ™ ˜Ó&ˆÜ�4×#Ò# TÐ*Ó+ˆØ×!Ñ! $Ô'à×Ñ Õ.r   c                 ó    • [        X[        S9nU R                  UR                  5        U" U6 nUR                  " U6 nU R                  XV5        g)z$
Check that pyfunc can't loop-lift.
©rS   N)r   rT   ÚassertFalserW   rh   ri   rj   s          r   Úcheck_no_liftÚTestLoopLifting.check_no_lift±   sL   € ô   Ü&4ñ6ˆà×Ñ˜Ÿ™Ô%Ù˜4�=ˆØ×Ò Ð%ˆà×Ñ Õ.r   c                 óÄ   • [        X[        S9nU R                  UR                  5        [	        U" U6 5      n[	        UR
                  " U6 5      nU R                  XV5        g)z;
Check that pyfunc (a generator function) can't loop-lift.
ru   N)r   rT   rv   rW   rq   rh   ri   rj   s          r   Úcheck_no_lift_generatorÚ'TestLoopLifting.check_no_lift_generator½   sV   € ô   Ü&4ñ6ˆà×Ñ˜Ÿ™Ô%Ü™ ˜Ó&ˆÜ�4×#Ò# TÐ*Ó+ˆØ×Ñ Õ.r   c                 óP   • U R                  [        [        R                  4S5        g ©N)é{   )rn   r#   r   Úintp©rX   s    r   Ú
test_lift1ÚTestLoopLifting.test_lift1È   ó   € Ø×Ñœ5¤5§:¡: -°Õ8r   c                 óP   • U R                  [        [        R                  4S5        g r}   )rn   r)   r   r   r€   s    r   Ú
test_lift2ÚTestLoopLifting.test_lift2Ë   rƒ   r   c                 óP   • U R                  [        [        R                  4S5        g r}   )rn   r5   r   r   r€   s    r   Ú
test_lift3ÚTestLoopLifting.test_lift3Î   rƒ   r   c                 óP   • U R                  [        [        R                  4S5        g r}   )rn   r8   r   r   r€   s    r   Ú
test_lift4ÚTestLoopLifting.test_lift4Ñ   rƒ   r   c                 óP   • U R                  [        [        R                  4S5        g r}   )rn   r=   r   r   r€   s    r   Ú
test_lift5ÚTestLoopLifting.test_lift5Ô   rƒ   r   c                 ó2   • U R                  [        SS5        g )N© )rn   rC   r€   s    r   Útest_lift_issue2561Ú#TestLoopLifting.test_lift_issue2561×   s   € Ø×Ñœ>¨2¨rÕ2r   c                 óP   • U R                  [        [        R                  4S5        g r}   )rr   r@   r   r   r€   s    r   Útest_lift_gen1ÚTestLoopLifting.test_lift_gen1Ú   s   € Ø×$Ñ$¤Y´·±°¸vÕFr   c                 óP   • U R                  [        [        R                  4S5        g r}   )rw   rF   r   r   r€   s    r   Útest_reject1ÚTestLoopLifting.test_reject1Ý   s   € Ø×Ñœ7¤U§Z¡Z M°6Õ:r   c                 óP   • U R                  [        [        R                  4S5        g r}   )rz   rH   r   r   r€   s    r   Útest_reject_gen1Ú TestLoopLifting.test_reject_gen1à   ó   € Ø×$Ñ$¤[´5·:±:°-ÀÕHr   c                 óP   • U R                  [        [        R                  4S5        g r}   )rz   rK   r   r   r€   s    r   Útest_reject_gen2Ú TestLoopLifting.test_reject_gen2ã   r�   r   r‘   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rZ   re   rn   rr   rw   rz   r�   r…   rˆ   r‹   rŽ   r’   r•   r˜   r›   rŸ   Ú__static_attributes__r‘   r   r   rP   rP   …   sU   † òò0ò	/ò
/ò
/ò	/ò9ò9ò9ò9ò9ò3òGò;òIõIr   rP   c                   ó    • \ rS rSrS rS rSrg)ÚTestLoopLiftingAnnotateéç   c                 ó  ^
• SSK Jn  S m
U
4S jnU" SS9" U5      n[        R                  " S5      nUR	                  5       nU" U5      n[        R
                  R                  XeS-   5        [        5       nUR                  US	9  UR                  5       nUR                  5         U R                  S
U5        UR                  R                  S-   n	U R                  SR                  U	S9U5        U R                  SU5        g)z?
Verify that annotation works as expected with one lifted loop
r   ©Újitc                  ó   • g ©Nr‘   r‘   r   r   ÚbarÚ4TestLoopLiftingAnnotate.test_annotate_1.<locals>.barï   ó   € Ør   c                 óf   >• T" 5         [        U R                  5       H  nX==   S-  ss'   M     U $ )Nr&   ©r   r   )r    r"   r®   s     €r   ÚfooÚ4TestLoopLiftingAnnotate.test_annotate_1.<locals>.fooò   s,   ø€ ÙŒEÜ˜1Ÿ6™6–]�Ø“˜‘	•ñ #ð ˆHr   T©ÚforceobjrB   r&   ©Úfileú"The function contains lifted loopsr:   úLoop at line {line}©ÚlinezHas 1 overloadsN©Únumbar«   r   r1   ÚcopyÚtestingÚassert_equalr   Úinspect_typesÚgetvalueÚcloseÚassertInÚ__code__Úco_firstlinenoÚformat)rX   r«   r³   Úcfoor    ÚxcopyÚrÚbufÚ
annotationr¼   r®   s             @r   Útest_annotate_1Ú'TestLoopLiftingAnnotate.test_annotate_1è   sÕ   ø€ õ 	ò	õ	ñ ˜DÒ! #Ó&ˆä�IŠI�b‹MˆØ—‘“ˆÙ�‹GˆÜ
�
‰
×Ñ ¨1¡9Ô-ä‹jˆØ×Ñ ÐÑ$Ø—\‘\“^ˆ
Ø�	‰	Œà�‰Ð:¸JÔGØ�|‰|×*Ñ*¨QÑ.ˆØ�‰Ð+×2Ñ2¸Ð2Ð=¸zÔJØ�‰Ð'¨Õ4r   c                 óX  ^• SSK Jn  S mU4S jnU" SS9" U5      n[        R                  " S5      nUR	                  5       nU" U5      n[        R
                  R                  XeS-   S	-  5        [        5       nUR                  US
9  UR                  5       nUR                  5         U R                  SU5        UR                  R                  S-   n	UR                  R                  S-   n
U R                  SR                  U	S9U5        U R                  SR                  U
S9U5        g)z@
Verify that annotation works as expected with two lifted loops
r   rª   c                  ó   • g r­   r‘   r‘   r   r   r®   Ú4TestLoopLiftingAnnotate.test_annotate_2.<locals>.bar  r°   r   c                 ó¶   >• T" 5         [        U R                  5       H  nX==   S-  ss'   M     [        U R                  5       H  nX==   S-  ss'   M     U $ )Nr&   r:   r²   )r    r"   r(   r®   s      €r   r³   Ú4TestLoopLiftingAnnotate.test_annotate_2.<locals>.foo  sI   ø€ ÙŒEä˜1Ÿ6™6–]�Ø“˜‘	•ñ #ô ˜1Ÿ6™6–]�Ø“˜‘	•ñ #àˆHr   Trµ   rB   r&   r:   r·   r¹   r   é   rº   r»   Nr½   )rX   r«   r³   rÉ   r    rÊ   rË   rÌ   rÍ   Úline1Úline2r®   s              @r   Útest_annotate_2Ú'TestLoopLiftingAnnotate.test_annotate_2
  sû   ø€ õ 	ò	õ	ñ ˜DÒ! #Ó&ˆä�IŠI�b‹MˆØ—‘“ˆÙ�‹GˆÜ
�
‰
×Ñ ¨A¡I°¡?Ô3ä‹jˆØ×Ñ ÐÑ$Ø—\‘\“^ˆ
Ø�	‰	Œà�‰Ð:¸JÔGØ—‘×+Ñ+¨aÑ/ˆØ—‘×+Ñ+¨aÑ/ˆØ�‰Ð+×2Ñ2¸Ð2Ð>À
ÔKØ�‰Ð+×2Ñ2¸Ð2Ð>À
ÕKr   r‘   N)r¡   r¢   r£   r¤   rÎ   rØ   r¥   r‘   r   r   r§   r§   ç   s   † ò 5õD$Lr   r§   c                   óh   • \ 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S rSrg)ÚTestLoopLiftingInActioni1  c                 ó†   • UR                   UR                  S      R                  nU R                  [	        U5      U5        g r]   )r^   Ú
signaturesrW   rU   rV   )rX   ÚjittedÚ	loopcountrW   s       r   Úassert_has_liftedÚ)TestLoopLiftingInAction.assert_has_lifted2  s7   € Ø×!Ñ! &×"3Ñ"3°AÑ"6Ñ7×>Ñ>ˆØ×Ñœ˜V› iÕ0r   c                 ó  • SSK JnJnJnJn  U" U" X4S S  5      SS9S 5       nS HW  n[
        R                  " SSS	9n[
        R                  " SSS	9nU" Xg5        UR                  Xh5        U R                  Xx5        MY     g )
Nr   )r«   ÚvoidrM   ÚdoubleTrµ   c                 ó²   • U S:X  a)  [        UR                  S   5       H  nX   S-  X'   M     g [        UR                  S   5       H  nX   S-   X'   M     g )Nr   g       @ç      ð?)r   r'   )Úur!   r"   s      r   Úforloop_with_ifÚ?TestLoopLiftingInAction.test_issue_734.<locals>.forloop_with_if9  sS   € à�A‹vÜ˜qŸw™w q™zÖ*�AØ™4 #™:�A“Dò +ô ˜qŸw™w q™zÖ*�AØ™4 #™:�A“Dò +r   )r   r&   rB   rM   r-   )	r¾   r«   rã   rM   rä   r   r1   Úpy_funcri   )	rX   r«   rã   rM   rä   rè   rç   Únb_aÚnp_as	            r   Útest_issue_734Ú&TestLoopLiftingInAction.test_issue_7346  sz   € ß2Ó2á	‰T�%¡˜Ó#¨dÑ	3ñ	&ó 
4ð	&ó ˆAÜ—9’9˜R wÑ/ˆDÜ—9’9˜R wÑ/ˆDÙ˜AÔ$Ø×#Ñ# AÔ,Ø×#Ñ# DÖ/ò r   c                 óÄ   • SSK Jn  U" SSS9S 5       n[        R                  " / SQ5      n[        R                  R                  UR                  U5      U" U5      5        g )Nr   rª   zf8[:](f8[:])Trµ   c                 óî   • [         R                  " [        U 5      5      nSn[        [        U 5      5       H  nUS-  nX   X'   X   S:¼  d  M    O   [        US-   [        U 5      5       H  nSX'   M	     U$ )Nr   r&   rB   )r   ÚzerosrV   r   )r    rJ   ÚindÚiis       r   ÚtestÚ4TestLoopLiftingInAction.test_issue_812.<locals>.testL  sp   € ä—(’(œ3˜q›6Ó"ˆCØˆCÜœC ›F–m�Ø�q‘�Ø™6�‘Ø‘6˜R•<Ùñ	 $ô ˜C !™G¤S¨£VÖ,�Ø�“ñ -àˆJr   )
ræ   r%   r:   éýÿÿÿr,   r:   rB   r,   r:   rÕ   )r¾   r«   r   ÚarrayrÀ   rÁ   rê   )rX   r«   rô   r    s       r   Útest_issue_812Ú&TestLoopLiftingInAction.test_issue_812I  sO   € Ýá	ˆ^ dÑ	+ñ	ó 
,ð	ô �HŠHÒ6Ó7ˆÜ
�
‰
×Ñ §¡¨Q£±°a³Õ9r   c                 óÂ  • SSK Jn  S n[        R                  " S5      n[	        5       nU" SS9" U5      nU" X45      nU" X45      nU R                  US   US   5        U R                  US   US   5        UR                  UR                  S      R                  S   nUR                  R                  5       u  n	U R                  U	R                  R                  5        g )Nr   rª   c                 óF   • SnU  H  nX#-  nM	     UR                  5       nX$4$ r]   )Ú__hash__)r!   ÚbÚsÚeÚhs        r   Úlift_issue2368Ú?TestLoopLiftingInAction.test_issue_2368.<locals>.lift_issue2368b  s*   € ØˆAÛ�Ø‘’ñ à—
‘
“ˆAØ�4ˆKr   rB   Trµ   r&   )r¾   r«   r   Úonesr0   rU   r^   rÝ   rW   r_   r`   ra   rb   )
rX   r«   r  r!   rý   rÞ   rl   rm   rc   rd   s
             r   Útest_issue_2368Ú'TestLoopLiftingInAction.test_issue_2368_  sÄ   € Ýò	ô �GŠG�B‹KˆÜ‹HˆÙ˜dÒ# NÓ3ˆá! !Ó'ˆÙ�Q‹lˆà×Ñ˜ !™ c¨!¡fÔ-Ø×Ñ˜ !™ c¨!¡fÔ-à×"Ñ" 6×#4Ñ#4°QÑ#7Ñ8×?Ñ?ÀÑBˆØ×&Ñ&×-Ñ-Ó/‰
ˆà�‰˜Ÿ™×.Ñ.Õ/r   c                 ó  • SSK Jn  U" SS9S 5       nU R                  UR                  S5      U" S5      5        U R	                  USS9  U R                  UR                  S5      U" S5      5        U R	                  USS9  g )	Nr   rª   Trµ   c                 ó2   • Sn[        U 5       H  nUnM     U$ r]   ©r   ©ÚnrJ   r"   s      r   rô   Ú?TestLoopLiftingInAction.test_no_iteration_w_redef.<locals>.test}  s   € àˆCÜ˜1–X�Ø’ñ àˆJr   éÿÿÿÿr&   ©rß   ©r¾   r«   rU   rê   rà   ©rX   r«   rô   s      r   Útest_no_iteration_w_redefÚ1TestLoopLiftingInAction.test_no_iteration_w_redefx  s   € õ 	á	�dÑ	ñ	ó 
ð	ð 	×Ñ˜Ÿ™ bÓ)©4°«8Ô4Ø×Ñ˜t¨qÐÑ1à×Ñ˜Ÿ™ a›©$¨q«'Ô2Ø×Ñ˜t¨qÐÒ1r   c                 ó  • SSK Jn  U" SS9S 5       nU R                  UR                  S5      U" S5      5        U R	                  USS9  U R                  UR                  S5      U" S5      5        U R	                  USS9  g )	Nr   rª   Trµ   c                 ó6   • Sn[        U 5       H  nX-  nM	     U$ r]   r  r	  s      r   rô   Ú7TestLoopLiftingInAction.test_no_iteration.<locals>.testŽ  s!   € àˆCÜ˜1–X�Ø‘’ñ àˆJr   r  r&   r  r  r  s      r   Útest_no_iterationÚ)TestLoopLiftingInAction.test_no_iteration‹  s}   € Ýá	�dÑ	ñ	ó 
ð	ð 	×Ñ˜Ÿ™ bÓ)©4°«8Ô4Ø×Ñ˜t¨qÐÑ1à×Ñ˜Ÿ™ a›©$¨q«'Ô2Ø×Ñ˜t¨qÐÒ1r   c                 ó–   • SSK Jn  U" SS9S 5       nU R                  UR                  S5      U" S5      5        U R	                  USS9  g )Nr   rª   Trµ   c                 ó.   • [        U 5       H  nUnM     W$ r­   r  )r
  r"   rJ   s      r   rô   Ú>TestLoopLiftingInAction.test_define_in_loop_body.<locals>.test   s   € ä˜1–X�Ø’ñ àˆJr   r&   r  r  r  s      r   Útest_define_in_loop_bodyÚ0TestLoopLiftingInAction.test_define_in_loop_bodyœ  sM   € åá	�dÑ	ñ	ó 
ð	ð 	×Ñ˜Ÿ™ a›©$¨q«'Ô2Ø×Ñ˜t¨qÐÒ1r   c                 ó¢   • SSK Jn  U" SS9S 5       n[        R                  " S5      nU R	                  UR                  U5      U" U5      5        g)zÄTest a problem caused by invalid discovery of loop argument
when a variable is used afterwards but not before.

Before the fix, this will result in::

numba.ir.NotDefinedError: 'i' is not defined
r   rª   Trµ   c                 óÀ   • [        U 5      [        R                  :X  a:  U R                  S:X  a$  SnSn[	        U R
                  S   5       H  nM     g [        eSnSu  p2U$ )Nr&   ç        r   )r   r   )Útyper   ÚndarrayÚndimr   r'   Ú	Exception)ÚargÚresultr(   r"   s       r   rô   Ú;TestLoopLiftingInAction.test_invalid_argument.<locals>.test´  sY   € ä�C‹yœBŸJ™JÓ&Ø—8‘8˜q“=Ø �FØ�AÜ" 3§9¡9¨Q¡<Ö0˜Ùò 1ô $�Oà�Ø‘�Ø�r   rB   N)r¾   r«   r   r1   rU   rê   )rX   r«   rô   r#  s       r   Útest_invalid_argumentÚ-TestLoopLiftingInAction.test_invalid_argumentª  sJ   € õ 	á	�dÑ	ñ	ó 
ð	ô �iŠi˜‹mˆØ×Ñ˜Ÿ™ cÓ*©D°«IÕ6r   c                 ó’   • SSK Jn  U" SS9S 5       nU R                  UR                  5       U" 5       5        U R	                  USS9  g )Nr   rª   Trµ   c                  óL   • Sn Sn[        S5       H  nUS:”  a  Sn X-  nM     X4$ )Nr,   r   r:   rÕ   r  )r    Úyr"   s      r   rô   ÚHTestLoopLiftingInAction.test_conditionally_defined_in_loop.<locals>.testÈ  s6   € àˆAØˆAÜ˜1–X�Ø�q“5Ø�1Ø‘’ñ ð �4ˆKr   r&   r  r  r  s      r   Ú"test_conditionally_defined_in_loopÚ:TestLoopLiftingInAction.test_conditionally_defined_in_loopÆ  sI   € ÝÙ	�dÑ	ñ	ó 
ð	ð 	×Ñ˜Ÿ™›©«Ô0Ø×Ñ˜t¨qÐÒ1r   c                 óè   • SSK Jn  SS KnS nUR                  5          UR	                  S5        U" SS9" U5      nU R                  U" S5      U" S5      5        S S S 5        g ! , (       d  f       g = f)Nr   rª   c                 ó8   • U (       a  [        S5       H  nM     g g )NrB   r  )r!   r"   s     r   r   ÚRTestLoopLiftingInAction.test_stack_offset_error_when_has_no_return.<locals>.pyfuncÙ  s   € ÞÜ˜rž�AÙò #ð r   ÚerrorTrµ   )r¾   r«   ÚwarningsÚcatch_warningsÚsimplefilterrU   )rX   r«   r2  r   Úcfuncs        r   Ú*test_stack_offset_error_when_has_no_returnÚBTestLoopLiftingInAction.test_stack_offset_error_when_has_no_returnÕ  s\   € ÝÛò	ð
 ×$Ñ$Õ&Ø×!Ñ! 'Ô*á Ò& vÓ.ˆEØ×Ñ™V D›\©5°«;Ô7÷	 '×&Ö&ús   ž<A#Á#
A1c                 óx   ^• SSK Jn  S mU4S jnU" SS9" U5      nU R                  U" S5      U" S5      5        g)	zt
https://github.com/numba/numba/issues/2179

Looplifting transformation is using the wrong version of variable `h`.
r   rª   c                 ó   • U $ r­   r‘   )r    s    r   r®   Ú<TestLoopLiftingInAction.test_variable_scope_bug.<locals>.barì  s   € ØˆHr   c                 óN   >• Sn[        U 5       H  nX-   nM	     UT" U 5      -
  nU$ )Nr  r  )r    r   Úkr®   s      €r   r³   Ú<TestLoopLiftingInAction.test_variable_scope_bug.<locals>.fooï  s/   ø€ ØˆAÜ˜1–X�Ø‘E’ñ à‘C˜“F‘
ˆAØˆHr   Trµ   rB   N)r¾   r«   rU   )rX   r«   r³   rÉ   r®   s       @r   Útest_variable_scope_bugÚ/TestLoopLiftingInAction.test_variable_scope_bugä  s;   ø€ õ 	ò	õ	ñ ˜DÒ! #Ó&ˆØ×Ñ™˜R›¡$ r£(Õ+r   c                 óR  • SSK Jn  S nU" SS9" U5      n[        R                  " S5      S4nU R	                  U" U6 U" U6 5        U R	                  [        UR                  UR                  S      R                  5      S5        UR                  UR                  S      R                  S   nU R	                  [        UR                  5      S5        [        R                  " S5      S4nU R	                  U" U6 U" U6 5        U R	                  [        UR                  5      S	5        g
)z,
https://github.com/numba/numba/issues/2481
r   rª   c                 ó€   • U S S U2   nSn[        UR                  5       H  n[        5         X2S S S2   U   -  nM     U$ )Nr&   r  )r   r   r0   )r    r*  ÚAr4   r<  s        r   r³   Ú<TestLoopLiftingInAction.test_recompilation_loop.<locals>.fooÿ  sG   € ð ‘#�A�#‘ˆAØˆAÜ˜1Ÿ6™6–]�Ü”Ø™$˜B˜$™ ™
‘N’ñ #ð ˆHr   Trµ   rB   r&   r  r:   N)	r¾   r«   r   r1   rU   rV   r^   rÝ   rW   )rX   r«   r³   rÉ   rk   rW   s         r   Útest_recompilation_loopÚ/TestLoopLiftingInAction.test_recompilation_loopù  sö   € õ 	ò	ñ ˜DÒ! #Ó&ˆä�yŠy˜‹}˜aÐˆØ×Ñ™˜d˜¡T¨4 [Ô1à×Ñœ˜TŸ^™^¨D¯O©O¸AÑ,>Ñ?×FÑFÓGÈÔKØ—‘ §¡°Ñ 2Ñ3×:Ñ:¸1Ñ=ˆà×Ñœ˜V×.Ñ.Ó/°Ô3ä�yŠy˜‹}˜bÐ ˆØ×Ñ™˜d˜¡T¨4 [Ô1à×Ñœ˜V×.Ñ.Ó/°Õ3r   c           
      ót  • SSK Jn  U" SS9S 5       n[        SSSSSSS	S
9nU" S0 UD6nUR                  " S0 UD6nU R	                  US   US   5        U R	                  US   US   5        UR
                  UR                  S      R                  u  nU R                  [        UR                  5      S5        g )Nr   rª   Trµ   c                 óÂ  • [         R                  " U5      [         R                  " U5      p‡XEsUS'   US'   [         R                  " US-
  5       H�  n	[         R                  " XU	   -  5      U[         R                  " XU	   -  5      -  -   XyS-   '   [         R                  " XU	   -  5      U[         R                  " XU	   -  5      -  -   X‰S-   '   Mƒ     [        5         Xx4$ )Nr   r&   )r   rñ   r1   ÚsinÚcosr0   )
r!   rý   r4   r7   Úx0Úy0r
  ÚxsÚysr"   s
             r   r³   ÚDTestLoopLiftingInAction.test_lift_objectmode_issue_4223.<locals>.foo  s´   € ä—X’X˜a“[¤"§(¢(¨1£+�ØˆLˆBˆq‰E�2�a‘5Ü—Y’Y˜q ™s–^�ÜŸ&š& ¨¡U¡Ó+¨a´"·&²&¸À¹U¹Ó2CÑ.CÑC��Q‘3‘ÜŸ&š& ¨¡U¡Ó+¨a´"·&²&¸À¹U¹Ó2CÑ.CÑC��Q‘3“ñ $ô ŒHØ�6ˆMr   g333333û?g333333ã?g333333ó?éÈ   )r!   rý   r4   r7   rJ  rK  r
  r&   r‘   )r¾   r«   Údictrê   ri   r^   rÝ   rW   rU   rV   Únopython_signatures)rX   r«   r³   r   rm   rl   rW   s          r   Útest_lift_objectmode_issue_4223Ú7TestLoopLiftingInAction.test_lift_objectmode_issue_4223  sº   € Ýá	�dÑ	ñ	ó 
ð	ô ˜˜s c¨S°Q¸1ÀÑDˆÙ‰m�F‰mˆØ—;’;Ñ( Ñ(ˆØ×Ñ  A¡¨°©Ô4Ø× Ñ   Q¡¨°!©Ô5Ø—=‘= §¡°Ñ!2Ñ3×:Ñ:‰ˆØ×Ñœ˜V×7Ñ7Ó8¸!Õ<r   c                 óš  • SSK Jn  U" SS9S 5       nU" SS9S 5       nU" SS9S 5       n[        R                  " S5      n[        R                  " S5      nU R	                  U" XV5      UR                  XV5      5        U R	                  U" XV5      UR                  XV5      5        U R	                  U" XV5      UR                  XV5      5        g )	Nr   rª   Trµ   c                 ó:   • Sn[        X5       H	  u  p4X#-   nM     U$ r]   )Úzip)ÚXÚYr"   r    r*  s        r   Úudt_zipÚDTestLoopLiftingInAction.test_lift_zip_and_enumerate.<locals>.udt_zip2  s#   € àˆAÜ˜Až	‘�Ø‘E’ñ "àˆHr   c                 ó:   • Sn[        U 5       H	  u  p4X$-   nM     U$ r]   )Ú	enumerate)rW  rX  r"   r
  r    s        r   Úudt_enumerateÚJTestLoopLiftingInAction.test_lift_zip_and_enumerate.<locals>.udt_enumerate:  s#   € àˆAÜ! !ž‘�Ø‘E’ñ %àˆHr   c                 óR   • Sn[        [        X5      5       H  u  nu  pEX$-   nM     U$ r]   )r\  rV  )rW  rX  r"   r
  r    r*  s         r   Úudt_enumerate_zipÚNTestLoopLiftingInAction.test_lift_zip_and_enumerate.<locals>.udt_enumerate_zipB  s,   € àˆAÜ&¤s¨1£yÖ1‘	�‘6�AØ‘E’ñ 2àˆHr   r,   )r¾   r«   r   r  rU   rê   )rX   r«   rY  r]  r`  rW  rX  s          r   Útest_lift_zip_and_enumerateÚ3TestLoopLiftingInAction.test_lift_zip_and_enumerate.  sË   € åá	�dÑ	ñ	ó 
ð	ñ 
�dÑ	ñ	ó 
ð	ñ 
�dÑ	ñ	ó 
ð	ô �GŠG�A‹JˆÜ�GŠG�A‹Jˆà×Ñ™ ›¨¯©¸Ó(=Ô>Ø×Ñ™ qÓ,¨m×.CÑ.CÀAÓ.IÔJØ×ÑÑ*¨1Ó0Ø*×2Ñ2°1Ó8õ	:r   r‘   N)r¡   r¢   r£   r¤   rà   rí   rø   r  r  r  r  r&  r,  r6  r>  rD  rR  rb  r¥   r‘   r   r   rÛ   rÛ   1  sI   † ò1ò0ò&:ò,0ò22ò&2ò"2ò7ò82ò8ò,ò*4ò@=õ*!:r   rÛ   Ú__main__)%Úior   Únumpyr   Ú
numba.corer   Únumba.core.compilerr   r   Únumba.tests.supportr   r   r	   ÚunittestrT   Úforce_pyobjectÚenable_loopliftr¿   Úpyobject_looplift_flagsÚenable_pyobject_loopliftr   r#   r)   r5   r8   r=   r@   rC   rF   rH   rK   rN   rP   r§   rÛ   r¡   Úmainr‘   r   r   Ú<module>rp     sÔ   ðÝ Û å ß 4ß >Ñ >Û ñ “€Ø $€Ô Ø!%€Ô à(×-Ñ-Ó/Ð Ø37Ð Ô 0òòòòò	òòòòòò
òô_I�o xô _IôDGL˜hô GLôT^:˜o¨xô ^:ðB	 ˆzÓØ‡M‚M…Oð r   