Ë
    èÿæiÚ  ã                   ó¨  — 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 d dl	m
Z
 d dlmZ  ej                  d«      Z ej                  d«      Z ej"                  d	«      Zeddd
…   Zej)                  d«      j*                  Z ej.                  dej0                  fdg«      Z ej"                  dej0                  ¬«      j5                  e«      Zeddd…   Z ej:                  dej<                  ¬«      Z ej                  dg«      Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z* G d„ de«      Z+ G d„ d e«      Z,e-d!k(  r ej\                  «        yy)"é    N)Únjit)ÚTypingError)ÚjitÚtypeof)Útypes)ÚTestCaseé*   é@   é   é   )é   é   Úx)ÚyÚS3é    ©Údtypeéþÿÿÿs   XXXX_array_contents_XXXXé   c                 ó   — t         d   S ©N© )Úa0©Úis    úu/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_array_constants.pyÚgetitem0r      s   € Üˆb‰6€Mó    c                 ó   — t         |    S ©N)Úa1r   s    r   Úgetitem1r#   #   ó   € Üˆa‰5€Lr   c                 ó   — t         |    S r!   )Úa2r   s    r   Úgetitem2r'   '   r$   r   c                 ó   — t         |    S r!   )Úa3r   s    r   Úgetitem3r*   +   r$   r   c                 ó   — t         |    S r!   )Úa4r   s    r   Úgetitem4r-   /   r$   r   c                 ó   — t         |    S r!   )Úa5r   s    r   Úgetitem5r0   3   r$   r   c                 ó   — t         |    S r!   )Úa6r   s    r   Úgetitem6r3   7   r$   r   c                  ó   — t         S r!   )Ús1r   r   r   Úuse_arrayscalar_constr6   ;   s   € Ü€Ir   c                  ó   — dt         d<   y )Nr   r   )Úmyarrayr   r   r   Úwrite_to_global_arrayr9   ?   s   € Ø„GˆA‚Jr   c                  óL   — t        j                  dt         j                  ¬«      S )Ns   foor   )ÚnpÚ
frombufferÚuint8r   r   r   Úbytes_as_const_arrayr>   C   s   € Ü�=‰=˜¤r§x¡xÔ0Ð0r   c                   óv   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zej                   d„ «       Zy)ÚTestConstantArrayz
    Test array constants.
    c                 óª   —  t        t        j                  f«      |«      }dD ].  }t        j                  j                   ||«       ||«      «       Œ0 y )N)r   r   r   )r   r   Úint32r;   ÚtestingÚassert_array_equal)ÚselfÚpyfuncÚcfuncr   s       r   Úcheck_array_constz#TestConstantArray.check_array_constL   s?   € Ø$””e—k‘k�^Ó$ VÓ,ˆÛˆAÜ�J‰J×)Ñ)©&°«)±U¸1³XÕ>ñ r   c                 ó.   — | j                  t        «       y r!   )rH   r   ©rE   s    r   Útest_array_const_0dz%TestConstantArray.test_array_const_0dQ   ó   € Ø×ÑœxÕ(r   c                 ó.   — | j                  t        «       y r!   )rH   r#   rJ   s    r   Útest_array_const_1d_contigz,TestConstantArray.test_array_const_1d_contigT   rL   r   c                 ó.   — | j                  t        «       y r!   )rH   r'   rJ   s    r   Útest_array_const_1d_noncontigz/TestConstantArray.test_array_const_1d_noncontigW   rL   r   c                 ó.   — | j                  t        «       y r!   )rH   r*   rJ   s    r   Útest_array_const_2dz%TestConstantArray.test_array_const_2dZ   rL   r   c                 ó.   — | j                  t        «       y r!   )rH   r-   rJ   s    r   Útest_record_array_const_contigz0TestConstantArray.test_record_array_const_contig]   rL   r   c                 ó.   — | j                  t        «       y r!   )rH   r0   rJ   s    r   Ú!test_record_array_const_noncontigz3TestConstantArray.test_record_array_const_noncontig`   rL   r   c                 ó  — t         j                  f} t        |d¬«      t        «      }|j	                  |«      }|j                  «       D ],  }d|v sŒ| j                  d|«       | j                  d|«        y | j                  d«       y)zt
        Issue #1933: the array declaration in the LLVM IR must have
        the right alignment specified.
        T)ÚnopythonÚXXXX_array_contents_XXXXzconstant [24 x i8]z	, align 4z+could not find array declaration in LLVM IRN)r   Úintpr   r3   Úinspect_llvmÚ
splitlinesÚassertInÚfail)rE   ÚsigrG   ÚirÚlines        r   Útest_array_const_alignmentz,TestConstantArray.test_array_const_alignmentc   s{   € ô
 �z‰zˆmˆØ'”�C $Ô'¬Ó1ˆØ×Ñ Ó$ˆØ—M‘M–OˆDØ)¨TÒ1Ø—‘Ð2°DÔ9ð —‘˜k¨4Ô0Ùð $ð �I‰IÐCÕDr   c                 ój   — t         } t        d«      |«      }| j                   |«        |«       «       y r   )r6   r   ÚassertEqual©rE   rF   rG   s      r   Útest_arrayscalar_constz(TestConstantArray.test_arrayscalar_constu   s+   € Ü&ˆØ”�R“	˜&Ó!ˆØ×Ñ™›¡5£7Õ+r   c                 ó†   — t         }| j                  t        «      5   t        d«      |«       d d d «       y # 1 sw Y   y xY wr   )r9   ÚassertRaisesr   r   )rE   rF   s     r   Útest_write_to_global_arrayz,TestConstantArray.test_write_to_global_arrayz   s/   € Ü&ˆØ×Ñœ{Õ+ØŒD�‹I�fÔ÷ ,×+Ñ+ús	   œ7·A c                 ó�   ‡— t        j                  dg«      Šˆfd„} t        d«      |«      } |«       }| j                  |d«       y)zy
        This issue is caused by an unresolved bug in numpy since version 1.6.
        See numpy GH issue #3147.
        éV   c                  ó   •— ‰ d   S )Nr   r   )Úconstarrs   €r   rF   z1TestConstantArray.test_issue_1850.<locals>.pyfunc†   s   ø€ Ø˜A‘;Ðr   r   N)r;   Úarrayr   rd   )rE   rF   rG   Úoutrm   s       @r   Útest_issue_1850z!TestConstantArray.test_issue_1850   sB   ø€ ô
 —8‘8˜R˜D“>ˆô	ð ”�R“	˜&Ó!ˆÙ‹gˆØ×Ñ˜˜bÕ!r   c                 ó~  ‡ — ˆ fd„}d}t        j                  |«      j                  |«      }t        j                  t         j                  j	                  d|dz  f«      «      }‰ j                  t        |«      j                  d«       ‰ j                  t        |«      j                  d«        ||«        ||«       y)zº
        Test issue https://github.com/numba/numba/issues/2188 where freezing
        a constant array into the code that's prohibitively long and consumes
        too much RAM.
        c                 óÜ  •‡ — t        j                  ‰ «      }‰j                  t        ‰ «      t        |«      «       ˆ fd„} t	        d«      |«      }‰j                  t        |j                  d«      «      ‰ j                  «        |«       }‰j                  ‰ |«       ~d Š  |«       }t         j                  j                  ||«       ‰j                  t        |«      t        |«      «       y )Nc                  ó   •— ‰ S r!   r   )Úbiggies   €r   rF   zFTestConstantArray.test_too_big_to_freeze.<locals>.test.<locals>.pyfunc˜   s   ø€ Ø�r   r   )r;   Úcopyrd   r   r   Ú
assertLessÚlenr[   ÚnbytesÚassertIsrC   Úassert_equal)rt   ÚexpectrF   rG   ro   rE   s   `    €r   Útestz6TestConstantArray.test_too_big_to_freeze.<locals>.test”   s³   ù€ Ü—W‘W˜V“_ˆFØ×ÑœV F›^¬V°F«^Ô<ôð ”D˜“I˜fÓ%ˆEð �O‰OœC × 2Ñ 2°2Ó 7Ó8¸&¿-¹-ÔHá“'ˆCØ�M‰M˜& #Ô&àØˆFá“'ˆCÜ�J‰J×#Ñ# F¨CÔ0Ø×ÑœV F›^¬V°C«[Õ9r   i€–˜ r   ÚCÚFN)r;   ÚarangeÚreshapeÚasfortranarrayÚrandomrd   r   Úlayout)rE   r|   ÚnelemÚc_arrayÚf_arrays   `    r   Útest_too_big_to_freezez(TestConstantArray.test_too_big_to_freeze�   s‘   ø€ ô	:ð, ˆä—)‘)˜EÓ"×*Ñ*¨5Ó1ˆÜ×#Ñ#¤B§I¡I×$4Ñ$4°a¸À!¹°_Ó$EÓFˆØ×Ñœ ›×/Ñ/°Ô5Ø×Ñœ ›×/Ñ/°Ô5áˆWŒáˆW�r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rH   rK   rN   rP   rR   rT   rV   rb   rf   ri   rp   r   Úrun_test_in_subprocessr‡   r   r   r   r@   r@   G   sY   „ ñò?ò
)ò)ò)ò)ò)ò)òEò$,ò
ò
"ð ×$Ñ$ñ%ó %ñ%r   r@   c                   ó   — e Zd Zd„ Zy)ÚTestConstantBytesc                 ó†   — t         } t        d«      |«      }t        j                  j	                   |«        |«       «       y r   )r>   r   r;   rC   rD   re   s      r   Útest_constant_bytesz%TestConstantBytes.test_constant_bytes·   s/   € Ü%ˆØ”�R“	˜&Ó!ˆÜ
�
‰
×%Ñ%¡f£h±³Õ8r   N)rˆ   r‰   rŠ   r�   r   r   r   rŽ   rŽ   ¶   s   „ ó9r   rŽ   Ú__main__)/Únumpyr;   ÚunittestÚnumbar   Únumba.core.errorsr   r   r   Ú
numba.corer   Únumba.tests.supportr   rn   r   rB   r5   r   r"   r&   r€   ÚTr)   r   Úint8ÚdtÚviewr,   r/   r<   Úfloat32r2   r8   r   r#   r'   r*   r-   r0   r3   r6   r9   r>   r@   rŽ   rˆ   Úmainr   r   r   Ú<module>rž      sH  ðÛ ã Ý Ý )ß Ý Ý (ð €R‡X�Xˆbƒ\€à€R‡X�Xˆbƒ\€à€R‡Y�Yˆrƒ]€Ø‰ˆ!ˆ�W€Ø‡Z�Z�Ó×Ñ€à€R‡X�X��R—W‘Wˆ~˜{Ð+Ó,€à€R‡Y�Yˆr˜Ÿ™Ô!×&Ñ& rÓ*€Ø‰ˆ"ˆ�X€ð €R‡]�]Ð.°b·j±jÔA€ð ˆ"�(‰(�A�5‹/€òòòòòòòòòò1ôl˜ô lô^9˜ô 9ð ˆzÒØ€H‡M�M…Oð r   