Ë
    èÿæi,  ã                   óà   — d dl Z d dlZd dlZd dlmZ d dlZd dlZ	 d dlZdZ	 d dl
Z
dZ G d„ dej                  «      Zedk(  r ej                  «        yy# e	$ r dZY Œ=w xY w# e	$ r dZY ŒCw xY w)é    N)ÚcudaTFc                   ó&  — e Zd ZdZddœd„Zd„ Zd„ Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Z ej                   ej                  «        d«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z ej.                  ed«      d„ «       Z ej.                  ed«      d„ «       Zd„ Zy)ÚTestCasezßThese test cases are meant to test the Numba test infrastructure itself.
    Therefore, the logic used here shouldn't use numba.testing, but only the
    upstream unittest, and run the numba test suite only in a subprocess.N©Úsubp_kwargsc                ó  — |xs i }t         j                  dddgt        |«      z   }t        j                  |fi |¤Ž}|j                  d«      j                  «       }|D �cg c]  }|j                  «       sŒ|‘Œ }}|S c c}w )zX
        Use `subp_kwargs` to pass extra argument to `subprocess.check_output`.
        z-mznumba.runtestsz-lúUTF-8)ÚsysÚ
executableÚlistÚ
subprocessÚcheck_outputÚdecodeÚ
splitlinesÚstrip)ÚselfÚargsr   ÚcmdÚ	out_bytesÚlinesÚlines          ún/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_runtests.pyÚget_testsuite_listingzTestCase.get_testsuite_listing   s~   € ð "Ò' RˆÜ�~‰~˜tÐ%5°tÐ<¼tÀD»zÑIˆÜ×+Ñ+¨CÑ?°;Ñ?ˆ	Ø× Ñ  Ó)×4Ñ4Ó6ˆÙ"'Ó8¡%˜$¨4¯:©:­<’ %ˆÐ8Øˆùò 9s   Á A>Á6A>c                 ó¤   — | j                  |g«      }|d d D ]6  }dj                  ||«      }| j                  |j                  |«      |¬«       Œ8 y )Néÿÿÿÿz{!r} not startswith {!r})Úmsg)r   ÚformatÚ
assertTrueÚ
startswith)r   ÚprefixÚlistingÚlnÚerrmsgs        r   Úcheck_listing_prefixzTestCase.check_listing_prefix(   sO   € Ø×,Ñ,¨f¨XÓ6ˆØ˜#˜2“,ˆBØ/×6Ñ6°r¸6ÓBˆFØ�O‰O˜BŸM™M¨&Ó1°vˆOÕ>ñ ó    c                 ó  — | j                  |«      }|d   }| j                  d|v «       t        |j                  d«      d   «      }| j	                  t        |«      t        |dz   |dz   «      «       | j                  ||«       |S )zR
        Check that the reported numbers of tests are at least *minsize*.
        r   útests foundÚ r   é   é   )r   r   ÚintÚsplitÚassertInÚlenÚrangeÚassertGreaterEqual)r   r   Úminsizer   Ú	last_lineÚnumbers         r   Úcheck_testsuite_sizezTestCase.check_testsuite_size.   s~   € ð ×*Ñ*¨4Ó0ˆØ˜"‘Iˆ	Ø�‰˜¨Ð2Ô3Ü�Y—_‘_ SÓ)¨!Ñ,Ó-ˆð 	�‰”c˜%“j¤%¨°©
°F¸R±KÓ"@ÔAØ×Ñ ¨Ô0Øˆr%   c                 ó¬   — | j                  |d«      }| j                  t        d„ |D «       «      «       | j                  t        d„ |D «       «      «       y )Niˆ  c              3   ó$   K  — | ]  }d |v –— Œ
 y­w)znumba.cuda.tests.N© ©Ú.0r   s     r   Ú	<genexpr>z%TestCase.check_all.<locals>.<genexpr>?   s   è ø€ ÐJÁE¸DÐ/°4Ô7ÁEùó   ‚c              3   ó$   K  — | ]  }d |v –— Œ
 y­w)znumba.tests.npyufunc.test_Nr7   r8   s     r   r:   z%TestCase.check_all.<locals>.<genexpr>A   s   è ø€ ð /Ù(- ð 9¸DÔ@Ù(-ùr;   )r4   r   Úany)r   Úidsr   s      r   Ú	check_allzTestCase.check_all<   sK   € Ø×)Ñ)¨#¨tÓ4ˆà�‰œÑJÁEÓJÓJÔKà�‰œñ /Ù(-ó/ó /õ 	1r%   c                 ó   — t        d„ |«      S )z|returns a filter on strings starting with 'numba.', useful for
        selecting the 'numba' test names from a test listing.c                 ó$   — | j                  d«      S )Nznumba.)r   )Úxs    r   Ú<lambda>z8TestCase._get_numba_tests_from_listing.<locals>.<lambda>G   s   €  §¡¨XÔ 6r%   )Úfilter)r   r!   s     r   Ú_get_numba_tests_from_listingz&TestCase._get_numba_tests_from_listingD   s   € ô Ñ6¸Ó@Ð@r%   c                 ó&   — | j                  g «       y )N©r?   ©r   s    r   Útest_defaultzTestCase.test_defaultI   s   € Ø�‰�rÕr%   c                 ó(   — | j                  dg«       y )Núnumba.testsrG   rH   s    r   Útest_allzTestCase.test_allL   s   € Ø�‰˜�Õ'r%   c                 óZ   — t        j                  «       rdnd}| j                  dg|«       y )Néd   r)   znumba.cuda.tests)r   Úis_availabler4   )r   r1   s     r   Ú	test_cudazTestCase.test_cudaO   s*   € ô ×*Ñ*Ô,‘#°!ˆØ×!Ñ!Ð#5Ð"6¸Õ@r%   zNO CUDAc                 óŒ   — | j                  d«       | j                  d«       | j                  d«       | j                  d«       y )Nznumba.cuda.tests.cudadrvznumba.cuda.tests.cudapyznumba.cuda.tests.nocudaznumba.cuda.tests.cudasim)r$   rH   s    r   Útest_cuda_submoduleszTestCase.test_cuda_submodulesU   s>   € à×!Ñ!Ð"<Ô=Ø×!Ñ!Ð";Ô<Ø×!Ñ!Ð";Ô<Ø×!Ñ!Ð"<Õ=r%   c                 óx   — | j                  dgd«       | j                  dgd«       | j                  ddgd«       y )Nznumba.tests.test_storesliceé   znumba.tests.test_nested_callsé
   é   ©r4   rH   s    r   Útest_modulezTestCase.test_module\   sH   € Ø×!Ñ!Ð#@Ð"AÀ1ÔEØ×!Ñ!Ð#BÐ"CÀRÔHà×!Ñ!Ð#BØ#@ð#BØCEõ	Gr%   c                 ó*   — | j                  dgd«       y )Núnumba.tests.npyufuncé2   rW   rH   s    r   Útest_subpackagezTestCase.test_subpackagec   s   € Ø×!Ñ!Ð#9Ð":¸BÕ?r%   c                 ó,   — | j                  g d¢d«       y )N)z--randomz0.1rZ   é   rW   rH   s    r   Útest_randomzTestCase.test_randomf   s   € Ø×!Ñ!Ú7¸õ	<r%   c                 óì   ‡ — ˆ fd„}ddg} |dg«      }|D ]\  } |d|dg«      } |d|dg«      }‰ j                  |||z   «        |d|z  dg«      } |d|z  dg«      }‰ j                  |||z   «       Œ^ y )	Nc                 óº   •— ‰j                  | «      }‰j                  d|d   «       t        |d   j                  «       d   «      }‰j	                  |dkD  «       |S )Nr'   r   r   )r   r-   r+   r,   r   )Úarg_listr   Úcountr   s      €r   Ú	get_countz5TestCase.test_include_exclude_tags.<locals>.get_countk   sT   ø€ Ø×.Ñ.¨xÓ8ˆEØ�M‰M˜-¨¨r©Ô3Ü˜˜b™	Ÿ™Ó)¨!Ñ,Ó-ˆEØ�O‰O˜E A™IÔ&ØˆLr%   Úlong_runningzlong_running, importantrK   z--tagsz--exclude-tagsz	--tags=%sz--exclude-tags=%s)ÚassertEqual)r   rd   ÚtagsÚtotalÚtagÚincludedÚexcludeds   `      r   Útest_include_exclude_tagsz"TestCase.test_include_exclude_tagsj   s£   ø€ ô	ð Ð 9Ð:ˆá˜=˜/Ó*ˆãˆCÙ  (¨C°Ð!?Ó@ˆHÙ Ð"2°C¸Ð!GÓHˆHØ×Ñ˜U H¨xÑ$7Ô8ñ ! +°Ñ"3°]Ð!CÓDˆHÙ Ð"5¸Ñ";¸]Ð!KÓLˆHØ×Ñ˜U H¨xÑ$7Õ8ñ r%   c                 ó  — | j                  g «      }| j                  ddg«      }| j                  ddg«      }t        | j                  |«      «      }t        | j                  |«      «      }t        | j                  |«      «      }| j                  t	        t        |«      t        |«      z
  «      t        |«      dz  «       | j                  t        |«      t        |«      «       | j                  t        |«      t        |«      «       y )Nú-jz0:2z1:2r*   )r   ÚsetrE   Ú
assertLessÚabsr.   )r   ÚtmpAllÚtmp1Útmp2ÚlAllÚl1Úl2s          r   Útest_check_shardzTestCase.test_check_shard€   sÏ   € Ø×+Ñ+¨BÓ/ˆØ×)Ñ)¨4°¨-Ó8ˆØ×)Ñ)¨4°¨-Ó8ˆä�4×5Ñ5°fÓ=Ó>ˆÜ�×3Ñ3°DÓ9Ó:ˆÜ�×3Ñ3°DÓ9Ó:ˆð 	�‰œœC ›G¤c¨"£gÑ-Ó.´°D³	¸B±Ô?Ø�‰œ˜B›¤ T£Ô+Ø�‰œ˜B›¤ T£Õ+r%   c                 óÚ  — t        «       }t        d«      D ]H  }| j                  ddj                  |«      g«      }g | j	                  |«      ¢}|j                  |«       ŒJ | j                  ddg«      }t        | j	                  |«      «      }| j                  t        |«      d«       |D �cg c]  }t        |«      ‘Œ }}t        t        |«      «      D ],  }| j                  t        ||   «      t        ||   «      «       Œ. |D ]>  }	|D ]7  }
| j                  |
|	«       |	j                  |
«       | j                  |
|	«       Œ9 Œ@ t        j                  |d«      D ]  \  }}| j                  ||z  «       Œ t        «       }|D ]  }|j!                  |«       Œ |j!                  |«       t        | j	                  | j                  g «      «      «      }| j                  ||«       y c c}w )Né   rn   z{}:3z--tagÚalways_testr)   rT   )r   r/   r   r   rE   Úappendro   r0   r.   rf   r-   ÚremoveÚassertNotInÚ	itertoolsÚcombinationsÚassertFalseÚupdate)r   ÚshardedÚiÚsubsetÚslistÚtmpÚalways_runningrB   Úsharded_setsÚshardÚtestÚaÚbÚsum_of_partsÚfull_listings                  r   Útest_check_sharding_equivalentz'TestCase.test_check_sharding_equivalent�   sÁ  € ä“&ˆÜ�q–ˆAØ×/Ñ/°°v·}±}ÀQÓ7GÐ0HÓIˆFØA�d×8Ñ8¸Ó@ÐAˆEØ�N‰N˜5Õ!ð ð ×(Ñ(¨'°=Ð)AÓBˆÜ˜T×?Ñ?ÀÓDÓEˆð 	×Ñ¤ NÓ 3°QÔ7ñ )0Ó0© 1œ˜A�¨ˆÐ0Ü”s˜7“|Ö$ˆAØ×ÑœS ¨a¡Ó1´3°w¸q±z³?ÕCð %ó
 "ˆEÛ&�Ø—‘˜d EÔ*Ø—‘˜TÔ"Ø× Ñ   uÕ-ñ 'ð "ô ×*Ñ*¨<¸Ö;‰DˆAˆqØ×Ñ˜Q ™UÕ#ð <ô “uˆÛˆAØ×Ñ Õ"ð à×Ñ˜NÔ+ä˜4×=Ñ=Ø×&Ñ& rÓ*ó,ó -ˆð 	×Ñ˜ |Õ4ùò7 1s   Â-G(zRequires gitpythonc                 ó  — 	 t        j                  dt         j                  t         j                  ¬«       | j                  dg«      }| j                  d|«       | j                  dg«      }| j                  d|«       t        t         j                  ¬«      }| j                  t         j                  «      5  | j                  dg|¬	«       d d d «       y # t        $ r | j	                  d«       Y Œ»w xY w# 1 sw Y   y xY w)
NÚgit©ÚstdoutÚstderrzno git availablez-gzGit diff by common ancestorz-g=ancestor)r•   z	-g=ancestr   )r   ÚcallÚDEVNULLÚFileNotFoundErrorÚskipTestr   r~   r-   ÚdictÚassertRaisesÚCalledProcessError)r   Úoutsr   s      r   Útest_gitdiffzTestCase.test_gitdiff¼   sÕ   € ð	.Ü�O‰O˜EÜ#-×#5Ñ#5Ü#-×#5Ñ#5õ7ð ×)Ñ)¨4¨&Ó1ˆØ×ÑÐ6¸Ô=à×)Ñ)¨=¨/Ó:ˆØ�‰Ð3°TÔ:ä¤*×"4Ñ"4Ô5ˆØ×Ñœz×<Ñ<Õ=Ø×&Ñ&¨ }À+Ð&ÔN÷ >Ð=øô !ò 	.Ø�M‰MÐ,Ö-ð	.ú÷ >Ð=ús   ‚4C Â7C5ÃC2Ã1C2Ã5C>zRequires pyyamlc                 óP  — ddl m} t        j                  j	                  t        j                  j                  t        «      «      }t        j                  j                  |ddd«      }t        j                  j                  |«      s| j                  d«       t        t        j                  j                  |«      d«      5 }|j                  «       }d d d «       t        j                  |¬«      }|d   }g }|d   }	|	d   d	   }
|
j                  «       D ]  }|j                  |d
   «       Œ g d¢}t        j                  j                  |g|¢­Ž }t        j                  j                  |«      s| j                  d«       t        t        j                  j                  |«      d«      5 }|j                  «       }d d d «       t        j                  ||¬«      }|d   d   d   d	   }
|
j                  «       D ]  }|j                  |d
   «       Œ | j                  t!        |«      t!        t#        |«      «      «       t%        |«      dz   }g t'        |«      ¢}| j                  t)        |«      |«       | j                  ||d   d   «       y # 1 sw Y   �Œ¾xY w# 1 sw Y   ŒàxY w)Nr   )ÚLoaderú..zazure-pipelines.ymlz&'azure-pipelines.yml' is not availableÚrtÚjobsÚ
parametersÚmatrixÚTEST_START_INDEX)r¡   r¡   ÚbuildscriptsÚazurezazure-windows.ymlz$'azure-windows.yml' is not availableÚstrategyr)   Ú	variablesÚ
TEST_COUNT)Úyamlr    ÚosÚpathÚdirnameÚabspathÚ__file__ÚjoinÚisfiler™   ÚopenÚreadÚloadÚvaluesr|   rf   r.   ro   Úmaxr/   Úsorted)r   r    Ú	base_pathÚ
azure_pipeÚfÚdataÚpipe_ymlÚ	templatesÚstart_indexesÚtmpltr¥   ÚsetupÚwinpathÚazure_windowsÚwindows_ymlÚlim_start_indexÚexpecteds                    r   Útest_azure_configzTestCase.test_azure_configÑ   s  € åÜ—G‘G—O‘O¤B§G¡G§O¡O´HÓ$=Ó>ˆ	Ü—W‘W—\‘\ )¨T°4Ð9NÓOˆ
Ü�w‰w�~‰~˜jÔ)Ø�M‰MÐBÔCÜ”"—'‘'—/‘/ *Ó-¨tÔ4¸Ø—6‘6“8ˆD÷ 5ä—9‘9˜T¨&Ô1ˆà˜VÑ$ˆ	àˆØ˜!‘ˆØ�|Ñ$ XÑ.ˆØ—]‘]–_ˆEØ× Ñ  Ð'9Ñ!:Õ;ð %ò MˆÜŸ™Ÿ™ YÐ9°Ò9ˆÜ�w‰w�~‰~˜mÔ,Ø�M‰MÐ@ÔAÜ”"—'‘'—/‘/ -Ó0°$Ô7¸1Ø—6‘6“8ˆD÷ 8ä—i‘i ¨VÔ4ˆð ˜VÑ$ QÑ'¨
Ñ3°HÑ=ˆØ—]‘]–_ˆEØ× Ñ  Ð'9Ñ!:Õ;ð %ð
 	×Ñœ˜]Ó+¬S´°]Ó1CÓ-DÔEä˜mÓ,¨qÑ0ˆØ,”U˜?Ó+Ð,ˆØ×Ñœ Ó.°Ô9à×Ñ˜¨(°;Ñ*?ÀÑ*MÕN÷G 5Ñ4ú÷" 8Ð7ús   ÃJÆ,JÊJÊJ%c                 ó  — d}| j                  t        j                  «      5 }t        j                  d|j                  d«      g}t        j                  |t        j                  d¬«       d d d «       | j                  dj                  j                  j                  d«      «       t        j                  d|j                  d«      g}t        j                  |t        j                  t        j                  ¬	«       y # 1 sw Y   Œ•xY w)
NaJ  if 1:
        from unittest import mock
        from llvmlite import binding as llvm
        error = RuntimeError("Detected compilation during test listing")
        with mock.patch.object(llvm.ExecutionEngine, 'finalize_object',
                               side_effect=error):
            import numba
            {0}
        z-cznumba.njit(lambda:0)()é<   )r•   Útimeoutz(Detected compilation during test listingr	   znumba.test('-l')r“   )r›   r   rœ   r
   r   r   r   ÚSTDOUTr-   Ú	exceptionr”   r   Ú
check_callr—   )r   ÚcodeÚraisesr   s       r   Útest_no_compilation_on_listz$TestCase.test_no_compilation_on_listý   sÎ   € ðˆð ×Ñœz×<Ñ<Ô=ÀÜ—>‘> 4¨¯©Ð5MÓ)NÐOˆCÜ×#Ñ# CÜ+5×+<Ñ+<Ø,.õ0÷ >ð
 	�‰Ð@Ø×&Ñ&×-Ñ-×4Ñ4°WÓ=ô	?ô
 �~‰~˜t T§[¡[Ð1CÓ%DÐEˆÜ×Ñ˜cÜ%/×%7Ñ%7Ü%/×%7Ñ%7ö	:÷ >Ð=ús   ¢A	C?Ã?D)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r$   r4   r?   rE   rI   rL   rP   ÚunittestÚskipIfr   rO   rR   rX   r\   r_   rl   rx   r�   Ú
skipUnlessÚhas_gitpythonrž   Ú
has_pyyamlrÈ   rÑ   r7   r%   r   r   r      sÚ   „ ñMð :>ô 	ò?òò1òAò
ò(òAð €X‡_�_Ð*˜×*Ñ*Ó,Ð,¨iÓ8ñ>ó 9ð>òGò@ò<ò9ò,,ò+5ðZ €X×Ñ˜Ð(<Ó=ñOó >ðOð( €X×Ñ˜Ð%6Ó7ñ)Oó 8ð)OóV:r%   r   Ú__main__)r­   r
   r   Únumbar   rÖ   r   r’   rÙ   ÚImportErrorr¬   rÚ   r   rÒ   Úmainr7   r%   r   Ú<module>rß      s�   ðÛ 	Û 
Û å Û Û ðÛð €MðÛð €Jô@:ˆx× Ñ ô @:ðF ˆzÒØ€H‡M�M…Oð øða ò Ø‚Mðûð ò Ø‚Jðús"   œA £A# ÁA ÁA Á#A-Á,A-