Ë
    èÿæi±  ã                   óþ   — d dl Zd dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZmZ d dlmZ d dlZd„ Zd„ Zd	„ Zd
„ Z G d„ dee«      Z G d„ dee«      Z G d„ de«      Z G d„ de«      Zedk(  r ej2                  «        yy)é    N)ÚSerialMixin)ÚtypeofÚcudaÚnjit)Úfloat64)ÚTestCaseÚMemoryLeakMixin)Úconfigc                 ó   — | d   S ©Né
   © ©Úas    úq/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_boundscheck.pyÚbasic_array_accessr      s   € ØˆR‰5€Ló    c                 ó   — | dd …df   S r   r   r   s    r   Úslice_array_accessr      s   € àˆR‰S�"ˆW‰:Ðr   c                 ó:   — t        j                  g d¢«      }| |   S )N©é   é   é   ©ÚnpÚarray©Úxr   s     r   Úfancy_array_accessr       s   € Ü
�‰’Ó€AØˆQ‰4€Kr   c                 ó>   — t        j                  g d¢«      }d| |<   | S )Nr   r   r   r   s     r   Úfancy_array_modifyr"      s   € Ü
�‰’Ó€AØ€A€a�DØ€Hr   c                   ó®   — e Zd Z ej                  ddi¬«      d„ «       Z ej                  ddi¬«      d„ «       Z ej                  ddi¬«      d„ «       Zy)ÚTestBoundsCheckNoErrorÚNUMBA_BOUNDSCHECKÚ ©Úenvvarsc                 ó(  — | j                  t        j                  «       t        j                  d«      }| j                  t        «      5  t        |«       d d d «       t        |«      } t        |f«      t        «      } ||«       y # 1 sw Y   Œ3xY w)Né   ©
ÚassertIsNoner
   ÚBOUNDSCHECKr   ÚarangeÚassertRaisesÚ
IndexErrorr   r   r   )Úselfr   ÚatÚnoboundschecks       r   Útest_basic_array_boundscheckz3TestBoundsCheckNoError.test_basic_array_boundscheck!   so   € à×Ñœ&×,Ñ,Ô-ä�I‰I�a‹Lˆà×ÑœzÕ*ô ˜qÔ!÷ +ô
 �A‹YˆØ#œ˜b˜U›Ô$6Ó7ˆá�aÕ÷ +Ð*ús   Á
BÂBc                 óÞ  — | j                  t        j                  «       t        j                  d«      }t        j                  d«      }| j                  t        «      5  t        |«       d d d «       t        |«       t        |«      }t        d d  } t         ||«      «      t        «      } t         ||«      d¬«      t        «      } ||«        ||«        ||«       y # 1 sw Y   ŒyxY w©N)r*   r*   )r*   é   T©Úboundscheck©r,   r
   r-   r   Úonesr/   r0   r   r   r   r   ©r1   r   Úbr2   Úrtr3   r9   s          r   Útest_slice_array_boundscheckz3TestBoundsCheckNoError.test_slice_array_boundscheck2   s¹   € à×Ñœ&×,Ñ,Ô-ä�G‰G�F‹OˆÜ�G‰G�GÓˆØ×ÑœzÕ*ô ˜qÔ!÷ +ô
 	˜1Ôä�A‹YˆÜ‘QˆZˆØ$œ™R ›V›Ô%7Ó8ˆØ4”d™2˜b›6¨tÔ4Ô5GÓHˆá�aÔÙ�aÔñ 	�A�÷# +Ð*ús   ÁC#Ã#C,c                 óê  — | j                  t        j                  «       t        j                  d«      }t        j                  d«      }| j                  t        «      5  t        |«       d d d «       t        |«       t        |«      }|j                  d d  } t         ||«      «      t        «      } t         ||«      d¬«      t        «      } ||«        ||«        ||«       y # 1 sw Y   ŒxY w©Nr   é   Tr8   ©r,   r
   r-   r   r.   r/   r0   r    r   Údtyper   r<   s          r   Útest_fancy_indexing_boundscheckz6TestBoundsCheckNoError.test_fancy_indexing_boundscheckK   s¾   € à×Ñœ&×,Ñ,Ô-ä�I‰I�a‹LˆÜ�I‰I�a‹Lˆð ×ÑœzÕ*ô ˜qÔ!÷ +ô 	˜1Ôä�A‹YˆØ�X‰X‘aˆ[ˆØ$œ™R ›V›Ô%7Ó8ˆØ4”d™2˜b›6¨tÔ4Ô5GÓHˆá�aÔÙ�aÔñ 	�A�÷! +Ð*ús   ÁC)Ã)C2N)Ú__name__Ú
__module__Ú__qualname__r   Úrun_test_in_subprocessr4   r?   rE   r   r   r   r$   r$      sx   „ à$€X×$Ñ$Ð.AÀ2Ð-FÔGñó Hðð  %€X×$Ñ$Ð.AÀ2Ð-FÔGñó Hðð0 %€X×$Ñ$Ð.AÀ2Ð-FÔGñó Hñr   r$   c                   óŽ   — e Zd Z ej                   ej                  «        d«       ej                  ddi¬«      d„ «       «       Z	y)ÚTestNoCudaBoundsCheckzNO CUDAr%   Ú1r'   c                 óÀ  — | j                  t        j                  «       | j                  t        «      5  t        j                  d¬«      d„ «       }d d d «       t        j                  d¬«      d„ «       }t
        j                  d„ «       }t        j                  d«      }t        j                  d«      }t        j                  s |d   ||«       y y # 1 sw Y   ŒƒxY w)	NTr8   c                   ó   — y ©Nr   r   r   r   Úfuncz<TestNoCudaBoundsCheck.test_no_cuda_boundscheck.<locals>.funcl   s   € àr   Fc                   ó   — y rO   r   r   r   r   Úfunc3z=TestNoCudaBoundsCheck.test_no_cuda_boundscheck.<locals>.func3r   s   € àr   c                 ó   — | d   |d<   y ©Nr   r   r   s     r   Úfunc2z=TestNoCudaBoundsCheck.test_no_cuda_boundscheck.<locals>.func2v   s   € à�Q‘4ˆAˆaŠDr   )r   )r   r   )Ú
assertTruer
   r-   r/   ÚNotImplementedErrorr   Újitr   r;   ÚzerosÚENABLE_CUDASIM)r1   rP   rR   rU   r   r   s         r   Útest_no_cuda_boundscheckz.TestNoCudaBoundsCheck.test_no_cuda_boundscheckg   s¿   € ð 	�‰œ×*Ñ*Ô+Ø×ÑÔ2Õ3Ü�X‰X $Ô'ñó (ð÷ 4ô 
�‰˜eÔ	$ñ	ó 
%ð	ô 
�‰ñ	ó 
ð	ô �G‰G�D‹MˆÜ�H‰H�T‹Nˆô ×$Ò$ØˆE�$‰K˜˜1Õð %÷' 4Ð3ús   µCÃCN)
rF   rG   rH   ÚunittestÚskipIfr   Úis_availabler   rI   r[   r   r   r   rK   rK   f   sL   „ Ø€X‡_�_Ð*˜×*Ñ*Ó,Ð,¨iÓ8Ø$€X×$Ñ$Ð.AÀ3Ð-GÔHñó Ió 9ñr   rK   c                   óä   — e Zd Z ej                  ddi¬«      d„ «       Z ej                  ddi¬«      d„ «       Z ej                  ddi¬«      d„ «       Z ej                  ddi¬«      d„ «       Zy)	ÚTestBoundsCheckErrorr%   r&   r'   c                 ó€  — | j                  t        j                  «       t        j                  d«      }| j                  t        «      5  t        |«       d d d «       t        |«      } t        |fd¬«      t        «      }| j                  t        «      5   ||«       d d d «       y # 1 sw Y   ŒSxY w# 1 sw Y   y xY w)Nr*   Tr8   r+   )r1   r   r2   r9   s       r   r4   z1TestBoundsCheckError.test_basic_array_boundscheck…   s�   € à×Ñœ&×,Ñ,Ô-ä�I‰I�a‹Lˆà×ÑœzÕ*ô ˜qÔ!÷ +ô
 �A‹YˆØ3”d˜B˜5¨dÔ3Ô4FÓGˆà×ÑœzÕ*Ù˜ŒN÷ +Ð*÷ +Ð*ú÷ +Ð*ús   Á
B(Â	B4Â(B1Â4B=c                 óÜ  — | j                  t        j                  «       t        j                  d«      }t        j                  d«      }| j                  t        «      5  t        |«       d d d «       t        |«       t        |«      }t        d d  } t         ||«      d¬«      t        «      }| j                  t        «      5   ||«       d d d «       y # 1 sw Y   ŒlxY w# 1 sw Y   y xY wr6   r:   ©r1   r   r=   r2   r>   r9   s         r   r?   z1TestBoundsCheckError.test_slice_array_boundscheck–   s±   € à×Ñœ&×,Ñ,Ô-ä�G‰G�F‹OˆÜ�G‰G�GÓˆØ×ÑœzÕ*ô ˜qÔ!÷ +ô
 	˜1Ôä�A‹YˆÜ‘QˆZˆØ4”d™2˜b›6¨tÔ4Ô5GÓHˆà×ÑœzÕ*Ù˜ŒN÷ +Ð*÷ +Ð*ú÷ +Ð*ús   ÁCÃ	C"ÃCÃ"C+c                 óè  — | j                  t        j                  «       t        j                  d«      }t        j                  d«      }| j                  t        «      5  t        |«       d d d «       t        |«       t        |«      }|j                  d d  } t         ||«      d¬«      t        «      }| j                  t        «      5   ||«       d d d «       y # 1 sw Y   ŒrxY w# 1 sw Y   y xY wrA   rC   rc   s         r   rE   z4TestBoundsCheckError.test_fancy_indexing_boundscheckª   ó¶   € à×Ñœ&×,Ñ,Ô-ä�I‰I�a‹LˆÜ�I‰I�a‹Lˆð ×ÑœzÕ*ô ˜qÔ!÷ +ô 	˜1Ôä�A‹YˆØ�X‰X‘aˆ[ˆØ4”d™2˜b›6¨tÔ4Ô5GÓHˆà×ÑœzÕ*Ù˜ŒN÷ +Ð*÷ +Ð*ú÷ +Ð*úó   ÁCÃ
	C(ÃC%Ã(C1c                 óè  — | j                  t        j                  «       t        j                  d«      }t        j                  d«      }| j                  t        «      5  t        |«       d d d «       t        |«       t        |«      }|j                  d d  } t         ||«      d¬«      t        «      }| j                  t        «      5   ||«       d d d «       y # 1 sw Y   ŒrxY w# 1 sw Y   y xY wrA   )r,   r
   r-   r   r.   r/   r0   r"   r   rD   r   rc   s         r   Ú1test_fancy_indexing_with_modification_boundscheckzFTestBoundsCheckError.test_fancy_indexing_with_modification_boundscheck¿   re   rf   N)	rF   rG   rH   r   rI   r4   r?   rE   rh   r   r   r   r`   r`   „   s    „ Ø$€X×$Ñ$Ð.AÀ2Ð-FÔGñó Hðð  %€X×$Ñ$Ð.AÀ2Ð-FÔGñó Hðð& %€X×$Ñ$Ð.AÀ2Ð-FÔGñó Hðð( %€X×$Ñ$Ð.AÀ2Ð-FÔGñó Hñr   r`   c                   ó´   — e Zd Zd„ Z ej
                  ddi¬«      d„ «       Z ej
                  ddi¬«      d„ «       Z ej
                  ddi¬«      d	„ «       Zy
)ÚTestBoundsEnvironmentVariablec                 óŽ   — t         d„ «       }t        d¬«      d„ «       }t        d¬«      d„ «       }|| _        || _        || _        y )Nc                 ó   — | d   S rT   r   ©r   s    r   Údefaultz4TestBoundsEnvironmentVariable.setUp.<locals>.default×   ó   € à�Q‘4ˆKr   Fr8   c                 ó   — | d   S rT   r   rm   s    r   Úoffz0TestBoundsEnvironmentVariable.setUp.<locals>.offÛ   ro   r   Tc                 ó   — | d   S rT   r   rm   s    r   Úonz/TestBoundsEnvironmentVariable.setUp.<locals>.onß   ro   r   )r   rn   rq   rs   )r1   rn   rq   rs   s       r   ÚsetUpz#TestBoundsEnvironmentVariable.setUpÖ   s]   € Ü	ñ	ó 
ð	ô 
˜%Ô	 ñ	ó 
!ð	ô 
˜$Ô	ñ	ó 
 ð	ð ˆŒØˆŒØˆ�r   r%   r&   r'   c                 ó(  — | j                  t        j                  «       t        j                  dg«      }| j                  |«       | j                  |«       | j                  t        «      5  | j                  |«       d d d «       y # 1 sw Y   y xY wrT   )
r,   r
   r-   r   r   rn   rq   r/   r0   rs   ©r1   r   s     r   Útest_boundscheck_unsetz4TestBoundsEnvironmentVariable.test_boundscheck_unsetç   sb   € à×Ñœ&×,Ñ,Ô-ä�H‰H�a�S‹Mˆð 	�‰�QŒØ�‰�Œà×ÑœzÕ*Ø�G‰G�AŒJ÷ +×*Ñ*ús   Á-BÂBrL   c                 ó(  — | j                  t        j                  «       t        j                  dg«      }| j                  t        «      5  | j                  |«       | j                  |«       | j                  |«       d d d «       y # 1 sw Y   y xY wrT   )
rV   r
   r-   r   r   r/   r0   rn   rq   rs   rv   s     r   Útest_boundscheck_enabledz6TestBoundsEnvironmentVariable.test_boundscheck_enabledô   s^   € à�‰œ×*Ñ*Ô+ä�H‰H�a�S‹Mˆà×ÑœzÕ*Ø�L‰L˜ŒOØ�H‰H�QŒKØ�G‰G�AŒJ÷ +×*Ñ*ús   Á4BÂBÚ0c                 óÔ   — | j                  t        j                  «       t        j                  dg«      }| j                  |«       | j                  |«       | j                  |«       y rT   )ÚassertFalser
   r-   r   r   rn   rq   rs   rv   s     r   Útest_boundscheck_disabledz7TestBoundsEnvironmentVariable.test_boundscheck_disabledÿ   sH   € à×Ñœ×+Ñ+Ô,ä�H‰H�a�S‹Mˆð 	�‰�QŒØ�‰�ŒØ�‰��
r   N)	rF   rG   rH   rt   r   rI   rw   ry   r}   r   r   r   rj   rj   Õ   s   „ òð" %€X×$Ñ$Ð.AÀ2Ð-FÔGñ
ó Hð
ð %€X×$Ñ$Ð.AÀ3Ð-GÔHñó Iðð %€X×$Ñ$Ð.AÀ3Ð-GÔHñó Iñr   rj   Ú__main__)Únumpyr   Únumba.cuda.testingr   Únumbar   r   r   Únumba.core.typesr   Únumba.tests.supportr   r	   Ú
numba.corer
   r\   r   r   r    r"   r$   rK   r`   rj   rF   Úmainr   r   r   Ú<module>r†      s†   ðÛ å *ß $Ñ $Ý $ß 9Ý Û òòò
ò
ôD˜_¨hô DôN˜K¨ô ô<N˜8ô Nôb3 Hô 3ðl ˆzÒØ€H‡M�M…Oð r   