§
    2@ÄjöŽ  ã                   ó¤  — d dl Z d dlZd dlZd dlZd dlmZmZ d dlm	Z	m
Z
mZ d dlmZmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d d	lmZmZmZm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'm(Z(m)Z)m*Z* d dl+m,Z, d dl-m.Z. d dl/Z/d„ Z0d„ Z1d„ Z2d„ Z3d„ Z4d„ Z5d„ Z6d„ Z7d„ Z8d„ Z9d„ Z:d„ Z; e<¦   «         Z=d„ Z>ej?        Z@ G d„ de ¦  «        ZA G d„ de ¦  «        ZB G d„ d eB¦  «        ZC G d!„ d"eB¦  «        ZDd#„ ZEd$„ ZF G d%„ d&ee ¦  «        ZGd'„ ZHd(„ ZI G d)„ d*ee ¦  «        ZJ G d+„ d,eB¦  «        ZK G d-„ d.e ¦  «        ZLeMd/k    r e/jN        ¦   «          dS dS )0é    N)Úfind_setupwithsÚwith_lifting)Úbypass_contextÚcall_contextÚobjmode_context)ÚFunctionIdentityÚByteCode)ÚInterpreter)Úerrors)Ú
cpu_target)Ú
compile_irÚDEFAULT_FLAGS)ÚnjitÚtypeofÚobjmodeÚtypes)Úoverload)Ú
MemoryLeakÚTestCaseÚcaptured_stdoutÚskip_unless_scipyÚ
linux_onlyÚstrace_supportedÚstraceÚexpected_failure_py311Úexpected_failure_py312Úexpected_failure_py313Úexpected_failure_py314Úexpected_failure_py315)Ú	PYVERSION)Újitclassc                 ó–   — t          j        | ¦  «        }t          |¬¦  «        }t          |¦  «        }|                     |¦  «        }|S )N)Úfunc_id)r   Úfrom_functionr	   r
   Ú	interpret)Úfuncr#   ÚbcÚinterpÚfunc_irs        úMC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_withlifting.pyÚget_func_irr+      sG   € ÝÔ,¨TÑ2Ô2€GÝ	˜'Ð	"Ñ	"Ô	"€BÝ˜Ñ!Ô!€FØ×Ò˜rÑ"Ô"€GØ€Nó    c                  óº   — t          d¦  «         t          5  t          d¦  «         t          ¦   «          d d d ¦  «         n# 1 swxY w Y   t          d¦  «         d S )NÚAÚBÚC©Úprintr   Úb© r,   r*   Úlift1r5   %   s�   € Ý	ˆ#�J„J€JÝ	ð ð Ýˆc‰
Œ
ˆ
Ý	‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
ˆ#�J„J€J€J€Js   —AÁAÁAc                  ój  — d} t          d| ¦  «         d} t          5  t          d| ¦  «         | dz  } t          ¦   «          d d d ¦  «         n# 1 swxY w Y   | dz  } t          5  t          d| ¦  «         t          ¦   «          | dz  } d d d ¦  «         n# 1 swxY w Y   | dz  } t          d| ¦  «         d S )Né   r.   r/   éd   r0   é
   ÚDr1   ©Úxs    r*   Úlift2r=   -   s4  € Ø	€AÝ	ˆ#ˆq�M„M€MØ	€AÝ	ð ð Ýˆc�1‰ŒˆØ	ˆS‰ˆÝ	‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˆ�F€AÝ	ð ð Ýˆc�1‰ŒˆÝ	‰ŒˆØ	ˆR‰ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˆ�F€AÝ	ˆ#ˆq�M„M€M€M€Ms#   œ$AÁAÁAÁ#$BÂBÂBc                  ój  — d} d}t          d| |¦  «         t          5  t          d¦  «         t          ¦   «          | dz  } t          5  t          d¦  «         |dz  }t          ¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   | dz  } |dz  }t          d| |¦  «         d S )Nr7   r8   r.   r/   r0   i † r:   r1   ©r<   Úys     r*   Úlift3rA   >   s:  € Ø	€AØ€AÝ	ˆ#ˆq�!ÑÔÐÝ	ð ð Ýˆc‰
Œ
ˆ
Ý	‰ŒˆØ	ˆS‰ˆÝð 	ð 	Ý�#‰JŒJˆJØ�‰KˆAÝ‰CŒCˆCð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð	ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˆ�F€AØˆ�F€AÝ	ˆ#ˆq�!ÑÔÐÐÐs5   �*BÁ#A6Á*BÁ6A:	Á:BÁ=A:	Á>BÂBÂBc                  ó  — d} t          d| ¦  «         | dz  } t          5  t          d¦  «         t          ¦   «          | dz  } t          d¦  «        D ]C}t          5  t          d¦  «         t          ¦   «          | |z  } d d d ¦  «         n# 1 swxY w Y   ŒD	 d d d ¦  «         n# 1 swxY w Y   t          5  t          d¦  «         t          ¦   «          | r| dz  } d d d ¦  «         n# 1 swxY w Y   | dz  } t          d| ¦  «         d S )	Nr   r.   r9   r/   r7   r0   r:   ÚE)r2   r   r3   Úrange©r<   Úis     r*   Úlift4rG   O   sÆ  € Ø	€AÝ	ˆ#ˆq�M„M€MØˆ�G€AÝ	ð ð Ýˆc‰
Œ
ˆ
Ý	‰ŒˆØ	ˆQ‰ˆÝ�r‘”ð 	ð 	ˆAÝð ð Ý�c‘
”
�
Ý‘”�Ø�Q‘�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øð	ð	ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
ð ð Ýˆc‰
Œ
ˆ
Ý	‰ŒˆØð 	Ø�‰GˆAð	ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð
 ˆ�F€AÝ	ˆ#ˆq�M„M€M€M€MsG   Ÿ;B"Á#B	Á=B"Â	BÂB"ÂBÂB"Â"B&Â)B&Â4%C%Ã%C)Ã,C)c                  ó$   — t          d¦  «         d S )Nr.   ©r2   r4   r,   r*   Úlift5rJ   e   s   € Ý	ˆ#�J„J€J€J€Jr,   c                  ó’   — d} t          d| ¦  «         t          5  | dz  } d d d ¦  «         n# 1 swxY w Y   t          d| ¦  «         | S )Nr7   r.   r/   ©r2   r   r;   s    r*   Ú	liftcall1rM   i   sŠ   € Ø	€AÝ	ˆ#ˆq�M„M€MÝ	ð ð Ø	ˆQ‰ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	ˆ#ˆq�M„M€MØ€Hs   š,¬0³0c                  óú   — d} t          d| ¦  «         t          5  | dz  } d d d ¦  «         n# 1 swxY w Y   t          d| ¦  «         t          5  | dz  } d d d ¦  «         n# 1 swxY w Y   t          d| ¦  «         | S )Nr7   r.   r/   r9   r0   rL   r;   s    r*   Ú	liftcall2rO   r   sû   € Ø	€AÝ	ˆ#ˆq�M„M€MÝ	ð ð Ø	ˆQ‰ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	ˆ#ˆq�M„M€MÝ	ð ð Ø	ˆR‰ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	ˆ#ˆq�M„M€MØ€Hs   š,¬0³0ÁA Á A$Á'A$c                  ó,  — d} t          d| ¦  «         t          5  | dk    r| dz  } d d d ¦  «         n# 1 swxY w Y   t          d| ¦  «         t          5  t          d¦  «        D ]}| |z  } Œ	 d d d ¦  «         n# 1 swxY w Y   t          d| ¦  «         | S )Nr7   r.   r   r/   r9   r0   )r2   r   rD   rE   s     r*   Ú	liftcall3rQ   ~   s$  € Ø	€AÝ	ˆ#ˆq�M„M€MÝ	ð ð ØˆqŠ5ˆ5Ø�‰FˆAðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
ˆ#ˆq�M„M€MÝ	ð ð Ý�r‘”ð 	ð 	ˆAØ�‰FˆAˆAð	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
ˆ#ˆq�M„M€MØ€Hs   š2²6¹6ÁA9Á9A=Â A=c                  ó†   — t           5  t           5  	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S ©N)r   r4   r,   r*   Ú	liftcall4rT   Œ   sÊ   € Ý	ð ð Ýð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   ˆ6�’6ž"	¢6¥"	¦6¶:½:c                  óÎ   — t          d¦  «        D ]T} t          5  t          | ¦  «         | dk    rt          d¦  «         	 d d d ¦  «          n	 d d d ¦  «         n# 1 swxY w Y   ŒU| S )Nr9   é   r.   )rD   r   r2   )rF   s    r*   Ú	liftcall5rW   ’   sÇ   € Ý�2‰YŒYð ð ˆÝð 	ð 	Ý�!‰HŒHˆHØ�AŠvˆvÝ�c‘
”
�
Øð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	àð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øð
 €Hs   ™&AÁA	Á A	c                  óH   — t           5  	 d d d ¦  «         d S # 1 swxY w Y   d S rS   )Úundefined_global_varr4   r,   r*   Úlift_undefiendrZ   œ   óo   € Ý	ð ð Øðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ó   ˆ—žc                  óH   — t           5  	 d d d ¦  «         d S # 1 swxY w Y   d S rS   )Úbogus_contextmanagerr4   r,   r*   Úlift_invalidr_   ¤   r[   r\   c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestWithFindingc                 ó”   — t          |¦  «        }t          t          |¦  «        d         ¦  «        }|                      ||¦  «         d S ©Nr   )r+   Úlenr   ÚassertEqual)Úselfr&   Úexpect_countÚthe_irÚcts        r*   Úcheck_num_of_withz!TestWithFinding.check_num_of_with­   sE   € Ý˜TÑ"Ô"ˆÝ• Ñ(Ô(¨Ô+Ñ,Ô,ˆØ×Ò˜˜\Ñ*Ô*Ð*Ð*Ð*r,   c                 ó>   — |                       t          d¬¦  «         d S ©Nr7   ©rg   )rj   r5   ©rf   s    r*   Ú
test_lift1zTestWithFinding.test_lift1²   ó!   € Ø×Ò�u°1ÐÑ5Ô5Ð5Ð5Ð5r,   c                 ó>   — |                       t          d¬¦  «         d S ©Né   rm   )rj   r=   rn   s    r*   Ú
test_lift2zTestWithFinding.test_lift2µ   rp   r,   c                 ó>   — |                       t          d¬¦  «         d S rl   )rj   rA   rn   s    r*   Ú
test_lift3zTestWithFinding.test_lift3¸   rp   r,   c                 ó>   — |                       t          d¬¦  «         d S rr   )rj   rG   rn   s    r*   Ú
test_lift4zTestWithFinding.test_lift4»   rp   r,   c                 ó>   — |                       t          d¬¦  «         d S )Nr   rm   )rj   rJ   rn   s    r*   Ú
test_lift5zTestWithFinding.test_lift5¾   rp   r,   N)	Ú__name__Ú
__module__Ú__qualname__rj   ro   rt   rv   rx   rz   r4   r,   r*   ra   ra   ¬   sn   € € € € € ð+ð +ð +ð
6ð 6ð 6ð6ð 6ð 6ð6ð 6ð 6ð6ð 6ð 6ð6ð 6ð 6ð 6ð 6r,   ra   c                   ó,   ‡ — e Zd Zˆ fd„Zd„ Zdd„Zˆ xZS )ÚBaseTestWithLiftingc                 ó²   •— t          t          | ¦  «                             ¦   «          t          j        | _        t          j        | _        t          | _	        d S rS   )
Úsuperr   ÚsetUpr   Útyping_contextÚ	typingctxÚtarget_contextÚ	targetctxr   Úflags)rf   Ú	__class__s    €r*   r‚   zBaseTestWithLifting.setUpÃ   s?   ø€ ÝÕ! 4Ñ(Ô(×.Ò.Ñ0Ô0Ð0Ý#Ô2ˆŒÝ#Ô2ˆŒÝ"ˆŒ
ˆ
ˆ
r,   c                 ó¤  — t          |¦  «        }t          || j        | j        | j        i ¬¦  «        \  }}|                      t          |¦  «        |¦  «         |                      |¦  «        }t          ¦   «         5 }| 	                    ¦   «          d d d ¦  «         n# 1 swxY w Y   |                      | 
                    ¦   «         |¦  «         d S ©N©Úlocals)r+   r   r„   r†   r‡   re   rd   r   r   Úentry_pointÚgetvalue)	rf   r&   rg   Úexpected_stdoutrh   Únew_irÚ	extractedÚcresÚouts	            r*   Úcheck_extracted_withz(BaseTestWithLifting.check_extracted_withÉ   sÿ   € Ý˜TÑ"Ô"ˆÝ(Ø�D”N D¤N°D´JØð
ñ 
ô 
Ñˆ�	ð 	×Ò�˜Y™œ¨Ñ6Ô6Ð6Ø�Š˜vÑ&Ô&ˆåÑÔð 	 #Ø×ÒÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	×Ò˜Ÿš™œ¨Ñ9Ô9Ð9Ð9Ð9s   Á<BÂB!Â$B!r4   Nc           	      óX   — | j         }| j        }| j        }t          ||||||i ¬¦  «        S rŠ   )r„   r†   r‡   r   )rf   rh   ÚargsÚreturn_typer„   r†   r‡   s          r*   r   zBaseTestWithLifting.compile_ir×   s=   € Ø”Nˆ	Ø”Nˆ	Ø”
ˆÝ˜) Y°¸Ø'¨°rð;ñ ;ô ;ð 	;r,   )r4   N)r{   r|   r}   r‚   r”   r   Ú__classcell__)rˆ   s   @r*   r   r   Â   s[   ø€ € € € € ð#ð #ð #ð #ð #ð:ð :ð :ð;ð ;ð ;ð ;ð ;ð ;ð ;ð ;r,   r   c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestLiftByPassc                 ó@   — |                       t          dd¬¦  «         d S )Nr7   zA
C
©rg   r�   )r”   r5   rn   s    r*   ro   zTestLiftByPass.test_lift1á   s0   € Ø×!Ò!¥%°aØ2:ð 	"ñ 	<ô 	<ð 	<ð 	<ð 	<r,   c                 ó@   — |                       t          dd¬¦  «         d S )Nrs   zA 1
D 3
rœ   )r”   r=   rn   s    r*   rt   zTestLiftByPass.test_lift2å   s5   € Ø×!Ò!¥%°aØ2>ð 	"ñ 	@ô 	@ð 	@ð 	@ð 	@r,   c                 ó@   — |                       t          dd¬¦  «         d S )Nr7   zA 1 100
D 2 101
rœ   )r”   rA   rn   s    r*   rv   zTestLiftByPass.test_lift3é   s5   € Ø×!Ò!¥%°aØ2Fð 	"ñ 	Hô 	Hð 	Hð 	Hð 	Hr,   c                 ó@   — |                       t          dd¬¦  «         d S )Nrs   z	A 0
E 11
rœ   )r”   rG   rn   s    r*   rx   zTestLiftByPass.test_lift4í   s5   € Ø×!Ò!¥%°aØ2?ð 	"ñ 	Aô 	Að 	Að 	Að 	Ar,   c                 ó@   — |                       t          dd¬¦  «         d S )Nr   zA
rœ   )r”   rJ   rn   s    r*   rz   zTestLiftByPass.test_lift5ñ   s0   € Ø×!Ò!¥%°aØ27ð 	"ñ 	9ô 	9ð 	9ð 	9ð 	9r,   N)r{   r|   r}   ro   rt   rv   rx   rz   r4   r,   r*   rš   rš   ß   sh   € € € € € ð<ð <ð <ð@ð @ð @ðHð Hð HðAð Að Að9ð 9ð 9ð 9ð 9r,   rš   c                   ó‚   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zee	e
eed„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZdS )ÚTestLiftCallc                 óX  — t          |¦  «        }t          ¦   «         5 } |¦   «          ddd¦  «         n# 1 swxY w Y   t          ¦   «         5 } |¦   «          ddd¦  «         n# 1 swxY w Y   |                      |                     ¦   «         |                     ¦   «         ¦  «         dS )z2Ensure same semantic with non-jitted code
        N)r   r   re   rŽ   )rf   r&   ÚjittedÚgotÚexpects        r*   Úcheck_same_semanticz TestLiftCall.check_same_semanticø   s  € õ �d‘”ˆÝÑÔð 	 #ØˆF‰HŒHˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ ÑÔð 	 &ØˆD‰FŒFˆFð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	×Ò˜Ÿš™œ¨¯ªÑ):Ô):Ñ;Ô;Ð;Ð;Ð;s   ž5µ9¼9ÁA%Á%A)Á,A)c                 ót   — |                       t          dd¬¦  «         |                      t          ¦  «         d S )Nr7   zA 1
B 2
rœ   )r”   rM   r§   rn   s    r*   Útest_liftcall1zTestLiftCall.test_liftcall1  sC   € Ø×!Ò!¥)¸!Ø2>ð 	"ñ 	@ô 	@ð 	@à× Ò ¥Ñ+Ô+Ð+Ð+Ð+r,   c                 ót   — |                       t          dd¬¦  «         |                      t          ¦  «         d S )Nrs   zA 1
B 2
C 12
rœ   )r”   rO   r§   rn   s    r*   Útest_liftcall2zTestLiftCall.test_liftcall2	  óC   € Ø×!Ò!¥)¸!Ø2Dð 	"ñ 	Fô 	Fð 	Fà× Ò ¥Ñ+Ô+Ð+Ð+Ð+r,   c                 ót   — |                       t          dd¬¦  «         |                      t          ¦  «         d S )Nrs   zA 1
B 2
C 47
rœ   )r”   rQ   r§   rn   s    r*   Útest_liftcall3zTestLiftCall.test_liftcall3  r¬   r,   c                 óH  — t           j        t           j        t           j        t           j        f}|                      |¦  «        5 } t          t          ¦  «        ¦   «          d d d ¦  «         n# 1 swxY w Y   d}|                      |t          |j
        ¦  «        ¦  «         d S )Nz2compiler re-entrant to the same function signature)r   ÚTypingErrorÚNumbaRuntimeErrorÚNumbaValueErrorÚCompilerErrorÚassertRaisesr   rT   ÚassertInÚstrÚ	exception)rf   ÚacceptÚraisesÚmsgs       r*   Útest_liftcall4zTestLiftCall.test_liftcall4  sÇ   € ÝÔ$¥fÔ&>ÝÔ(­&Ô*>ð@ˆà×Ò˜vÑ&Ô&ð 	¨&Ø�D•‰OŒOÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð DˆØ�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1s   ÁA-Á-A1Á4A1c                 ót   — |                       t          dd¬¦  «         |                      t          ¦  «         d S )Nr7   z0
1
2
3
4
5
A
rœ   )r”   rW   r§   rn   s    r*   Útest_liftcall5zTestLiftCall.test_liftcall5  sE   € ð 	×!Ò!¥)¸!Ø2Ið 	"ñ 	Kô 	Kð 	Kà× Ò ¥Ñ+Ô+Ð+Ð+Ð+r,   N)r{   r|   r}   r§   r©   r«   r®   r»   r   r   r   r   r   r½   r4   r,   r*   r¢   r¢   ö   s§   € € € € € ð
<ð 
<ð 
<ð,ð ,ð ,ð
,ð ,ð ,ð
,ð ,ð ,ð
2ð 2ð 2ð ØØØØð,ð ,ñ Ôñ Ôñ Ôñ Ôñ Ôð
,ð ,ð ,r,   r¢   c                 ó   ‡ — ˆ fd„}|S )Nc                 óÞ   •— |                       t          j        ¦  «        5 } ‰| g|¢R i |¤Ž d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )NzDoes not support list type©r´   r   r°   rµ   r¶   r·   ©rf   r–   Úkwargsr¹   Úfns       €r*   Úcorez+expected_failure_for_list_arg.<locals>.core)  s½   ø€ Ø×Ò�vÔ1Ñ2Ô2ð 	&°fØˆBˆtÐ%�dÐ%Ð%Ð%˜fÐ%Ð%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&à�ŠÐ2Ý˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-ó   ¡:º>Á>r4   ©rÃ   rÄ   s   ` r*   Úexpected_failure_for_list_argrÇ   (  ó#   ø€ ð-ð -ð -ð -ð -ð
 €Kr,   c                 ó   ‡ — ˆ fd„}|S )Nc                 óÞ   •— |                       t          j        ¦  «        5 } ‰| g|¢R i |¤Ž d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )NzDoes not support function typerÀ   rÁ   s       €r*   rÄ   z/expected_failure_for_function_arg.<locals>.core2  s½   ø€ Ø×Ò�vÔ1Ñ2Ô2ð 	&°fØˆBˆtÐ%�dÐ%Ð%Ð%˜fÐ%Ð%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&à�ŠÐ6Ý˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-rÅ   r4   rÆ   s   ` r*   Ú!expected_failure_for_function_argrË   1  rÈ   r,   c                   ó(  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ed	„ ¦   «         Zd
„ Zed„ ¦   «         Zd„ Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zej        d„ ¦   «         Zed„ ¦   «         Z d„ Z!e"d„ ¦   «         Z#e$e%e&e'e(d„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z)ej        d„ ¦   «         Z*d„ Z+d „ Z,d!„ Z-d"„ Z.d#„ Z/d$„ Z0d%„ Z1d&„ Z2d'„ Z3d(„ Z4d)„ Z5d*„ Z6d+„ Z7e8d,„ ¦   «         Z9d-„ Z:d.„ Z;d/„ Z<d0„ Z=d1„ Z>d2S )3ÚTestLiftObjc                 óD   — t          j        dt          j        ¦  «         d S ©NÚerror©ÚwarningsÚsimplefilterr   ÚNumbaWarningrn   s    r*   r‚   zTestLiftObj.setUp<  ó   € ÝÔ˜g¥vÔ':Ñ;Ô;Ð;Ð;Ð;r,   c                 ó,   — t          j        ¦   «          d S rS   ©rÒ   Úresetwarningsrn   s    r*   ÚtearDownzTestLiftObj.tearDown?  ó   € ÝÔÑ Ô Ð Ð Ð r,   c                 ó2  — t          j        |¦  «        }t          j        |¦  «        }t          |¦  «        }t          ¦   «         5 } ||Ž }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                     t          t          t          |¦  «        ¦  «        ¦  «         t          ¦   «         5 } ||Ž }	|                     ¦   «         }
d d d ¦  «         n# 1 swxY w Y   |  	                    ||
¦  «         |  
                    ||	¦  «         d S rS   )ÚcopyÚdeepcopyr   r   rŽ   ÚcompileÚtupleÚmapr   re   ÚassertPreciseEqual)rf   Úpyfuncr–   Úpy_argsÚc_argsÚcfuncÚstreamÚ
expect_resÚ
expect_outÚgot_resÚgot_outs              r*   Úassert_equal_return_and_stdoutz*TestLiftObj.assert_equal_return_and_stdoutB  sv  € Ý”- Ñ%Ô%ˆÝ”˜tÑ$Ô$ˆÝ�V‘”ˆåÑÔð 	+ &Ø˜ Ð)ˆJØŸšÑ*Ô*ˆJð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð
 	�Š•e�C¥¨Ñ/Ô/Ñ0Ô0Ñ1Ô1Ð1ÝÑÔð 	( &Ø�e˜V�nˆGØ—o’oÑ'Ô'ˆGð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	×Ò˜ WÑ-Ô-Ð-Ø×Ò 
¨GÑ4Ô4Ð4Ð4Ð4s$   ÁA,Á,A0Á3A0Â:C Ã C$Ã'C$c                 óz   ‡— d„ Šˆfd„}ˆfd„}|                       |d¦  «         |                       |d¦  «         d S )Nc                 ó0   — t          dd| dz  i¦  «         d S )Nzival =Úivalrs   rI   )rî   s    r*   Úbarz0TestLiftObj.test_lift_objmode_basic.<locals>.barU  s!   € Ý�(˜V T¨Q¡YÐ/Ñ0Ô0Ð0Ð0Ð0r,   c                 ól   •— | dz  } t           5   ‰| ¦  «         d d d ¦  «         n# 1 swxY w Y   | dz   S ©Nr7   ©r   ©rî   rï   s    €r*   Úfooz0TestLiftObj.test_lift_objmode_basic.<locals>.fooX  s}   ø€ Ø�A‰IˆDÝ ð ð Ø��D‘	”	�	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à˜!‘8ˆOs   Ž&¦*­*c                 óv   •— | dz  } t           j        5   ‰| ¦  «         d d d ¦  «         n# 1 swxY w Y   | dz   S rñ   ©Únumbar   ró   s    €r*   Úfoo_nonglobalz:TestLiftObj.test_lift_objmode_basic.<locals>.foo_nonglobal^  s   ø€ Ø�A‰IˆDÝ”ð ð Ø��D‘	”	�	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à˜!‘8ˆOs   “+«/²/é{   ©rë   )rf   rô   rø   rï   s      @r*   Útest_lift_objmode_basicz#TestLiftObj.test_lift_objmode_basicT  sx   ø€ ð	1ð 	1ð 	1ð	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	×+Ò+¨C°Ñ5Ô5Ð5Ø×+Ò+¨M¸3Ñ?Ô?Ð?Ð?Ð?r,   c                 óH   ‡— d„ Šˆfd„}d}|                       ||¦  «         d S )Nc                 ó8   — t          d| dz  i¦  «         | dz  } d S )NÚarrrs   rI   )rþ   s    r*   rï   z3TestLiftObj.test_lift_objmode_array_in.<locals>.barh  s&   € Ý�5˜# ™(Ð#Ñ$Ô$Ð$à�1‰HˆCˆCˆCr,   c                 óÄ   •— t          j        | ¦  «                             t           j        ¦  «        }t          5   ‰|¦  «         d d d ¦  «         n# 1 swxY w Y   |dz   S rñ   )ÚnpÚarangeÚastypeÚint64r   )Únelemrþ   rï   s     €r*   rô   z3TestLiftObj.test_lift_objmode_array_in.<locals>.foom  s•   ø€ Ý”)˜EÑ"Ô"×)Ò)­"¬(Ñ3Ô3ˆCÝ ð ð à��C‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˜‘7ˆNs   ºAÁAÁAr9   rú   )rf   rô   r  rï   s      @r*   Útest_lift_objmode_array_inz&TestLiftObj.test_lift_objmode_array_ing  sN   ø€ ð	ð 	ð 	ð
	ð 	ð 	ð 	ð 	ð ˆØ×+Ò+¨C°Ñ7Ô7Ð7Ð7Ð7r,   c                 óH   ‡— d„ Šˆfd„}d}|                       ||¦  «         d S )Nc                 ó$   — t          | ¦  «         d S rS   rI   ©r@   s    r*   rï   z<TestLiftObj.test_lift_objmode_define_new_unused.<locals>.barx  s   € Ý�!‰HŒHˆHˆHˆHr,   c                 óœ   •— t          ¦   «         5  d| z   }t          j        |¦  «        } ‰|¦  «         d d d ¦  «         n# 1 swxY w Y   | S ©Nrs   )r   r   r  )r<   r@   Úarï   s      €r*   rô   z<TestLiftObj.test_lift_objmode_define_new_unused.<locals>.foo{  sŽ   ø€ Ý Ñ"Ô"ð ð Ø˜‘E�Ý”I˜a‘L”L�Ø��A‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˆHs   �%AÁAÁArù   rú   )rf   rô   Úargrï   s      @r*   Ú#test_lift_objmode_define_new_unusedz/TestLiftObj.test_lift_objmode_define_new_unusedw  sN   ø€ ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð ˆØ×+Ò+¨C°Ñ5Ô5Ð5Ð5Ð5r,   c                 ó~   ‡— d„ Šˆfd„}ˆfd„}d}|                       ||¦  «         |                       ||¦  «         d S )Nc                 ó*   — t          | ¦  «         d| z  S rñ   rI   r;   s    r*   Úinversez<TestLiftObj.test_lift_objmode_return_simple.<locals>.inverse†  ó   € Ý�!‰HŒHˆHØ�q‘5ˆLr,   c                 ór   •— t          d¬¦  «        5   ‰| ¦  «        }d d d ¦  «         n# 1 swxY w Y   | |fS ©NÚfloat64r  rò   ©r<   r@   r  s     €r*   rô   z8TestLiftObj.test_lift_objmode_return_simple.<locals>.fooŠ  s   ø€ Ý  9Ð-Ñ-Ô-ð ð Ø�G˜A‘J”J�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à�a�4ˆKó   ’*ª.±.c                 ó|   •— t          j        d¬¦  «        5   ‰| ¦  «        }d d d ¦  «         n# 1 swxY w Y   | |fS r  rö   r  s     €r*   rø   zBTestLiftObj.test_lift_objmode_return_simple.<locals>.foo_nonglobal�  s�   ø€ Ý” Ð+Ñ+Ô+ð ð Ø�G˜A‘J”J�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à�a�4ˆKs   —/¯3¶3rù   rú   )rf   rô   rø   r  r  s       @r*   Útest_lift_objmode_return_simplez+TestLiftObj.test_lift_objmode_return_simple…  s}   ø€ ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð
	ð 	ð 	ð 	ð 	ð
 ˆØ×+Ò+¨C°Ñ5Ô5Ð5Ø×+Ò+¨M¸3Ñ?Ô?Ð?Ð?Ð?r,   c                 ó†   ‡— d„ Šˆfd„}t          j        ddt           j        ¬¦  «        }|                      ||¦  «         d S )Nc                 ó*   — t          | ¦  «         d| z  S rñ   rI   r;   s    r*   r  z;TestLiftObj.test_lift_objmode_return_array.<locals>.inverse™  r  r,   c                 ó    •— t          dd¬¦  «        5   ‰| ¦  «        }t          |d         ¦  «        }d d d ¦  «         n# 1 swxY w Y   | ||fS )Nú
float64[:]r  )r@   Úzr   )r   Úint)r<   r@   r  r  s      €r*   rô   z7TestLiftObj.test_lift_objmode_return_array.<locals>.foo�  s”   ø€ Ý  <°7Ð;Ñ;Ô;ð ð Ø�G˜A‘J”J�Ý˜˜!œ‘I”I�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �a˜�7ˆNs   “!A Á AÁAr7   r9   ©Údtype)r   r  r  rë   )rf   rô   r  r  s      @r*   Útest_lift_objmode_return_arrayz*TestLiftObj.test_lift_objmode_return_array˜  sa   ø€ ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	õ Œi˜˜2¥R¤ZÐ0Ñ0Ô0ˆØ×+Ò+¨C°Ñ5Ô5Ð5Ð5Ð5r,   c                 ó@   — d„ }g d¢}|                       ||¦  «         d S )Nc                 óê   — t          d¬¦  «        5  t          | ¦  «         d| d<   t          | ¦  «         g d¢| z   }t          j        d„ |D ¦   «         ¦  «        }d d d ¦  «         n# 1 swxY w Y   | |fS )Nr  r  é   r   ©r7   rs   é   c                 ó   — g | ]}d |z  ‘ŒS )r7   r4   )Ú.0rF   s     r*   ú
<listcomp>zITestLiftObj.test_lift_objmode_using_list.<locals>.foo.<locals>.<listcomp>®  s   € Ð1Ð1Ð1¨!  A¡Ð1Ð1Ð1r,   )r   r2   r   Úasarrayr?   s     r*   rô   z5TestLiftObj.test_lift_objmode_using_list.<locals>.foo¨  s½   € Ý  <Ð0Ñ0Ô0ð 3ð 3Ý�a‘”�Ø��!‘Ý�a‘”�Ø�I�I ‘M�Ý”JÐ1Ð1¨qÐ1Ñ1Ô1Ñ2Ô2�ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð �a�4ˆKs   ‘A	A&Á&A*Á-A*r%  rú   ©rf   rô   r  s      r*   Útest_lift_objmode_using_listz(TestLiftObj.test_lift_objmode_using_list¦  s8   € ð	ð 	ð 	ð ˆiˆiˆØ×+Ò+¨C°Ñ5Ô5Ð5Ð5Ð5r,   c                 ó<   — d„ }d}|                       ||¦  «         d S )Nc                 ó  — t          | ¦  «        D ]} Œ| r| dz  } t          d¬¦  «        5  t          | ¦  «         | dz  } t          | ¦  «         t          | ¦  «        D ]}| |z  } t          | ¦  «         Œ	 d d d ¦  «         n# 1 swxY w Y   | S )Nr7   Úintpr;   )rD   r   r2   rE   s     r*   rô   z4TestLiftObj.test_lift_objmode_var_redef.<locals>.fooµ  sç   € Ý˜1‘X”Xð ð �ØØð Ø�Q‘�Ý  6Ð*Ñ*Ô*ð ð Ý�a‘”�Ø�Q‘�Ý�a‘”�Ý˜q™œð ð �AØ˜‘F�AÝ˜!‘H”H�H�Hðð	ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˆHs   ªA
BÂBÂBrù   rú   r+  s      r*   Útest_lift_objmode_var_redefz'TestLiftObj.test_lift_objmode_var_redef´  s4   € ð	ð 	ð 	ð ˆØ×+Ò+¨C°Ñ5Ô5Ð5Ð5Ð5r,   c                 ó>   — d„ }|                       |g d¢d¦  «         d S )Nc                 óô   — || d<   t          ¦   «         5  t          | ¦  «         d d d ¦  «         n# 1 swxY w Y   t          ¦   «         5  d|z  | d<   t          | ¦  «         d d d ¦  «         n# 1 swxY w Y   | S r
  ©r   r2   ©r<   r  s     r*   rô   z=TestLiftObj.test_case01_mutate_list_ahead_of_ctx.<locals>.fooÈ  óù   € ØˆAˆa‰Då Ñ"Ô"ð ð å�a‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ !Ñ"Ô"ð ð Ø˜1‘u��!‘å�a‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð
 ˆHó   ”0°4·4Á	A-Á-A1Á4A1r%  é   rú   ©rf   rô   s     r*   Ú$test_case01_mutate_list_ahead_of_ctxz0TestLiftObj.test_case01_mutate_list_ahead_of_ctxÆ  s5   € ð	ð 	ð 	ð 	×+Ò+¨C°°°¸BÑ?Ô?Ð?Ð?Ð?r,   c                 óf   — d„ }t          j        g d¢¦  «        }|                      ||d¦  «         d S )Nc                 óô   — || d<   t          ¦   «         5  t          | ¦  «         d d d ¦  «         n# 1 swxY w Y   t          ¦   «         5  d|z  | d<   t          | ¦  «         d d d ¦  «         n# 1 swxY w Y   | S r
  r3  r4  s     r*   rô   z>TestLiftObj.test_case02_mutate_array_ahead_of_ctx.<locals>.fooÙ  r5  r6  r%  r7  ©r   Úarrayrë   ©rf   rô   r<   s      r*   Ú%test_case02_mutate_array_ahead_of_ctxz1TestLiftObj.test_case02_mutate_array_ahead_of_ctxØ  sD   € ð	ð 	ð 	õ ŒH�Y�Y�YÑÔˆØ×+Ò+¨C°°BÑ7Ô7Ð7Ð7Ð7r,   c                 ó8   — d„ }|                       |d¦  «         d S )Nc                 ó´   — t          d¬¦  «        5  g d¢}d d d ¦  «         n# 1 swxY w Y   t          ¦   «         5  d|d<   d d d ¦  «         n# 1 swxY w Y   |S ©NzList(int64)r  r%  r9   rs   rò   r?   s     r*   rô   z6TestLiftObj.test_case03_create_and_mutate.<locals>.fooì  óà   € Ý  =Ð1Ñ1Ô1ð ð Ø�I�I�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å Ñ"Ô"ð ð Ø��!‘ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àˆHó   ‘"¢&©&»AÁAÁAr7   rú   r8  s     r*   Útest_case03_create_and_mutatez)TestLiftObj.test_case03_create_and_mutateê  s/   € ð	ð 	ð 	ð 	×+Ò+¨C°Ñ3Ô3Ð3Ð3Ð3r,   c                 ó*  — d„ }t          j        g d¢¦  «        }t          |¦  «        }|                      t          j        ¦  «        5 } ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                 ót   — t          d¬¦  «        5  t          | ¦  «         d d d ¦  «         n# 1 swxY w Y   | S )Nr  ©Úkr3  r;   s    r*   rô   z=TestLiftObj.test_case04_bogus_variable_type_info.<locals>.fooö  sx   € å  <Ð0Ñ0Ô0ð ð Ý�a‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àˆHó   ‘-­1´1r%  z1Invalid type annotation on non-outgoing variables)	r   r=  r   r´   r   r°   rµ   r¶   r·   ©rf   rô   r<   Úcfoor¹   s        r*   Ú$test_case04_bogus_variable_type_infoz0TestLiftObj.test_case04_bogus_variable_type_infoô  sØ   € ð	ð 	ð 	õ ŒH�Y�Y�YÑÔˆÝ�C‰yŒyˆØ×Ò�vÔ1Ñ2Ô2ð 	°fØˆD�‰GŒGˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠØ?Ý�Ô Ñ!Ô!ñ	ô 	ð 	ð 	ð 	ó   ÁA Á A$Á'A$c                 ó   — d„ }t          j        g d¢¦  «        }t          |¦  «        }|                      t          ¦  «        5 } ||¦  «        }d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                 ó`   — t          d¬¦  «        5  | dz   }d d d ¦  «         n# 1 swxY w Y   |S )Nr  ©r  y              ð?rò   r4  s     r*   rô   z4TestLiftObj.test_case05_bogus_type_info.<locals>.foo  sx   € õ ! <Ð0Ñ0Ô0ð ð Ø˜‘G�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àˆHó   ‘#£'ª'r%  zXcan't unbox array from PyObject into native value.  The object maybe of a different type)r   r=  r   r´   Ú	TypeErrorrµ   r¶   r·   )rf   rô   r<   rL  r¹   r¥   s         r*   Útest_case05_bogus_type_infoz'TestLiftObj.test_case05_bogus_type_info  s×   € ð	ð 	ð 	õ ŒH�Y�Y�YÑÔˆÝ�C‰yŒyˆØ×Ò�yÑ)Ô)ð 	¨VØ�$�q‘'”'ˆCð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�Šð6å�Ô Ñ!Ô!ñ	
ô 	
ð 	
ð 	
ð 	
ó   ÁAÁAÁ"Ac                 óþ   — d„ }|                       t          j        ¦  «        5 } t          |¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   d}|                      t          |j        ¦  «        |¦  «         d S )Nc                 ó¼   — t          ¦   «         5  t          ¦   «         5  t          | ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   | S rS   r3  r;   s    r*   rô   z3TestLiftObj.test_case06_double_objmode.<locals>.foo  sØ   € õ !Ñ"Ô"ð !ð !å(Ñ*Ô*ð !ð !Ý˜a™œ˜ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð ˆHs.   �Až:®Aº>	¾AÁ>	ÁAÁAÁArù   z@During: resolving callee type: type\(ObjModeLiftedWith\(<.*>\)\))r´   r   r°   r   ÚassertRegexr¶   r·   )rf   rô   r¹   Úpats       r*   Útest_case06_double_objmodez&TestLiftObj.test_case06_double_objmode  s½   € ð	ð 	ð 	ð ×Ò�vÔ1Ñ2Ô2ð 	°fØ�D�‰IŒI�c‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð4ˆà×Ò�˜VÔ-Ñ.Ô.°Ñ4Ô4Ð4Ð4Ð4s   £AÁAÁAc                 óZ  — d„ }t          j        g d¢¦  «        }t          |¦  «        }|                      t          j        ¦  «        5 } ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      d|¦  «         |                      d|¦  «         d S )Nc                 ód   — t          ¦   «         5  d| i}d}d d d ¦  «         n# 1 swxY w Y   | ||fS )Nr  r&  rò   )r<   ÚtÚus      r*   rô   z6TestLiftObj.test_case07_mystery_key_error.<locals>.foo+  s~   € Ý Ñ"Ô"ð ð Ø˜!�H�Ø�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �a˜�7ˆNs   �"¢&©&r%  z;Missing type annotation on outgoing variable(s): ['t', 'u']z9Example code: with objmode(t='<add_type_as_string_here>'))	r   r=  r   r´   r   r°   r¶   r·   rµ   )rf   rô   r<   rL  r¹   Úexstrs         r*   Útest_case07_mystery_key_errorz)TestLiftObj.test_case07_mystery_key_error)  s  € ð	ð 	ð 	õ
 ŒH�Y�Y�YÑÔˆÝ�C‰yŒyˆà×Ò�vÔ1Ñ2Ô2ð 	°fØˆD�‰GŒGˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ �FÔ$Ñ%Ô%ˆØ�Šð #àñ	ô 	ð 	ð 	�Šð 8àñ	ô 	ð 	ð 	ð 	rN  c                 óB  ‡— t          ¦   «         Šˆfd„}t          j        g d¢¦  «        }t          |¦  «        }|                      t
          ¦  «        5 } ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          |j        ¦  «        d¦  «         d S )Nc                 óô   •— t          t          | ¦  «        ¦  «        D ]Y}t          ¦   «         5  t          |¦  «        }| |         }|‰|<   t	          ‰d         ¦  «         d d d ¦  «         n# 1 swxY w Y   ŒZ| S )NÚ2)rD   rd   r   r¶   r2   )r<   rF   rI  ÚvÚds       €r*   rô   z8TestLiftObj.test_case08_raise_from_external.<locals>.fooC  s³   ø€ Ý�3˜q™6œ6‘]”]ð "ð "�Ý$Ñ&Ô&ð "ð "Ý˜A™œ�AØ˜!œ�AØ�A�a‘DÝ˜!˜Cœ&‘M”M�Mð	"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "øð
 ˆHs   ®2A,Á,A0	Á3A0	r%  z'2')	Údictr   r=  r   r´   ÚKeyErrorre   r¶   r·   )rf   rô   r<   rL  r¹   re  s        @r*   Útest_case08_raise_from_externalz+TestLiftObj.test_case08_raise_from_external>  sá   ø€ õ ‰FŒFˆð	ð 	ð 	ð 	ð 	õ ŒH�Y�Y�YÑÔˆÝ�C‰yŒyˆØ×Ò�xÑ(Ô(ð 	¨FØˆD�‰GŒGˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò�˜VÔ-Ñ.Ô.°Ñ6Ô6Ð6Ð6Ð6s   ÁA,Á,A0Á3A0c                 ó*  — d„ }t          j        g d¢¦  «        }t          |¦  «        }|                      t          j        ¦  «        5 } ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                 óV   — t          ¦   «         5  t          ¦   «         ‚# 1 swxY w Y   | S rS   )r   Ú
ValueErrorr;   s    r*   rô   z3TestLiftObj.test_case09_explicit_raise.<locals>.fooS  sO   € Ý Ñ"Ô"ð #ð #Ý ‘l”lÐ"ð#ð #ð #ð #øøøð #ð #ð #ð #àˆHs   �ž"¥"r%  zBunsupported control flow due to raise statements inside with block)	r   r=  r   r´   r   r³   rµ   r¶   r·   rK  s        r*   Útest_case09_explicit_raisez&TestLiftObj.test_case09_explicit_raiseR  sÚ   € ð	ð 	ð 	õ
 ŒH�Y�Y�YÑÔˆÝ�C‰yŒyˆØ×Ò�vÔ3Ñ4Ô4ð 	¸ØˆD�‰GŒGˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�Šðå�Ô Ñ!Ô!ñ	
ô 	
ð 	
ð 	
ð 	
rN  c                 ód   — d„ }t          j        g d¢¦  «        }|                      ||¦  «         d S )Nc                 ó´   — t          d¬¦  «        5  g d¢}d d d ¦  «         n# 1 swxY w Y   t          ¦   «         5  d|d<   d d d ¦  «         n# 1 swxY w Y   |S rB  rò   r?   s     r*   rô   z;TestLiftObj.test_case10_mutate_across_contexts.<locals>.fooe  rC  rD  r%  r<  r>  s      r*   Ú"test_case10_mutate_across_contextsz.TestLiftObj.test_case10_mutate_across_contextsb  sB   € ð	ð 	ð 	õ ŒH�Y�Y�YÑÔˆØ×+Ò+¨C°Ñ3Ô3Ð3Ð3Ð3r,   c                 ód   — d„ }t          j        g d¢¦  «        }|                      ||¦  «         d S )Nc                 óÜ   — t          d¬¦  «        5  t          j        g d¢d¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          ¦   «         5  d|d<   d d d ¦  «         n# 1 swxY w Y   |S )Núint64[:]r  r%  r  r  r9   rs   )r   r   r*  r?   s     r*   rô   zATestLiftObj.test_case10_mutate_array_across_contexts.<locals>.fooq  sñ   € Ý  :Ð.Ñ.Ô.ð 9ð 9Ý”J˜y˜y˜y°Ð8Ñ8Ô8�ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9å Ñ"Ô"ð ð à��!‘ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˆHs   ‘6¶:½:ÁA!Á!A%Á(A%r%  r<  r>  s      r*   Ú(test_case10_mutate_array_across_contextsz4TestLiftObj.test_case10_mutate_array_across_contextso  sB   € ð	ð 	ð 	õ ŒH�Y�Y�YÑÔˆØ×+Ò+¨C°Ñ3Ô3Ð3Ð3Ð3r,   c                 ó   — d„ }t          j        g d¢¦  «        }t          |¦  «        }|                      t          ¦  «        5 } ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                 óX   — t          ¦   «         5  d„ }d d d ¦  «         n# 1 swxY w Y   | S )Nc                 ó   — | dz   S rñ   r4   r  s    r*   rï   zLTestLiftObj.test_case11_define_function_in_context.<locals>.foo.<locals>.bar€  s   € Ø˜q™5�Lr,   rò   )r<   rï   s     r*   rô   z?TestLiftObj.test_case11_define_function_in_context.<locals>.foo~  sy   € Ý Ñ"Ô"ð !ð !ð!ð !ð !ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð ˆHs   �Ÿ#¦#r%  z global name 'bar' is not defined)r   r=  r   r´   Ú	NameErrorrµ   r¶   r·   rK  s        r*   Ú&test_case11_define_function_in_contextz2TestLiftObj.test_case11_define_function_in_context|  sÕ   € ð	ð 	ð 	õ ŒH�Y�Y�YÑÔˆÝ�C‰yŒyˆØ×Ò�yÑ)Ô)ð 	¨VØˆD�‰GŒGˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠØ.Ý�Ô Ñ!Ô!ñ	
ô 	
ð 	
ð 	
ð 	
rU  c                 óp   ‡— d„ Šˆfd„}t          j        g d¢¦  «        }|                      ||¦  «         d S )Nc                 ó   — | dz   S rñ   r4   r  s    r*   rï   z>TestLiftObj.test_case12_njit_inside_a_objmode_ctx.<locals>.bar‘  s   € Ø�q‘5ˆLr,   c                 ó´   •— t          d¬¦  «        5   t          ‰¦  «        | ¦  «                             d¦  «        }d d d ¦  «         n# 1 swxY w Y   | |z   S )Nrr  r  r  )r   r   r  ©r<   r@   rï   s     €r*   rô   z>TestLiftObj.test_case12_njit_inside_a_objmode_ctx.<locals>.foo”  s“   ø€ Ý  :Ð.Ñ.Ô.ð 1ð 1Ø•D˜‘I”I˜a‘L”L×'Ò'¨Ñ0Ô0�ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1à�q‘5ˆLs   ’,A
Á
AÁAr%  r<  )rf   rô   r<   rï   s      @r*   Ú%test_case12_njit_inside_a_objmode_ctxz1TestLiftObj.test_case12_njit_inside_a_objmode_ctx�  s\   ø€ ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	õ
 ŒH�Y�Y�YÑÔˆØ×+Ò+¨C°Ñ3Ô3Ð3Ð3Ð3r,   c                 ó²   — d„ } |t          j        g d¢¦  «        ¦  «        }t           j                             t          j        g d¢¦  «        |¦  «         d S )Nc                 ód   — t          d¬¦  «        5  | dz  } | cd d d ¦  «         S # 1 swxY w Y   d S )Nrr  r;   r7   rò   r;   s    r*   rô   zCTestLiftObj.test_case14_return_direct_from_objmode_ctx.<locals>.foo�  sƒ   € Ý  :Ð.Ñ.Ô.ð ð Ø�Q‘�Øðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s   ‘%¥)¬)r%  )rs   r&  r$  )r   r=  ÚtestingÚassert_array_equal)rf   rô   Úresults      r*   Ú*test_case14_return_direct_from_objmode_ctxz6TestLiftObj.test_case14_return_direct_from_objmode_ctxœ  s\   € ð	ð 	ð 	ð
 �•R”X˜i˜i˜iÑ(Ô(Ñ)Ô)ˆÝ
Œ
×%Ò%¥b¤h¨y¨y¨yÑ&9Ô&9¸6ÑBÔBÐBÐBÐBr,   c                 ód   — d„ }t          j        g d¢¦  «        }|                      ||¦  «         d S )Nc                 ó.   ‡— dŠˆfd„} || ¦  «        dz   S )Nr9   c                 ó€   •— t          d¬¦  «        5  t          | ¦  «         | ‰z   cd d d ¦  «         S # 1 swxY w Y   d S )Nrr  r;   r3  )r<   Újs    €r*   rï   zHTestLiftObj.test_case15_close_over_objmode_ctx.<locals>.foo.<locals>.bar¬  sŠ   ø€ Ý$ zÐ2Ñ2Ô2ð !ð !Ý˜!‘H”H�HØ˜q™5ð!ð !ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !s   ’3³7º7rs   r4   )r<   rï   r‡  s     @r*   rô   z;TestLiftObj.test_case15_close_over_objmode_ctx.<locals>.foo©  s5   ø€ ØˆAð!ð !ð !ð !ð !ð �3�q‘6”6˜A‘:Ðr,   r%  r<  r>  s      r*   Ú"test_case15_close_over_objmode_ctxz.TestLiftObj.test_case15_close_over_objmode_ctx¦  sB   € ð	ð 	ð 	õ ŒH�Y�Y�YÑÔˆØ×+Ò+¨C°Ñ3Ô3Ð3Ð3Ð3r,   c                 óv   ‡— ddl mŠ ˆfd„}t          j        g d¢¦  «        }|                      ||¦  «         d S )Nr   )Úsparsec                 óÔ   •— t          d¬¦  «        5  t          | ¦  «         ‰                     | ¦  «        }t          j        |d         ¦  «        }d d d ¦  «         n# 1 swxY w Y   |S )Nr  rH  )r   r   )r   r2   Ú
csr_matrixr   r  )r<   ÚspxrI  Úsps      €r*   rô   z>TestLiftObj.test_case16_scipy_call_in_objmode_ctx.<locals>.foo¸  s¡   ø€ Ý  7Ð+Ñ+Ô+ð (ð (Ý�a‘”�Ø—m’m AÑ&Ô&�õ ”H˜S œYÑ'Ô'�ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð ˆHs   ’?AÁA!Á$A!r%  )ÚscipyrŠ  r   r=  rë   )rf   rô   r<   rŽ  s      @r*   Ú%test_case16_scipy_call_in_objmode_ctxz1TestLiftObj.test_case16_scipy_call_in_objmode_ctx´  s_   ø€ à&Ð&Ð&Ð&Ð&Ð&ð	ð 	ð 	ð 	ð 	õ ŒH�Y�Y�YÑÔˆØ×+Ò+¨C°Ñ3Ô3Ð3Ð3Ð3r,   c                 óv   ‡‡— dd l Šˆˆfd„Št          j        g d¢¦  «        }|                      ‰|¦  «         d S )Nr   c                 ó€   •— t          ¦   «         5  ‰                     ‰¦  «         d d d ¦  «         d S # 1 swxY w Y   d S rS   )r   Údis)r<   r“  rô   s    €€r*   rô   z7TestLiftObj.test_case17_print_own_bytecode.<locals>.fooÇ  s‚   ø€ Ý Ñ"Ô"ð ð Ø—’˜‘”�ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   �3³7º7r%  )r“  r   r=  rë   )rf   r<   r“  rô   s     @@r*   Útest_case17_print_own_bytecodez*TestLiftObj.test_case17_print_own_bytecodeÄ  s\   øø€ Øˆ
ˆ
ˆ
ð	ð 	ð 	ð 	ð 	ð 	õ ŒH�Y�Y�YÑÔˆØ×+Ò+¨C°Ñ3Ô3Ð3Ð3Ð3r,   c                 ó†   — d„ }t          j        g d¢¦  «        }t          d„ ¦  «        }|                      |||¦  «         d S )Nc                 óv   — t          ¦   «         5   | |d         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S rc   rò   )r&   r<   s     r*   rô   zCTestLiftObj.test_case18_njitfunc_passed_to_objmode_ctx.<locals>.fooÏ  sƒ   € Ý Ñ"Ô"ð ð Ø��Q�q”T‘
”
�
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   �.®2µ2r%  c                 ó   — | dz   S )NrV   r4   rQ  s    r*   ú<lambda>zHTestLiftObj.test_case18_njitfunc_passed_to_objmode_ctx.<locals>.<lambda>Ô  s
   € ˜A ™E€ r,   )r   r=  r   rë   )rf   rô   r<   rÃ   s       r*   Ú*test_case18_njitfunc_passed_to_objmode_ctxz6TestLiftObj.test_case18_njitfunc_passed_to_objmode_ctxÍ  sS   € ð	ð 	ð 	õ ŒH�Y�Y�YÑÔˆÝ�/�/Ñ"Ô"ˆØ×+Ò+¨C°°QÑ7Ô7Ð7Ð7Ð7r,   c                 óH  ‡— ˆfd„Š|                       t          j        t          j        f¦  «        5 }t	          ‰¦  «        } |t          j        g d¢¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   d}|                      |t          |j	        ¦  «        ¦  «         d S )Nc                 óš   •— t          ¦   «         5  | dk    r	 d d d ¦  «         dS 	 d d d ¦  «         n# 1 swxY w Y    ‰| dz
  ¦  «        }|S )Nr   é   r7   rò   )r<   Úretrô   s     €r*   rô   z.TestLiftObj.test_case19_recursion.<locals>.fooÝ  s³   ø€ Ý Ñ"Ô"ð ð Ø˜’6�6Øðð ð ñ ô ð ð ð Øðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �#�a˜!‘e‘*”*ˆCØˆJs   �2²6¹6r%  zUntyped global name 'foo')
r´   r   r°   r³   r   r   r=  rµ   r¶   r·   )rf   r¹   rL  rº   rô   s       @r*   Útest_case19_recursionz!TestLiftObj.test_case19_recursion×  sä   ø€ ð	ð 	ð 	ð 	ð 	ð ×Ò¥Ô 2µFÔ4HÐIÑJÔJð 	&ÈfÝ˜‘9”9ˆDØˆD•”˜)˜)˜)Ñ$Ô$Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð *ˆØ�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1s   ²/A-Á-A1Á4A1c                 ód   — d„ }t          j        g d¢¦  «        }|                      ||¦  «         d S )Nc                 ó  — t           j                             d¦  «         t           j                             ¦   «         }t	          d¬¦  «        5  t           j                             ¦   «         }d d d ¦  «         n# 1 swxY w Y   | |z   |z   S ©Nr   r  rQ  ©r   ÚrandomÚseedÚrandr   ©r<   r@   r  s      r*   rô   z1TestLiftObj.test_case20_rng_works_ok.<locals>.fooë  s®   € ÝŒI�NŠN˜1ÑÔÐÝ”	—’Ñ Ô ˆAÝ  9Ð-Ñ-Ô-ð %ð %å”I—N’NÑ$Ô$�ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð �q‘5˜1‘9Ðs   ÁA9Á9A=Â A=r%  r<  r>  s      r*   Útest_case20_rng_works_okz$TestLiftObj.test_case20_rng_works_oké  sB   € ð	ð 	ð 	õ ŒH�Y�Y�YÑÔˆØ×+Ò+¨C°Ñ3Ô3Ð3Ð3Ð3r,   c                 ód   — d„ }t          j        g d¢¦  «        }|                      ||¦  «         d S )Nc                 óV  — t           j                             d¦  «         t           j                             ¦   «         }t	          d¬¦  «        5  t           j                             d¦  «         t           j                             ¦   «         }d d d ¦  «         n# 1 swxY w Y   | |z   |z   S r¡  r¢  r¦  s      r*   rô   z6TestLiftObj.test_case21_rng_seed_works_ok.<locals>.foo÷  sÂ   € ÝŒI�NŠN˜1ÑÔÐÝ”	—’Ñ Ô ˆAÝ  9Ð-Ñ-Ô-ð %ð %å”	—’˜qÑ!Ô!Ð!Ý”I—N’NÑ$Ô$�ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð �q‘5˜1‘9Ðs   Á>BÂBÂBr%  r<  r>  s      r*   Útest_case21_rng_seed_works_okz)TestLiftObj.test_case21_rng_seed_works_okö  sB   € ð	ð 	ð 	õ ŒH�Y�Y�YÑÔˆØ×+Ò+¨C°Ñ3Ô3Ð3Ð3Ð3r,   c                 óÒ   ‡— d„ Št           ˆfd„¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         |                      t          t
          ¦  «         d S )Nc                 ó‚   — t          j        t          t          |                      ¦   «         ¦  «        ¦  «        ¦  «        S rS   )r   r*  ÚlistÚreversedÚtolistr;   s    r*   rï   z'TestLiftObj.test_example01.<locals>.bar  s*   € Ý”:�d¥8¨A¯HªH©J¬JÑ#7Ô#7Ñ8Ô8Ñ9Ô9Ð9r,   c                  óœ   •— t          j        d¦  «        } t          d¬¦  «        5  |  ‰| ¦  «        z   }d d d ¦  «         n# 1 swxY w Y   |S )NrV   zintp[:]r  )r   r  r   r|  s     €r*   rô   z'TestLiftObj.test_example01.<locals>.foo  sŽ   ø€ å”	˜!‘”ˆAÝ˜9Ð%Ñ%Ô%ð ð à˜˜˜A™œ‘J�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˆHs   ¦AÁAÁA)r   rá   Úpy_funcÚassertIsr   r   )rf   rô   rï   s     @r*   Útest_example01zTestLiftObj.test_example01  sw   ø€ ð	:ð 	:ð 	:õ 
ð	ð 	ð 	ð 	ñ 
Œð	ð 	×Ò  ¡¤ s§{¢{¡}¤}Ñ5Ô5Ð5Ø�Š•g�Ñ/Ô/Ð/Ð/Ð/r,   c                 ó¨   ‡— d„ Št          ‰¦  «        d„ ¦   «         }t          j        ˆfd„¦   «         }|                       |¦   «         d¦  «         d S )Nc                 ó   — d S rS   r4   )Úss    r*   rô   z1TestLiftObj.test_objmode_in_overload.<locals>.foo  ó   € ØˆDr,   c                 ó   — d„ }|S )Nc                 ó`   — t          d¬¦  «        5  | dz   }d d d ¦  «         n# 1 swxY w Y   |S )Nr/  ©r“   r&  ©r   )r¶  r“   s     r*   ÚimplzHTestLiftObj.test_objmode_in_overload.<locals>.foo_overload.<locals>.impl  sv   € Ý Ð(Ñ(Ô(ð  ð  Ø˜a™%�Cð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  à�
rR  r4   )r¶  r¼  s     r*   Úfoo_overloadz:TestLiftObj.test_objmode_in_overload.<locals>.foo_overload  s   € ðð ð ð ˆKr,   c                  ó   •—  ‰ d¦  «        S rñ   r4   ©rô   s   €r*   Úfz/TestLiftObj.test_objmode_in_overload.<locals>.f  s   ø€ à�3�q‘6”6ˆMr,   r$  )r   r÷   r   re   )rf   r½  rÀ  rô   s      @r*   Útest_objmode_in_overloadz$TestLiftObj.test_objmode_in_overload  s~   ø€ ð	ð 	ð 	õ 
�#‰Œð	ð 	ñ 
Œð	õ 
Œð	ð 	ð 	ð 	ñ 
Œð	ð 	×Ò˜˜™œ˜eÑ$Ô$Ð$Ð$Ð$r,   c                 óœ   — t           d„ ¦   «         } |¦   «         }|                      |t          ¦  «         |                      |d¦  «         d S )Nc                  ód   — t          t          ¬¦  «        5  d} d d d ¦  «         n# 1 swxY w Y   | S ©N©Úvalçš™™™™™(@)r   Úgv_typerÅ  s    r*   Ú
global_varz8TestLiftObj.test_objmode_gv_variable.<locals>.global_var&  sr   € å�WÐ%Ñ%Ô%ð ð Ø�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àˆJó   –%¥)¬)é   )r   ÚassertIsInstancer  re   )rf   rÉ  r�  s      r*   Útest_objmode_gv_variablez$TestLiftObj.test_objmode_gv_variable%  sZ   € Ý	ð	ð 	ñ 
Œð	ð
 ˆj‰lŒlˆà×Ò˜c¥3Ñ'Ô'Ð'Ø×Ò˜˜bÑ!Ô!Ð!Ð!Ð!r,   c                 ó¬   — t           d„ ¦   «         }|                      t          j        d¦  «        5   |¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ód   — t          t          ¬¦  «        5  d} d d d ¦  «         n# 1 swxY w Y   | S )NrÅ  rù   )r   Úgv_type2rÅ  s    r*   rÉ  z>TestLiftObj.test_objmode_gv_variable_error.<locals>.global_var2  sr   € å�XÐ&Ñ&Ô&ð ð Ø�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àˆJrÊ  zHError handling objmode argument 'val'. Global 'gv_type2' is not defined.©r   ÚassertRaisesRegexr   r³   )rf   rÉ  s     r*   Útest_objmode_gv_variable_errorz*TestLiftObj.test_objmode_gv_variable_error1  s¯   € Ý	ð	ð 	ñ 
Œð	ð
 ×#Ò#ÝÔ ð2ñ
ô 
ð 	ð 	ð
 ˆJ‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ó   ±A	Á	AÁAc                 ó@  — t           d„ ¦   «         }t           d„ ¦   «         }||fD ]x}|                      t          |¦  «        ¬¦  «        5   |¦   «         }|                      |t          ¦  «         |                      |d¦  «         d d d ¦  «         n# 1 swxY w Y   Œyd S )Nc                  ón   — t          t          j        ¬¦  «        5  d} d d d ¦  «         n# 1 swxY w Y   | S rÄ  )r   r   r/  rÅ  s    r*   Úmodattr1z6TestLiftObj.test_objmode_gv_mod_attr.<locals>.modattr1@  st   € å�UœZÐ(Ñ(Ô(ð ð Ø�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àˆJó   ›*ª.±.c                  óx   — t          t          j        j        ¬¦  «        5  d} d d d ¦  «         n# 1 swxY w Y   | S rÄ  )r   r÷   r   r/  rÅ  s    r*   Úmodattr2z6TestLiftObj.test_objmode_gv_mod_attr.<locals>.modattr2F  sw   € å�Uœ[Ô-Ð.Ñ.Ô.ð ð Ø�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àˆJs    /¯3¶3)rÃ   rË  )r   ÚsubTestr¶   rÌ  r  re   )rf   r×  rÚ  rÃ   r�  s        r*   Útest_objmode_gv_mod_attrz$TestLiftObj.test_objmode_gv_mod_attr?  sý   € Ý	ð	ð 	ñ 
Œð	õ
 
ð	ð 	ñ 
Œð	ð
 ˜XÐ&ð 	*ð 	*ˆBØ—’¥ R¡¤�Ñ)Ô)ð *ð *Ø�b‘d”d�à×%Ò% c­3Ñ/Ô/Ð/Ø× Ò   bÑ)Ô)Ð)ð	*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *øð	*ð 	*s   Á
<BÂB	ÂB	c                 ó¬   — t           d„ ¦   «         }|                      t          j        d¦  «        5   |¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ón   — t          t          j        ¬¦  «        5  d} d d d ¦  «         n# 1 swxY w Y   | S rÄ  )r   r   ÚTHIS_DOES_NOT_EXISTrÅ  s    r*   Úmoderrorz<TestLiftObj.test_objmode_gv_mod_attr_error.<locals>.moderrorT  su   € å�UÔ6Ð7Ñ7Ô7ð ð Ø�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àˆJrØ  zQError handling objmode argument 'val'. Getattr cannot be resolved at compile-timerÑ  ©rf   rà  s     r*   Útest_objmode_gv_mod_attr_errorz*TestLiftObj.test_objmode_gv_mod_attr_errorS  s¯   € Ý	ð	ð 	ñ 
Œð	ð ×#Ò#ÝÔ ð:ñ
ô 
ð 	ð 	ð
 ˆH‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	rÔ  c                 ó¬   — t           d„ ¦   «         }|                      t          j        d¦  «        5   |¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ó¬   — t          t          j        t          j        t          j        ¬¦  «        5  d} d}d}d d d ¦  «         n# 1 swxY w Y   t
          S )N©Úv1Úv2Úv3rÇ  )r   r   r/  rß  Úfloat32rÆ  rå  s      r*   rà  zETestLiftObj.test_objmode_gv_mod_attr_error_multiple.<locals>.moderrora  s�   € å�EœJ­5Ô+DÝ!œMð+ñ +ô +ð ð à�Ø�Ø�ð	ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ
 ˆJs   ±AÁAÁAzPError handling objmode argument 'v2'. Getattr cannot be resolved at compile-timerÑ  rá  s     r*   Ú'test_objmode_gv_mod_attr_error_multiplez3TestLiftObj.test_objmode_gv_mod_attr_error_multiple`  s¯   € Ý	ð	ð 	ñ 
Œð	ð ×#Ò#ÝÔ ð:ñ
ô 
ð 	ð 	ð
 ˆH‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	rÔ  c                 óü   ‡— d„ Št          ‰¦  «        d„ ¦   «         }t          ˆfd„¦   «         }|                       |¦   «         t          j        d¦  «                             t          j        ¦  «        ¦  «         d S )Nc                  ó   — d S rS   r4   r4   r,   r*   rô   z>TestLiftObj.test_objmode_closure_type_in_overload.<locals>.fooq  r·  r,   c                  ó:   ‡— t           j        d d …         Šˆfd„} | S )Nc                  óº   •— t          ‰¬¦  «        5  t          j        d¦  «                             t          j        ¦  «        } d d d ¦  «         n# 1 swxY w Y   | S ©Nrº  r9   ©r   r   r  r  r  ©r“   Ú	shrubberys    €r*   r¼  zUTestLiftObj.test_objmode_closure_type_in_overload.<locals>.foo_overload.<locals>.implw  ó‹   ø€ Ý Ð+Ñ+Ô+ð ;ð ;Ýœ) B™-œ-×.Ò.­r¬zÑ:Ô:�Cð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;à�
ó   ’2AÁAÁA©r   r  ©r¼  rò  s    @r*   r½  zGTestLiftObj.test_objmode_closure_type_in_overload.<locals>.foo_overloadt  s3   ø€ åœ a a aÔ(ˆIðð ð ð ð ð ˆKr,   c                  ó   •—  ‰ ¦   «         S rS   r4   r¿  s   €r*   rï   z>TestLiftObj.test_objmode_closure_type_in_overload.<locals>.bar}  ó   ø€ à�3‘5”5ˆLr,   r9   )r   r   rá   r   r  r  r  ©rf   r½  rï   rô   s      @r*   Ú%test_objmode_closure_type_in_overloadz1TestLiftObj.test_objmode_closure_type_in_overloadp  s”   ø€ ð	ð 	ð 	õ 
�#‰Œð	ð 	ñ 
Œð	õ 
ð	ð 	ð 	ð 	ñ 
Œð	ð 	×Ò  ¡¤¥r¤y°¡}¤}×';Ò';½B¼JÑ'GÔ'GÑHÔHÐHÐHÐHr,   c                 óè   ‡— d„ Št          ‰¦  «        d„ ¦   «         }t          ˆfd„¦   «         }|                      t          j        d¦  «        5   |¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ó   — d S rS   r4   r4   r,   r*   rô   zDTestLiftObj.test_objmode_closure_type_in_overload_error.<locals>.foo„  r·  r,   c                  ó<   ‡— t           j        d d …         Šˆfd„} ‹| S )Nc                  óº   •— t          ‰¬¦  «        5  t          j        d¦  «                             t          j        ¦  «        } d d d ¦  «         n# 1 swxY w Y   | S rï  rð  rñ  s    €r*   r¼  z[TestLiftObj.test_objmode_closure_type_in_overload_error.<locals>.foo_overload.<locals>.implŠ  ró  rô  rõ  rö  s    @r*   r½  zMTestLiftObj.test_objmode_closure_type_in_overload_error.<locals>.foo_overload‡  s6   ø€ åœ a a aÔ(ˆIðð ð ð ð ð ØˆKr,   c                  ó   •—  ‰ ¦   «         S rS   r4   r¿  s   €r*   rï   zDTestLiftObj.test_objmode_closure_type_in_overload_error.<locals>.bar“  rø  r,   zIError handling objmode argument 'out'. Freevar 'shrubbery' is not defined)r   r   rÒ  r   r°   rù  s      @r*   Ú+test_objmode_closure_type_in_overload_errorz7TestLiftObj.test_objmode_closure_type_in_overload_errorƒ  sì   ø€ ð	ð 	ð 	õ 
�#‰Œð		ð 		ñ 
Œð		õ 
ð	ð 	ð 	ð 	ñ 
Œð	ð ×#Ò#ÝÔð2ñ
ô 
ð 	ð 	ð
 ˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÁA'Á'A+Á.A+c                 ó¬   — t           d„ ¦   «         }|                      t          j        d¦  «        5   |¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ód   — t          d¬¦  «        5  d} d d d ¦  «         n# 1 swxY w Y   t          S )Nrs   )Úbadr7   )r   rÆ  rº  s    r*   rà  z6TestLiftObj.test_objmode_invalid_use.<locals>.moderrorŸ  sr   € å˜UÐ#Ñ#Ô#ð ð Ø�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð åˆJs   ‘  $§$z¤Error handling objmode argument 'bad'. The value must be a compile-time constant either as a non-local variable or a getattr expression that refers to a Numba type.rÑ  rá  s     r*   Útest_objmode_invalid_usez$TestLiftObj.test_objmode_invalid_usež  s¯   € Ý	ð	ð 	ñ 
Œð	ð ×#Ò#ÝÔ ð'ñ
ô 
ð 	ð 	ð ˆH‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	rÔ  c                 óR  ‡— t           j        d d …         Št          ˆfd„¦   «         } |¦   «         \  }}}|                      |d¦  «         |                      |d¦  «         |                      |t	          j        d¦  «                             t          j        ¦  «        ¦  «         d S )Nc                  óÖ   •— t          dt          ‰¬¦  «        5  d} | }t          j        d¦  «                             t          j        ¦  «        }d d d ¦  «         n# 1 swxY w Y   | ||fS )Nr  )Út1Út2Út3ç    :(ArV   )r   rÈ  r   r  r  Úint32)r  r  r	  Úarray_tys      €r*   rô   z5TestLiftObj.test_objmode_multi_type_args.<locals>.foo¯  s¤   ø€ õ
 ˜I­'°hÐ?Ñ?Ô?ð 3ð 3Ø�Ø�Ý”Y˜q‘\”\×(Ò(­¬Ñ2Ô2�ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð �r˜2�:Ðs   ™6AÁAÁ"Ar
  i  rV   )r   r  r   rá   r   r  r  )rf   rô   r  r  r	  r  s        @r*   Útest_objmode_multi_type_argsz(TestLiftObj.test_objmode_multi_type_args­  s¨   ø€ Ý”;˜q˜q˜q”>ˆÝ	ð	ð 	ð 	ð 	ñ 
Œð	ð �S‘U”U‰
ˆˆB�Ø×Ò  HÑ-Ô-Ð-Ø×Ò  FÑ+Ô+Ð+Ø×Ò ¥B¤I¨a¡L¤L×$7Ò$7½¼Ñ$AÔ$AÑBÔBÐBÐBÐBr,   c                 ó.  ‡‡‡	— dt           j        fdt           j        d d …         fg}t          |¦  «         G d„ dt          ¦  «        ¦   «         Šd} ‰|¦  «        Š	d„ Št          ‰¦  «        ˆˆ	fd„¦   «         }t          ˆfd„¦   «         } |¦   «         }|                      |‰¦  «         |                      | 	                    d	d
¦  «        d¦  «         t          j        dt          j        ¬¦  «        d
z   }|                      |j        |¦  «         d S )NÚvaluer=  c                   óF   — e Zd Zd„ Zed„ ¦   «         Zd„ Zed„ ¦   «         ZdS )ú.TestLiftObj.test_objmode_jitclass.<locals>.Bagc                 ó^   — || _         t          j        |t          j        ¬¦  «        | _        d S )Nr  )r  r   Úzerosré  r=  )rf   r  s     r*   Ú__init__z7TestLiftObj.test_objmode_jitclass.<locals>.Bag.__init__Ç  s%   € Ø"�”
ÝœX eµ2´:Ð>Ñ>Ô>�”
�
�
r,   c                 ó   — | j         j        S rS   )r=  Úsizern   s    r*   r  z3TestLiftObj.test_objmode_jitclass.<locals>.Bag.sizeË  s   € à”z”Ð&r,   c                 óh   — t          | j        ¦  «        D ]}| j        |xx         |z  cc<   Œ| j        S rS   )rD   r  r=  )rf   rÆ  rF   s      r*   Ú	incrementz8TestLiftObj.test_objmode_jitclass.<locals>.Bag.incrementÏ  s=   € Ý˜tœyÑ)Ô)ð )ð )�AØ”J˜q�M�M”M SÑ(�M�M‘M�MØ”zÐ!r,   c                 ó   — | |z   S rS   r4   r?   s     r*   Úaddz2TestLiftObj.test_objmode_jitclass.<locals>.Bag.addÔ  s   € à˜1‘u�r,   N)	r{   r|   r}   r  Úpropertyr  r  Ústaticmethodr  r4   r,   r*   ÚBagr  Å  sh   € € € € € ð?ð ?ð ?ð ð'ð 'ñ ŒXð'ð"ð "ð "ð
 ðð ñ Œ\ðð ð r,   r  é   c                  ó   — d S rS   r4   r4   r,   r*   rô   z.TestLiftObj.test_objmode_jitclass.<locals>.fooÛ  r·  r,   c                  ó$   •‡— ‰j         Šˆˆfd„} | S )Nc                  ó˜   •— t          ‰¬¦  «        5   ‰d¦  «        } |                      d¦  «         d d d ¦  «         n# 1 swxY w Y   | S )Nrº  rù   r&  )r   r  )r“   r  rò  s    €€r*   r¼  zETestLiftObj.test_objmode_jitclass.<locals>.foo_overload.<locals>.implá  s�   ø€ Ý Ð+Ñ+Ô+ð %ð %Ø˜#˜c™(œ(�CØ—M’M !Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð �
s   ’!?¿AÁA)Ú_numba_type_)r¼  rò  r  Úmybags    @€€r*   r½  z7TestLiftObj.test_objmode_jitclass.<locals>.foo_overloadÞ  s1   øø€ àÔ*ˆIðð ð ð ð ð ð
 ˆKr,   c                  ó   •—  ‰ ¦   «         S rS   r4   r¿  s   €r*   rï   z.TestLiftObj.test_objmode_jitclass.<locals>.barè  rø  r,   rs   r&  rV   rù   r  )r   r  ré  r!   Úobjectr   r   rÌ  re   r  r   r  rá   r=  )
rf   ÚspecÚnr½  rï   r  Ú	exp_arrayr  rô   r#  s
          @@@r*   Útest_objmode_jitclassz!TestLiftObj.test_objmode_jitclass¿  s[  øøø€ à•e”kÐ"Ø•e”m A A AÔ&Ð'ð
ˆõ
 
�$‰Œð	ð 	ð 	ð 	ð 	•&ñ 	ô 	ñ 
Œð	ð$ ˆØ��A‘”ˆð	ð 	ð 	õ 
�#‰Œð	ð 	ð 	ð 	ð 	ñ 
Œð	õ 
ð	ð 	ð 	ð 	ñ 
Œð	ð ˆC‰EŒEˆØ×Ò˜a Ñ%Ô%Ð%Ø×Ò˜Ÿš˜q !™œ eÑ,Ô,Ð,Ý”H˜S­¬
Ð3Ñ3Ô3°aÑ7ˆ	Ø×Ò ¤¨Ñ3Ô3Ð3Ð3Ð3r,   c                 ó`   — t          d¬¦  «        5  | dz  }d d d ¦  «         n# 1 swxY w Y   |S ©Nr  ©Úoutputr9   r»  ©r<   r-  s     r*   Úcase_objmode_cachezTestLiftObj.case_objmode_cacheó  sv   € å˜IÐ&Ñ&Ô&ð 	ð 	Ø˜‘VˆFð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	àˆrR  c                 ó   ‡— t          g d¢¦  «        Št          ˆfd„¦   «         }|                      t          j        ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      t          |j        ¦  «        d¦  «         d S )N©r7   rs   r&  r$  rV   c                  ó`   •— t          ‰¬¦  «        5  g d¢} d d d ¦  «         n# 1 swxY w Y   | S )Nrº  r1  r»  )r“   Úret_types    €r*   Útest2z6TestLiftObj.test_objmode_reflected_list.<locals>.test2û  sw   ø€ å˜XÐ&Ñ&Ô&ð &ð &Ø%�o�o�ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &àˆJó   ’#£'ª'z”Objmode context failed. Argument 'out' is declared as an unsupported type: reflected list\(int(32|64)\)<iv=None>. Reflected types are not supported.©r   r   r´   r   r³   rX  r¶   r·   ©rf   r4  r¹   r3  s      @r*   Útest_objmode_reflected_listz'TestLiftObj.test_objmode_reflected_listù  sâ   ø€ Ý˜/˜/˜/Ñ*Ô*ˆÝ	ð	ð 	ð 	ð 	ñ 
Œð	ð
 ×Ò�vÔ3Ñ4Ô4ð 	¸ØˆE‰GŒGˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×ÒÝ�Ô Ñ!Ô!ð3ñ	
ô 	
ð 	
ð 	
ð 	
ó   ÁAÁAÁ"Ac                 ó   ‡— t          h d£¦  «        Št          ˆfd„¦   «         }|                      t          j        ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      t          |j        ¦  «        d¦  «         d S )N¾   r7   rs   r&  r$  rV   c                  ó`   •— t          ‰¬¦  «        5  h d£} d d d ¦  «         n# 1 swxY w Y   | S )N)r‚  r;  r»  )r‚  r3  s    €r*   r4  z5TestLiftObj.test_objmode_reflected_set.<locals>.test2  sw   ø€ å Ð)Ñ)Ô)ð )ð )Ø(˜˜�ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )àˆMr5  z�Objmode context failed. Argument 'result' is declared as an unsupported type: reflected set\(int(32|64)\). Reflected types are not supported.r6  r7  s      @r*   Útest_objmode_reflected_setz&TestLiftObj.test_objmode_reflected_set  sâ   ø€ Ý˜/˜/˜/Ñ*Ô*ˆÝ	ð	ð 	ð 	ð 	ñ 
Œð	ð
 ×Ò�vÔ3Ñ4Ô4ð 	¸ØˆE‰GŒGˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×ÒÝ�Ô Ñ!Ô!ð3ñ	
ô 	
ð 	
ð 	
ð 	
r9  c                 óF  ‡— t          j        t           j        t           j        ¦  «        Št          ˆfd„¦   «         }|                      t          ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      dt          |j	        ¦  «        ¦  «         d S )Nc                  ób   •— t          ‰¬¦  «        5  dddœ} d d d ¦  «         n# 1 swxY w Y   | S )N©Úresr7   rs   )r.   r/   r»  ©rA  r3  s    €r*   Útest4z2TestLiftObj.test_objmode_typed_dict.<locals>.test4  s{   ø€ å˜XÐ&Ñ&Ô&ð 'ð 'Ø AÐ&Ð&�ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'àˆJs   ’$¤(«(zFcan't unbox a <class 'dict'> as a <class 'numba.typed.typeddict.Dict'>)
r   ÚDictTypeÚunicode_typer  r   r´   rS  rµ   r¶   r·   ©rf   rC  r¹   r3  s      @r*   Útest_objmode_typed_dictz#TestLiftObj.test_objmode_typed_dict  sâ   ø€ Ý”>¥%Ô"4µe´kÑBÔBˆÝ	ð	ð 	ð 	ð 	ñ 
Œð	ð
 ×Ò�yÑ)Ô)ð 	¨VØˆE‰GŒGˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�Šð9å�Ô Ñ!Ô!ñ	
ô 	
ð 	
ð 	
ð 	
s   ÁA.Á.A2Á5A2c                 ó0  ‡— t          j        t           j        ¦  «        Št          ˆfd„¦   «         }|                      t
          ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      t          |j        ¦  «        d¦  «         d S )Nc                  ó`   •— t          ‰¬¦  «        5  ddg} d d d ¦  «         n# 1 swxY w Y   | S )Nr@  r7   rs   r»  rB  s    €r*   rC  z2TestLiftObj.test_objmode_typed_list.<locals>.test4/  sw   ø€ å˜XÐ&Ñ&Ô&ð ð Ø˜!�f�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àˆJr5  zLcan't unbox a <class 'list'> as a (<class ')?numba.typed.typedlist.List('>)?)	r   ÚListTyper  r   r´   rS  rX  r¶   r·   rF  s      @r*   Útest_objmode_typed_listz#TestLiftObj.test_objmode_typed_list-  sà   ø€ Ý”>¥%¤+Ñ.Ô.ˆÝ	ð	ð 	ð 	ð 	ñ 
Œð	ð
 ×Ò�yÑ)Ô)ð 	¨VØˆE‰GŒGˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×ÒÝ�Ô Ñ!Ô!ð@ñ	
ô 	
ð 	
ð 	
ð 	
s   ÁA#Á#A'Á*A'c                 óö   — t           d„ ¦   «         }t          j        dt          j        ¦  «                             d¦  «        }|                     |¦  «        } ||¦  «        }|                      ||¦  «         d S )Nc                 óŠ   — t          j        d¬¦  «        5  |                      d¦  «        }d d d ¦  «         n# 1 swxY w Y   |S )Nz
int64[::1]r  r  )r÷   r   Úviewr?   s     r*   rô   z1TestLiftObj.test_objmode_use_of_view.<locals>.foo@  s~   € å” Ð.Ñ.Ô.ð $ð $Ø—F’F˜7‘O”O�ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $àˆHs   –8¸<¿<r7   r  )r   r   Úonesr  rN  r±  rá   )rf   rô   r  Úexpectedr¥   s        r*   Útest_objmode_use_of_viewz$TestLiftObj.test_objmode_use_of_view=  sx   € õ 
ð	ð 	ñ 
Œð	õ
 ŒG�A•r”xÑ Ô ×%Ò% iÑ0Ô0ˆØ—;’;˜q‘>”>ˆØˆc�!‰fŒfˆØ×Ò ¨#Ñ.Ô.Ð.Ð.Ð.r,   N)?r{   r|   r}   r‚   rÙ   rë   rû   r  r  r  r!  rÇ   r,  r0  r9  r?  rE  rM  rT  rZ  r`  rh  rl  ro  rs  rx  r}  rƒ  ÚunittestÚexpectedFailurerˆ  r   r�  r”  rË   r™  r   r   r   r   r   rž  r§  rª  r³  rÁ  rÍ  rÓ  rÜ  râ  rê  rú  r   r  r  r)  r  r/  r8  r=  rG  rK  rQ  r4   r,   r*   rÍ   rÍ   :  s¹  € € € € € ð<ð <ð <ð!ð !ð !ð5ð 5ð 5ð$@ð @ð @ð&8ð 8ð 8ð 6ð 6ð 6ð@ð @ð @ð&6ð 6ð 6ð #ð6ð 6ñ #Ô"ð6ð6ð 6ð 6ð$ #ð@ð @ñ #Ô"ð@ð"8ð 8ð 8ð$ #ð4ð 4ñ #Ô"ð4ðð ð ð"
ð 
ð 
ð&5ð 5ð 5ð"ð ð ð*7ð 7ð 7ð(
ð 
ð 
ð  #ð
4ð 
4ñ #Ô"ð
4ð4ð 4ð 4ð
ð 
ð 
ð"4ð 4ð 4ðCð Cð Cð Ôð4ð 4ñ Ôð4ð ð4ð 4ñ Ôð4ð4ð 4ð 4ð 'ð8ð 8ñ 'Ô&ð8ð ØØØØð2ð 2ñ Ôñ Ôñ Ôñ Ôñ Ôð
2ð Ôð
4ð 
4ñ Ôð
4ð4ð 4ð 4ð0ð 0ð 0ð %ð %ð %ð$
"ð 
"ð 
"ðð ð ð*ð *ð *ð(ð ð ðð ð ð Ið Ið Ið&ð ð ð6ð ð ðCð Cð Cð$14ð 14ð 14ðh ðð ñ „\ðð

ð 
ð 
ð$
ð 
ð 
ð$
ð 
ð 
ð 
ð 
ð 
ð /ð /ð /ð /ð /r,   rÍ   c                 ó   — | dz  S ©Nr9   r4   r;   s    r*   Úcase_inner_pyfuncrV  L  s   € Øˆr‰6€Mr,   c                 ót   — t          d¬¦  «        5  t          | ¦  «        }d d d ¦  «         n# 1 swxY w Y   |S ©Nr  r,  )r   rV  r.  s     r*   r/  r/  P  sz   € Ý	˜	Ð	"Ñ	"Ô	"ð &ð &Ý" 1Ñ%Ô%ˆð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &à€MrJ  c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestLiftObjCachingc                 óD   — t          j        dt          j        ¦  «         d S rÏ   rÑ   rn   s    r*   r‚   zTestLiftObjCaching.setUpY  rÕ   r,   c                 ó,   — t          j        ¦   «          d S rS   r×   rn   s    r*   rÙ   zTestLiftObjCaching.tearDown\  rÚ   r,   c                 óN  —  t          d¬¦  «        |¦  «        }|                       |d¦  «        d¦  «          t          d¬¦  «        |¦  «        }|                      |j        ¦  «         |                       |d¦  «        d¦  «         |                      |j        ¦  «         d S )NT)Úcacherù   rÇ  )r   re   ÚassertFalseÚ_cache_hitsÚ
assertTrue)rf   r±  ÚfirstÚseconds       r*   ÚcheckzTestLiftObjCaching.check_  s¤   € Ø •˜4Ð Ñ Ô  Ñ)Ô)ˆØ×Ò˜˜˜s™œ TÑ*Ô*Ð*à!•˜DÐ!Ñ!Ô! 'Ñ*Ô*ˆØ×Ò˜Ô+Ñ,Ô,Ð,Ø×Ò˜˜ ™œ dÑ+Ô+Ð+Ø�Š˜Ô*Ñ+Ô+Ð+Ð+Ð+r,   c                 ó6   — d„ }|                       |¦  «         d S )Nc                 ó`   — t          d¬¦  «        5  | dz  }d d d ¦  «         n# 1 swxY w Y   |S r+  r»  r.  s     r*   râ   z=TestLiftObjCaching.test_objmode_caching_basic.<locals>.pyfunci  sv   € Ý 	Ð*Ñ*Ô*ð  ð  Ø˜R™�ð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  àˆMrR  ©rd  )rf   râ   s     r*   Útest_objmode_caching_basicz-TestLiftObjCaching.test_objmode_caching_basich  s+   € ð	ð 	ð 	ð
 	�
Š
�6ÑÔÐÐÐr,   c                 óB   ‡— d„ Šˆfd„}|                       |¦  «         d S )Nc                 ó   — | dz  S rU  r4   r;   s    r*   Úother_pyfunczNTestLiftObjCaching.test_objmode_caching_call_closure_bad.<locals>.other_pyfuncq  s   € Ø�r‘6ˆMr,   c                 ón   •— t          d¬¦  «        5   ‰| ¦  «        }d d d ¦  «         n# 1 swxY w Y   |S rX  r»  )r<   r-  rk  s     €r*   râ   zHTestLiftObjCaching.test_objmode_caching_call_closure_bad.<locals>.pyfunct  s{   ø€ Ý 	Ð*Ñ*Ô*ð )ð )Ø%˜ a™œ�ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )àˆMr  rg  )rf   râ   rk  s     @r*   Ú%test_objmode_caching_call_closure_badz8TestLiftObjCaching.test_objmode_caching_call_closure_badp  sE   ø€ ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð
 	�
Š
�6ÑÔÐÐÐr,   c                 ó:   — |                       t          ¦  «         d S rS   )rd  r/  rn   s    r*   Ú&test_objmode_caching_call_closure_goodz9TestLiftObjCaching.test_objmode_caching_call_closure_good{  s   € Ø�
Š
Õ%Ñ&Ô&Ð&Ð&Ð&r,   N)	r{   r|   r}   r‚   rÙ   rd  rh  rm  ro  r4   r,   r*   rZ  rZ  V  sn   € € € € € ð<ð <ð <ð!ð !ð !ð,ð ,ð ,ðð ð ð	ð 	ð 	ð'ð 'ð 'ð 'ð 'r,   rZ  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestBogusContextc                 ó2  — t          t          ¦  «        }|                      t          j        ¦  «        5 }t          || j        | j        | j        i ¬¦  «         d d d ¦  «         n# 1 swxY w Y   |  	                    dt          |j        ¦  «        ¦  «         d S )Nr‹   z*Undefined variable used as context manager)r+   rZ   r´   r   r³   r   r„   r†   r‡   rµ   r¶   r·   ©rf   rh   r¹   s      r*   Útest_undefined_globalz&TestBogusContext.test_undefined_global�  sÓ   € Ý�^Ñ,Ô,ˆØ×Ò�vÔ3Ñ4Ô4ð 	¸ÝØ˜œ¨¬¸¼
È2ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�ŠØ8Ý�Ô Ñ!Ô!ñ	ô 	ð 	ð 	ð 	ó   ´$A$Á$A(Á+A(c                 ó2  — t          t          ¦  «        }|                      t          j        ¦  «        5 }t          || j        | j        | j        i ¬¦  «         d d d ¦  «         n# 1 swxY w Y   |  	                    dt          |j        ¦  «        ¦  «         d S )Nr‹   z"Unsupported context manager in use)r+   r_   r´   r   r³   r   r„   r†   r‡   rµ   r¶   r·   rs  s      r*   Útest_invalidzTestBogusContext.test_invalidŒ  sÓ   € Ý�\Ñ*Ô*ˆØ×Ò�vÔ3Ñ4Ô4ð 	¸ÝØ˜œ¨¬¸¼
È2ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�ŠØ0Ý�Ô Ñ!Ô!ñ	ô 	ð 	ð 	ð 	ru  c                 ó   — t           d„ ¦   «         }|                      t          j        ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   t	          |j        ¦  «        }d}|                      ||¦  «         d S )Nc                  óH   — t           5 } 	 d d d ¦  «         d S # 1 swxY w Y   d S rS   )r   )Úbps    r*   rô   z;TestBogusContext.test_with_as_fails_gracefully.<locals>.foo˜  sl   € åð  2Øðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r\   zGThe 'with (context manager) as (variable):' construct is not supported.)r   r´   r   ÚUnsupportedBytecodeErrorr¶   r·   rµ   )rf   rô   r¹   Úexcstrrº   s        r*   Útest_with_as_fails_gracefullyz.TestBogusContext.test_with_as_fails_gracefully—  sÄ   € Ý	ð	ð 	ñ 
Œð	ð ×Ò�vÔ>Ñ?Ô?ð 	À6ØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ �VÔ%Ñ&Ô&ˆðˆà�Š�c˜6Ñ"Ô"Ð"Ð"Ð"s   °AÁAÁAN)r{   r|   r}   rt  rw  r}  r4   r,   r*   rq  rq    sA   € € € € € ð	ð 	ð 	ð	ð 	ð 	ð#ð #ð #ð #ð #r,   rq  c                   óB   — e Zd ZdZeej        d„ ¦   «         ¦   «         ZdS )ÚTestMiscFc                 ó¤   — t          ¦   «         s|                      d¦  «         d„ }g d¢}t          ||¦  «        }|                      |¦  «         d S )Nzstrace support missingc                  ó6   — t          d¦  «        d„ ¦   «         } d S )Nzvoid()c                  ó`   — t          j        ¦   «         5  	 d d d ¦  «         d S # 1 swxY w Y   d S rS   rö   r4   r,   r*   rÀ  zFTestMisc.test_no_fork_in_compilation.<locals>.force_compile.<locals>.f¹  su   € å”]‘_”_ð ð Øðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ”#£'ª')r   )rÀ  s    r*   Úforce_compilez;TestMisc.test_no_fork_in_compilation.<locals>.force_compile¸  s+   € Ý�(‰^Œ^ðð ñ Œ^ðð ð r,   )ÚforkÚcloneÚexecve)r   ÚskipTestr   r_  )rf   rƒ  ÚsyscallsÚstrace_datas       r*   Útest_no_fork_in_compilationz$TestMisc.test_no_fork_in_compilation«  sl   € õ  Ñ!Ô!ð 	4à�MŠMÐ2Ñ3Ô3Ð3ð	ð 	ð 	ð /Ð.Ð.ˆõ ˜]¨HÑ5Ô5ˆØ×Ò˜Ñ%Ô%Ð%Ð%Ð%r,   N)r{   r|   r}   Ú_numba_parallel_test_r   r   Úrun_test_in_subprocessrŠ  r4   r,   r*   r  r  ¦  sC   € € € € € ð "ÐàØÔ$ð&ð &ñ %Ô$ñ „Zð&ð &ð &r,   r  Ú__main__)OrÜ   rÒ   Únumpyr   r÷   Únumba.core.transformsr   r   Únumba.core.withcontextsr   r   r   Únumba.core.bytecoder   r	   Únumba.core.interpreterr
   Ú
numba.corer   Únumba.core.registryr   Únumba.core.compilerr   r   r   r   r   r   Únumba.core.extendingr   Únumba.tests.supportr   r   r   r   r   r   r   r   r   r   r   r   Únumba.core.utilsr    Únumba.experimentalr!   rR  r+   r5   r=   rA   rG   rJ   rM   rO   rQ   rT   rW   rZ   r%  r^   r_   r/  rÈ  ra   r   rš   r¢   rÇ   rË   rÍ   rV  r/  rZ  rq  r  r{   Úmainr4   r,   r*   ú<module>r›     sY  ðØ €€€Ø €€€Ø Ð Ð Ð à €€€Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QØ :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø )Ð )Ð )Ð )Ð )Ð )ð"ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð 'Ð &Ð &Ð &Ð &Ð &Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø €€€ðð ð ðð ð ðð ð ð"ð ð ð"ð ð ð,ð ð ðð ð ð	ð 	ð 	ðð ð ðð ð ðð ð ðð ð ð
 �v‘x”xÐ ðð ð ð
 Œ*€ð6ð 6ð 6ð 6ð 6�hñ 6ô 6ð 6ð,;ð ;ð ;ð ;ð ;˜(ñ ;ô ;ð ;ð:9ð 9ð 9ð 9ð 9Ð(ñ 9ô 9ð 9ð./,ð /,ð /,ð /,ð /,Ð&ñ /,ô /,ð /,ðdð ð ðð ð ðO/ð O/ð O/ð O/ð O/�*˜hñ O/ô O/ð O/ðdð ð ðð ð ð&'ð &'ð &'ð &'ð &'˜ Xñ &'ô &'ð &'ðR$#ð $#ð $#ð $#ð $#Ð*ñ $#ô $#ð $#ðN&ð &ð &ð &ð &ˆxñ &ô &ð &ð@ ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr,   