ó
    „ñ:i±  ã                   ó   • S SK rS SKJr  S SKJrJrJr  S SKJ	r	  S SK
JrJr  S SKJr  S SKrS rS rS	 rS
 r " S S\\5      r " S S\\5      r " S S\5      r " S S\5      r\S:X  a  \R2                  " 5         gg)é    N)ÚSerialMixin)ÚtypeofÚcudaÚnjit)Úfloat64)ÚTestCaseÚMemoryLeakMixin)Úconfigc                 ó   • U S   $ ©Né
   © ©Úas    Ú_/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_boundscheck.pyÚbasic_array_accessr      s   € ØˆR‰5€Ló    c                 ó   • U SS 2S4   $ r   r   r   s    r   Úslice_array_accessr      s   € àˆR‰S�"ˆW‰:Ðr   c                 ó:   • [         R                  " / SQ5      nX   $ )N©é   é   é   ©ÚnpÚarray©Úxr   s     r   Úfancy_array_accessr       s   € Ü
�Š’Ó€AØ‰4€Kr   c                 ó>   • [         R                  " / SQ5      nSX'   U $ )Nr   r   r   r   s     r   Úfancy_array_modifyr"      s   € Ü
�Š’Ó€AØ€A�DØ€Hr   c                   ó¤   • \ rS rSr\R
                  " SS0S9S 5       r\R
                  " SS0S9S 5       r\R
                  " SS0S9S 5       rSr	g	)
ÚTestBoundsCheckNoErroré   ÚNUMBA_BOUNDSCHECKÚ ©Úenvvarsc                 ó4  • U R                  [        R                  5        [        R                  " S5      nU R                  [        5         [        U5        S S S 5        [        U5      n[        U45      " [        5      nU" U5        g ! , (       d  f       N8= f)Né   ©
ÚassertIsNoner
   ÚBOUNDSCHECKr   ÚarangeÚassertRaisesÚ
IndexErrorr   r   r   )Úselfr   ÚatÚnoboundschecks       r   Útest_basic_array_boundscheckÚ3TestBoundsCheckNoError.test_basic_array_boundscheck!   sm   € à×Ñœ&×,Ñ,Ô-ä�IŠI�a‹Lˆà×ÑœzÕ*ô ˜qÔ!÷ +ô
 �A‹YˆÜ˜b˜UœÔ$6Ó7ˆá�aÕ÷ +Õ*ús   ÁB	Â	
Bc                 óæ  • U R                  [        R                  5        [        R                  " S5      n[        R                  " S5      nU R                  [        5         [        U5        S S S 5        [        U5        [        U5      n[        S S  n[        U" U5      5      " [        5      n[        U" U5      SS9" [        5      nU" U5        U" U5        U" U5        g ! , (       d  f       N{= f©N)r+   r+   )r+   é   T©Úboundscheck©r-   r
   r.   r   Úonesr0   r1   r   r   r   r   ©r2   r   Úbr3   Úrtr4   r;   s          r   Útest_slice_array_boundscheckÚ3TestBoundsCheckNoError.test_slice_array_boundscheck2   sµ   € à×Ñœ&×,Ñ,Ô-ä�GŠG�F‹OˆÜ�GŠG�GÓˆØ×ÑœzÕ*ô ˜qÔ!÷ +ô
 	˜1Ôä�A‹YˆÜ‘QˆZˆÜ™R ›VœÔ%7Ó8ˆÜ™2˜b›6¨tÒ4Ô5GÓHˆá�aÔÙ�aÔñ 	�A�÷# +Õ*ús   Á!C"Ã"
C0c                 óò  • U R                  [        R                  5        [        R                  " S5      n[        R                  " S5      nU R                  [        5         [        U5        S S S 5        [        U5        [        U5      nUR                  S S  n[        U" U5      5      " [        5      n[        U" U5      SS9" [        5      nU" U5        U" U5        U" U5        g ! , (       d  f       N�= f©Nr   é   Tr:   ©r-   r
   r.   r   r/   r0   r1   r    r   Údtyper   r>   s          r   Útest_fancy_indexing_boundscheckÚ6TestBoundsCheckNoError.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ˆÜ™2˜b›6¨tÒ4Ô5GÓHˆá�aÔÙ�aÔñ 	�A�÷! +Õ*ús   Á!C(Ã(
C6r   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Úrun_test_in_subprocessr5   rA   rH   Ú__static_attributes__r   r   r   r$   r$      sr   † à×$Ò$Ð.AÀ2Ð-FÑGñó Hðð  ×$Ò$Ð.AÀ2Ð-FÑGñó Hðð0 ×$Ò$Ð.AÀ2Ð-FÑGñó Hór   r$   c                   ó˜   • \ rS rSr\R
                  " \R                  " 5       (       + S5      \R                  " SS0S9S 5       5       r
Srg)	ÚTestNoCudaBoundsCheckéf   zNO CUDAr&   Ú1r(   c                 óÎ  • U R                  [        R                  5        U R                  [        5         [
        R                  " SS9S 5       nS S S 5        [
        R                  " SS9S 5       n[
        R                  S 5       n[        R                  " S5      n[        R                  " S5      n[        R                  (       d  US   " XT5        g g ! , (       d  f       NŒ= f)	NTr:   c                  ó   • g ©Nr   r   r   r   ÚfuncÚ<TestNoCudaBoundsCheck.test_no_cuda_boundscheck.<locals>.funcl   s   € àr   Fc                  ó   • g rV   r   r   r   r   Úfunc3Ú=TestNoCudaBoundsCheck.test_no_cuda_boundscheck.<locals>.func3r   s   € àr   c                 ó   • U S   US'   g ©Nr   r   r   s     r   Úfunc2Ú=TestNoCudaBoundsCheck.test_no_cuda_boundscheck.<locals>.func2v   s   € à�Q‘4ˆAˆaŠDr   )r   )r   r   )Ú
assertTruer
   r.   r0   ÚNotImplementedErrorr   Újitr   r=   ÚzerosÚENABLE_CUDASIM)r2   rW   rZ   r^   r   r   s         r   Útest_no_cuda_boundscheckÚ.TestNoCudaBoundsCheck.test_no_cuda_boundscheckg   s»   € ð 	�‰œ×*Ñ*Ô+Ø×ÑÔ2Õ3Ü�XŠX $Ñ'ñó (ð÷ 4ô 
�Š˜eÑ	$ñ	ó 
%ð	ô 
�‰ñ	ó 
ð	ô �GŠG�D‹MˆÜ�HŠH�T‹Nˆô ×$×$Ø�$ŠK˜Õð %÷' 4Õ3ús   µCÃ
C$r   N)rJ   rK   rL   rM   ÚunittestÚskipIfr   Úis_availabler   rN   re   rO   r   r   r   rQ   rQ   f   sE   † Ø‡_‚_˜×*Ò*Ó,Ô,¨iÓ8Ø×$Ò$Ð.AÀ3Ð-GÑHñó Ió 9ór   rQ   c                   óÔ   • \ rS rSr\R
                  " SS0S9S 5       r\R
                  " SS0S9S 5       r\R
                  " SS0S9S 5       r\R
                  " SS0S9S 5       r	S	r
g
)ÚTestBoundsCheckErroré„   r&   r'   r(   c                 ó�  • U R                  [        R                  5        [        R                  " S5      nU R                  [        5         [        U5        S S S 5        [        U5      n[        U4SS9" [        5      nU R                  [        5         U" U5        S S S 5        g ! , (       d  f       NU= f! , (       d  f       g = f)Nr+   Tr:   r,   )r2   r   r3   r;   s       r   r5   Ú1TestBoundsCheckError.test_basic_array_boundscheck…   sŽ   € à×Ñœ&×,Ñ,Ô-ä�IŠI�a‹Lˆà×ÑœzÕ*ô ˜qÔ!÷ +ô
 �A‹YˆÜ˜B˜5¨dÒ3Ô4FÓGˆà×ÑœzÕ*Ù˜ŒN÷ +Ð*÷ +Õ*ú÷ +Õ*ús   ÁB&Â	B7Â&
B4Â7
Cc                 óî  • U R                  [        R                  5        [        R                  " S5      n[        R                  " S5      nU R                  [        5         [        U5        S S S 5        [        U5        [        U5      n[        S S  n[        U" U5      SS9" [        5      nU R                  [        5         U" U5        S S S 5        g ! , (       d  f       Nn= f! , (       d  f       g = fr8   r<   ©r2   r   r?   r3   r@   r;   s         r   rA   Ú1TestBoundsCheckError.test_slice_array_boundscheck–   s¯   € à×Ñœ&×,Ñ,Ô-ä�GŠG�F‹OˆÜ�GŠG�GÓˆØ×ÑœzÕ*ô ˜qÔ!÷ +ô
 	˜1Ôä�A‹YˆÜ‘QˆZˆÜ™2˜b›6¨tÒ4Ô5GÓHˆà×ÑœzÕ*Ù˜ŒN÷ +Ð*÷ +Õ*ú÷ +Õ*ús   Á!CÃ	C&Ã
C#Ã&
C4c                 óú  • U R                  [        R                  5        [        R                  " S5      n[        R                  " S5      nU R                  [        5         [        U5        S S S 5        [        U5        [        U5      nUR                  S S  n[        U" U5      SS9" [        5      nU R                  [        5         U" U5        S S S 5        g ! , (       d  f       Nt= f! , (       d  f       g = frD   rF   rp   s         r   rH   Ú4TestBoundsCheckError.test_fancy_indexing_boundscheckª   ó´   € à×Ñœ&×,Ñ,Ô-ä�IŠI�a‹LˆÜ�IŠI�a‹Lˆð ×ÑœzÕ*ô ˜qÔ!÷ +ô 	˜1Ôä�A‹YˆØ�X‰X‘aˆ[ˆÜ™2˜b›6¨tÒ4Ô5GÓHˆà×ÑœzÕ*Ù˜ŒN÷ +Ð*÷ +Õ*ú÷ +Õ*úó   Á!CÃ		C,Ã
C)Ã,
C:c                 óú  • U R                  [        R                  5        [        R                  " S5      n[        R                  " S5      nU R                  [        5         [        U5        S S S 5        [        U5        [        U5      nUR                  S S  n[        U" U5      SS9" [        5      nU R                  [        5         U" U5        S S S 5        g ! , (       d  f       Nt= f! , (       d  f       g = frD   )r-   r
   r.   r   r/   r0   r1   r"   r   rG   r   rp   s         r   Ú1test_fancy_indexing_with_modification_boundscheckÚFTestBoundsCheckError.test_fancy_indexing_with_modification_boundscheck¿   rt   ru   r   N)rJ   rK   rL   rM   r   rN   r5   rA   rH   rw   rO   r   r   r   rk   rk   „   s˜   † Ø×$Ò$Ð.AÀ2Ð-FÑGñó Hðð  ×$Ò$Ð.AÀ2Ð-FÑGñó Hðð& ×$Ò$Ð.AÀ2Ð-FÑGñó Hðð( ×$Ò$Ð.AÀ2Ð-FÑGñó Hór   rk   c                   óª   • \ rS rSrS r\R                  " SS0S9S 5       r\R                  " SS0S9S 5       r\R                  " SS	0S9S
 5       r	Sr
g)ÚTestBoundsEnvironmentVariableéÕ   c                 ó|   • [         S 5       n[        SS9S 5       n[        SS9S 5       nXl        X l        X0l        g )Nc                 ó   • U S   $ r]   r   ©r   s    r   ÚdefaultÚ4TestBoundsEnvironmentVariable.setUp.<locals>.default×   ó   € à�Q‘4ˆKr   Fr:   c                 ó   • U S   $ r]   r   r~   s    r   ÚoffÚ0TestBoundsEnvironmentVariable.setUp.<locals>.offÛ   r�   r   Tc                 ó   • U S   $ r]   r   r~   s    r   ÚonÚ/TestBoundsEnvironmentVariable.setUp.<locals>.onß   r�   r   )r   r   rƒ   r†   )r2   r   rƒ   r†   s       r   ÚsetUpÚ#TestBoundsEnvironmentVariable.setUpÖ   sW   € Ü	ñ	ó 
ð	ô 
˜%Ñ	 ñ	ó 
!ð	ô 
˜$Ñ	ñ	ó 
 ð	ð ŒØŒØ�r   r&   r'   r(   c                 ó4  • U R                  [        R                  5        [        R                  " S/5      nU R                  U5        U R                  U5        U R                  [        5         U R                  U5        S S S 5        g ! , (       d  f       g = fr]   )
r-   r
   r.   r   r   r   rƒ   r0   r1   r†   ©r2   r   s     r   Útest_boundscheck_unsetÚ4TestBoundsEnvironmentVariable.test_boundscheck_unsetç   sb   € à×Ñœ&×,Ñ,Ô-ä�HŠH�a�S‹Mˆð 	�‰�QŒØ�‰�Œà×ÑœzÕ*Ø�G‰G�AŒJ÷ +×*Ö*ús   Á.B	Â	
BrS   c                 ó4  • U R                  [        R                  5        [        R                  " S/5      nU R                  [        5         U R                  U5        U R                  U5        U R                  U5        S S S 5        g ! , (       d  f       g = fr]   )
r`   r
   r.   r   r   r0   r1   r   rƒ   r†   r‹   s     r   Útest_boundscheck_enabledÚ6TestBoundsEnvironmentVariable.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                 óÖ   • U R                  [        R                  5        [        R                  " S/5      nU R                  U5        U R                  U5        U R                  U5        g r]   )ÚassertFalser
   r.   r   r   r   rƒ   r†   r‹   s     r   Útest_boundscheck_disabledÚ7TestBoundsEnvironmentVariable.test_boundscheck_disabledÿ   sH   € à×Ñœ×+Ñ+Ô,ä�HŠH�a�S‹Mˆð 	�‰�QŒØ�‰�ŒØ�‰��
r   )r   rƒ   r†   N)rJ   rK   rL   rM   rˆ   r   rN   rŒ   r�   r”   rO   r   r   r   rz   rz   Õ   sy   † òð" ×$Ò$Ð.AÀ2Ð-FÑGñ
ó Hð
ð ×$Ò$Ð.AÀ3Ð-GÑHñó Iðð ×$Ò$Ð.AÀ3Ð-GÑHñó Iór   rz   Ú__main__)Únumpyr   Únumba.cuda.testingr   Únumbar   r   r   Únumba.core.typesr   Únumba.tests.supportr   r	   Ú
numba.corer
   rg   r   r   r    r"   r$   rQ   rk   rz   rJ   Úmainr   r   r   Ú<module>rž      s„   ðÛ å *ß $Ñ $Ý $ß 9Ý Û òòò
ò
ôD˜_¨hô DôN˜K¨ô ô<N˜8ô Nôb3 Hô 3ðl ˆzÓØ‡M‚M…Oð r   