§
    2@Äj˜  ã                   óŽ  — 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                     d¦  «        j        Z ej        dej        fdg¦  «        Z ej        dej        ¬¦  «                             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.        ¦   «          dS dS )"é    N)Únjit)ÚTypingError)ÚjitÚtypeof)Útypes)ÚTestCaseé*   é@   é   é   )é   é   Úx)ÚyÚS3é    ©Údtypeéþÿÿÿs   XXXX_array_contents_XXXXé   c                 ó   — t           d         S ©N© )Úa0©Úis    úQC:\Projects\Historical\venv\Lib\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<   d S )Nr   r   )Úmyarrayr   r   r   Úwrite_to_global_arrayr9   ?   s   € Ø…GˆA�J€J€Jr   c                  óB   — t          j        dt           j        ¬¦  «        S )Ns   foor   )ÚnpÚ
frombufferÚuint8r   r   r   Úbytes_as_const_arrayr>   C   s   € ÝŒ=˜¥r¤xÐ0Ñ0Ô0Ð0r   c                   ót   — 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dS )ÚTestConstantArrayz
    Test array constants.
    c                 óº   —  t          t          j        f¦  «        |¦  «        }dD ]4}t          j                              ||¦  «         ||¦  «        ¦  «         Œ5d S )N)r   r   r   )r   r   Úint32r;   ÚtestingÚassert_array_equal)ÚselfÚpyfuncÚcfuncr   s       r   Úcheck_array_constz#TestConstantArray.check_array_constL   sa   € Ø$••e”k�^Ñ$Ô$ VÑ,Ô,ˆØð 	?ð 	?ˆAÝŒJ×)Ò)¨&¨&°©)¬)°U°U¸1±X´XÑ>Ô>Ð>Ð>ð	?ð 	?r   c                 ó:   — |                       t          ¦  «         d S r!   )rH   r   ©rE   s    r   Útest_array_const_0dz%TestConstantArray.test_array_const_0dQ   ó   € Ø×Ò�xÑ(Ô(Ð(Ð(Ð(r   c                 ó:   — |                       t          ¦  «         d S r!   )rH   r#   rJ   s    r   Útest_array_const_1d_contigz,TestConstantArray.test_array_const_1d_contigT   rL   r   c                 ó:   — |                       t          ¦  «         d S r!   )rH   r'   rJ   s    r   Útest_array_const_1d_noncontigz/TestConstantArray.test_array_const_1d_noncontigW   rL   r   c                 ó:   — |                       t          ¦  «         d S r!   )rH   r*   rJ   s    r   Útest_array_const_2dz%TestConstantArray.test_array_const_2dZ   rL   r   c                 ó:   — |                       t          ¦  «         d S r!   )rH   r-   rJ   s    r   Útest_record_array_const_contigz0TestConstantArray.test_record_array_const_contig]   rL   r   c                 ó:   — |                       t          ¦  «         d S r!   )rH   r0   rJ   s    r   Ú!test_record_array_const_noncontigz3TestConstantArray.test_record_array_const_noncontig`   rL   r   c                 óF  — t           j        f} t          |d¬¦  «        t          ¦  «        }|                     |¦  «        }|                     ¦   «         D ]5}d|v r/|                      d|¦  «         |                      d|¦  «          dS Œ6|                      d¦  «         dS )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ˆmˆØ'•�C $Ð'Ñ'Ô'­Ñ1Ô1ˆØ×Ò Ñ$Ô$ˆØ—M’M‘O”Oð 	Eð 	EˆDØ)¨TÐ1Ð1Ø—’Ð2°DÑ9Ô9Ð9ð —’˜k¨4Ñ0Ô0Ð0Ø��ð 2ð �IŠIÐCÑDÔDÐDÐDÐDr   c                 ó�   — t           } t          d¦  «        |¦  «        }|                       |¦   «          |¦   «         ¦  «         d S r   )r6   r   ÚassertEqual©rE   rF   rG   s      r   Útest_arrayscalar_constz(TestConstantArray.test_arrayscalar_constu   sD   € Ý&ˆØ•�R‘	”	˜&Ñ!Ô!ˆØ×Ò˜˜™œ 5 5¡7¤7Ñ+Ô+Ð+Ð+Ð+r   c                 óª   — t           }|                      t          ¦  «        5   t          d¦  «        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r   )r9   ÚassertRaisesr   r   )rE   rF   s     r   Útest_write_to_global_arrayz,TestConstantArray.test_write_to_global_arrayz   s•   € Ý&ˆØ×Ò�{Ñ+Ô+ð 	ð 	Ø�D�‰IŒI�fÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ¢AÁAÁAc                 ó¬   ‡— t          j        dg¦  «        Šˆfd„} t          d¦  «        |¦  «        } |¦   «         }|                      |d¦  «         dS )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   sk   ø€ õ
 ”8˜R˜D‘>”>ˆð	ð 	ð 	ð 	ð 	ð •�R‘	”	˜&Ñ!Ô!ˆØˆe‰gŒgˆØ×Ò˜˜bÑ!Ô!Ð!Ð!Ð!r   c                 óœ  ‡ — ˆ fd„}d}t          j        |¦  «                             |¦  «        }t          j        t           j                             d|dz  f¦  «        ¦  «        }‰                      t          |¦  «        j        d¦  «         ‰                      t          |¦  «        j        d¦  «          ||¦  «          ||¦  «         dS )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        ‰ ¦  «        }‰                     t          ‰ ¦  «        t          |¦  «        ¦  «         ˆ fd„} t	          d¦  «        |¦  «        }‰                     t          |                     d¦  «        ¦  «        ‰ j        ¦  «          |¦   «         }‰ 	                    ‰ |¦  «         ~d Š  |¦   «         }t           j
                             ||¦  «         ‰                     t          |¦  «        t          |¦  «        ¦  «         d S )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˜V‘_”_ˆFØ×Ò�V F™^œ^­V°F©^¬^Ñ<Ô<Ð<ðð ð ð ð ð •D˜‘I”I˜fÑ%Ô%ˆEð �OŠO�C × 2Ò 2°2Ñ 7Ô 7Ñ8Ô8¸&¼-ÑHÔHÐHà�%‘'”'ˆCØ�MŠM˜& #Ñ&Ô&Ð&àØˆFà�%‘'”'ˆCÝŒJ×#Ò# F¨CÑ0Ô0Ð0Ø×Ò�V F™^œ^­V°C©[¬[Ñ9Ô9Ð9Ð9Ð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Ô1ˆÝÔ#¥B¤I×$4Ò$4°a¸À!¹°_Ñ$EÔ$EÑFÔFˆØ×Ò� ™œÔ/°Ñ5Ô5Ð5Ø×Ò� ™œÔ/°Ñ5Ô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   så   € € € € € ðð ð?ð ?ð ?ð
)ð )ð )ð)ð )ð )ð)ð )ð )ð)ð )ð )ð)ð )ð )ð)ð )ð )ðEð Eð Eð$,ð ,ð ,ð
ð ð ð
"ð "ð "ð Ô$ð%ð %ñ %Ô$ð%ð %ð %r   r@   c                   ó   — e Zd Zd„ ZdS )ÚTestConstantBytesc                 ó¤   — t           } t          d¦  «        |¦  «        }t          j                              |¦   «          |¦   «         ¦  «         d S r   )r>   r   r;   rC   rD   re   s      r   Útest_constant_bytesz%TestConstantBytes.test_constant_bytes·   sF   € Ý%ˆØ•�R‘	”	˜&Ñ!Ô!ˆÝ
Œ
×%Ò% f f¡h¤h°°±´Ñ8Ô8Ð8Ð8Ð8r   N)rˆ   r‰   rŠ   r�   r   r   r   rŽ   rŽ   ¶   s#   € € € € € ð9ð 9ð 9ð 9ð 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ž      sd  ðØ Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (ð €R„Xˆb�\„\€à€R„Xˆb�\„\€à€R„Yˆr�]„]€Øˆˆˆ!ˆ„W€Ø‡Z‚Z�ÑÔÔ€à€R„X��R”Wˆ~˜{Ð+Ñ,Ô,€à€R„Yˆr˜œÐ!Ñ!Ô!×&Ò& rÑ*Ô*€Øˆˆˆ"ˆ„X€ð €R„]Ð.°b´jÐAÑAÔA€ð ˆ"Œ(�A�5‰/Œ/€ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð1ð 1ð 1ðlð lð lð lð l˜ñ lô lð lð^9ð 9ð 9ð 9ð 9˜ñ 9ô 9ð 9ð ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   