Ë
    èÿæi_  ã                   óŽ   — d Z ddlZddlZddlZddlmZ ddlmZ ddl	m
Z
mZ  G d„ dee
«      Zedk(  r ej                  «        yy)	z<
Tests issues or edge cases for producing invalid NRT refct
é    N)Únjit)Úrtsys)ÚTestCaseÚEnableNRTStatsMixinc                   ó6   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚTestNrtRefCtc                 óR   •— t        j                  «        t        t        | �  «        y )N)ÚgcÚcollectÚsuperr   ÚsetUp)ÚselfÚ	__class__s    €úo/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_nrt_refct.pyr   zTestNrtRefCt.setUp   s   ø€ ä
�
‰
ŒÜŒl˜DÑ'Õ)ó    c                 ó$  — t         d„ «       }d}t        j                  «       } ||«       t        j                  «       }| j                  |j                  |j                  z
  |«       | j                  |j
                  |j
                  z
  |«       y)z"
        Test issue #1291
        c                 óN   — t        | «      D ]  }t        j                  d«      }Œ y©Né   r   )ÚrangeÚnpÚzeros)ÚnÚiÚtemps      r   Úfooz(TestNrtRefCt.test_no_return.<locals>.foo   s    € ä˜1–X�Ü—x‘x “{‘ð àr   é
   N©r   r   Úget_allocation_statsÚassertEqualÚallocÚfree)r   r   r   Ú
init_statsÚ	cur_statss        r   Útest_no_returnzTestNrtRefCt.test_no_return   s|   € ô
 
ñ	ó 
ð	ð
 ˆÜ×/Ñ/Ó1ˆ
ÙˆAŒÜ×.Ñ.Ó0ˆ	Ø×Ñ˜Ÿ™¨:×+;Ñ+;Ñ;¸QÔ?Ø×Ñ˜Ÿ™¨*¯/©/Ñ9¸1Õ=r   c                 ó   — t         d„ «       }t        j                  «       } |d«       t        j                  «       }| j                  |j                  |j                  z
  d«       | j                  |j
                  |j
                  z
  d«       y)z"
        Test issue #1297
        c                 ó†   — t        j                  | df«      }t        | «      D ]  }||   }Œ	 t        | «      D ]  }||   }Œ	 yr   )r   r   r   )r   Úxr   Úys       r   Úgz6TestNrtRefCt.test_escaping_var_init_in_loop.<locals>.g.   sK   € ô —‘˜!˜Q˜Ó ˆAä˜1–X�Ø�a‘D‘ð ô ˜1–X�Ø�a‘D‘ð ð r   r   é   Nr   )r   r*   r#   r$   s       r   Útest_escaping_var_init_in_loopz+TestNrtRefCt.test_escaping_var_init_in_loop)   sw   € ô
 
ñ
	ó 
ð
	ô ×/Ñ/Ó1ˆ
Ù	ˆ"ŒÜ×.Ñ.Ó0ˆ	Ø×Ñ˜Ÿ™¨:×+;Ñ+;Ñ;¸QÔ?Ø×Ñ˜Ÿ™¨*¯/©/Ñ9¸1Õ=r   c                 ó<  — t         d„ «       }t        j                  j                  d«      }t        j                  «       } ||d«       t        j                  «       }| j                  |j                  |j                  z
  |j                  |j                  z
  «       y)z"
        Test issue #1573
        c                 ó˜   — t        j                  | «      }t        |j                  d   «      D ]  }Œ |rt        j                  | «       |S )Nr   )r   Ú
zeros_liker   Úshape)Úarr1Útest1Útmp_arrr   s       r   Ú%if_with_allocation_and_initializationz`TestNrtRefCt.test_invalid_computation_of_lifetime.<locals>.if_with_allocation_and_initializationE   sA   € ä—m‘m DÓ)ˆGä˜7Ÿ=™=¨Ñ+Ö,�Øð -ñ Ü—‘˜dÔ#àˆNr   )é   r5   FN)r   r   Úrandomr   r   r    r!   r"   )r   r4   Úarrr#   r$   s        r   Ú$test_invalid_computation_of_lifetimez1TestNrtRefCt.test_invalid_computation_of_lifetimeA   s�   € ô 
ñ		ó 
ð		ô �i‰i×Ñ˜vÓ&ˆä×/Ñ/Ó1ˆ
Ù-¨c°5Ô9Ü×.Ñ.Ó0ˆ	Ø×Ñ˜Ÿ™¨:×+;Ñ+;Ñ;Ø"Ÿ™¨*¯/©/Ñ9õ	;r   c                 ó&  — t         d„ «       }t        j                  d«      }t        j                  «       } ||«       t        j                  «       }| j                  |j                  |j                  z
  |j                  |j                  z
  «       y)z"
        Test issue #1734
        c                 óD   — d}dD ]  }| |   }||   dkD  sŒ|||   z  }Œ |S )Nr   )r   r+   r+   © )r7   Úresr   Úts       r   Úfz5TestNrtRefCt.test_del_at_beginning_of_loop.<locals>.f]   s;   € àˆCã�ð ˜‘F�Ø�Q‘4˜!“8Ø˜1˜Q™4‘K‘Cð ð ˆJr   )r   r   N)r   r   Úonesr   r   r    r!   r"   )r   r>   r7   r#   r$   s        r   Útest_del_at_beginning_of_loopz*TestNrtRefCt.test_del_at_beginning_of_loopY   sw   € ô 
ñ
	ó 
ð
	ô �g‰g�f‹oˆÜ×/Ñ/Ó1ˆ
Ù	ˆ#ŒÜ×.Ñ.Ó0ˆ	Ø×Ñ˜Ÿ™¨:×+;Ñ+;Ñ;Ø"Ÿ™¨*¯/©/Ñ9õ	;r   )	Ú__name__Ú
__module__Ú__qualname__r   r%   r,   r8   r@   Ú__classcell__)r   s   @r   r   r      s   ø„ ô*ò
>ò$>ò0;ö0;r   r   Ú__main__)Ú__doc__r
   Únumpyr   ÚunittestÚnumbar   Únumba.core.runtimer   Únumba.tests.supportr   r   r   rA   Úmainr;   r   r   Ú<module>rM      sJ   ðñó
 
ã ã Ý Ý $ß =ô_;Ð&¨ô _;ðD ˆzÒØ€H‡M�M…Oð r   