§
    ƒÛg4  ã                   ó*  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dl	T d dl
Zd dlmZ d dlmZ d dlmZmZmZmZmZmZ d dlZdZ ej        ej                             d¦  «         e¦  «        Zej                             ej                             e ¦  «        ¦  «        Z!d„ Z"e G d	„ d
e¦  «        ¦   «         Z# G d„ de¦  «        Z$e G d„ de$¦  «        ¦   «         Z%e G d„ de¦  «        ¦   «         Z&e'dk    r ej(        ¦   «          dS dS )é    N)Úskip)Ú*)Úutils)ÚTestCaseÚtagÚimport_dynamicÚtemp_directoryÚhas_blasÚneeds_setuptoolszwindows onlyÚwinc                  ó@   — dt           j        v rt           j        d= dS dS )zVUnset MACOSX_DEPLOYMENT_TARGET because we are not building portable
    libraries
    ÚMACOSX_DEPLOYMENT_TARGETN)ÚosÚenviron© ó    úK/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_pycc.pyÚunset_macosx_deployment_targetr      s*   € ð "¥R¤ZÐ/Ð/ÝŒJÐ1Ð2Ð2Ð2ð 0Ð/r   c                   ó$   — e Zd Zed„ ¦   «         ZdS )ÚTestCompilerChecksc                 óÜ   — ddl m} t          j                             dd ¦  «        d u}|r?t          j                             dd ¦  «        �!|                       |¦   «         ¦  «         d S d S d S )Nr   )Úexternal_compiler_worksÚCONDA_BUILDÚVSINSTALLDIR)Únumba.pycc.platformr   r   r   ÚgetÚ
assertTrue)Úselfr   Úis_running_conda_builds      r   Útest_windows_compiler_validityz1TestCompilerChecks.test_windows_compiler_validity*   s‚   € ð 	@Ð?Ð?Ð?Ð?Ð?Ý!#¤§¢°¸tÑ!DÔ!DÈDÐ!PÐØ!ð 	;ÝŒz�~Š~˜n¨dÑ3Ô3Ð?Ø—’Ð 7Ð 7Ñ 9Ô 9Ñ:Ô:Ð:Ð:Ð:ð	;ð 	;Ø?Ð?r   N)Ú__name__Ú
__module__Ú__qualname__Ú_windows_onlyr    r   r   r   r   r   &   s/   € € € € € ð ð;ð ;ñ „]ð;ð ;ð ;r   r   c                   ó:   — e Zd Zd„ Zd„ Zej        d„ ¦   «         ZdS )ÚBasePYCCTestc                 ól   — t          ¦   «          t          d¦  «        | _        | j        t          _        d S )NÚ	test_pycc)r   r	   ÚtmpdirÚtempfileÚtempdir©r   s    r   ÚsetUpzBasePYCCTest.setUp;   s/   € Ý&Ñ(Ô(Ð(å$ [Ñ1Ô1ˆŒð  œ;�ÔÐÐr   c                 ó>   — d t           _        ddlm}  |¦   «          d S )Nr   )Úclear_export_registry)r*   r+   Únumba.pycc.decoratorsr/   )r   r/   s     r   ÚtearDownzBasePYCCTest.tearDownC   s4   € Ø�Ôð 	@Ð?Ð?Ð?Ð?Ð?ØÐÑÔÐÐÐr   c              #   óv  K  — t           j                             |¦  «         	 t          |¦  «        }|V — t           j                             |¦  «         t           j                             |d ¦  «         d S # t           j                             |¦  «         t           j                             |d ¦  «         w xY w©N)ÚsysÚpathÚappendr   ÚremoveÚmodulesÚpop)r   ÚextdirÚnameÚlibs       r   Úcheck_c_extzBasePYCCTest.check_c_extN   s˜   è è € åŒ�Š˜ÑÔÐð	(Ý  Ñ&Ô&ˆCØˆIˆIˆIåŒH�OŠO˜FÑ#Ô#Ð#ÝŒK�OŠO˜D $Ñ'Ô'Ð'Ð'Ð'øõ ŒH�OŠO˜FÑ#Ô#Ð#ÝŒK�OŠO˜D $Ñ'Ô'Ð'Ð'øøøs   £A7 Á7AB8N)r!   r"   r#   r-   r1   Ú
contextlibÚcontextmanagerr=   r   r   r   r&   r&   9   sQ   € € € € € ð'ð 'ð 'ð	 ð 	 ð 	 ð Ôð(ð (ñ Ôð(ð (ð (r   r&   c                   óÐ   ‡ — e Zd Zˆ fd„Zej        d„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Z ej        ej        d	k    o
ej        d
k    d¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zˆ xZS )ÚTestCCc                 óÊ   •— t          t          | ¦  «                             ¦   «          |                      ¦   «          ddlm} || _        t          j        | j        ¦  «         d S )Nr   )Úcompile_with_pycc)	ÚsuperrA   r-   Úskip_if_no_external_compilerÚnumba.testsrC   Ú_test_moduleÚ	importlibÚreload)r   rC   Ú	__class__s     €r   r-   zTestCC.setUp\   se   ø€ Ý�f�dÑÔ×!Ò!Ñ#Ô#Ð#Ø×)Ò)Ñ+Ô+Ð+Ø1Ð1Ð1Ð1Ð1Ð1Ø-ˆÔÝÔ˜Ô*Ñ+Ô+Ð+Ð+Ð+r   c              #   óÄ   K  — | j         |_        |                     ¦   «          |                      | j         |j        ¦  «        5 }|V — d d d ¦  «         d S # 1 swxY w Y   d S r3   )r)   Ú
output_dirÚcompiler=   r;   )r   Úccr<   s      r   Úcheck_cc_compiledzTestCC.check_cc_compiledc   s¢   è è € ð œˆŒØ
�
Š
‰Œˆà×Ò˜dœk¨2¬7Ñ3Ô3ð 	°sØˆIˆIˆIð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÁAÁAÁAc                 óÖ   — d|j         t          j                             |j        ¦  «        dœz  }|                     d¦  «        |z   }t          j        t          j	        d|g¦  «         d S )Naµ  if 1:
            import sys
            import types
            # to disable numba package
            sys.modules['numba'] = types.ModuleType('numba')
            try:
                from numba import njit
            except ImportError:
                pass
            else:
                raise RuntimeError('cannot disable numba package')

            sys.path.insert(0, %(path)r)
            import %(name)s as lib
            )r;   r5   ú ú-c)
r!   r   r5   ÚdirnameÚ__file__ÚstripÚ
subprocessÚ
check_callr4   Ú
executable)r   r<   ÚcodeÚprologs       r   Úcheck_cc_compiled_in_subprocessz&TestCC.check_cc_compiled_in_subprocessl   sj   € ðð œ<Ýœ7Ÿ?š?¨3¬<Ñ8Ô8ð:ð :ñ:ˆð  �|Š|˜CÑ Ô  4Ñ'ˆÝÔ�sœ~¨t°TÐ:Ñ;Ô;Ð;Ð;Ð;r   c                 óÌ  — | j         j        }|                      |j        d¦  «         | j         j        j        }|                      t          j                             |¦  «        |¦  «         | j         j        j	        }|  
                    t          j                             |¦  «        |¦  «         |                      t          j                             |¦  «                             d¦  «        |¦  «         t          j                             d¦  «        rO|                      |                     d¦  «        |¦  «         ddlm} |                       |¦   «         |¦  «         d S d S )NÚpycc_test_simplezpycc_test_simple.Úlinuxz.sor   )Úfind_pyext_ending)rG   rN   ÚassertEqualr;   rL   r   r   r5   ÚisdirÚoutput_fileÚassertFalseÚexistsÚbasenameÚ
startswithr4   ÚplatformÚendswithr   r_   ÚassertIn)r   rN   ÚdÚfr_   s        r   Útest_cc_propertieszTestCC.test_cc_properties€   s9  € ØÔÔ!ˆØ×Ò˜œÐ"4Ñ5Ô5Ð5ð ÔÔ Ô+ˆØ�Š�œŸš aÑ(Ô(¨!Ñ,Ô,Ð,ð ÔÔ Ô,ˆØ×Ò�œŸš¨Ñ*Ô*¨AÑ.Ô.Ð.Ø�Š�œ×(Ò(¨Ñ+Ô+×6Ò6Ð7JÑKÔKÈQÑOÔOÐOÝŒ<×"Ò" 7Ñ+Ô+ð 	2Ø�OŠO˜AŸJšJ uÑ-Ô-¨qÑ1Ô1Ð1ð >Ð=Ð=Ð=Ð=Ð=Ø�MŠMÐ+Ð+Ñ-Ô-¨qÑ1Ô1Ð1Ð1Ð1ð	2ð 	2r   c                 ó\  — |                       | j        j        ¦  «        5 }|                     dd¦  «        }|                      |d¦  «         |                     dd¦  «        }|                      |d¦  «         |                     d¦  «        }|                      |d¦  «         |                      |                     ¦   «         d ¦  «         |  	                    t          ¦  «        5  |                     dd	¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )
Né{   éA  é;š  iÛ  g    lVAé   é   é   r   )rO   rG   rN   ÚmultiÚassertPreciseEqualÚmultfÚsquareÚassertIsÚget_noneÚassertRaisesÚZeroDivisionErrorÚdiv)r   r<   Úress      r   Útest_compilezTestCC.test_compile“   s‹  € Ø×#Ò# DÔ$5Ô$8Ñ9Ô9ð 		¸SØ—)’)˜C Ñ%Ô%ˆCØ×#Ò# C¨Ñ3Ô3Ð3Ø—)’)˜C Ñ%Ô%ˆCØ×#Ò# C¨Ñ7Ô7Ð7Ø—*’*˜Q‘-”-ˆCØ×#Ò# C¨Ñ,Ô,Ð,Ø�MŠM˜#Ÿ,š,™.œ.¨$Ñ/Ô/Ð/Ø×"Ò"Õ#4Ñ5Ô5ð ð Ø—’˜˜1‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð		ð 		ð 		ñ 		ô 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		øøøð 		ð 		ð 		ð 		ð 		ð 		s6    CD!Ã&D	Ã=D!Ä	D	ÄD!ÄD	ÄD!Ä!D%Ä(D%c                 ó   — | j         j        }||_        |                      |¦  «        5 }|                     dd¦  «        }|                      |d¦  «         |                      |j        j        d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrn   ro   rp   r]   )rG   rN   Ú
target_cpurO   rt   ru   r`   r"   )r   Úcpu_namerN   r<   r}   s        r   Úcheck_compile_for_cpuzTestCC.check_compile_for_cpuŸ   sá   € ØÔÔ!ˆØ ˆŒà×#Ò# BÑ'Ô'ð 	G¨3Ø—)’)˜C Ñ%Ô%ˆCØ×#Ò# C¨Ñ3Ô3Ð3Ø×Ò˜SœYÔ1Ð3EÑFÔFÐFð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gs   ©ABÂBÂ
Bc                 óR   — |                       t          j        ¦   «         ¦  «         d S r3   )r‚   ÚllÚget_host_cpu_namer,   s    r   Útest_compile_for_cpuzTestCC.test_compile_for_cpu¨   s%   € à×"Ò"¥2Ô#7Ñ#9Ô#9Ñ:Ô:Ð:Ð:Ð:r   c                 ó0   — |                       d¦  «         d S )NÚhost)r‚   r,   s    r   Útest_compile_for_cpu_hostz TestCC.test_compile_for_cpu_host¬   s   € à×"Ò" 6Ñ*Ô*Ð*Ð*Ð*r   Údarwin)é   é   z4distutils incorrectly using gcc on python 3.8 buildsc                 ó$  — |                       | j        j        ¦  «        5 }|                     dd¦  «        }|                      |d¦  «         ddt          j        d¦  «        fD ]-}|                     |¦  «        }|                      |d¦  «         Œ.ddt          j        d¦  «        fD ]-}| 	                    |¦  «        }|                      |d	¦  «         Œ.| 
                    d
¦  «        }|                      |d¦  «         |                      |                     d¦  «        |                     d¦  «        ¦  «         |                     d¦  «        }t
          j                             d¦  «                             ¦   «         }|                      ||¦  «         |                     t          j        dgdz  ¦  «        ¦  «        }|                      |d¦  «         dd|iz  }|                      ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Né   é   é€   éÿÿÿÿy      ð¿        y              ð?é   ç      @ç       @ç      ð?g      °<é*   r   r‹   aR  if 1:
                from numpy.testing import assert_equal, assert_allclose
                res = lib.power(2, 7)
                assert res == 128
                res = lib.random(42)
                assert_allclose(res, %(expected)s)
                res = lib.spacing(1.0)
                assert_allclose(res, 2**-52)
                Úexpected)rO   rG   Úcc_helperlibÚpowerru   ÚnpÚ
complex128ÚsqrtÚfloat64Únp_sqrtÚspacingÚassertNotEqualÚrandomÚRandomStateÚrandom_sampleÚsizer[   ©r   r<   r}   Úvalr—   rY   s         r   Útest_compile_helperlibzTestCC.test_compile_helperlib°   s4  € ð ×#Ò# DÔ$5Ô$BÑCÔCð 	<ÀsØ—)’)˜A˜q‘/”/ˆCØ×#Ò# C¨Ñ-Ô-Ð-Ø˜G¥R¤]°2Ñ%6Ô%6Ð7ð 1ð 1�Ø—h’h˜s‘m”m�Ø×'Ò'¨¨RÑ0Ô0Ð0Ð0Ø˜3¥¤
¨1¡¤Ð.ð 2ð 2�Ø—k’k #Ñ&Ô&�Ø×'Ò'¨¨SÑ1Ô1Ð1Ð1Ø—+’+˜cÑ"Ô"ˆCØ×#Ò# C¨Ñ0Ô0Ð0ð ×Ò §
¢
¨2¡¤°·
²
¸2±´Ñ?Ô?Ð?Ø—*’*˜R‘.”.ˆCÝ”y×,Ò,¨RÑ0Ô0×>Ò>Ñ@Ô@ˆHØ×#Ò# C¨Ñ2Ô2Ð2Ø—(’(�2œ: q c¨A¡gÑ.Ô.Ñ/Ô/ˆCØ×#Ò# C¨Ñ+Ô+Ð+ðð " 8Ð,ñ-ˆDð ×0Ò0°°dÑ;Ô;Ð;ð;	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<s    GHÈH	ÈH	c                 ó¦  — |                       | j        j        ¦  «        5 }|                      |                     d¦  «        d¦  «         |                     d¦  «        }|                      t          |¦  «        g d¢¦  «         t          r+| 	                    d¦  «        }|                      |d¦  «         t          j        g d¢¦  «        }|                     |¦  «        }t          j        |¦  «        }|                      ||¦  «         dt          t          ¬	¦  «        z  }|                      ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nrs   g        r‹   )r   r   r   r’   g      >@)r”   g      @r•   g      @r“   aB  if 1:
                from numpy.testing import assert_equal
                from numpy import float64, argsort
                res = lib.zero_scalar(1)
                assert res == 0.0
                res = lib.zeros(3)
                assert list(res) == [0, 0, 0]
                if %(has_blas)s:
                    res = lib.vector_dot(4)
                    assert res == 30.0
                val = float64([2., 5., 1., 3., 4.])
                res = lib.np_argsort(val)
                expected = argsort(val)
                assert_equal(res, expected)
                )r
   )rO   rG   Úcc_nrtru   Úzero_scalarÚzerosr`   Úlistr
   Ú
vector_dotrš   r�   Ú
np_argsortÚargsortÚdictr[   r¥   s         r   Útest_compile_nrtzTestCC.test_compile_nrtÓ   s{  € Ø×#Ò# DÔ$5Ô$<Ñ=Ô=ð 	<Àà×#Ò# C§O¢O°AÑ$6Ô$6¸Ñ<Ô<Ð<Ø—)’)˜A‘,”,ˆCØ×Ò�T #™YœY¨	¨	¨	Ñ2Ô2Ð2Ýð 3Ø—n’n QÑ'Ô'�Ø×'Ò'¨¨TÑ2Ô2Ð2å”*Ð1Ð1Ð1Ñ2Ô2ˆCØ—.’. Ñ%Ô%ˆCÝ”z #‘”ˆHØ×#Ò# C¨Ñ2Ô2Ð2ðõ ¥HÐ-Ñ-Ô-ñ.ˆDð ×0Ò0°°dÑ;Ô;Ð;ð;	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<s    DEÅE
ÅE
c                 ó„  — |                       | j        j        ¦  «        5 }|                     ¦   «         }|                      |t          d¦  «        ¦  «         |                     d¦  «        }|                      |t          d¦  «        ¦  «         d}|                      ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚAzþif 1:
                from numpy.testing import assert_equal
                res = lib.hash_literal_str_A()
                assert_equal(res, hash("A"))
                res = lib.hash_str("A")
                assert_equal(res, hash("A"))
                )rO   rG   r©   Úhash_literal_str_Aru   ÚhashÚhash_strr[   )r   r<   r}   rY   s       r   Útest_hashingzTestCC.test_hashingó   sö   € Ø×#Ò# DÔ$5Ô$<Ñ=Ô=ð 	<ÀØ×(Ò(Ñ*Ô*ˆCØ×#Ò# C­¨c©¬Ñ3Ô3Ð3Ø—,’,˜sÑ#Ô#ˆCØ×#Ò# C­¨c©¬Ñ3Ô3Ð3ðˆDð ×0Ò0°°dÑ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<s    BB5Â5B9Â<B9c                 ó  — |                       | j        j        ¦  «        5 }t          j        dt          j        ¬¦  «        }|                     |¦  «        }||z  }|                      ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr�   )Údtype)rO   rG   r©   rš   ÚarangeÚintpÚdict_usecaseru   )r   r<   ÚarrÚgotÚexpects        r   Útest_c_extension_usecasezTestCC.test_c_extension_usecase  sÅ   € à×#Ò# DÔ$5Ô$<Ñ=Ô=ð 	1ÀÝ”)˜C¥r¤wÐ/Ñ/Ô/ˆCØ×"Ò" 3Ñ'Ô'ˆCØ˜3‘YˆFØ×#Ò# C¨Ñ0Ô0Ð0ð		1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð 	1s    AA>Á>BÂB)r!   r"   r#   r-   r>   r?   rO   r[   rl   r~   r‚   r†   r‰   ÚunittestÚskipIfr4   rg   r   Ú	PYVERSIONr§   r±   r·   rÀ   Ú__classcell__©rJ   s   @r   rA   rA   Y   s.  ø€ € € € € ð,ð ,ð ,ð ,ð ,ð Ôðð ñ Ôðð<ð <ð <ð(2ð 2ð 2ð&
ð 
ð 
ðGð Gð Gð;ð ;ð ;ð+ð +ð +ð €X„_�S”\ XÒ-ð /Ø”_¨Ò.ØKñMô Mð<ð <ñMô Mð<ð@<ð <ð <ð@<ð <ð <ð 1ð 1ð 1ð 1ð 1ð 1ð 1r   rA   c                   óB   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	ˆ xZ
S )ÚTestDistutilsSupportc                 ó†  •— t          ¦   «                              ¦   «          |                      ¦   «          t          ¦   «          t	          d¦  «        | _        t          j                             t          d¦  «        }t          j                             | j        d¦  «        | _
        t          j        || j
        ¦  «         d S )NÚtest_pycc_distutilsÚpycc_distutils_usecaseÚwork)rD   r-   rE   r   r	   r)   r   r5   ÚjoinÚ	base_pathÚusecase_dirÚshutilÚcopytree)r   Ú
source_dirrJ   s     €r   r-   zTestDistutilsSupport.setUp  s�   ø€ Ý‰Œ�Š‰ŒˆØ×)Ò)Ñ+Ô+Ð+å&Ñ(Ô(Ð(õ %Ð%:Ñ;Ô;ˆŒÝ”W—\’\¥)Ð-EÑFÔFˆ
Ýœ7Ÿ<š<¨¬°VÑ<Ô<ˆÔÝŒ˜
 DÔ$4Ñ5Ô5Ð5Ð5Ð5r   c                 ó´  ‡ ‡— dd l }t          j                             t          j                             t          j                             |j        ¦  «        ¦  «        ¦  «        }t          t          j        ¦  «        Š‰                     dd¦  «        r|t          j	        z   ‰d         z   ‰d<   n|‰d<   ˆˆ fd„} ||ddg¦  «         d} |d|g¦  «         d S )	Nr   Ú
PYTHONPATHÚ c                 óF  •— t          j        t          j        g| z   ‰j        t           j        t           j        ‰¬¦  «        }|                     ¦   «         \  }}|                     ¦   «         }|dk    r.‰ 	                    d| 
                    dd¦  «        z  ¦  «         d S d S ©N)ÚcwdÚstdoutÚstderrÚenvr   z+python failed with the following output:
%szutf-8Úignore©rV   ÚPopenr4   rX   rÎ   ÚPIPEÚSTDOUTÚcommunicateÚwaitÚfailÚdecode©ÚargsÚpÚoutÚ_ÚrcrÚ   r   s        €€r   Ú
run_pythonz7TestDistutilsSupport.check_setup_py.<locals>.run_python'  ó£   ø€ ÝÔ ¥#¤.Ð!1°DÑ!8Ø%)Ô%5Ý(2¬Ý(2Ô(9Ø%(ð	*ñ *ô *ˆAð
 —]’]‘_”_‰FˆC�Ø—’‘”ˆBØ�QŠwˆwØ—	’	ÐHØŸJšJ w°Ñ9Ô9ñ:ñ ;ô ;ð ;ð ;ð ;ð ˆwr   Ú	build_extú	--inplacez¸if 1:
            import pycc_compiled_module as lib
            assert lib.get_const() == 42
            res = lib.ones(3)
            assert list(res) == [1.0, 1.0, 1.0]
            rR   ©
Únumbar   r5   ÚabspathrS   rT   r°   r   r   Úpathsep©r   Úsetup_py_filerï   Ú
numba_pathrê   rY   rÚ   s   `     @r   Úcheck_setup_pyz#TestDistutilsSupport.check_setup_py  óò   øø€ àˆˆˆÝ”W—_’_¥R¤W§_¢_Ý%'¤W§_¢_°U´^Ñ%DÔ%Dñ&Fô &Fñ Gô Gˆ
å•2”:ÑÔˆØ�7Š7�< Ñ$Ô$ð 	+Ø *­R¬ZÑ 7¸#¸lÔ:KÑ KˆC�ÑÐà *ˆC�Ñð
	;ð 
	;ð 
	;ð 
	;ð 
	;ð 
	;ð 	ˆ
�M ;°Ð<Ñ=Ô=Ð=ðˆð 	ˆ
�D˜$�<Ñ Ô Ð Ð Ð r   c                 ó´  ‡ ‡— dd l }t          j                             t          j                             t          j                             |j        ¦  «        ¦  «        ¦  «        }t          t          j        ¦  «        Š‰                     dd¦  «        r|t          j	        z   ‰d         z   ‰d<   n|‰d<   ˆˆ fd„} ||ddg¦  «         d} |d|g¦  «         d S )	Nr   rÓ   rÔ   c                 óF  •— t          j        t          j        g| z   ‰j        t           j        t           j        ‰¬¦  «        }|                     ¦   «         \  }}|                     ¦   «         }|dk    r.‰ 	                    d| 
                    dd¦  «        z  ¦  «         d S d S rÖ   rÜ   rä   s        €€r   rê   z>TestDistutilsSupport.check_setup_nested_py.<locals>.run_pythonG  rë   r   rì   rí   z¿if 1:
            import nested.pycc_compiled_module as lib
            assert lib.get_const() == 42
            res = lib.ones(3)
            assert list(res) == [1.0, 1.0, 1.0]
            rR   rî   rò   s   `     @r   Úcheck_setup_nested_pyz*TestDistutilsSupport.check_setup_nested_py<  rö   r   c                 ó0   — |                       d¦  «         d S )Nzsetup_distutils.py©rõ   r,   s    r   Útest_setup_py_distutilsz,TestDistutilsSupport.test_setup_py_distutils\  s   € Ø×ÒÐ0Ñ1Ô1Ð1Ð1Ð1r   c                 ó0   — |                       d¦  «         d S )Nzsetup_distutils_nested.py©rù   r,   s    r   Útest_setup_py_distutils_nestedz3TestDistutilsSupport.test_setup_py_distutils_nested_  s   € Ø×"Ò"Ð#>Ñ?Ô?Ð?Ð?Ð?r   c                 ó0   — |                       d¦  «         d S )Nzsetup_setuptools.pyrû   r,   s    r   Útest_setup_py_setuptoolsz-TestDistutilsSupport.test_setup_py_setuptoolsb  s   € Ø×ÒÐ1Ñ2Ô2Ð2Ð2Ð2r   c                 ó0   — |                       d¦  «         d S )Nzsetup_setuptools_nested.pyrþ   r,   s    r   Útest_setup_py_setuptools_nestedz4TestDistutilsSupport.test_setup_py_setuptools_nestede  s   € Ø×"Ò"Ð#?Ñ@Ô@Ð@Ð@Ð@r   )r!   r"   r#   r-   rõ   rù   rü   rÿ   r  r  rÄ   rÅ   s   @r   rÇ   rÇ     sž   ø€ € € € € ð6ð 6ð 6ð 6ð 6ð!ð !ð !ð@!ð !ð !ð@2ð 2ð 2ð@ð @ð @ð3ð 3ð 3ðAð Að Að Að Að Að Ar   rÇ   Ú__main__))r>   rH   r   rÏ   rV   r4   r*   rÁ   r   ÚctypesÚnumpyrš   Úllvmlite.bindingÚbindingr„   Ú
numba.corer   Únumba.tests.supportr   r   r   r	   r
   r   Ú_skip_reasonrÂ   rg   rf   r$   r5   rS   rð   rT   rÍ   r   r   r&   rA   rÇ   r!   Úmainr   r   r   ú<module>r     sj  ðØ Ð Ð Ð Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð à Ð Ð Ð à Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð ð=ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð €€€ð €Ø�” C¤L×$;Ò$;¸EÑ$BÔ$BÐ BØ ,ñ.ô .€ð ŒG�OŠO˜BœGŸOšO¨HÑ5Ô5Ñ6Ô6€	ð3ð 3ð 3ð ð;ð ;ð ;ð ;ð ;˜ñ ;ô ;ñ Ôð;ð$(ð (ð (ð (ð (�8ñ (ô (ð (ð@ ðo1ð o1ð o1ð o1ð o1ˆ\ñ o1ô o1ñ Ôðo1ðd ðYAð YAð YAð YAð YA˜8ñ YAô YAñ ÔðYAðx ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   