§
    2@Äj™0  ã                   óð  — 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m	Z	m
Z
mZmZmZmZ d dlmZmZ d dlmZmZmZ d dlmZ d dlmZ d dlmZ d dlZd„ Zd	„ Z G d
„ de¦  «        Zdej         fgZ!d„ Z"d„ Z#d„ Z$d„ Z% G d„ de¦  «        Z& G d„ de&¦  «        Z' G d„ de'¦  «        Z( G d„ de&¦  «        Z) G d„ de&¦  «        Z* G d„ de'¦  «        Z+ G d„ de¦  «        Z,e-dk    r ej.        ¦   «          dS dS ) é    N)ÚTestCaseÚoverride_configÚoverride_env_configÚcaptured_stdoutÚforbid_codegenÚskip_parfors_unsupportedÚ
needs_blas)ÚjitÚnjit)ÚtypesÚcompilerÚutils)ÚNumbaPerformanceWarning)Úprange)Újitclassc                 ó   — | dz   }|S )Né   © )ÚsomeargÚretvals     úGC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_debug.pyÚsimple_nopythonr      s   € Ø�q‰[€FØ€Mó    c              #   ó   K  — | V — |V — d S ©Nr   )ÚxÚys     r   Ú
simple_genr      s   è è € Ø
€G€G€GØ
€G€G€G€G€Gr   c                   ó   — e Zd Zd„ ZdS )ÚSimpleClassc                 ó   — d| _         d S )Né   ©Úh)Úselfs    r   Ú__init__zSimpleClass.__init__   s   € ØˆŒˆˆr   N)Ú__name__Ú
__module__Ú__qualname__r&   r   r   r   r    r       s#   € € € € € ðð ð ð ð r   r    r$   c                 ó   — | j         S r   r#   )Úobjs    r   Úsimple_class_userr,   #   s	   € ØŒ5€Lr   c                 ó,   — t          j        | |¦  «        S r   )ÚnpÚdot)ÚaÚbs     r   Úunsupported_parforr2   &   s   € ÝŒ6�!�Q‰<Œ<Ðr   c                 ó’   — t          j        | ¦  «        }t          | ¦  «        D ]"}||         t          j        |¦  «        z   ||<   Œ#|S r   ©r.   Úonesr   Úsin©Únr0   Úis      r   Úsupported_parforr:   )   sE   € Ý
Œ�‰
Œ
€AÝ�A‰YŒYð  ð  ˆØ�Œt•b”f˜Q‘i”iÑˆˆ!‰ˆØ€Hr   c                 ó¨   — t          j        | ¦  «        }t          | ¦  «        D ]-}||         t          j        |¦  «        z   ||<   |dz   dk     sJ ‚Œ.|S )Né   i † r4   r7   s      r   Úunsupported_pranger=   /   sV   € Ý
Œ�‰
Œ
€AÝ�A‰YŒYð ð ˆØ�Œt•b”f˜Q‘i”iÑˆˆ!‰Ø�2‰v˜ŠˆˆˆˆØ€Hr   c                   ód   — e Zd Z eg d¢¦  «        Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ ZdS )ÚDebugTestBase)ÚbytecodeÚcfgÚirÚ	typeinferÚllvmÚfunc_opt_llvmÚoptimized_llvmÚassemblyc                 ó2   —  | j         t          g|¢R i |¤Ž d S r   )ÚassertRaisesÚAssertionError)r%   ÚargsÚkwargss      r   Úassert_failszDebugTestBase.assert_fails<   s+   € ØˆÔ�.Ð:¨4Ð:Ð:Ð:°6Ð:Ð:Ð:Ð:Ð:r   c                 ó"  — t                                | j        d¦  «        }|D ]}||v sJ ‚d||<   Œt          |                     ¦   «         ¦  «        D ]<\  }}t          | d|z  ¦  «        }|r ||¦  «         Œ&|                      ||¦  «         Œ=d S )NFTz_check_dump_%s)ÚdictÚfromkeysÚ	all_dumpsÚsortedÚitemsÚgetattrrM   )r%   ÚoutÚ
dump_namesÚenabled_dumpsÚnameÚenabledÚ
check_meths          r   Úcheck_debug_outputz DebugTestBase.check_debug_output?   sº   € ÝŸš d¤n°eÑ<Ô<ˆØð 	'ð 	'ˆDØ˜=Ð(Ð(Ð(Ð(Ø"&ˆM˜$ÑÐÝ# M×$7Ò$7Ñ$9Ô$9Ñ:Ô:ð 	3ð 	3‰MˆD�'Ý  Ð'7¸$Ñ'>Ñ?Ô?ˆJØð 3Ø�
˜3‘”��à×!Ò! *¨cÑ2Ô2Ð2Ð2ð	3ð 	3r   c                 óÌ   — t           j        dv r|                      d|¦  «         d S t           j        dv r|                      d|¦  «         d S t          t           j        ¦  «        ‚)N))é   é   )r]   é   )r]   r<   )r]   é   )r]   é   Ú	BINARY_OP))r]   é
   Ú
BINARY_ADD)r   Ú	PYVERSIONÚassertInÚNotImplementedError©r%   rU   s     r   Ú_check_dump_bytecodez"DebugTestBase._check_dump_bytecodeK   sa   € ÝŒ?ÐKÐKÐKØ�MŠM˜+ sÑ+Ô+Ð+Ð+Ð+ÝŒ_ 
Ð*Ð*Ø�MŠM˜,¨Ñ,Ô,Ð,Ð,Ð,å%¥e¤oÑ6Ô6Ð6r   c                 ó2   — |                       d|¦  «         d S )NzCFG dominators©rf   rh   s     r   Ú_check_dump_cfgzDebugTestBase._check_dump_cfgS   s   € Ø�ŠÐ&¨Ñ,Ô,Ð,Ð,Ð,r   c                 óB   — |                       d| j        z  |¦  «         d S )Nz--IR DUMP: %s--©rf   Ú	func_namerh   s     r   Ú_check_dump_irzDebugTestBase._check_dump_irV   s$   € Ø�ŠÐ'¨$¬.Ñ8¸#Ñ>Ô>Ð>Ð>Ð>r   c                 ó2   — |                       d|¦  «         d S )Nz--propagate--rk   rh   s     r   Ú_check_dump_typeinferz#DebugTestBase._check_dump_typeinferY   s   € Ø�Š�o sÑ+Ô+Ð+Ð+Ð+r   c                 ó®   — |                       d|¦  «         t          j        j        d         j        j        dk    r|                      |d|¦  «         d S d S )Nz--LLVM DUMPÚauto_parallelFz#store i64 %\"\.\d", i64\* %"retptr")rf   r   ÚFlagsÚoptionsÚdefaultrY   ÚassertRegexrh   s     r   Ú_check_dump_llvmzDebugTestBase._check_dump_llvm\   sY   € Ø�Š�m SÑ)Ô)Ð)ÝŒ>Ô! /Ô2Ô:ÔBÀeÒKÐKØ×Ò˜SÐ"HÈ#ÑNÔNÐNÐNÐNð LÐKr   c                 ón   — |                       d| j        z  |¦  «         |                       d|¦  «         d S )Nz--FUNCTION OPTIMIZED DUMP %súadd nsw i64 %arg.somearg, 1rn   rh   s     r   Ú_check_dump_func_opt_llvmz'DebugTestBase._check_dump_func_opt_llvma   s9   € Ø�ŠÐ4°t´~ÑEÀsÑKÔKÐKà�ŠÐ3°SÑ9Ô9Ð9Ð9Ð9r   c                 ón   — |                       d| j        z  |¦  «         |                       d|¦  «         d S )Nz--OPTIMIZED DUMP %sr{   rn   rh   s     r   Ú_check_dump_optimized_llvmz(DebugTestBase._check_dump_optimized_llvmf   s9   € Ø�ŠÐ+¨d¬nÑ<¸cÑBÔBÐBØ�ŠÐ3°SÑ9Ô9Ð9Ð9Ð9r   c                 óœ   — |                       d| j        z  |¦  «         t          j        ¦   «         dv r|                       d|¦  «         d S d S )Nz--ASSEMBLY %s)Úx86_64ÚAMD64Úi386Úi686Úxorl)rf   ro   ÚplatformÚmachinerh   s     r   Ú_check_dump_assemblyz"DebugTestBase._check_dump_assemblyj   sU   € Ø�Š�o¨¬Ñ6¸Ñ<Ô<Ð<ÝÔÑÔÐ!DÐDÐDØ�MŠM˜& #Ñ&Ô&Ð&Ð&Ð&ð EÐDr   N)r'   r(   r)   ÚsetrQ   rM   r[   ri   rl   rp   rr   ry   r|   r~   r‡   r   r   r   r?   r?   7   sÒ   € € € € € à�ð Dð Dð Dñ Eô E€Ið;ð ;ð ;ð
3ð 
3ð 
3ð7ð 7ð 7ð-ð -ð -ð?ð ?ð ?ð,ð ,ð ,ðOð Oð Oð
:ð :ð :ð
:ð :ð :ð'ð 'ð 'ð 'ð 'r   r?   c                   ó   — e Zd ZdZd„ ZdS )ÚFunctionDebugTestBaser   c                 ó  — t          ¦   «         5 } t          t          j        f¦  «        t          ¦  «        }|                       |d¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         S )Né   r]   )r   r   r   Úint64r   ÚassertPreciseEqualÚgetvalue©r%   rU   Úcfuncs      r   Úcompile_simple_nopythonz-FunctionDebugTestBase.compile_simple_nopythont   s©   € ÝÑÔð 	1 #Ø(•D�%œ+˜Ñ(Ô(­Ñ9Ô9ˆEà×#Ò# E E¨!¡H¤H¨aÑ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð �|Š|‰~Œ~Ðs   �AA#Á#A'Á*A'N)r'   r(   r)   ro   r’   r   r   r   rŠ   rŠ   p   s(   € € € € € à!€Iðð ð ð ð r   rŠ   c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestFunctionDebugOutputc                 ó¬   — t          dd¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |dg¦  «         d S )NÚDUMP_BYTECODETr@   ©r   r’   r[   rh   s     r   Útest_dump_bytecodez*TestFunctionDebugOutput.test_dump_bytecode~   ó–   € Ý˜_¨dÑ3Ô3ð 	1ð 	1Ø×.Ò.Ñ0Ô0ˆCð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1à×Ò  j \Ñ2Ô2Ð2Ð2Ð2ó   ‘2²6¹6c                 ó¬   — t          dd¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |dg¦  «         d S )NÚDUMP_IRTrB   r—   rh   s     r   Útest_dump_irz$TestFunctionDebugOutput.test_dump_irƒ   s–   € Ý˜Y¨Ñ-Ô-ð 	1ð 	1Ø×.Ò.Ñ0Ô0ˆCð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1à×Ò  d VÑ,Ô,Ð,Ð,Ð,rš   c                 ó¬   — t          dd¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |dg¦  «         d S )NÚDUMP_CFGTrA   r—   rh   s     r   Útest_dump_cfgz%TestFunctionDebugOutput.test_dump_cfgˆ   s–   € Ý˜Z¨Ñ.Ô.ð 	1ð 	1Ø×.Ò.Ñ0Ô0ˆCð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1à×Ò  e WÑ-Ô-Ð-Ð-Ð-rš   c                 ó¬   — t          dd¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |dg¦  «         d S )NÚ	DUMP_LLVMTrD   r—   rh   s     r   Útest_dump_llvmz&TestFunctionDebugOutput.test_dump_llvm�   s–   € Ý˜[¨$Ñ/Ô/ð 	1ð 	1Ø×.Ò.Ñ0Ô0ˆCð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1à×Ò  f XÑ.Ô.Ð.Ð.Ð.rš   c                 ó¬   — t          dd¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |dg¦  «         d S )NÚDUMP_FUNC_OPTTrE   r—   rh   s     r   Útest_dump_func_opt_llvmz/TestFunctionDebugOutput.test_dump_func_opt_llvm’   s—   € Ý˜_¨dÑ3Ô3ð 	1ð 	1Ø×.Ò.Ñ0Ô0ˆCð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1à×Ò  oÐ%6Ñ7Ô7Ð7Ð7Ð7rš   c                 ó¬   — t          dd¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |dg¦  «         d S )NÚDUMP_OPTIMIZEDTrF   r—   rh   s     r   Útest_dump_optimized_llvmz0TestFunctionDebugOutput.test_dump_optimized_llvm—   s™   € ÝÐ-¨tÑ4Ô4ð 	1ð 	1Ø×.Ò.Ñ0Ô0ˆCð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1à×Ò Ð&6Ð%7Ñ8Ô8Ð8Ð8Ð8rš   c                 ó¬   — t          dd¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |dg¦  «         d S )NÚDUMP_ASSEMBLYTrG   r—   rh   s     r   Útest_dump_assemblyz*TestFunctionDebugOutput.test_dump_assemblyœ   r™   rš   N)
r'   r(   r)   r˜   r�   r    r£   r¦   r©   r¬   r   r   r   r”   r”   |   s}   € € € € € ð3ð 3ð 3ð
-ð -ð -ð
.ð .ð .ð
/ð /ð /ð
8ð 8ð 8ð
9ð 9ð 9ð
3ð 3ð 3ð 3ð 3r   r”   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚTestGeneratorDebugOutputr   c           	      ó:  — t          ¦   «         5 } t          t          j        t          j        f¦  «        t          ¦  «        }|                      t           |dd¦  «        ¦  «        ddg¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         S )NrŒ   r"   )r   r   r   r�   r   rŽ   Úlistr�   r�   s      r   Úcompile_simple_genz+TestGeneratorDebugOutput.compile_simple_gen¦   s¼   € ÝÑÔð 	? #Ø4•D�%œ+¥u¤{Ð3Ñ4Ô4µZÑ@Ô@ˆEà×#Ò#¥D¨¨¨q°!©¬Ñ$5Ô$5¸¸1°vÑ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð �|Š|‰~Œ~Ðs   �A#A>Á>BÂBc                 ó<  — t          dd¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |dg¦  «         |                      d| j        z  |¦  «         t          j        d¦  «        }|                      ||¦  «         d S )Nrœ   TrB   z--GENERATOR INFO: %szÜ
            generator state variables: ['x', 'y']
            yield point #1: live variables = ['y'], weak live variables = ['x']
            yield point #2: live variables = [], weak live variables = ['y']
            )r   r±   r[   rf   ro   ÚtextwrapÚdedent)r%   rU   Úexpected_gen_infos      r   Útest_dump_ir_generatorz/TestGeneratorDebugOutput.test_dump_ir_generator­   sà   € Ý˜Y¨Ñ-Ô-ð 	,ð 	,Ø×)Ò)Ñ+Ô+ˆCð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,à×Ò  d VÑ,Ô,Ð,Ø�ŠÐ,¨t¬~Ñ=¸sÑCÔCÐCÝ$œOð -ñ ô Ðð
 	�ŠÐ'¨Ñ-Ô-Ð-Ð-Ð-rš   N)r'   r(   r)   ro   r±   r¶   r   r   r   r®   r®   ¢   s7   € € € € € à€Iðð ð ð
.ð 
.ð 
.ð 
.ð 
.r   r®   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚTestDisableJITz:
    Test the NUMBA_DISABLE_JIT environment variable.
    c                 ó  — t          dd¦  «        5  t          ¦   «         5   t          d¬¦  «        t          ¦  «        }|                       |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ÚDISABLE_JITT©ÚnopythonrŒ   r]   )r   r   r
   r   rŽ   )r%   r‘   s     r   Útest_jitzTestDisableJIT.test_jit¿   s  € Ý˜]¨DÑ1Ô1ð 	5ð 	5ÝÑ!Ô!ð 5ð 5Ø*� TÐ*Ñ*Ô*­?Ñ;Ô;�Ø×'Ò'¨¨¨a©¬°!Ñ4Ô4Ð4ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5s4   ‘B >A*ÁBÁ*A.	Á.BÁ1A.	Á2BÂBÂ	Bc                 ó¬  — t          dd¦  «        5  t          ¦   «         5   t          t          ¦  «        t          ¦  «        } |¦   «         }|                      |j        d¦  «          t          d¬¦  «        t          ¦  «        }|                       ||¦  «        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 )Nrº   Tr"   r»   )	r   r   r   Úsimple_class_specr    rŽ   r$   r
   r,   )r%   ÚSimpleJITClassr+   r‘   s       r   Útest_jitclasszTestDisableJIT.test_jitclassÅ   sM  € Ý˜]¨DÑ1Ô1ð 	7ð 	7ÝÑ!Ô!ð 7ð 7Ø!<¥Õ*;Ñ!<Ô!<½[Ñ!IÔ!I�à$�nÑ&Ô&�Ø×'Ò'¨¬¨qÑ1Ô1Ð1à*� TÐ*Ñ*Ô*Õ+<Ñ=Ô=�Ø×'Ò'¨¨¨c©
¬
°AÑ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7s5   ‘C	 BB1Â%C	Â1B5	Â5C	Â8B5	Â9C	Ã	CÃCN)r'   r(   r)   Ú__doc__r½   rÁ   r   r   r   r¸   r¸   º   s<   € € € € € ðð ð5ð 5ð 5ð	7ð 	7ð 	7ð 	7ð 	7r   r¸   c                   ó   — e Zd ZdZdZd„ ZdS )ÚTestEnvironmentOverridezN
    Test that environment variables are reloaded by Numba when modified.
    Fc                 óR  — |                       ¦   «         }|                      |¦  «         t          dd¦  «        5  |                       ¦   «         }|                      |g d¢¦  «         d d d ¦  «         n# 1 swxY w Y   |                       ¦   «         }|                      |¦  «         d S )NÚNUMBA_DEBUGÚ1)rB   rC   rD   rE   rF   rG   )r’   ÚassertFalser   r[   rh   s     r   Ú
test_debugz"TestEnvironmentOverride.test_debugÙ   s  € Ø×*Ò*Ñ,Ô,ˆØ×Ò˜ÑÔÐÝ  °Ñ4Ô4ð 	Ið 	IØ×.Ò.Ñ0Ô0ˆCð ×#Ò# Cð *Hð *Hð *Hñ Iô Ið Ið		Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Ið ×*Ò*Ñ,Ô,ˆØ×Ò˜ÑÔÐÐÐs   º-A3Á3A7Á:A7N)r'   r(   r)   rÂ   Ú_numba_parallel_test_rÉ   r   r   r   rÄ   rÄ   Ñ   s5   € € € € € ðð ð
 "Ððð ð ð ð r   rÄ   c                   ó„   — e Zd ZdZdZd„ Zd„ Zeed„ ¦   «         ¦   «         Z	eed„ ¦   «         ¦   «         Z
ed„ ¦   «         ZdS )	ÚTestParforsDebugz5
    Tests debug options associated with parfors
    Fc                 óx   — d}d}|D ]}|t          |j        ¦  «        v rd} nŒ|                      |d¦  «         d S )NzX'parallel=True' was specified but no transformation for parallel execution was possible.FTú Warning message should be found.©ÚstrÚmessageÚ
assertTrue©r%   Ú	warn_listÚmsgÚwarning_foundÚws        r   Úcheck_parfors_warningz&TestParforsDebug.check_parfors_warningî   s\   € ð2ˆàˆØð 	ð 	ˆAØ•c˜!œ)‘n”nÐ$Ð$Ø $�Ø�ð %ð 	�Š˜Ð'IÑJÔJÐJÐJÐJr   c                 óx   — d}d}|D ]}|t          |j        ¦  «        v rd} nŒ|                      |d¦  «         d S )NzŽprange or pndindex loop will not be executed in parallel due to there being more than one entry to or exit from the loop (e.g., an assertion).FTrÎ   rÏ   rÓ   s        r   Ú(check_parfors_unsupported_prange_warningz9TestParforsDebug.check_parfors_unsupported_prange_warningø   s^   € ð,ˆð ˆØð 	ð 	ˆAØ•c˜!œ)‘n”nÐ$Ð$Ø $�Ø�ð %ð 	�Š˜Ð'IÑJÔJÐJÐJÐJr   c                 ó@  — t          j        t           j        dd¦  «        }t          j        d¬¦  «        5 }t          j        dt          ¦  «          t          ||fd¬¦  «        t          ¦  «         ddd¦  «         n# 1 swxY w Y   |  	                    |¦  «         dS )zr
        Test that using parallel=True on a function that does not have parallel
        semantics warns.
        rŒ   ÚCT©ÚrecordÚalways©ÚparallelN)
r   ÚArrayÚfloat64ÚwarningsÚcatch_warningsÚsimplefilterr   r   r2   rØ   )r%   Úarr_tyr×   s      r   Ú
test_warnszTestParforsDebug.test_warns  sâ   € õ ”�Uœ]¨A¨sÑ3Ô3ˆÝÔ$¨DÐ1Ñ1Ô1ð 	F°QÝÔ! (Õ,CÑDÔDÐDØ1�D�&˜&Ð!¨DÐ1Ñ1Ô1Õ2DÑEÔEÐEð	Fð 	Fð 	Fñ 	Fô 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Føøøð 	Fð 	Fð 	Fð 	Fð 	×"Ò" 1Ñ%Ô%Ð%Ð%Ð%s   ¶<A>Á>BÂBc                 ó  — t          j        d¬¦  «        5 }t          j        dt          ¦  «          t	          t
          j        fd¬¦  «        t          ¦  «         ddd¦  «         n# 1 swxY w Y   |                      |¦  «         dS )zG
        Test that prange with multiple exits issues a warning
        TrÝ   rß   rà   N)	rä   rå   ræ   r   r   r   r�   r=   rÚ   )r%   r×   s     r   Útest_unsupported_prange_warnsz.TestParforsDebug.test_unsupported_prange_warns  sÌ   € õ Ô$¨DÐ1Ñ1Ô1ð 	D°QÝÔ! (Õ,CÑDÔDÐDØ/�D•%”+�¨$Ð/Ñ/Ô/Õ0BÑCÔCÐCð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	Dð 	×5Ò5°aÑ8Ô8Ð8Ð8Ð8s   –AA'Á'A+Á.A+c                 ó8  —  t          t          j        fd¬¦  «        t          ¦  «         t	          dd¦  «        5  t          ¦   «         5 } t          t          j        fd¬¦  «        t          ¦  «         ddd¦  «         n# 1 swxY w Y   |                     ¦   «                              d¦  «        }d„ |D ¦   «         }d„ |D ¦   «         }d	„ |D ¦   «         }t          t          j
        d
¦  «                             |d         ¦  «                             d¦  «        ¦  «        }t          ||t          |¦  «        z   ¦  «        }d}d}	t          |||¦  «        D ]2\  }
}}|	                     |
|¦  «        }|                      ||¦  «         Œ3|dz   |dz   f}d}	|D ]"} |	j        |Ž }|                      ||¦  «         Œ#t          j        dt'          |g¦  «        f}d}	|D ]"} |	j        |Ž }|                      ||¦  «         Œ#	 ddd¦  «         dS # 1 swxY w Y   dS )zM
        Test that NUMBA_DEBUG_ARRAY_OPT_STATS produces valid output
        Trà   ÚNUMBA_DEBUG_ARRAY_OPT_STATSrÇ   Nú
c                 ó   — g | ]}d |v ¯|‘Œ	S )zis produced from patternr   ©Ú.0r   s     r   ú
<listcomp>z?TestParforsDebug.test_array_debug_opt_stats.<locals>.<listcomp>-  s#   € ÐFÐFÐF�qÐ&@ÀAÐ&EÐ&E�Ð&EÐ&EÐ&Er   c                 ó   — g | ]}d |v ¯|‘Œ	S )zis fused intor   rï   s     r   rñ   z?TestParforsDebug.test_array_debug_opt_stats.<locals>.<listcomp>/  s"   € Ð;Ð;Ð;�q o¸Ð&:Ð&:�Ð&:Ð&:Ð&:r   c                 ó   — g | ]}d |v ¯|‘Œ	S )zAfter fusion, functionr   rï   s     r   rñ   z?TestParforsDebug.test_array_debug_opt_stats.<locals>.<listcomp>1  s#   € ÐDÐDÐD�qÐ&>À!Ð&CÐ&C�Ð&CÐ&CÐ&Cr   z	#([0-9]+)r   r   )z"('ones function', 'NumPy mapping'))r   ÚuserÚ z6Parallel for-loop #{} is produced from pattern '{}' atz1Parallel for-loop #{} is fused into for-loop #{}.z:After fusion, function {} has {} parallel for-loop(s) #{}.)r   r   r�   r:   r   r   r�   ÚsplitÚintÚreÚcompileÚsearchÚgroupÚrangeÚlenÚzipÚformatrf   r'   rˆ   )r%   rU   ÚoutputÚparallel_loop_outputÚfuse_outputÚafter_fusion_outputÚparfor_stateÚboundsÚpatternÚfmtr9   ÚtrialsÚlpatternÚto_matchs                 r   Útest_array_debug_opt_statsz+TestParforsDebug.test_array_debug_opt_stats  sú  € ð 	,��eŒkˆ^ dÐ+Ñ+Ô+Õ,<Ñ=Ô=Ð=å Ð!>ÀÑDÔDð *	0ð *	0Ý Ñ"Ô"ð F cØ3••e”k�^¨dÐ3Ñ3Ô3Õ4DÑEÔEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð —\’\‘^”^×)Ò)¨$Ñ/Ô/ˆFàFÐF˜FÐFÑFÔFð !ð <Ð;˜FÐ;Ñ;Ô;ð ð EÐD˜FÐDÑDÔDð  õ
 �rœz¨,Ñ7Ô7×>Ò>Ø$ QÔ'ñ )ô  )ß).ª¨q©¬ñ3ô 3ˆLå˜<Ø'­#Ð.BÑ*CÔ*CÑCñEô EˆFð
/ˆGàLˆCÝ'*¨6Ð3GØ+2ñ(4ô (4ð 0ð 0Ñ#��6˜8àŸ:š: a¨Ñ2Ô2�Ø—’˜h¨Ñ/Ô/Ð/Ð/ð $ aÑ'¨¸Ñ)9Ð:ˆGØEˆCØ%ð 0ð 0�Ø%˜3œ: wÐ/�Ø—’˜h¨Ñ/Ô/Ð/Ð/õ (Ô0°!µS¸,¸Ñ5HÔ5HÐIˆGØNˆCØ-ð 0ð 0�Ø%˜3œ: wÐ/�Ø—’˜h¨Ñ/Ô/Ð/Ð/ð0ðQ*	0ð *	0ð *	0ñ *	0ô *	0ð *	0ð *	0ð *	0ð *	0ð *	0ð *	0ð *	0øøøð *	0ð *	0ð *	0ð *	0ð *	0ð *	0s6   »HÁ
+BÁ5HÂB	ÂHÂB	Â	E8HÈHÈHN)r'   r(   r)   rÂ   rÊ   rØ   rÚ   r	   r   rè   rê   r  r   r   r   rÌ   rÌ   æ   s²   € € € € € ðð ð
 "ÐðKð Kð Kð	Kð 	Kð 	Kð Øð	&ð 	&ñ Ôñ „Zð	&ð Øð9ð 9ñ Ôñ „Zð9ð ð40ð 40ñ Ôð40ð 40ð 40r   rÌ   Ú__main__)/Úosr…   rø   r³   rä   Únumpyr.   Únumba.tests.supportr   r   r   r   r   r   r	   Únumbar
   r   Ú
numba.corer   r   r   Únumba.core.errorsr   r   Únumba.experimentalr   Úunittestr   r   Úobjectr    Úint32r¿   r,   r2   r:   r=   r?   rŠ   r”   r®   r¸   rÄ   rÌ   r'   Úmainr   r   r   ú<module>r     sþ  ðØ 	€	€	€	Ø €€€Ø 	€	€	€	Ø €€€Ø €€€à Ð Ð Ð ð"ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð "ð Ð Ð Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø €€€ðð ð ðð ð ð
ð ð ð ð �&ñ ô ð ð ˜5œ;Ð'Ð(Ð ðð ð ðð ð ðð ð ðð ð ð6'ð 6'ð 6'ð 6'ð 6'�Hñ 6'ô 6'ð 6'ðr	ð 	ð 	ð 	ð 	˜Mñ 	ô 	ð 	ð#3ð #3ð #3ð #3ð #3Ð3ñ #3ô #3ð #3ðL.ð .ð .ð .ð .˜}ñ .ô .ð .ð07ð 7ð 7ð 7ð 7�]ñ 7ô 7ð 7ð.ð ð ð ð Ð3ñ ô ð ð*j0ð j0ð j0ð j0ð j0�xñ j0ô j0ð j0ðZ ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   