ó
    „ñ:i=5  ã                   ó´   • S SK rS SK r S SKrS SKJrJr  S SKJrJr  S SK	J
r
  S SKJrJr   " S S\5      r " S S	\5      r\S
:X  a  \R"                  " 5         gg)é    N)ÚnjitÚjit)ÚTypingErrorÚUnsupportedError)Úir)ÚTestCaseÚIRPreservingTestPipelinec                   ó\   • \ 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)ÚTestClosureé   c                 óœ   ^• SmU4S jn[        S0 UD6" U5      nU R                  U" S5      S5        SmU R                  U" S5      S5        g )Né
   c                 ó   >• U T-   $ ©N© ©ÚxÚYs    €Ú[/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_closure.pyÚadd_YÚ3TestClosure.run_jit_closure_variable.<locals>.add_Y   ó   ø€ Ø�q‘5ˆLó    é   é   r   ©zi4(i4)©r   ÚassertEqual)ÚselfÚjitargsr   Úc_add_Yr   s       @r   Úrun_jit_closure_variableÚ$TestClosure.run_jit_closure_variable   sP   ø€ Øˆõ	ô Ñ* 'Ò*¨5Ó1ˆØ×Ñ™ › RÔ(ð ˆØ×Ñ™ › RÕ(r   c                 ó"   • U R                  SS9  g ©NT)Úforceobj©r"   ©r   s    r   Útest_jit_closure_variableÚ%TestClosure.test_jit_closure_variable   ó   € Ø×%Ñ%¨tÐ%Ò4r   c                 ó"   • U R                  SS9  g ©NT©Únopythonr'   r(   s    r   Útest_jit_closure_variable_npmÚ)TestClosure.test_jit_closure_variable_npm   r+   r   c                 ó"  ^• SmU4S jn[        S0 UD6" U5      nU R                  U" S5      S5        Sm[        S0 UD6" U5      nU R                  U" S5      S5        SmU R                  U" S5      S5        U R                  U" S5      S5        g )Nr   c                 ó   >• U T-   $ r   r   r   s    €r   r   Ú0TestClosure.run_rejitting_closure.<locals>.add_Y%   r   r   r   r   r   é   r   r   )r   r    r   r!   Ú	c_add_Y_2r   s        @r   Úrun_rejitting_closureÚ!TestClosure.run_rejitting_closure"   s�   ø€ Øˆõ	ô Ñ* 'Ò*¨5Ó1ˆØ×Ñ™ › RÔ(ð ˆÜÑ, GÒ,¨UÓ3ˆ	Ø×Ñ™ 1› rÔ*ØˆØ×Ñ™ 1› rÔ*à×Ñ™ › RÕ(r   c                 ó"   • U R                  SS9  g r%   ©r7   r(   s    r   Útest_rejitting_closureÚ"TestClosure.test_rejitting_closure4   ó   € Ø×"Ñ"¨DÐ"Ò1r   c                 ó"   • U R                  SS9  g r-   r:   r(   s    r   Útest_rejitting_closure_npmÚ&TestClosure.test_rejitting_closure_npm7   r=   r   c                 óp   ^^• SmSmUU4S jn[        S0 UD6" U5      nU R                  U" S5      S5        g )Nr   é   c                 ó   >• U T-   T-  $ r   r   )r   r   ÚZs    €€r   Úadd_Y_mult_ZÚDTestClosure.run_jit_multiple_closure_variables.<locals>.add_Y_mult_Z>   s   ø€ Ø˜‘E˜Q‘;Ðr   r   é   r   r   )r   r    rE   Úc_add_Y_mult_Zr   rD   s       @@r   Ú"run_jit_multiple_closure_variablesÚ.TestClosure.run_jit_multiple_closure_variables:   s;   ù€ ØˆØˆö	ô Ñ1¨Ò1°,Ó?ˆØ×Ñ™¨Ó*¨BÕ/r   c                 ó"   • U R                  SS9  g r%   ©rI   r(   s    r   Ú#test_jit_multiple_closure_variablesÚ/TestClosure.test_jit_multiple_closure_variablesD   ó   € Ø×/Ñ/¸Ð/Ò>r   c                 ó"   • U R                  SS9  g r-   rL   r(   s    r   Ú'test_jit_multiple_closure_variables_npmÚ3TestClosure.test_jit_multiple_closure_variables_npmG   rO   r   c                 ó$  ^• S n[        S0 UD6" U5      mTR                  5         U4S jn[        S0 UD6" U5      nUR                  5         U R                  UT5         U R                  U" S5      S5        S S S 5        g ! , (       d  f       g = f)Nc                 ó   • U S-  $ )Nr   r   )Úas    r   Úmult_10Ú3TestClosure.run_jit_inner_function.<locals>.mult_10K   s   € Ø�r‘6ˆMr   c                 ó   >• T" U S-   5      $ ©Né   r   )r   Ú	c_mult_10s    €r   Údo_mathÚ3TestClosure.run_jit_inner_function.<locals>.do_mathQ   s   ø€ Ù˜Q ™UÓ#Ð#r   r   é2   )z
intp(intp))r   Údisable_compileÚassertRefCountr   )r   r    rV   r\   Ú	c_do_mathr[   s        @r   Úrun_jit_inner_functionÚ"TestClosure.run_jit_inner_functionJ   s}   ø€ ò	ô Ñ0¨Ò0°Ó9ˆ	Ø×!Ñ!Ô#õ	$ô Ñ0¨Ò0°Ó9ˆ	Ø×!Ñ!Ô#à× Ñ  ¨IÕ6Ø×Ñ™Y q›\¨2Ô.÷ 7×6Ö6ús   ÁBÂ
Bc                 ó"   • U R                  SS9  g r%   ©rb   r(   s    r   Útest_jit_inner_functionÚ#TestClosure.test_jit_inner_functionZ   ó   € Ø×#Ñ#¨TÐ#Ò2r   c                 ó"   • U R                  SS9  g r-   re   r(   s    r   Útest_jit_inner_function_npmÚ'TestClosure.test_jit_inner_function_npm]   rh   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r"   r)   r0   r7   r;   r?   rI   rM   rQ   rb   rf   rj   Ú__static_attributes__r   r   r   r   r      s>   † ò)ò5ò5ò)ò$2ò2ò0ò?ò?ò/ò 3õ3r   r   c                   ól   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 r\R                  S 5       rSrg)ÚTestInlinedClosureéa   zš
Tests for (partial) closure support in njit. The support is partial
because it only works for closures that can be successfully inlined
at compile time.
c                 ó\   • S n[        U5      nU R                  U" S5      U" S5      5        g )Nc                 ó*   • S nU" U 5      U" U 5      -   $ )Nc                 ó
   • X -  $ r   r   )r   s    r   ÚinnerÚDTestInlinedClosure.test_inner_function.<locals>.outer.<locals>.innerl   ó	   € Ø‘u�r   r   ©r   rw   s     r   ÚouterÚ5TestInlinedClosure.test_inner_function.<locals>.outerj   s   € òñ ˜“8™e A›hÑ&Ð&r   r   ©r   r   ©r   r{   Úcfuncs      r   Útest_inner_functionÚ&TestInlinedClosure.test_inner_functionh   s*   € ò	'ô �U“ˆØ×Ñ™˜r›¡E¨"£IÕ.r   c                 ó\   • S n[        U5      nU R                  U" S5      U" S5      5        g )Nc                 ó<   ^• U S-   mU4S jnU" U 5      U" U 5      -   $ )Nr   c                 ó   >• X -  T-   $ r   r   ©r   Úys    €r   rw   ÚQTestInlinedClosure.test_inner_function_with_closure.<locals>.outer.<locals>.innery   s   ø€ Ø‘u˜q‘yÐ r   r   ©r   rw   r†   s     @r   r{   ÚBTestInlinedClosure.test_inner_function_with_closure.<locals>.outerv   s&   ø€ Ø�A‘ˆAõ!ñ ˜“8™e A›hÑ&Ð&r   r   r}   r~   s      r   Ú test_inner_function_with_closureÚ3TestInlinedClosure.test_inner_function_with_closuret   s*   € ò	'ô �U“ˆØ×Ñ™˜r›¡E¨"£IÕ.r   c                 ó\   • S n[        U5      nU R                  U" S5      U" S5      5        g )Nc                 ó@   ^• U S-   mU4S jnU" U 5      mTU" U 5      -   $ )Nr   c                 ó   >• U T-  $ r   r   r…   s    €r   rw   ÚSTestInlinedClosure.test_inner_function_with_closure_2.<locals>.outer.<locals>.inner†   ó   ø€ Ø˜1‘u�r   r   rˆ   s     @r   r{   ÚDTestInlinedClosure.test_inner_function_with_closure_2.<locals>.outerƒ   s*   ø€ Ø�A‘ˆAõñ �a“ˆAØ‘u˜Q“x‘<Ðr   r   r}   r~   s      r   Ú"test_inner_function_with_closure_2Ú5TestInlinedClosure.test_inner_function_with_closure_2�   s*   € ò	 ô �U“ˆØ×Ñ™˜r›¡E¨"£IÕ.r   c                 óž   • Sn0 n[        UR                  5       U5        [        US   5      nU R                  U" S5      US   " S5      5        g )Na  
            def outer(x):
                y = x + 1
                z = 0

                def inner(x):
                    nonlocal z
                    z += x * x
                    return z + y

                return inner(x) + inner(x) + z
        r{   r   )ÚexecÚstripr   r   )r   ÚcodeÚnsr   s       r   Ú"test_inner_function_with_closure_3Ú5TestInlinedClosure.test_inner_function_with_closure_3�   sJ   € ðˆð ˆÜˆT�Z‰Z‹\˜2Ôä�R˜‘[Ó!ˆØ×Ñ™˜r› B w¢K°£OÕ4r   c                 ó\   • S n[        U5      nU R                  U" S5      U" S5      5        g )Nc                 ó&   ^ • U 4S jnU" T T -  5      $ )Nc                 óT   >^ • UU 4S jnSn[        T 5       H  nX!" U5      -  nM     U$ )Nc                 ó   >• TT-   U -   $ r   r   ©Úzr   r†   s    €€r   Ú	innermostÚ^TestInlinedClosure.test_inner_function_nested.<locals>.outer.<locals>.inner.<locals>.innermost©   s   ø€ Ø˜q™5 1™9Ð$r   r   ©Úrange)r†   r¡   ÚsÚir   s   `   €r   rw   ÚKTestInlinedClosure.test_inner_function_nested.<locals>.outer.<locals>.inner§   s0   ù€ ö%ð �Ü˜qž�AØ˜ 1›Ñ%’Añ "à�r   r   rz   s   ` r   r{   Ú<TestInlinedClosure.test_inner_function_nested.<locals>.outer¥   s   ø€ õñ ˜˜Q™“<Ðr   r   r}   r~   s      r   Útest_inner_function_nestedÚ-TestInlinedClosure.test_inner_function_nested£   s*   € ò	 ô �U“ˆØ×Ñ™˜r›¡E¨"£IÕ.r   c                 óT  ^^• [         U4S j5       mU4S jnU4S jnS nS nS nS nSmU4S	 jnSmU4S
 jnS n	S n
S nS nS!S jnS!S jnS!S jnS nS nS nS nS nS nS nXXVXxXšXÍUUUUU/nU H.  n[        U5      nSnU R                  U" U5      U" U5      5        M0     U R                  [        5       n[	        SS9" U5      nU" W5        SSS5        SnU R                  U[        WR                  5      5        U R                  [        5       n[	        SS9" U5      nU" W5        SSS5        SnU R                  U[        UR                  5      5        U R                  [        5       n[	        SS9" U5      nU" W5        SSS5        SnU R                  U[        UR                  5      5        U R                  [        5       n[	        SS9" U5      nU" W5        SSS5        SnU R                  U[        UR                  5      5        U R                  [        5       n[	        SS9" U5      nU" W5        SSS5        SnU R                  U[        UR                  5      5        U R                  [        5       n[	        SS9" U5      nU" W5        SSS5        SnU R                  U[        UR                  5      5        U R                  [        5       n[	        SS9" U5      nU" 5         SSS5        S nU R                  U[        UR                  5      5        g! , (       d  f       GN^= f! , (       d  f       GN= f! , (       d  f       GNÊ= f! , (       d  f       GN€= f! , (       d  f       GN6= f! , (       d  f       Në= f! , (       d  f       N¡= f)"z2Tests the large number of use cases defined below c                 óB   >• U S:  a  U $ T" U S-
  5      T" U S-
  5      -   $ )NrB   r   r   )ÚnÚfib3s    €r   r®   Ú4TestInlinedClosure.test_bulk_use_cases.<locals>.fib3º   s*   ø€ à�1‹uØ�Ù˜˜A™“;¡ a¨!¡e£Ñ,Ð,r   c                 ó    >• U4S jnU" U 5      $ )z+Test calling recursive function from inner c                 ó   >• T" U 5      $ r   r   )r   r®   s    €r   rw   ÚETestInlinedClosure.test_bulk_use_cases.<locals>.outer1.<locals>.innerÂ   s   ø€ Ù˜A“w�r   r   )r   rw   r®   s     €r   Úouter1Ú6TestInlinedClosure.test_bulk_use_cases.<locals>.outer1À   s   ø€ õá˜“8ˆOr   c                 ó.   >^• U S-   mUU4S jnU" U 5      $ )z-Test calling recursive function from closure r   c                 ó   >• U T" T5      -   $ r   r   )r   r®   r    s    €€r   rw   ÚETestInlinedClosure.test_bulk_use_cases.<locals>.outer2.<locals>.innerÊ   s   ø€ Ø™4 ›7‘{Ð"r   r   )r   rw   r    r®   s     @€r   Úouter2Ú6TestInlinedClosure.test_bulk_use_cases.<locals>.outer2Æ   s   ù€ à�A‘ˆAö#á˜“8ˆOr   c                 ó    ^• U4S jmT" U 5      $ )zTest recursive inner c                 ó*   >• U S:  a  gT" U S-
  5        g ©NrB   r   r   r   rz   s    €r   rw   ÚETestInlinedClosure.test_bulk_use_cases.<locals>.outer3.<locals>.innerÐ   s   ø€ Ø�q“5Øá˜!˜a™%•Lr   r   rz   s    @r   Úouter3Ú6TestInlinedClosure.test_bulk_use_cases.<locals>.outer3Î   s   ø€ õ!ñ
 ˜“8ˆOr   c                 ó.   ^^• U S-   mUU4S jmT" U 5      $ )zTest recursive closure r   c                 ó0   >• U T-   S:  a  gT" U S-
  5        g r¼   r   rˆ   s    €€r   rw   ÚETestInlinedClosure.test_bulk_use_cases.<locals>.outer4.<locals>.innerÛ   s   ø€ Ø�q‘5˜1“9Øá˜!˜a™%•Lr   r   rˆ   s    @@r   Úouter4Ú6TestInlinedClosure.test_bulk_use_cases.<locals>.outer4×   s   ù€ à�A‘ˆAö!ñ
 ˜“8ˆOr   c                 ó*   ^• U S-   mU4S jnU" U 5      $ )zTest nested closure r   c                 ó8   >^• TU -   S-   mU4S jnU" U 5      T-   $ )NrB   c                 ó   >• U T-   $ r   r   ©r   r    s    €r   Úinner2ÚVTestInlinedClosure.test_bulk_use_cases.<locals>.outer5.<locals>.inner1.<locals>.inner2é   s   ø€ Ø˜q™5�Lr   r   )r   rÉ   r    r†   s     @€r   Úinner1ÚFTestInlinedClosure.test_bulk_use_cases.<locals>.outer5.<locals>.inner1æ   s%   ù€ Ø˜‘E˜A‘I�õ!ñ ˜a“y 1‘}Ð$r   r   ©r   rË   r†   s     @r   Úouter5Ú6TestInlinedClosure.test_bulk_use_cases.<locals>.outer5â   s   ø€ à�A‘ˆAõ%ñ ˜!“9Ðr   c                 ó*   ^• U S-   mU4S jnU" U 5      $ )z-Test closure with list comprehension in body r   c                 óT   >• TU -   S-   n[        U5       Vs/ s H  o"PM     sn$ s  snf )NrB   r£   )r   r    Útr†   s      €r   rË   ÚFTestInlinedClosure.test_bulk_use_cases.<locals>.outer6.<locals>.inner1ô   s,   ø€ Ø˜‘E˜A‘I�Ü#(¨¤8Ó,¢8˜aš¡8Ñ,Ð,ùÒ,s   —%r   rÍ   s     @r   Úouter6Ú6TestInlinedClosure.test_bulk_use_cases.<locals>.outer6ð   s   ø€ à�A‘ˆAõ-ñ ˜!“9Ðr   é	   c                 ó   >• U S-   nX-   T-   $ )z(Test use of outer scope var, no closure r   r   )r   r    Ú_OUTER_SCOPE_VARs     €r   Úouter7Ú6TestInlinedClosure.test_bulk_use_cases.<locals>.outer7û   s   ø€ à�A‘ˆAØ‘5Ð+Ñ+Ð+r   c                 ó.   >^• U S-   mUU4S jnU" U 5      $ )z*Test use of outer scope var, with closure r   c                 ó   >• U T-   T-   $ r   r   )r   rØ   r    s    €€r   rw   ÚETestInlinedClosure.test_bulk_use_cases.<locals>.outer8.<locals>.inner  s   ø€ Ø˜1‘uÐ/Ñ/Ð/r   r   )r   rw   r    rØ   s     @€r   Úouter8Ú6TestInlinedClosure.test_bulk_use_cases.<locals>.outer8  s   ù€ à�A‘ˆAö0á˜“8ˆOr   c                 ó.   ^• U S-   mU4S jnUnU" U 5      $ )zTest closure assignmentr   c                 ó   >• U T-   $ r   r   rÈ   s    €r   rw   ÚETestInlinedClosure.test_bulk_use_cases.<locals>.outer9.<locals>.inner  r�   r   r   )r   rw   Úfr    s      @r   Úouter9Ú6TestInlinedClosure.test_bulk_use_cases.<locals>.outer9
  s   ø€ à�A‘ˆAõàˆAÙ�Q“4ˆKr   c                 ó8   ^^• U S-   mU4S jmU4S jnU" U 5      $ )z Test two inner, one calls other r   c                 ó   >• U T-   $ r   r   rÈ   s    €r   rw   ÚFTestInlinedClosure.test_bulk_use_cases.<locals>.outer10.<locals>.inner  r�   r   c                 ó   >• T" U 5      $ r   r   rz   s    €r   rÉ   ÚGTestInlinedClosure.test_bulk_use_cases.<locals>.outer10.<locals>.inner2  s   ø€ Ù˜Q“x�r   r   )r   rÉ   rw   r    s     @@r   Úouter10Ú7TestInlinedClosure.test_bulk_use_cases.<locals>.outer10  s"   ù€ à�A‘ˆAõõ ñ ˜!“9Ðr   c                 ó   ^• U S-   mU4S jnU$ )zreturn the closure r   c                 ó   >• U T-   $ r   r   rÈ   s    €r   rw   ÚFTestInlinedClosure.test_bulk_use_cases.<locals>.outer11.<locals>.inner#  r�   r   r   ©r   rw   r    s     @r   Úouter11Ú7TestInlinedClosure.test_bulk_use_cases.<locals>.outer11  s   ø€ à�A‘ˆAõàˆLr   c                 ó.   ^• U S-   mSU4S jjnU" U 5      $ )zclosure with kwargr   c                 ó   >• U T-   U-   $ r   r   ©r   Úkwr    s     €r   rw   ÚFTestInlinedClosure.test_bulk_use_cases.<locals>.outer12.<locals>.inner+  ó   ø€ Ø˜1‘u˜r‘zÐ!r   ©é   r   rð   s     @r   Úouter12Ú7TestInlinedClosure.test_bulk_use_cases.<locals>.outer12'  s   ø€ à�A‘ˆA÷"á˜“8ˆOr   c                 ó   • U S-   U-   nU$ )zouter with kwarg no closurer   r   rõ   s      r   Úouter13Ú7TestInlinedClosure.test_bulk_use_cases.<locals>.outer13/  s   € à�A‘˜‘
ˆAØˆHr   c                 ó.   ^^• U S-   mUU4S jnU" U 5      $ )z outer with kwarg used in closurer   c                 ó   >• U T-   T-   $ r   r   rõ   s    €€r   rw   ÚFTestInlinedClosure.test_bulk_use_cases.<locals>.outer14.<locals>.inner8  rø   r   r   ©r   rö   rw   r    s    ` @r   Úouter14Ú7TestInlinedClosure.test_bulk_use_cases.<locals>.outer144  s   ù€ à�A‘ˆAö"á˜“8ˆOr   c                 ó*   ^• U S-   mU4S jnU" X5      $ )z"outer with kwarg as arg to closurer   c                 ó   >• U T-   U-   $ r   r   rõ   s     €r   rw   ÚFTestInlinedClosure.test_bulk_use_cases.<locals>.outer15.<locals>.inner@  rø   r   r   r  s      @r   Úouter15Ú7TestInlinedClosure.test_bulk_use_cases.<locals>.outer15<  s   ø€ à�A‘ˆAõ"á˜“<Ðr   c                 ó<   ^• U S-   mU4S jn[        U" U 5      5      $ )z'closure is generator, consumed locally r   c              3   ó   >#   • U T-   v •  g 7fr   r   rÈ   s    €r   rw   ÚFTestInlinedClosure.test_bulk_use_cases.<locals>.outer16.<locals>.innerH  ó   øé € Ø˜!‘e“ùó   ƒ	)Úlistrð   s     @r   Úouter16Ú7TestInlinedClosure.test_bulk_use_cases.<locals>.outer16D  s!   ø€ à�A‘ˆAõô ™˜a›“>Ð!r   c                 ó*   ^• U S-   mU4S jnU" U 5      $ )zclosure is generator, returned r   c              3   ó   >#   • U T-   v •  g 7fr   r   rÈ   s    €r   rw   ÚFTestInlinedClosure.test_bulk_use_cases.<locals>.outer17.<locals>.innerQ  r  r  r   rð   s     @r   Úouter17Ú7TestInlinedClosure.test_bulk_use_cases.<locals>.outer17M  s   ø€ à�A‘ˆAõñ ˜“8ˆOr   c                 ó@   ^• U S-   mU4S jnU" U 5       H  nUnM     W$ )z'closure is generator, consumed in loop r   c              3   ó   >#   • U T-   v •  g 7fr   r   rÈ   s    €r   rw   ÚFTestInlinedClosure.test_bulk_use_cases.<locals>.outer18.<locals>.innerZ  r  r  r   )r   rw   r¦   rÒ   r    s       @r   Úouter18Ú7TestInlinedClosure.test_bulk_use_cases.<locals>.outer18V  s-   ø€ à�A‘ˆAõñ ˜1–X�Ø’ñ ð ˆHr   c                 óB   ^^• U S-   mU S-   mU4S jnU4S jnU" X5      $ )z"closure as arg to another closure r   rB   c                 ó   >• U T-   $ r   r   )r   Úz1s    €r   rw   ÚFTestInlinedClosure.test_bulk_use_cases.<locals>.outer19.<locals>.innerg  s   ø€ Ø˜2‘v�r   c                 ó   >• U " U5      T-   $ r   r   )rã   r   Úz2s     €r   rÉ   ÚGTestInlinedClosure.test_bulk_use_cases.<locals>.outer19.<locals>.inner2j  s   ø€ Ù˜“t˜b‘yÐ r   r   )r   rw   rÉ   r  r"  s      @@r   Úouter19Ú7TestInlinedClosure.test_bulk_use_cases.<locals>.outer19b  s,   ù€ à�Q‘ˆBØ�Q‘ˆBõõ!ñ ˜%Ó#Ð#r   c                 ó*   ^• U S-   mU4S jnU" U 5      $ )zTest calling numpy in closure r   c                 ó6   >• U [         R                  " T5      -   $ r   )ÚnumpyÚcosrÈ   s    €r   rw   ÚFTestInlinedClosure.test_bulk_use_cases.<locals>.outer20.<locals>.inners  s   ø€ Øœ5Ÿ9š9 Q›<Ñ'Ð'r   r   rð   s     @r   Úouter20Ú7TestInlinedClosure.test_bulk_use_cases.<locals>.outer20o  s   ø€ à�A‘ˆAõ(á˜“8ˆOr   c                 ó*   ^• U S-   mU4S jnU" U 5      $ )z(Test calling numpy import as in closure r   c                 ó6   >• U [         R                  " T5      -   $ r   )Únpr)  rÈ   s    €r   rw   ÚFTestInlinedClosure.test_bulk_use_cases.<locals>.outer21.<locals>.inner{  s   ø€ Øœ2Ÿ6š6 !›9‘}Ð$r   r   rð   s     @r   Úouter21Ú7TestInlinedClosure.test_bulk_use_cases.<locals>.outer21w  s   ø€ à�A‘ˆAõ%á˜“8ˆOr   c                  ó   • S n SnU " U6   g)z6Test to ensure that unsupported *args raises correctlyc                 ó   • g r   r   )rU   Úbs     r   ÚbarÚDTestInlinedClosure.test_bulk_use_cases.<locals>.outer22.<locals>.bar�  s   € Ør   )r   rB   Nr   )r6  r   s     r   Úouter22Ú7TestInlinedClosure.test_bulk_use_cases.<locals>.outer22  s   € òàˆAÙ�ŠGr   r   Tr.   Nz,Unsupported use of cell variable encounteredz%Cannot capture the non-constant valuez-The use of yield in a closure is unsupported.z,Calling a closure with *args is unsupported.rù   )
r   r   ÚassertRaisesÚNotImplementedErrorr   ÚassertInÚstrÚ	exceptionr   r   )r   r³   r¸   r¾   rÃ   rÎ   rÔ   rÙ   rÞ   rä   rë   rñ   rû   rþ   r  r	  r  r  r  r$  r+  r1  r8  rã   Úrefr   ÚvarÚraisesÚmsgrØ   r®   s                                @@r   Útest_bulk_use_casesÚ&TestInlinedClosure.test_bulk_use_cases¶   s:  ù€ ô 
ô	-ó 
ð	-õ
	õ	ò	ò		ò	ò	ð Ðõ	,ð
 Ðõ	ò	ò
	ò	ò	ô	ô
	ô	 ò	"ò	ò
	ò	$ò	ò	ò	ð ˜V¨VØ˜g°Ø�g˜w¨ð1ˆó ˆCÜ˜“IˆEØˆCØ×Ñ™U 3›Z©¨S«Ö2ñ ð ×ÑÔ2Ô3°vÜ Ò& vÓ.ˆEÙ�#ŒJ÷ 4ð =ˆØ�‰�cœ3˜v×/Ñ/Ó0Ô1à×ÑÔ2Ô3°vÜ Ò& vÓ.ˆEÙ�#ŒJ÷ 4ð =ˆØ�‰�cœ3˜v×/Ñ/Ó0Ô1à×Ñœ{Ô+¨vÜ Ò& wÓ/ˆEÙ�#ŒJ÷ ,ð 6ˆØ�‰�cœ3˜v×/Ñ/Ó0Ô1à×ÑÔ/Ô0°FÜ Ò& wÓ/ˆEÙ�#ŒJ÷ 1ð >ˆØ�‰�cœ3˜v×/Ñ/Ó0Ô1à×ÑÔ/Ô0°FÜ Ò& wÓ/ˆEÙ�#ŒJ÷ 1ð >ˆØ�‰�cœ3˜v×/Ñ/Ó0Ô1à×ÑÔ/Ô0°FÜ Ò& wÓ/ˆEÙ�#ŒJ÷ 1ð >ˆØ�‰�cœ3˜v×/Ñ/Ó0Ô1à×ÑÔ/Ô0°FÜ Ò& wÓ/ˆEÙŒG÷ 1ð =ˆØ�‰�cœ3˜v×/Ñ/Ó0Õ1÷Q 4Ö3ú÷ 4Ö3ú÷ ,Ö+ú÷ 1Ö0ú÷ 1Ö0ú÷ 1Õ0ú÷ 1Õ0úsT   Â?L.ÄM Å7MÇM$È/M6ÊNË'NÌ.
L=Í 
MÍ
M!Í$
M3Í6
NÎ
NÎ
N'c                 ó¦  • [        [        S9S 5       nU R                  U" SS5      S5        UR                  UR                  S      R
                  S   n/ nUR                  R                  5        H�  nUR                   H|  n[        U[        R                  5      (       d  M$  [        UR                  [        R                  5      (       d  MO  UR                  R                  S:X  d  Mk  UR                  U5        M~     M‘     U R                  [        U5      S	5        U H,  nUR                   R"                  nS
nU R%                  Xx5        M.     g )N)Úpipeline_classc                 ó(   • S nU" U 5      U" U5      4$ )Nc                 ó   • SnSnX-   U -   $ )Né   r   r   rŸ   s      r   r6  ÚITestInlinedClosure.test_closure_renaming_scheme.<locals>.foo.<locals>.barÀ  s   € Ø�Ø�Ø‘u˜q‘yÐ r   r   )rU   r5  r6  s      r   ÚfooÚ<TestInlinedClosure.test_closure_renaming_scheme.<locals>.foo¾  s   € ò!ñ �q“6™3˜q›6�>Ð!r   r   é   )é   é#   r   Úpreserved_irrI  rB   zclosure__locals__bar_v[0-9]+.x)r   r	   r   Ú	overloadsÚ
signaturesÚmetadataÚblocksÚvaluesÚbodyÚ
isinstancer   ÚAssignÚvalueÚConstÚappendÚlenÚtargetÚnameÚassertRegex)	r   rK  Úfunc_irÚstoreÚblkÚstmtr¦   r^  Úregexs	            r   Útest_closure_renaming_schemeÚ/TestInlinedClosure.test_closure_renaming_schemeº  s  € ô 
Ô5Ñ	6ñ	"ó 
7ð	"ð 	×Ñ™˜R › hÔ/ð —-‘- §¡¨qÑ 1Ñ2×;Ñ;¸NÑKˆØˆØ—>‘>×(Ñ(Ö*ˆCØŸœ�Ü˜d¤B§I¡I×.Ó.Ü! $§*¡*¬b¯h©h×7Ó7ØŸ:™:×+Ñ+¨qÕ0Ø!ŸL™L¨Ö.ó	 !ñ +ð 	×Ñœ˜U› QÔ'ÛˆAØ—8‘8—=‘=ˆDØ5ˆEØ×Ñ˜TÖ)ò r   c                 ó†   ^• [         S 5       m[         U4S j5       n[        R                  R                  U" 5       S5        g )Nc                  ó   • SS jn U $ )Nc                 ó
   • X-   $ r   r   r…   s     r   r6  Ú;TestInlinedClosure.test_issue9222.<locals>.foo.<locals>.barâ  ry   r   )gš™™™™™ñ?r   )r6  s    r   rK  Ú.TestInlinedClosure.test_issue9222.<locals>.fooà  s   € ôàˆJr   c                  ó   >• T " 5       " S5      $ rY   r   )rK  s   €r   ÚconsumeÚ2TestInlinedClosure.test_issue9222.<locals>.consumeæ  s   ø€ á”5˜“8ˆOr   gffffff@)r   r/  ÚtestingÚassert_allclose)r   rm  rK  s     @r   Útest_issue9222Ú!TestInlinedClosure.test_issue9222Ü  sC   ø€ ô 
ñ	ó 
ð	ô
 
ô	ó 
ð	ô
 	�
‰
×"Ñ"¡7£9¨gÕ6r   c                 ó*   • [         S 5       nU" 5         g )Nc                  óœ   • Sn [        S5       H6  n[        R                  " [        U S5       Vs/ s H  nSPM     sn5        Sn M8     g s  snf )Nr   r   rú   )r¤   r/  Úarray)Úrange_startÚ_s     r   Ú_innerÚ2TestInlinedClosure.test_issue_9577.<locals>._innerð  sA   € àˆKÜ˜1–X�Ü—’¤U¨;¸Ô%:Ó;Ò%: ›!Ñ%:Ñ;Ô<Ø’ò ùÚ;s   ¯A	
)r   )r   rx  s     r   Útest_issue_9577Ú"TestInlinedClosure.test_issue_9577î  s   € ä	ñ	 ó 
ð	 ñ 	�r   r   N)rl   rm   rn   ro   Ú__doc__r€   rŠ   r’   r™   r©   rC  re  rq  r   Úrun_test_in_subprocessrz  rp   r   r   r   rr   rr   a   sL   † ñò
/ò/ò/ò5ò(/ò&B2òH *òD7ð$ ×$Ñ$ñó %ór   rr   Ú__main__)r(  r/  ÚunittestÚnumbar   r   Únumba.core.errorsr   r   Ú
numba.corer   Únumba.tests.supportr   r	   r   rr   rl   Úmainr   r   r   Ú<module>r…     sP   ðã Û ã ß ß ;Ý ß BôR3�(ô R3ôjV˜ô Vðr ˆzÓØ‡M‚M…Oð r   