Ë
    èÿæi8‰ ã                   ó¦  — 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Zd dlZ	d dl
Z
d dlmZ d dlZd dlmZ d dlZd dlmZmZ d dlZd dlmZm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"m#Z# d dl$mZm%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z, d dl-m.Z.m/Z/ d d	l0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 d d
l7m8Z8 d dl9m:Z: d dl;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZE d dlFmGZGmHZH d dlImJZJmKZK d dlLmMZM d dlNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\ d dl]m^Z^ d dl_m`Z` d dl$maZa d dlbZbd dlcZceU G d„ deO«      «       Zd ecjÊ                   ejÌ                  «       dvd«      ZgdZhdZi edd«      Zjd„ Zke[ G d„ deO«      «       Zld „ Zmd!„ Znd"„ Zod#„ Zpd$„ Zqd%„ Zrd&„ Zsd'„ Ztd(„ Zud)„ Zvd*„ ZwdUd+„Zxd,„ Zy G d-„ d.ez«      Z{eU G d/„ d0el«      «       Z|eU G d1„ d2el«      «       Z}eU G d3„ d4el«      «       Z~ G d5„ d6eO«      ZeU G d7„ d8el«      «       Z€eU G d9„ d:eQel«      «       Z�eU G d;„ d<el«      «       Z‚eU G d=„ d>el«      «       ZƒeU G d?„ d@el«      «       Z„eU G dA„ dBel«      «       Z…eU G dC„ dDel«      «       Z† G dE„ dFel«      Z‡eU G dG„ dHe‡«      «       Zˆe^dI„ «       Z‰eU G dJ„ dKe‡«      «       ZŠeU G dL„ dMeO«      «       Z‹eUeg G dN„ dOe‡«      «       «       ZŒeU G dP„ dQeO«      «       Z�eU G dR„ dSeO«      «       ZŽe�dTk(  r ec�j                   «        yy)Vé    N©Úreduce©Úrandn)ÚdefaultdictÚ
namedtuple)ÚcycleÚchain)ÚnjitÚprangeÚparallel_chunksizeÚget_parallel_chunksizeÚset_parallel_chunksizeÚset_num_threadsÚget_num_threadsÚtypeof)	ÚtypesÚerrorsÚirÚrewritesÚtyped_passesÚinline_closurecallÚconfigÚcompilerÚcpu)ÚDictÚList)Úoverload_methodÚregister_modelÚtypeof_implÚunboxÚNativeValueÚmodels)Ú
cpu_target)Útype_annotations)Úfind_callnameÚguardÚbuild_definitionsÚget_definitionÚ
is_getitemÚ
is_setitemÚindex_var_of_get_setitem)Úempty_inferred)ÚCompilerBaseÚDefaultPassBuilder)Úregister_passÚAnalysisPass)ÚIRLegalization)ÚTestCaseÚcaptured_stdoutÚMemoryLeakMixinÚoverride_env_configÚ
linux_onlyÚtagÚskip_parfors_unsupportedÚ_32bitÚ
needs_blasÚneeds_lapackÚdisabled_testÚskip_unless_scipyÚneeds_subprocessÚskip_ppc64le_invalid_ctr_loop)Úregister_jitable)Ú_fix_LOAD_GLOBAL_arg)Úutilsc                   ó–   — e Zd ZdZ ej
                  «       dk7  rdn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d„ Zd„ Zy)ÚTestParforsRunnerFÚaarch64i  i  c                 óÀ   — | j                   }| j                  «       j                  d«      d   j                  d«      d   }| j                  ||| j                  ¬«       y )NÚ.éÿÿÿÿÚ_)Útest_moduleÚ
test_classÚtimeout)Ú
__module__ÚidÚsplitÚsubprocess_test_runnerÚ_TIMEOUT)ÚselfÚthemodÚtest_clazz_names      úm/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_parfors.pyÚrunnerzTestParforsRunner.runnerQ   sS   € Ø—‘ˆØŸ'™'›)Ÿ/™/¨#Ó.¨rÑ2×8Ñ8¸Ó=¸bÑAˆà×#Ñ#°Ø/>Ø,0¯M©Mð 	$õ 	;ó    c                 ó$   — | j                  «        y ©N©rW   ©rS   s    rV   Útest_TestParforBasicz&TestParforsRunner.test_TestParforBasicY   ó   € Ø�‰�rX   c                 ó$   — | j                  «        y rZ   r[   r\   s    rV   Útest_TestParforNumericalMiscz.TestParforsRunner.test_TestParforNumericalMisc\   r^   rX   c                 ó$   — | j                  «        y rZ   r[   r\   s    rV   Útest_TestParforNumPyz&TestParforsRunner.test_TestParforNumPy_   r^   rX   c                 ó$   — | j                  «        y rZ   r[   r\   s    rV   Útest_TestParforsz"TestParforsRunner.test_TestParforsb   r^   rX   c                 ó$   — | j                  «        y rZ   r[   r\   s    rV   Útest_TestParforsBitMaskz)TestParforsRunner.test_TestParforsBitMaske   r^   rX   c                 ó$   — | j                  «        y rZ   r[   r\   s    rV   Útest_TestParforsDiagnosticsz-TestParforsRunner.test_TestParforsDiagnosticsh   r^   rX   c                 ó$   — | j                  «        y rZ   r[   r\   s    rV   Útest_TestParforsLeaksz'TestParforsRunner.test_TestParforsLeaksk   r^   rX   c                 ó$   — | j                  «        y rZ   r[   r\   s    rV   Útest_TestParforsMiscz&TestParforsRunner.test_TestParforsMiscn   r^   rX   c                 ó$   — | j                  «        y rZ   r[   r\   s    rV   Útest_TestParforsOptionsz)TestParforsRunner.test_TestParforsOptionsq   r^   rX   c                 ó$   — | j                  «        y rZ   r[   r\   s    rV   Útest_TestParforsSlicez'TestParforsRunner.test_TestParforsSlicet   r^   rX   c                 ó$   — | j                  «        y rZ   r[   r\   s    rV   Útest_TestParforsVectorizerz,TestParforsRunner.test_TestParforsVectorizerw   r^   rX   c                 ó$   — | j                  «        y rZ   r[   r\   s    rV   Útest_TestPrangeBasicz&TestParforsRunner.test_TestPrangeBasicz   r^   rX   c                 ó$   — | j                  «        y rZ   r[   r\   s    rV   Útest_TestPrangeSpecificz)TestParforsRunner.test_TestPrangeSpecific}   r^   rX   N)Ú__name__rN   Ú__qualname__Ú_numba_parallel_test_ÚplatformÚmachinerR   rW   r]   r`   rb   rd   rf   rh   rj   rl   rn   rp   rr   rt   rv   © rX   rV   rE   rE   C   sp   „ ð "Ðð (�x×'Ñ'Ó)¨YÒ6‰t¸D€Hðò
;òòòòòòòòòòòòórX   rE   )Úi386Úx86_64zx86 only testé   é   ÚTestNamedTuple©Úpart0Úpart1c                  ó   — y)z¤
    Used with check_arq_equality to indicate that we do not care
    whether the value of the parameter at the end of the function
    has a particular value.
    Nr|   ©ÚaÚbs     rV   Únull_comparerr‰   ‰   s   € ð 	rX   c                   ó„   — 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d„ Zd„ Zdd„Zdd„Zd„ Zd„ Zd„ Zd„ Zy)ÚTestParforsBasezµ
    Base class for testing parfors.
    Provides functions for compilation and three way comparison between
    python functions, njit'd functions and parfor njit'd functions.
    Fc                 ó@   —  t        |fi |¤Ž|«      j                  |   S rZ   )r   Ú	overloads)rS   ÚfuncÚsigÚflagss       rV   Ú_compile_thiszTestParforsBase._compile_thisœ   s&   € ð "Œt�CÑ!˜5Ñ! $Ó'×1Ñ1°#Ñ6Ð6rX   c                 ó*   — | j                  ||d¬«      S )NT©Úparallel©r‘   ©rS   rŽ   r�   s      rV   Úcompile_parallelz TestParforsBase.compile_parallel¡   s   € Ø×!Ñ! $¨°dÐ!Ó;Ð;rX   c                 ó,   — | j                  ||dd¬«      S )NT)r”   Úfastmathr•   r–   s      rV   Úcompile_parallel_fastmathz)TestParforsBase.compile_parallel_fastmath¤   s   € Ø×!Ñ! $¨°dÀTÐ!ÓJÐJrX   c                 ó&   — | j                  ||«      S rZ   r•   r–   s      rV   Úcompile_njitzTestParforsBase.compile_njit§   s   € Ø×!Ñ! $¨Ó,Ð,rX   c                 ó´   — t        |D �cg c]  }t        j                  |«      ‘Œ c}«      }| j                  ||«      }| j	                  ||«      }||fS c c}w rZ   )ÚtupleÚnumbar   r—   rœ   )rS   ÚpyfuncÚargsÚkwargsÚxr�   ÚcpfuncÚcfuncs           rV   Úcompile_allzTestParforsBase.compile_allª   sZ   € Ü©dÓ3©d¨”U—\‘\ !•_¨dÑ3Ó4ˆð ×&Ñ& v¨sÓ3ˆð ×!Ñ! &¨#Ó.ˆà�fˆ}Ðùò 4s   ŠAc                 ó  — |j                  dd«      }|j                  dd«      }|j                  dd«      }|j                  dd«      }	|j                  dd«      }
d„ } ||Ž } ||Ž } ||Ž } |j                  |Ž } ||Ž } |j                  |Ž }|
€gt        j                  j                  ||fi |¤Ž t        j                  j                  ||fi |¤Ž | j                  t        |«      t        |«      «       nEt        |«      t        |
«      k(  sJ ‚t        ||||
«      D ]  \  }}}} |||fi |¤Ž  |||fi |¤Ž Œ |	r| j                  ||«       |�4 |j                   ||Ž Ž }t        j                  j                  ||fi |¤Ž yy)	a-  
        Checks python, njit and parfor impls produce the same result.

        Arguments:
            pyfunc - the python function to test
            cfunc - CompilerResult from njit of pyfunc
            cpfunc - CompilerResult from njit(parallel=True) of pyfunc
            args - arguments for the function being tested
        Keyword Arguments:
            scheduler_type - 'signed', 'unsigned' or None, default is None.
                           Supply in cases where the presence of a specific
                           scheduler is to be asserted.
            fastmath_pcres - a fastmath parallel compile result, if supplied
                             will be run to make sure the result is correct
            check_arg_equality - some functions need to check that a
                                 parameter is modified rather than a certain
                                 value returned.  If this keyword argument
                                 is supplied, it should be a list of
                                 comparison functions such that the i'th
                                 function in the list is used to compare the
                                 i'th parameter of the njit and parallel=True
                                 functions against the i'th parameter of the
                                 standard Python function, asserting if they
                                 differ.  The length of this list must be equal
                                 to the number of parameters to the function.
                                 The null comparator is available for use
                                 when you do not desire to test if some
                                 particular parameter is changed.
            Remaining kwargs are passed to np.testing.assert_almost_equal
        Úscheduler_typeNÚcheck_fastmathÚfastmath_pcresÚcheck_schedulingTÚcheck_arg_equalityc                  óP  — | s
t        «       S g }| D �]ˆ  }t        |t        j                  «      r!|j	                  |j                  d«      «       Œ?t        |t        j                  «      r |j	                  |j                  «       «       Œyt        |t        j                  «      r|j	                  |«       Œ¥|€|j	                  |«       Œ¹t        |t         «      r%|j	                  t        j                  |«      «       Œît        |t        «      r|j	                  |d d  «       �Œt        |t        «      r&|j	                  t        j
                  |«      «       �ŒJt        |t        «      r&|j	                  t        j
                  |«      «       �Œ€t        d«      ‚ t        |«      S )NÚkz%Unsupported argument type encountered)rž   Ú
isinstanceÚnpÚndarrayÚappendÚcopyÚnumberÚnumbersÚNumberÚdeepcopyÚlistr   r   Ú
ValueError)r¡   Únew_argsr£   s      rV   Ú	copy_argsz:TestParforsBase.check_parfors_vs_others.<locals>.copy_argsÚ   s  € ÙÜ“w�ØˆHÜ�Ü˜a¤§¡Ô,Ø—O‘O A§F¡F¨3£KÕ0Ü ¤2§9¡9Ô-Ø—O‘O A§F¡F£HÕ-Ü ¤7§>¡>Ô2Ø—O‘O AÕ&Ø�YØ—O‘O AÕ&Ü ¤5Ô)Ø—O‘O¤D§M¡M°!Ó$4Õ5Ü ¤4Ô(Ø—O‘O A¡a DÖ)Ü ¤4Ô(Ø—O‘O¤D§I¡I¨a£LÖ1Ü ¤4Ô(Ø—O‘O¤D§I¡I¨a£LÖ1ä$Ð%LÓMÐMð% ô& ˜“?Ð"rX   )
ÚpopÚentry_pointr°   ÚtestingÚassert_almost_equalÚassertEqualÚtypeÚlenÚzipr«   )rS   r    r¥   r¤   r¡   r¢   r¨   r©   rª   r«   Úcheck_args_for_equalityr»   Úpy_argsÚpy_expectedÚ	njit_argsÚnjit_outputÚparfor_argsÚparfor_outputÚpyargÚnjitargÚ	parforargÚargcompÚparfor_fastmath_outputs                          rV   Úcheck_parfors_vs_othersz'TestParforsBase.check_parfors_vs_othersµ   s·  € ð>  Ÿ™Ð$4°dÓ;ˆØŸ™Ð$4°dÓ;ˆØŸ™Ð$4°dÓ;ˆØ!Ÿ:™:Ð&8¸$Ó?ÐØ"(§*¡*Ð-AÀ4Ó"HÐò	#ñ4 ˜TÐ"ˆÙ˜gÐ&ˆñ ˜tÐ$ˆ	Ø'�e×'Ñ'¨Ð3ˆñ   Ð&ˆØ*˜×*Ñ*¨KÐ8ˆà"Ð*Ü�J‰J×*Ñ*¨;¸ÑNÀvÒNÜ�J‰J×*Ñ*¨=¸+ÑPÈÒPØ×ÑœT +Ó.´°]Ó0CÕDä�w“<¤3Ð'>Ó#?Ò?Ð@Ð?Ü69Ø˜ KÐ1Hö7JÑ2��w 	¨7á˜ Ñ1¨&Ò1Ù˜	 5Ñ3¨FÓ3ð7Jñ
 Ø×!Ñ! &¨.Ô9ð Ð%Ø%? ^×%?Ñ%?ÁÈDÐAQÐ%RÐ"Ü�J‰J×*Ñ*Ð+AÀ;ñ 5Ø-3ó5ð &rX   c                 ó`   —  | j                   |g|¢­Ž \  }} | j                  |||g|¢­i |¤Ž y)z‹Checks that pyfunc compiles for *args under parallel=True and njit
        and asserts that all version execute and produce the same resultN©r¦   rÐ   ©rS   r    r¡   r¢   r¥   r¤   s         rV   ÚcheckzTestParforsBase.check  s=   € ð )˜×(Ñ(¨Ð7°$Ò7‰ˆˆvØ$ˆ×$Ñ$ V¨U°FÐL¸TÒLÀVÓLrX   c           	      óÂ   —  |«       D ]I  }| j                  t        t        t        |«      «      «      5   | j                  |g|¢­i |¤Ž ddd«       ŒK y# 1 sw Y   ŒVxY w)zHRun self.check(impl, ...) on array data generated from arg_gen.
        N)ÚsubTestr¸   Úmapr   rÔ   )rS   ÚimplÚarg_genr¢   r¡   s        rV   Úcheck_variantszTestParforsBase.check_variants  sO   € ñ –IˆDØ—‘œd¤3¤v¨tÓ#4Ó5Õ6Ø�—
‘
˜4Ð1 $Ò1¨&Ò1÷ 7Ð6ñ ß6Ð6ús   ³AÁA	c           	      ó   —  |«       D ]h  }| j                  t        t        t        |«      «      «      5  t	        t        t        |«      «      }| j                  t        ||«      d«       ddd«       Œj y# 1 sw Y   ŒuxY w)zXRun self.countParfors(impl, ...) on array types generated from
        arg_gen.
        é   N)rÖ   r¸   r×   r   rž   ÚassertGreaterEqualÚcountParfors)rS   rØ   rÙ   r¢   r¡   Úargtyss         rV   Úcount_parfors_variantsz&TestParforsBase.count_parfors_variants   s_   € ñ –IˆDØ—‘œd¤3¤v¨tÓ#4Ó5Õ6Üœs¤6¨4Ó0Ó1�à×'Ñ'¬°T¸6Ó(BÀAÔF÷ 7Ð6ñ ß6Ð6ús   ³6A4Á4A=	c                 óš   — d}|�|dv r	|d|z   z  }nd}t        ||z  «      ‚| j                  ||j                  j                  «       «       y )Nz@do_scheduling)ÚsignedÚunsignedrJ   z$Unknown scheduler_type specified: %s)r¹   ÚassertInÚlibraryÚget_llvm_str)rS   Úcresr¨   Úscheduler_strÚmsgs        rV   r«   z TestParforsBase.check_scheduling*  sU   € à(ˆØÐ%ØÐ!7Ñ7Ø  ~Ñ!5Ñ5‘à<�Ü   ~Ñ!5Ó6Ð6à�‰�m T§\¡\×%>Ñ%>Ó%@ÕArX   c                 ó|   ‡— ˆfd„}t         |«       «      }t        |«      D �cg c]  }t        |«      ‘Œ c}S c c}w )zFMake *ct* sample 1D arrays of length *n* using np.linspace().
        c               3   ó¤   •K  — t        j                  dd‰ «      –— t        j                  dd‰ «      –— t        j                  dd‰ «      –— y ­w©Nr   rÜ   é   ©r°   Úlinspace©Úns   €rV   Úgenz)TestParforsBase.gen_linspace.<locals>.gen9  s@   øè ø€ Ü—+‘+˜a  AÓ&Ò&Ü—+‘+˜a  AÓ&Ò&Ü—+‘+˜a  AÓ&Ó&ùs   ƒAA)r	   ÚrangeÚnext)rS   rñ   Úctrò   ÚsrcÚis    `    rV   Úgen_linspacezTestParforsBase.gen_linspace6  s5   ø€ ô	'ô
 ‘C“E‹lˆÜ#(¨¤9Ó-¡9˜a”�S•	 9Ñ-Ð-ùÒ-s   ¤9c              #   ó¾  K  — | j                  d|¬«      –— | j                  d|¬«      D �cg c]  }|j                  d«      ‘Œ }}|–— |D �cg c]  }t        j                  |«      ‘Œ c}–— | j                  d|¬«      D �cg c]  }|j                  d«      ‘Œ }}|–— |D �cg c]  }t        j                  |«      ‘Œ c}–— yc c}w c c}w c c}w c c}w ­w)	z?Make 1D, 2D, 3D variants of the data in C and F orders
        é
   )rõ   é   )rñ   rõ   ©rí   é   é   )rí   rý   é   N)rø   Úreshaper°   Úasfortranarray)rS   rõ   r£   Úarr2dsÚarr3dss        rV   Úgen_linspace_variantsz%TestParforsBase.gen_linspace_variantsA  sõ   è ø€ ð ×Ñ  rÐÓ*Ò*ð  ×,Ñ,¨u¸Ð,Ô<ó>Ù<�að —)‘)˜FÕ#Ø<ð 	ð >àŠá-3Ó4©V¨Œr× Ñ  Õ#¨VÑ4Ò4ð  ×,Ñ,¨y¸RÐ,Ô@óBÙ@�að —)‘)˜IÕ&Ø@ð 	ð BàŠá-3Ó4©V¨Œr× Ñ  Õ#¨VÑ4Ó4ùò>ùò 5ùòBùò 5ùs4   ‚+C­C	Á
CÁCÁ+CÂCÂ
CÂ'CÃCNc                 ó|   — |D �cg c]  }||j                   v sŒ|‘Œ }}|�|D ]  }|t        |«      v rŒJ ‚ |S c c}w )z. helper function to filter out modules by name)ÚnameÚstr)rS   ÚmodÚmagicstrÚcheckstrr£   Úfilts         rV   Ú_filter_modzTestParforsBase._filter_modU  sM   € áÓ5™3�a (¨a¯f©fÒ"4’˜3ˆÐ5ØÐÛ�Ø¤3 q£6Ò)Ð)Ð)ð àˆùò	 6s   …9™9c                 ó@  — |j                   j                  j                  j                  j                  D �cg c]  }|‘Œ }}| j                  |||¬«      }|j                   j                  «       }g }|D ]"  }	|	j                  |v sŒ|j                  |	«       Œ$ |S c c}w )z gets the gufunc LLVM Modules)r
  )	rå   Ú_codegenÚ_engineÚ_eeÚ_modulesr  Úget_asm_strr  r²   )
rS   rç   r	  r
  r£   r  Úpotential_matchesÚlib_asmÚretr  s
             rV   Ú_get_gufunc_modulesz#TestParforsBase._get_gufunc_modules]  s›   € à#Ÿ|™|×4Ñ4×<Ñ<×@Ñ@×IÒIÓJÑI˜!’AÐIˆÐJð !×,Ñ,¨X°xØ6>ð -ó @Ðð —,‘,×*Ñ*Ó,ˆØˆÛ$ˆCØ�x‰x˜7Ò"Ø—
‘
˜3•ð %ð ˆ
ùò Ks   ·	Bc                 óz   — d}| j                  ||«      }t        «       }|D ]  } ||«      ||j                  <   Œ |S )z$ helper for gufunc IR/asm generationÚ__numba_parfor_gufunc)r  Údictr  )rS   rç   Úfnr	  Úgufunc_modsr£   r  s          rV   Ú_get_gufunc_infoz TestParforsBase._get_gufunc_infol  sB   € ð +ˆØ×.Ñ.¨t°XÓ>ˆÜ‹FˆÛˆCÙ˜S›'ˆAˆc�h‰hŠKð àˆrX   c                 ó.   — | j                  |t        «      S )zÏ
        Returns the IR of the gufuncs used as parfor kernels
        as a dict mapping the gufunc name to its IR.

        Arguments:
         cres - a CompileResult from `njit(parallel=True, ...)`
        )r  r  )rS   rç   s     rV   Ú_get_gufunc_irzTestParforsBase._get_gufunc_irv  s   € ð ×$Ñ$ T¬3Ó/Ð/rX   c                 ór   ‡— |j                   j                  j                  Šˆfd„}| j                  ||«      S )zÛ
        Returns the assembly of the gufuncs used as parfor kernels
        as a dict mapping the gufunc name to its assembly.

        Arguments:
         cres - a CompileResult from `njit(parallel=True, ...)`
        c                 ó8   •— t        ‰j                  | «      «      S rZ   )r  Úemit_assembly)r  Útms    €rV   Úemit_asmz1TestParforsBase._get_gufunc_asm.<locals>.emit_asm‰  s   ø€ Ü�r×'Ñ'¨Ó,Ó-Ð-rX   )rå   r  Ú_tmr  )rS   rç   r#  r"  s      @rV   Ú_get_gufunc_asmzTestParforsBase._get_gufunc_asm€  s2   ø€ ð �\‰\×"Ñ"×&Ñ&ˆô	.à×$Ñ$ T¨8Ó4Ð4rX   c                 ó¬   ‡ — ‰ j                  ||«      }‰ j                  |«      }d„ }ˆ fd„}|j                  «       D ]  \  }} ||«      }	 ||	«       Œ y)a�  
        Asserts that the fastmath flag has some effect in that suitable
        instructions are now labelled as `fast`. Whether LLVM can actually do
        anything to optimise better now the derestrictions are supplied is
        another matter!

        Arguments:
         pyfunc - a function that contains operations with parallel semantics
         sig - the type signature of pyfunc
        c                 óŽ   —  | j                   «       }g }|D ],  }t        j                  d|«      }|€Œ|j                  |«       Œ. |S )Nz\bfast\b)Ú
splitlinesÚreÚsearchr²   )r   ÚsplittedÚ	fast_instr£   Úms        rV   Ú_get_fast_instructionsz?TestParforsBase.assert_fastmath.<locals>._get_fast_instructionsœ  sI   € Ø$�r—}‘}“ˆHØˆIÛ�Ü—I‘I˜k¨1Ó-�Ø‘=Ø×$Ñ$ QÕ'ð ð ÐrX   c                 óp   •— d}| D ].  }d}|D ]  }|dz   }||v sŒ|dz  }Œ ‰j                  |dkD  «       Œ0 y )N)ÚfaddÚfsubÚfmulÚfdivÚfremÚfcmpÚcallr   z fastrÜ   )Ú
assertTrue)ÚinstrsÚopsÚinstÚcountÚopÚmatchrS   s         €rV   Ú_assert_fastz5TestParforsBase.assert_fastmath.<locals>._assert_fast¥  sL   ø€ ØJˆCÛ�Ø�Û�BØ ™L�EØ ’}Ø ™
™ð ð —‘ ¨¡	Õ*ñ rX   N)rš   r  Úitems)
rS   r    r�   rç   Ú_irr.  r>  r  Úguirr:  s
   `         rV   Úassert_fastmathzTestParforsBase.assert_fastmath�  sY   ø€ ð ×-Ñ-¨f°cÓ:ˆØ×!Ñ! $Ó'ˆò	ô	+ð Ÿ)™)ž+‰JˆD�$Ù)¨$Ó/ˆDÙ˜Õñ &rX   rZ   )rw   rN   rx   Ú__doc__ry   r‘   r—   rš   rœ   r¦   rÐ   rÔ   rÚ   rà   r«   rø   r  r  r  r  r  r%  rB  r|   rX   rV   r‹   r‹   ’   so   „ ñð "Ðò7ò
<òKò-ò	ò\5ò|Mò2òGò
Bò	.ò5ó(óòò0ò5ó$rX   r‹   c                 ó  — t        j                  | |z  «      }d|z  |z  }|t        j                  |«      z  }||z   |z  |z   |z  }||z
  }	dd|z  z   }
dd|	z  z   }|t        j                  | |z  «      z  }||z  }| |
z  |z
  }||z
  | z   }|S )Nç      à?ç      ð?)r°   ÚlogÚsqrtÚexp)ÚsptpriceÚstrikeÚrateÚ
volatilityÚtimevÚlogtermÚpowtermÚdenÚd1Úd2ÚNofXd1ÚNofXd2ÚfutureValueÚc1r6  Úputs                   rV   Úblackscholes_implrY  ´  s¹   € ä�f‰f�X Ñ&Ó'€GØ�JÑ Ñ+€GØ
”r—w‘w˜u“~Ñ
%€CØ�7‰N˜eÑ# wÑ
.°#Ñ	5€BØ	ˆc‰€BØ�9˜r‘>Ñ!€FØ�9˜r‘>Ñ!€FØœ2Ÿ6™6 D &¨5¡.Ó1Ñ1€KØ	�vÑ	€BØ�fÑ˜rÑ!€DØ
�Ñ
˜xÑ
'€CØ€JrX   c                 óÆ   — t        |«      D ]R  }|t        j                  ddt        j                  |  t        j                  ||«      z  «      z   z  dz
  | z  |«      z  }ŒT |S ©NrF  )ró   r°   ÚdotrI  )ÚYÚXÚwÚ
iterationsr÷   s        rV   Úlr_implra  Ä  sY   € ä�:ÖˆØ	ŒR�V‰V�c˜S¤2§6¡6¨1¨"¬r¯v©v°a¸«|Ñ*;Ó#<Ñ<Ñ=ÀÑCÀqÑHÈ1ÓMÑM‰ð à€HrX   c                 óô  — |}| j                   \  }}t        |«      D �]<  }t        j                  t        |«      D ��	cg c]U  }t        |«      D �	cg c]>  }	t	        j
                  t        j                  | |d d …f   ||	d d …f   z
  dz  «      «      ‘Œ@ c}	‘ŒW c}	}«      }
t        j                  t        |«      D �cg c]  }|
|d d …f   j                  «       ‘Œ c}«      }t        j                  t        |«      D ��	cg c]O  }t        |«      D �	cg c]8  }	t        j                  | ||k(  |	f   «      t        j                  ||k(  «      z  ‘Œ: c}	‘ŒQ c}	}«      }�Œ? |S c c}	w c c}	}w c c}w c c}	w c c}	}w ©Nrí   )Úshaperó   r°   ÚarrayÚmathrH  ÚsumÚargmin)ÚAÚ	numCenterÚnumIterÚinit_centroidsÚ	centroidsÚNÚDÚlr÷   ÚjÚdistÚlabelss               rV   Úexample_kmeans_testrt  Ê  s\  € Ø€IØ�7‰7�D€A€qä�7�^ˆÜ�x‰xÜDIÈ!ÄHôNÙDL¸q¬¨yÔ)9ó;Ù)9 Aô Ÿ)™)¤B§F¡F¨A¨a²¨c©F°9¸Qºq¸S±>Ñ,AÀAÑ+EÓ$FÕGØ)9ó;ØDLòNó Oˆä—‘´u¸Q´xÓ@±x°!˜4 ¢! ™9×+Ñ+Õ-°xÑ@ÓAˆä—H‘HÜ=BÀ9Ô=MôOÙ=M¸¬%°¬(ó4Ù*2 Qô  "Ÿv™v a¨°©	°1¨¡oÓ6´r·v±v¸fÀa¹iÓ7HÓHØ*2ó4Ø=MòOó PŠ	ð ð Ðùò;ùó Nùâ@ùò4ùó Os6   ¾E$ÁAEÂE$Â<E*
Ã>E4Ä=E/ÅE4ÅE$Å/E4c                 ó€  — t         j                  }t         j                  }t        j                  | «      }|rt        j                  |«      }nt        j                  d«      }t        ||||«      }|j                  «        |j                  «        t        j                  |j                  j                  |d¬«      }|j                  «        t        j                  j!                  d|j                  «       t#        j$                  |j                  j&                  |j                  j(                  |j                  j                  |j                  j*                  d «      \  |j                  _        |j                  _        |j                  _        }	t3        j4                  |j                  j                  |j                  j,                  |j                  j0                  dd |j                  j*                  |j                  j.                  t6        j8                  ¬«       t:        j<                  j>                  jA                  «       }
t:        j<                  j>                  jC                  |j                  j                  |j                  j,                  |j                  j0                  |j                  j&                  |j                  j(                  ||
jD                  ¬«      }|j                  «        t        j                  j!                  d|j                  «       t        jF                  «       }t:        j<                  j>                  jI                  |j                  j                  |j                  j,                  |j                  j0                  |j                  j.                  |j                  j&                  |j                  j(                  |||j                  jJ                  |
¬«
      }|j                  «        t:        j<                  j>                  jM                  |j                  j                  |j                  j,                  |j                  j0                  |j                  j.                  |j                  j&                  |j                  j(                  |||j                  jJ                  |
¬«
      }|j                  «        t:        j<                  j>                  jO                  |j                  j                  |j                  j,                  |j                  j0                  |j                  j.                  |j                  j&                  |j                  j(                  |||j                  jJ                  |
¬«
      }|j                  «        tQ        |jR                  «      |_*        ||fS )	NT)Útypedzbefore-inferencer|   )Úfunc_irÚtypemapÚ	calltypesÚliftedÚlifted_fromr¡   Úreturn_typeÚhtml_output)Úswappedzafter-inference)Údiagnostics)+r$   Útyping_contextÚtarget_contextr   Úrun_frontendr   ÚParallelOptionsÚTestPipelineÚrefreshr   ÚInlineClosureCallPassÚstaterw  Úrunr   Úrewrite_registryÚapplyr   Útype_inference_stageÚ	typingctxÚ	targetctxr¡   rx  r|  ry  r%   ÚTypeAnnotationr   ÚHTMLrŸ   ÚparforsÚparforÚParforDiagnosticsÚPreParforPassÚreplaced_fnsÚFlagsÚ
ParforPassÚmetadataÚParforFusionPassÚParforPreLoweringPassr(   ÚblocksÚ_definitions)Ú	test_funcr¡   ÚkwsrŒ  r�  Útest_irÚoptionsÚtpÚinline_passrJ   r  Úpreparfor_passr�   Úparfor_passs                 rV   Úget_optimized_numba_irr¤  Ø  së  € Ü×)Ñ)€IÜ×)Ñ)€IÜ×#Ñ# IÓ.€GÙ
Ü×%Ñ% cÓ*‰ä×%Ñ% dÓ+ˆä	�i ¨D°'Ó	:€Bà×ÑÔØ×ÑÔä$×:Ñ:¸2¿8¹8×;KÑ;KØ<CØBFôH€Kð ‡O�OÔä×Ñ×#Ñ#Ð$6¸¿¹ÔAô ×%Ñ% b§h¡h×&8Ñ&8Ø
�‰×Ñ˜BŸH™H×,Ñ,¨b¯h©h¯m©m¸TóCñ B€B‡H�HÔ�b—h‘hÔ*¨B¯H©HÔ,>Àô ×#Ñ#Ø—‘× Ñ Ø—‘× Ñ Ø—(‘(×$Ñ$ØØØ�X‰X�]‰]Ø—H‘H×(Ñ(Ü—K‘Kõ!ô —-‘-×&Ñ&×8Ñ8Ó:€Kä—]‘]×)Ñ)×7Ñ7Ø
�‰×Ñ˜"Ÿ(™(×*Ñ*¨B¯H©H×,>Ñ,>Ø
�‰×Ñ˜BŸH™H×.Ñ.°Ø×(Ñ(ð 8ó *€Nð ×ÑÔä×Ñ×#Ñ#Ð$5°r·x±xÔ@ä�N‰NÓ€EÜ—-‘-×&Ñ&×1Ñ1Ø
�‰×Ñ˜"Ÿ(™(×*Ñ*¨B¯H©H×,>Ñ,>Ø
�‰×Ñ˜bŸh™h×0Ñ0°"·(±(×2DÑ2DØ�˜Ÿ™×)Ñ)°{ð 2ó D€Kð ‡O�OÔÜ—-‘-×&Ñ&×7Ñ7Ø
�‰×Ñ˜"Ÿ(™(×*Ñ*¨B¯H©H×,>Ñ,>Ø
�‰×Ñ˜bŸh™h×0Ñ0°"·(±(×2DÑ2DØ�˜Ÿ™×)Ñ)°{ð 8ó D€Kð ‡O�OÔÜ—-‘-×&Ñ&×<Ñ<Ø
�‰×Ñ˜"Ÿ(™(×*Ñ*¨B¯H©H×,>Ñ,>Ø
�‰×Ñ˜bŸh™h×0Ñ0°"·(±(×2DÑ2DØ�˜Ÿ™×)Ñ)°{ð =ó D€Kð ‡O�OÔÜ,¨W¯^©^Ó<€GÔà�Bˆ;ÐrX   c                 ó  — t        | |fi |¤Ž\  }}d}|j                  j                  «       D ]V  \  }}t        |j                  «      D ]9  \  }}	t        |	t        j                  j                  j                  «      sŒ5|dz  }Œ; ŒX |S ©Nr   rÜ   )
r¤  rš  r?  Ú	enumerateÚbodyr¯   rŸ   r�  r‘  ÚParfor)
rœ  r¡   r�  rž  r   Ú	ret_countÚlabelÚblockr÷   r:  s
             rV   rÞ   rÞ     sy   € Ü(¨°DÑ@¸CÑ@�K€GˆRØ€IàŸ™×,Ñ,Ö.‰ˆˆuÜ  §¡Ö,‰GˆAˆtÜ˜$¤§¡× 4Ñ 4× ;Ñ ;Õ<Ø˜Q‘‘	ñ -ð /ð
 ÐrX   c                 óv   — t        | |fi |¤Ž\  }}t        |j                  |j                  j                  «      S rZ   )r¤  Ú_count_arrays_innerrš  r‡  rx  ©rœ  r¡   r�  rž  r   s        rV   ÚcountArraysr°  %  s2   € Ü(¨°DÑ@¸CÑ@�K€GˆRÜ˜wŸ~™~¨r¯x©x×/?Ñ/?Ó@Ð@rX   c                 óN  — t        | |fi |¤Ž\  }}|j                  }d}|j                  «       D ]s  \  }}t        |j                  «      D ]V  \  }	}
t        |
t        j                  j                  j                  «      sŒ5|t        |
j                  j                  «      z  }ŒX Œu |S ©Nr   )r¤  rš  r?  r§  r¨  r¯   rŸ   r�  r‘  r©  rÂ   Ú
init_block)rœ  r¡   r�  rž  r   rš  rª  r«  r¬  r÷   r:  s              rV   Úget_init_block_sizer´  )  s‹   € Ü(¨°DÑ@¸CÑ@�K€GˆRØ�^‰^€Fà€IàŸ™ž‰ˆˆuÜ  §¡Ö,‰GˆAˆtÜ˜$¤§¡× 4Ñ 4× ;Ñ ;Õ<ØœS §¡×!5Ñ!5Ó6Ñ6‘	ñ -ð 'ð
 ÐrX   c                 óT  — d}t        «       }| j                  «       D ]ú  \  }}t        |j                  «      D ]Ý  \  }}t	        |t
        j                  j                  j                  «      r8|j                  j                  «       }|j                  |d<   |t        ||«      z  }t	        |t        j                  «      sŒ‡t	        ||j                  j                      t"        j$                  «      sŒ¹|j'                  |j                  j                   «       Œß Œü |t)        |«      z  }|S r²  )Úsetr?  r§  r¨  r¯   rŸ   r�  r‘  r©  Ú	loop_bodyr³   r³  r®  r   ÚAssignÚtargetr  r   ÚArrayCompatibleÚaddrÂ   )	rš  rx  rª  Úarr_setr«  r¬  r÷   r:  Úparfor_blockss	            rV   r®  r®  6  sá   € Ø€IÜ‹e€GàŸ™ž‰ˆˆuÜ  §¡Ö,‰GˆAˆtÜ˜$¤§¡× 4Ñ 4× ;Ñ ;Ô<Ø $§¡× 3Ñ 3Ó 5�Ø#'§?¡?�˜aÑ ØÔ0°ÀÓHÑH�	Ü˜4¤§¡Õ+Ü" 7¨4¯;©;×+;Ñ+;Ñ#<Ü$)×$9Ñ$9õ;à—‘˜DŸK™K×,Ñ,Õ-ñ -ð 'ð ”�W“Ñ€IØÐrX   c                 ó†   — t        | |fi |¤Ž\  }}d}|j                  j                  «       D ]  }|t        ||«      z  }Œ |S r²  )r¤  rš  ÚvaluesÚ_count_array_allocs_inner)rœ  r¡   r�  rž  r   rª  r¬  s          rV   ÚcountArrayAllocsrÁ  H  sM   € Ü(¨°DÑ@¸CÑ@�K€GˆRØ€Ià—‘×&Ñ&Ö(ˆØÔ.¨w¸Ó>Ñ>‰	ð )ð ÐrX   c                 óT  — d}|j                   D �]  }t        |t        j                  j                  j
                  «      rG|t        | |j                  «      z  }|j                  j                  «       D ]  }|t        | |«      z  }Œ t        |t        j                  «      sŒ”t        |j                  t        j                  «      sŒ¹|j                  j                  dk(  sŒÓt        t         | |j                  «      dk(  s t        t         | |j                  «      dk(  s�Œ|dz  }�Œ |S )Nr   r6  )ÚemptyÚnumpy)r-   znumba.np.unsafe.ndarrayrÜ   )r¨  r¯   rŸ   r�  r‘  r©  rÀ  r³  r·  r¿  r   r¸  ÚvalueÚExprr<  r'   r&   )rw  r¬  rª  r:  rˆ   s        rV   rÀ  rÀ  Q  sß   € Ø€IØ—
•
ˆÜ�dœEŸM™M×0Ñ0×7Ñ7Ô8ØÔ2°7¸D¿O¹OÓLÑLˆIØ—^‘^×*Ñ*Ö,�ØÔ6°wÀÓBÑB‘	ð -ô �tœRŸY™YÕ'¬J°t·z±zÄ2Ç7Á7Õ,KØ—J‘J—M‘M VÓ+Üœ=¨'°4·:±:Ó>ÐBTÒTÜœ¨°·±Ó<ØDôEà˜‰NŠIð ð ÐrX   c                 óx   — t        | |fi |¤Ž\  }}t        ||j                  |j                  j                  «      S rZ   )r¤  Ú&_count_non_parfor_array_accesses_innerrš  r‡  rx  r¯  s        rV   ÚcountNonParforArrayAccessesrÉ  b  s;   € Ü(¨°DÑ@¸CÑ@�K€GˆRÜ1°'¸7¿>¹>Ø24·(±(×2BÑ2BóDð DrX   c           	      ó  — d}|€
t        «       }|j                  «       D �]ã  \  }}|j                  D �]Í  }t        |t        j
                  j                  j                  «      r`|j                  |j                  j                  «       |j                  j                  «       }|j                  |d<   |t        | |||«      z  }Œ’t        |«      rWt        ||j                   j                   j                     t"        j$                  «      rt'        | t)        |«      |«      s|dz  }Œôt+        |«      rNt        ||j,                  j                     t"        j$                  «      rt'        | t)        |«      |«      s|dz  }�ŒMt        |t.        j0                  «      s�Œit        |j                   t.        j2                  «      s�Œ�|j                   j                  |v s�Œ©|j                  |j,                  j                  «       �ŒÐ �Œæ |S r¦  )r¶  r?  r¨  r¯   rŸ   r�  r‘  r©  r»  Ú	index_varr  r·  r³   r³  rÈ  r*   rÅ  r   rº  Ú_uses_indicesr,   r+   r¹  r   r¸  ÚVar)	Úf_irrš  rx  Úparfor_indicesrª  r«  r¬  Ústmtr½  s	            rV   rÈ  rÈ  g  s‘  € Ø€IØÐÜ›ˆàŸ™Ÿ‰ˆˆuØ—J•JˆDÜ˜$¤§¡× 4Ñ 4× ;Ñ ;Ô<Ø×"Ñ" 4§>¡>×#6Ñ#6Ô7Ø $§¡× 3Ñ 3Ó 5�Ø#'§?¡?�˜aÑ ØÔCØ˜-¨°.óBñ B‘	ô ˜TÔ"¤z°'¸$¿*¹*×:JÑ:J×:OÑ:OÑ2PÜ×-Ñ-ô(/Ü7DØÔ6°tÓ<¸nô8Nà˜Q‘‘	ô ˜TÔ"¤z°'¸$¿+¹+×:JÑ:JÑ2KÜ×)Ñ)ô(+Ü3@ØÔ2°4Ó8¸.ô4Jà˜Q‘’	ô ˜T¤2§9¡9Ö-Ü˜TŸZ™Z¬¯©Ö0Ø—*‘*—/‘/ ^Ó3Ø×"Ñ" 4§;¡;×#3Ñ#3Ö4ò1 ð 'ð6 ÐrX   c                 óð   — |j                   |v ryt        t        | |«      }t        |t        j
                  «      r<|j                  dk(  r-t        d„ |j                  D «       «      }t        ||z  «      dk7  S y)NTÚbuild_tuplec              3   ó4   K  — | ]  }|j                   –— Œ y ­wrZ   )r  )Ú.0Úvs     rV   Ú	<genexpr>z _uses_indices.<locals>.<genexpr>�  s   è ø€ Ð5¡} !�q—v•v¡}ùs   ‚r   F)
r  r'   r)   r¯   r   rÆ  r<  r¶  r?  rÂ   )rÎ  ÚindexÚ	index_setÚind_defÚvarnamess        rV   rÌ  rÌ  ‰  sd   € Ø‡z�z�YÑØä”N D¨%Ó0€GÜ�'œ2Ÿ7™7Ô#¨¯
©
°mÒ(CÜÑ5 w§}¢}Ó5Ó5ˆÜ�8˜iÑ'Ó(¨AÑ-Ð-àrX   c                   ó   — e Zd Zd„ Zy)r„  c                 óF  — t        j                  «       | _        || j                  _        || j                  _        || j                  _        || j                  _        d | j                  _        d | j                  _        d | j                  _	        i | j                  _
        y rZ   )r   Ú	StateDictr‡  rŒ  r�  r¡   rw  rx  r|  ry  r—  )rS   rŒ  r�  r¡   rž  s        rV   Ú__init__zTestPipeline.__init__–  sq   € Ü×'Ñ'Ó)ˆŒ
Ø(ˆ�
‰
ÔØ(ˆ�
‰
ÔØˆ�
‰
ŒØ$ˆ�
‰
ÔØ!ˆ�
‰
ÔØ!%ˆ�
‰
ÔØ#ˆ�
‰
ÔØ ˆ�
‰
ÕrX   N)rw   rN   rx   rÞ  r|   rX   rV   r„  r„  •  s   „ ó	!rX   r„  c                   óø   — 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d„ Zd„ Zd„ Zd„ Zd„ Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zd„ Zd„ Zd„ Zed„ «       Zed„ «       Zed„ «       Z d„ Z!y)ÚTestParforBasiczZSmoke tests for the parfors transforms. These tests check the most basic
    functionalityc                 óø   — t        j                  | g|¢­Ž  t        j                  t        j                  d«      d«      }t        j                  d«      t        j                  d«      ||j
                  g| _        y )Nç      (@©rý   rÿ   ç      @ç      @)r‹   rÞ  r°   r   ÚarangeÚTÚsimple_args)rS   r¡   r-  s      rV   rÞ  zTestParforBasic.__init__§  sR   € Ü× Ñ  Ð-¨Ó-ä�J‰J”r—y‘y “~ vÓ.ˆÜŸI™I b›M¬2¯9©9°R«=¸!¸Q¿S¹SÐAˆÕrX   c                 óÊ   — d„ }| j                  t        «      5 }| j                  |«       d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Nc                  ó,   — t        j                  d«      S )Nr|   ©r°   Úonesr|   rX   rV   Ú	test_implz0TestParforBasic.test_simple01.<locals>.test_impl®  s   € Ü—7‘7˜2“;ÐrX   ú'@do_scheduling' not found©ÚassertRaisesÚAssertionErrorrÔ   rä   r  Ú	exception©rS   rí  Úraisess      rV   Útest_simple01zTestParforBasic.test_simple01­  sK   € ò	à×Ñœ~Ô.°&Ø�J‰J�yÔ!÷ /à�‰Ð4´c¸&×:JÑ:JÓ6KÕL÷ /Ð.úó   ™AÁA"c                 ó,   — d„ }| j                  |«       y )Nc                  ó,   — t        j                  d«      S )N©rÜ   rë  r|   rX   rV   rí  z0TestParforBasic.test_simple02.<locals>.test_implµ  s   € Ü—7‘7˜4“=Ð rX   ©rÔ   ©rS   rí  s     rV   Útest_simple02zTestParforBasic.test_simple02´  s   € ò	!à�
‰
�9ÕrX   c                 ó,   — d„ }| j                  |«       y )Nc                  ó,   — t        j                  d«      S ©N©rÜ   rí   rë  r|   rX   rV   rí  z0TestParforBasic.test_simple03.<locals>.test_implº  ó   € Ü—7‘7˜6“?Ð"rX   rú  rû  s     rV   Útest_simple03zTestParforBasic.test_simple03¹  ó   € ò	#à�
‰
�9ÕrX   c                 ó,   — d„ }| j                  |«       y )Nc                  ó,   — t        j                  d«      S ©NrÜ   rë  r|   rX   rV   rí  z0TestParforBasic.test_simple04.<locals>.test_impl¿  s   € Ü—7‘7˜1“:ÐrX   rú  rû  s     rV   Útest_simple04zTestParforBasic.test_simple04¾  s   € ò	à�
‰
�9ÕrX   c                 ó,   — d„ }| j                  |«       y )Nc                  óL   — t        j                  dt         j                  ¬«      S )Nr   ©Údtype©r°   rì  Ú
complex128r|   rX   rV   rí  z0TestParforBasic.test_simple07.<locals>.test_implÄ  s   € Ü—7‘7˜6¬¯©Ô7Ð7rX   rú  rû  s     rV   Útest_simple07zTestParforBasic.test_simple07Ã  s   € ò	8à�
‰
�9ÕrX   c                 ó,   — d„ }| j                  |«       y )Nc                  óX   — t        j                  d«      t        j                  d«      z   S rÿ  rë  r|   rX   rV   rí  z0TestParforBasic.test_simple08.<locals>.test_implÉ  s   € Ü—7‘7˜6“?¤R§W¡W¨V£_Ñ4Ð4rX   rú  rû  s     rV   Útest_simple08zTestParforBasic.test_simple08È  s   € ò	5à�
‰
�9ÕrX   c                 ó,   — d„ }| j                  |«       y )Nc                  ó,   — t        j                  d«      S )N©rÜ   rÜ   rë  r|   rX   rV   rí  z0TestParforBasic.test_simple09.<locals>.test_implÎ  r  rX   rú  rû  s     rV   Útest_simple09zTestParforBasic.test_simple09Í  r  rX   c                 ó,   — d„ }| j                  |«       y )Nc                  ó,   — t        j                  d«      S )N©r   r   rë  r|   rX   rV   rí  z0TestParforBasic.test_simple10.<locals>.test_implÓ  r  rX   rú  rû  s     rV   Útest_simple10zTestParforBasic.test_simple10Ò  r  rX   c                 ó,   — d„ }| j                  |«       y )Nc                  ó2   — t        j                  d«      dz   S ©N©rú   rú   rF  rë  r|   rX   rV   rí  z0TestParforBasic.test_simple11.<locals>.test_implØ  s   € Ü—7‘7˜8Ó$ rÑ)Ð)rX   rú  rû  s     rV   Útest_simple11zTestParforBasic.test_simple11×  s   € ò	*à�
‰
�9ÕrX   c                 ó,   — d„ }| j                  |«       y )Nc                  óX   — t        j                  d«      t        j                  d«      z   S r  r  r|   rX   rV   rí  z0TestParforBasic.test_simple12.<locals>.test_implÝ  s   € Ü—7‘7˜8Ó$¤r§}¡}°RÓ'8Ñ8Ð8rX   rú  rû  s     rV   Útest_simple12zTestParforBasic.test_simple12Ü  s   € ò	9à�
‰
�9ÕrX   c                 óÊ   — d„ }| j                  t        «      5 }| j                  |«       d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Nc                  ó,   — t        j                  d«      S r[  )r°   r  r|   rX   rV   rí  z0TestParforBasic.test_simple13.<locals>.test_implâ  s   € Ü—=‘= Ó$Ð$rX   rî  rï  ró  s      rV   Útest_simple13zTestParforBasic.test_simple13á  sK   € ò	%à×Ñœ~Ô.°&Ø�J‰J�yÔ!÷ /à�‰Ð4´c¸&×:JÑ:JÓ6KÕL÷ /Ð.úrö  c                 ó,   — d„ }| j                  |«       y )Nc                  ó8   — t        j                  d«      dd d…   S )Nr  r   é   rë  r|   rX   rV   rí  z0TestParforBasic.test_simple14.<locals>.test_implé  s   € Ü—7‘7˜8Ó$ Q U¨ UÑ+Ð+rX   rú  rû  s     rV   Útest_simple14zTestParforBasic.test_simple14è  s   € ò	,à�
‰
�9ÕrX   c                 óD   — d„ } | j                   |g| j                  ¢­Ž  y )Nc                 ó   — | | z   S rZ   r|   ©Úv1Úv2Úm1Úm2s       rV   rí  z0TestParforBasic.test_simple15.<locals>.test_implî  ó   € Ø˜‘7ˆNrX   ©rÔ   rè  rû  s     rV   Útest_simple15zTestParforBasic.test_simple15í  ó    € ò	àˆ�
‰
�9Ð0˜t×/Ñ/Ô0rX   c                 óD   — d„ } | j                   |g| j                  ¢­Ž  y )Nc                 ó   — ||z   S rZ   r|   r+  s       rV   rí  z0TestParforBasic.test_simple16.<locals>.test_impló  r0  rX   r1  rû  s     rV   Útest_simple16zTestParforBasic.test_simple16ò  r3  rX   c                 óD   — d„ } | j                   |g| j                  ¢­Ž  y )Nc                 ó   — || z   S rZ   r|   r+  s       rV   rí  z0TestParforBasic.test_simple17.<locals>.test_implø  r0  rX   r1  rû  s     rV   Útest_simple17zTestParforBasic.test_simple17÷  r3  rX   c                 óD   — d„ } | j                   |g| j                  ¢­Ž  y )Nc                 ó`   — |j                   t        j                  j                  |«      d   z   S r  )rç  r°   ÚlinalgÚsvdr+  s       rV   rí  z0TestParforBasic.test_simple18.<locals>.test_implþ  s#   € Ø—4‘4œ"Ÿ)™)Ÿ-™-¨Ó+¨AÑ.Ñ.Ð.rX   r1  rû  s     rV   Útest_simple18zTestParforBasic.test_simple18ü  s    € ò	/àˆ�
‰
�9Ð0˜t×/Ñ/Ô0rX   c                 óD   — d„ } | j                   |g| j                  ¢­Ž  y )Nc                 ó.   — t        j                  ||«      S rZ   ©r°   r\  r+  s       rV   rí  z0TestParforBasic.test_simple19.<locals>.test_impl  ó   € Ü—6‘6˜"˜b“>Ð!rX   r1  rû  s     rV   Útest_simple19zTestParforBasic.test_simple19  ó    € ò	"àˆ�
‰
�9Ð0˜t×/Ñ/Ô0rX   c                 óâ   — d„ }| j                  t        «      5 } | j                  |g| j                  ¢­Ž  d d d «       | j	                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nc                 ó.   — t        j                  ||«      S rZ   rA  r+  s       rV   rí  z0TestParforBasic.test_simple20.<locals>.test_impl
  rB  rX   rî  )rð  rñ  rÔ   rè  rä   r  rò  ró  s      rV   Útest_simple20zTestParforBasic.test_simple20  sZ   € ò	"ð ×Ñœ~Ô.°&ØˆD�J‰J�yÐ4 4×#3Ñ#3Ó4÷ /à�‰Ð4´c¸&×:JÑ:JÓ6KÕL÷ /Ð.ús   ™A%Á%A.c                 óD   — d„ } | j                   |g| j                  ¢­Ž  y )Nc                 ó.   — t        j                  | | «      S rZ   rA  r+  s       rV   rí  z0TestParforBasic.test_simple21.<locals>.test_impl  rB  rX   r1  rû  s     rV   Útest_simple21zTestParforBasic.test_simple21  rD  rX   c                 óD   — d„ } | j                   |g| j                  ¢­Ž  y )Nc                 ó2   — t        j                  | | z   «      S rZ   ©r°   rg  r+  s       rV   rí  z0TestParforBasic.test_simple22.<locals>.test_impl  s   € Ü—6‘6˜"˜r™'“?Ð"rX   r1  rû  s     rV   Útest_simple22zTestParforBasic.test_simple22  s    € ò	#àˆ�
‰
�9Ð0˜t×/Ñ/Ô0rX   c                 óD   — d„ } | j                   |g| j                  ¢­Ž  y )Nc                 ód   — d| z  }d| z  }dt        j                  |dz  |dz  z   dk  «      z  dz  S )Nrí   rÿ   rÜ   rú   rM  )r,  r-  r.  r/  r£   Úys         rV   rí  z0TestParforBasic.test_simple23.<locals>.test_impl  s=   € Ø�B‘ˆAØ�B‘ˆAØ”r—v‘v˜a ™d Q¨¡T™k¨A™oÓ.Ñ.°Ñ3Ð3rX   r1  rû  s     rV   Útest_simple23zTestParforBasic.test_simple23  s"   € ò	4ð 	ˆ�
‰
�9Ð0˜t×/Ñ/Ô0rX   c                 ó,   — d„ }| j                  |«       y )Nc                  ó–   — d} t        j                  | | f«      }t        j                  | «      }t        j                  |d d …|f   «      S )Nr'  )r°   rì  ræ  rg  )rñ   ri  rˆ   s      rV   rí  z0TestParforBasic.test_simple24.<locals>.test_impl$  s;   € ØˆAÜ—‘˜˜A˜“ˆAÜ—	‘	˜!“ˆAÜ—6‘6˜!šA˜q˜D™'“?Ð"rX   rú  rû  s     rV   Útest_simple24zTestParforBasic.test_simple24#  s   € ò	#ð
 	�
‰
�9ÕrX   c                 óD   — d„ } | j                   |g| j                  ¢­Ž  y)zAsame as corresponding test_simple_<n> case but using operator.addc                 ó.   — t        j                  | | «      S rZ   ©Úoperatorr»  r+  s       rV   rí  z:TestParforBasic.test_simple_operator_15.<locals>.test_impl.  ó   € Ü—<‘<  BÓ'Ð'rX   Nr1  rû  s     rV   Útest_simple_operator_15z'TestParforBasic.test_simple_operator_15+  s"   € ò	(ð 	ˆ�
‰
�9Ð0˜t×/Ñ/Ô0rX   c                 óD   — d„ } | j                   |g| j                  ¢­Ž  y )Nc                 ó.   — t        j                  ||«      S rZ   rX  r+  s       rV   rí  z:TestParforBasic.test_simple_operator_16.<locals>.test_impl5  rZ  rX   r1  rû  s     rV   Útest_simple_operator_16z'TestParforBasic.test_simple_operator_163  ó"   € ò	(ð 	ˆ�
‰
�9Ð0˜t×/Ñ/Ô0rX   c                 óD   — d„ } | j                   |g| j                  ¢­Ž  y )Nc                 ó.   — t        j                  || «      S rZ   rX  r+  s       rV   rí  z:TestParforBasic.test_simple_operator_17.<locals>.test_impl<  rZ  rX   r1  rû  s     rV   Útest_simple_operator_17z'TestParforBasic.test_simple_operator_17:  r_  rX   c                 ód   — d„ }d„ }t        j                  d«      }| j                  |||g¬«       y )Nc                 ó   — | dz  } d| d d  y )NrÜ   rý   r|   ©r‡   s    rV   rí  z5TestParforBasic.test_inplace_alias.<locals>.test_implC  s   € Ø�‰FˆAØˆA‰a‰DrX   c                 óD   — t         j                  j                  | |«       y rZ   ©r°   r¾   Úassert_equalr†   s     rV   Úcomparerz4TestParforBasic.test_inplace_alias.<locals>.comparerG  ó   € Ü�J‰J×#Ñ# A qÕ)rX   rÜ   ©r¬   ©r°   rì  rÔ   )rS   rí  ri  r£   s       rV   Útest_inplace_aliasz"TestParforBasic.test_inplace_aliasA  s/   € ò	ò	*ô �G‰G�A‹JˆØ�
‰
�9˜a°X°Jˆ
Õ?rX   N)"rw   rN   rx   rC  rÞ  rõ  rü  r  r  r  r  r  r  r  r!  r$  r(  r2  r6  r9  r<   r>  r;   rC  rG  rJ  rN  rR  rU  r=   r[  r^  rb  rm  r|   rX   rV   rà  rà  ¢  sý   „ ñòBòMòò
ò
ò
ò
ò
ò
ò
ò
ò
Mòò
1ò
1ò
1ð
 ñ1ó ð1ð
 ñ1ó ð1ð
 ñMó ðMð ñ1ó ð1ò
1ò
1òð ñ1ó ð1ð ñ1ó ð1ð ñ1ó ð1ó
@rX   rà  c                   ó2   — e Zd ZdZd„ Zd„ Zed„ «       Zd„ Zy)ÚTestParforNumericalMiscz+ Miscellaneous 'classical' numerical tests c                 óÞ   — d„ }| j                  |dd¬«       | j                  t        |t        j                  f«      d«       | j                  t        |t        j                  f«      d«       y )Nc                 óä   — dt         j                  j                  | «      z  dz
  }dt         j                  j                  | «      z  dz
  }dt        j                  |dz  |dz  z   dk  «      z  | z  S )Nrí   rÜ   rÿ   )r°   ÚrandomÚranfrg  )rñ   r£   rQ  s      rV   rí  z2TestParforNumericalMisc.test_pi.<locals>.test_implS  sc   € Ø”B—I‘I—N‘N 1Ó%Ñ%¨Ñ)ˆAØ”B—I‘I—N‘N 1Ó%Ñ%¨Ñ)ˆAØ”r—v‘v˜a ™d Q¨¡T™k¨A™oÓ.Ñ.°Ñ2Ð2rX   i † rÜ   ©Údecimalr   )rÔ   rÀ   rÞ   r   Úint64r°  Úintprû  s     rV   Útest_pizTestParforNumericalMisc.test_piR  sU   € ò	3ð
 	�
‰
�9˜f¨aˆ
Ô0Ø×Ñœ i´%·+±+°ÓAÀ1ÔEØ×Ñœ Y´·±°Ó>ÀÕBrX   c                 ór   — t         j                  d d  fdz  }| j                  t        t        |«      d«       y ©Nr€   rÜ   )rŸ   Úfloat64rÀ   rÞ   rY  ©rS   r¡   s     rV   Útest_blackscholesz)TestParforNumericalMisc.test_blackscholes\  s0   € ä—‘™aÐ Ð# aÑ'ˆØ×ÑœÔ&7¸Ó>ÀÕBrX   c                 ó  — t         j                  d d  t         j                  d d …d d …f   t         j                  d d  t         j                  f}| j                  t	        t
        |«      d«       | j                  t        t
        |«      d«       y ©Nrí   rÜ   )rŸ   r{  rv  rÀ   rÞ   ra  rÁ  r|  s     rV   Útest_logistic_regressionz0TestParforNumericalMisc.test_logistic_regressiona  se   € ä—‘™aÐ ¤%§-¡-²²!°Ñ"4´e·m±mÁAÐ6FÜ—‘ðˆà×Ñœ¤g¨tÓ4°aÔ8Ø×ÑÔ)¬'°4Ó8¸!Õ<rX   c                 ó  — t         j                  j                  d«       d}d}d}t         j                  j                  ||f«      }t         j                  j                  ||f«      }| j	                  t
        ||d|d¬«       t        j                  t        j                  dd«      t        j                  t        j                  t        j                  t        j                  dd«      f}| j                  t        t
        |«      d«       y )	Nr   é   rú   rý   rÜ   rt  rí   ÚC)r°   rr  Úseedrs  rÔ   rt  r   ÚArrayr{  rw  rÀ   rÉ  )rS   rn  ro  Úcentersri  rl  Úarg_typss          rV   Útest_kmeansz#TestParforNumericalMisc.test_kmeansh  sÆ   € Ü
�	‰	�‰�qÔØˆØˆØˆÜ�I‰I�N‰N˜A˜q˜6Ó"ˆÜŸ™Ÿ™¨°!¨Ó5ˆØ�
‰
Ô&¨¨7°A°~ØLMð 	ô 	Oô —K‘K¤§¡¨q°#Ó6¼¿
¹
ÄEÇJÁJÜ—K‘K¤§¡¨q°#Ó6ð8ˆà×ÑÜ'Ô(;¸XÓFÈõ	KrX   N)	rw   rN   rx   rC  rx  r}  r;   r€  rˆ  r|   rX   rV   ro  ro  N  s+   „ á5òCòCð
 ñ=ó ð=óKrX   ro  c                   ó¤   — e Zd ZdZe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d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestParforNumPyz'Tests NumPy functionality under parforsc                 ó¬   — d„ }t        j                  ddd«      j                  dd«      }t        j                  ddd«      }| j                  |||«       y )Nc                 ó.   — t        j                  | |«      S rZ   rA  ©r‡   rÕ  s     rV   rí  z-TestParforNumPy.test_mvdot.<locals>.test_impl  ó   € Ü—6‘6˜!˜Q“<ÐrX   r   rÜ   r'  rí   rú   )r°   rï   r   rÔ   )rS   rí  ri  rÕ  s       rV   Ú
test_mvdotzTestParforNumPy.test_mvdot}  sJ   € ò	 ô �K‰K˜˜1˜bÓ!×)Ñ)¨!¨RÓ0ˆÜ�K‰K˜˜1˜bÓ!ˆà�
‰
�9˜a Õ#rX   c                 óf  ‡— t         j                  t         j                  t         j                  t         j                  fD ]o  Šˆfd„}| j                  |d«       | j                  t        |t        j                  f«      d«       | j                  t        |t        j                  f«      d«       Œq y )Nc                 óh   •— t        j                  | «      } ‰|«      }|j                  «       }||z   S rZ   ©r°   rì  rg  )rñ   ri  rƒ  ÚBr<  s       €rV   rí  zBTestParforNumPy.test_fuse_argmin_argmax_max_min.<locals>.test_impl‰  s-   ø€ Ü—G‘G˜A“J�Ù�q“E�Ø—E‘E“G�Ø˜1‘u�rX   é   rÜ   r   )r°   rh  ÚargmaxÚminÚmaxrÔ   rÀ   rÞ   r   rv  r°  rw  )rS   rí  r<  s     @rV   Útest_fuse_argmin_argmax_max_minz/TestParforNumPy.test_fuse_argmin_argmax_max_min‡  su   ø€ Ü—9‘9œbŸi™i¬¯©´·±Ó8ˆBôð
 �J‰J�y #Ô&Ø×Ñœ\¨)´e·k±k°_ÓEÀqÔIØ×Ñœ[¨´U·Z±Z°MÓBÀAÕFñ 9rX   c                 ó`   — d„ }| j                  t        |t        j                  f«      d«       y )Nc                 ó"   — t        | «      }|d   S r²  r   ©rñ   ri  s     rV   rí  zDTestParforNumPy.test_np_random_func_direct_import.<locals>.test_impl“  s   € Ü�a“ˆAØ�Q‘4ˆKrX   rÜ   ©rÀ   rÞ   r   rv  rû  s     rV   Ú!test_np_random_func_direct_importz1TestParforNumPy.test_np_random_func_direct_import’  s&   € ò	ð 	×Ñœ i´%·+±+°ÓAÀ1ÕErX   c                 óÈ   — d„ }d„ }d„ }dddt        dd«      t        dd«      fD ];  }| j                  ||«       | j                  |d	|«       | j                  |d	|d	«       Œ= y )
Nc                 ó,   — t        j                  | «      S rZ   ©r°   ræ  rð   s    rV   Ú
test_impl1z/TestParforNumPy.test_arange.<locals>.test_impl1š  ó   € Ü—9‘9˜Q“<ÐrX   c                 ó.   — t        j                  | |«      S rZ   r   ©Úsrñ   s     rV   Ú
test_impl2z/TestParforNumPy.test_arange.<locals>.test_impl2�  s   € Ü—9‘9˜Q “?Ð"rX   c                 ó0   — t        j                  | ||«      S rZ   r   ©r¥  rñ   Úts      rV   Ú
test_impl3z/TestParforNumPy.test_arange.<locals>.test_impl3   s   € Ü—9‘9˜Q  1Ó%Ð%rX   é   é€   ç      >@rÿ   r€   rí   ©ÚcomplexrÔ   ©rS   r¡  r¦  rª  Úargs        rV   Útest_arangezTestParforNumPy.test_arange˜  sd   € ò	 ò	#ò	&ð ˜˜T¤7¨1¨Q£<´¸¸1³Ó>ˆCØ�J‰J�z 3Ô'Ø�J‰J�z 1 cÔ*Ø�J‰J�z 1 c¨1Õ-ñ ?rX   c                 ó–   — d„ }d„ }d„ }dD ];  }| j                  ||«       | j                  |d|«       | j                  |d|d«       Œ= y )Nc                 óL   — t        j                  | t         j                  ¬«      S ©Nr
  ©r°   ræ  Úfloat32rð   s    rV   r¡  z5TestParforNumPy.test_arange_dtype.<locals>.test_impl1ª  s   € Ü—9‘9˜Q¤b§j¡jÔ1Ð1rX   c                 óN   — t        j                  | |t         j                  ¬«      S rµ  r¶  r¤  s     rV   r¦  z5TestParforNumPy.test_arange_dtype.<locals>.test_impl2­  s   € Ü—9‘9˜Q ¬¯©Ô4Ð4rX   c                 óP   — t        j                  | ||t         j                  ¬«      S rµ  r¶  r¨  s      rV   rª  z5TestParforNumPy.test_arange_dtype.<locals>.test_impl3°  s   € Ü—9‘9˜Q  1¬B¯J©JÔ7Ð7rX   )r«  r¬  r­  rí   rú  r°  s        rV   Útest_arange_dtypez!TestParforNumPy.test_arange_dtype¨  sM   € ò	2ò	5ò	8ó #ˆCØ�J‰J�z 3Ô'Ø�J‰J�z 1 cÔ*Ø�J‰J�z 1 c¨1Õ-ñ #rX   c                 óž   — d„ }d„ }dddt        dd«      t        dd«      fD ])  }| j                  |d|«       | j                  |d|d	«       Œ+ y )
Nc                 ó.   — t        j                  | |«      S rZ   rî   )ÚstartÚstops     rV   r¡  z1TestParforNumPy.test_linspace.<locals>.test_impl1º  s   € Ü—;‘;˜u dÓ+Ð+rX   c                 ó0   — t        j                  | ||«      S rZ   rî   )r½  r¾  Únums      rV   r¦  z1TestParforNumPy.test_linspace.<locals>.test_impl2½  s   € Ü—;‘;˜u d¨CÓ0Ð0rX   r«  r¬  r­  rÿ   r€   rí   é   r®  )rS   r¡  r¦  r±  s       rV   Útest_linspacezTestParforNumPy.test_linspace¸  sQ   € ò	,ò	1ð ˜˜T¤7¨1¨Q£<´¸¸1³Ó>ˆCØ�J‰J�z 1 cÔ*Ø�J‰J�z 1 c¨2Õ.ñ ?rX   c           
      ó.  ‡ — d„ }d}t         j                  j                  |«      }t         j                  j                  d|df¬«      }‰ j	                  ||«       ‰ j	                  ||«       ‰ j                  t        |t        j                  t        j                  dd«      f«      d«       ‰ j                  t        |t        j                  t        j                  dd«      f«      d«       ˆ fd	„}‰ j                  ||«       ‰ j                  ||«       y )
Nc                 ó"   — | j                  «       S rZ   ©Úmean©ri  s    rV   rí  z,TestParforNumPy.test_mean.<locals>.test_implÅ  s   € Ø—6‘6“8ˆOrX   éd   rú   rý   ©ÚsizerÜ   rƒ  rí   c                  ó&   •— ‰ j                  d«      S r  ©r  r\   s   €rV   Ú<lambda>z+TestParforNumPy.test_mean.<locals>.<lambda>Ð  ó   ø€ ˜4×5Ñ5°aÔ8rX   ©r°   rr  rs  ÚrandintrÔ   rÀ   rÞ   r   r…  r{  rÚ   rà   )rS   rí  rn  ri  r“  Údata_gens   `     rV   Ú	test_meanzTestParforNumPy.test_meanÄ  sÙ   ø€ ò	àˆÜ�I‰I�N‰N˜1ÓˆÜ�I‰I×Ñ˜b¨¨1 vÐÓ.ˆØ�
‰
�9˜aÔ Ø�
‰
�9˜aÔ Ø×Ñœ i´%·+±+¼e¿m¹mÈQÐPSÓ2TÐ1WÓXÐZ[Ô\Ø×Ñœ i´%·+±+¼e¿m¹mÈQÐPSÓ2TÐ1WÓXÐZ[Ô\ó 9ˆØ×Ñ˜I xÔ0Ø×#Ñ# I¨xÕ8rX   c           
      ób  ‡ — d„ }d}t         j                  j                  |«      }t         j                  j                  d|df¬«      }|d|z  z   }‰ j	                  ||«       ‰ j	                  ||«       ‰ j	                  ||«       ‰ j                  t        |t        j                  t        j                  dd«      f«      d	«       ‰ j                  t        |t        j                  t        j                  d	d«      f«      d	«       ˆ fd
„}‰ j                  ||«       ‰ j                  ||«       y )Nc                 ó"   — | j                  «       S rZ   )ÚvarrÇ  s    rV   rí  z+TestParforNumPy.test_var.<locals>.test_implÕ  ó   € Ø—5‘5“7ˆNrX   rÈ  rú   rý   rÉ  ù              ð?rÜ   rƒ  rí   c                  ó&   •— ‰ j                  d«      S r  rÌ  r\   s   €rV   rÍ  z*TestParforNumPy.test_var.<locals>.<lambda>â  rÎ  rX   rÏ  )rS   rí  rn  ri  r“  rƒ  rÑ  s   `      rV   Útest_varzTestParforNumPy.test_varÔ  sô   ø€ ò	àˆÜ�I‰I�N‰N˜1ÓˆÜ�I‰I×Ñ˜b¨¨1 vÐÓ.ˆØ��Q‘‰JˆØ�
‰
�9˜aÔ Ø�
‰
�9˜aÔ Ø�
‰
�9˜aÔ Ø×Ñœ i´%·+±+¼e¿m¹mÈQÐPSÓ2TÐ1WÓXÐZ[Ô\Ø×Ñœ i´%·+±+¼e¿m¹mÈQÐPSÓ2TÐ1WÓXÐZ[Ô\ó 9ˆØ×Ñ˜I xÔ0Ø×#Ñ# I¨xÕ8rX   c                 ó  ‡ — d„ }d}t         j                  j                  |«      }t         j                  j                  d|df¬«      }|d|z  z   }‰ j	                  ||«       ‰ j	                  ||«       ‰ j	                  ||«       t        j                  t
        j                  dd«      f}‰ j                  t        ||«      d	«       ‰ j                  t        ||«      d	«       ˆ fd
„}‰ j                  ||«       ‰ j                  ||«       y )Nc                 ó"   — | j                  «       S rZ   )ÚstdrÇ  s    rV   rí  z+TestParforNumPy.test_std.<locals>.test_implç  rÖ  rX   rÈ  rú   rý   rÉ  r×  rÜ   rƒ  rí   c                  ó&   •— ‰ j                  d«      S r  rÌ  r\   s   €rV   rÍ  z*TestParforNumPy.test_std.<locals>.<lambda>õ  rÎ  rX   )r°   rr  rs  rÐ  rÔ   r   r…  r{  rÀ   rÞ   rÚ   rà   )rS   rí  rn  ri  r“  rƒ  ÚargtyrÑ  s   `       rV   Útest_stdzTestParforNumPy.test_stdæ  sá   ø€ ò	àˆÜ�I‰I�N‰N˜1ÓˆÜ�I‰I×Ñ˜b¨¨1 vÐÓ.ˆØ��Q‘‰JˆØ�
‰
�9˜aÔ Ø�
‰
�9˜aÔ Ø�
‰
�9˜aÔ Ü—‘œUŸ]™]¨A¨sÓ3Ð5ˆØ×Ñœ i°Ó7¸Ô;Ø×Ñœ i°Ó7¸Ô;ó 9ˆØ×Ñ˜I xÔ0Ø×#Ñ# I¨xÕ8rX   c                 ó`   — d„ }| j                  t        |t        j                  f«      d«       y)zŒ
        Test function with only a random call to make sure a random function
        like ranf is actually translated to a parfor.
        c                 óH   — t         j                  j                  | | f«      }|S rZ   )r°   rr  rs  r›  s     rV   rí  z5TestParforNumPy.test_random_parfor.<locals>.test_implþ  s   € Ü—	‘	—‘  1˜vÓ&ˆAØˆHrX   rÜ   Nrœ  rû  s     rV   Útest_random_parforz"TestParforNumPy.test_random_parforù  s&   € ò
	ð 	×Ñœ i´%·+±+°ÓAÀ1ÕErX   c                 ó&  — d„ }d}| j                  |t        j                  |«      f«      }|j                  |«      } ||«      }t        j
                  j                  ||d¬«       | j                  t        |t        j                  f«      d«       y )Nc                 óè  — t         j                  j                  | | f¬«      }t         j                  j                  | | «      }t         j                  j	                  dd| | f«      }t         j                  j                  d| | f«      }t         j                  j                  dd| | f¬«      }t         j                  j                  ddd| | f«      }t        j                  ||z   |z   |z   |z   |z   «      S ©NrÉ  ç        rF  rÜ   rý   )ÚhighrÊ  rí   )	r°   rr  Ústandard_normalr   ÚnormalÚ	chisquarerÐ  Ú
triangularrg  ©rñ   ri  r“  rƒ  ro  ÚEÚFs          rV   rí  z/TestParforNumPy.test_randoms.<locals>.test_impl  sÇ   € Ü—	‘	×)Ñ)°°1¨vÐ)Ó6ˆAÜ—	‘	—‘  1Ó%ˆAÜ—	‘	× Ñ   c¨A¨q¨6Ó2ˆAÜ—	‘	×#Ñ# C¨!¨Q¨Ó0ˆAÜ—	‘	×!Ñ! !¨!°1°a°&Ð!Ó9ˆAÜ—	‘	×$Ñ$ Q¨¨1¨q°!¨fÓ5ˆAÜ—6‘6˜!˜A™#˜a™% ™' !™) A™+Ó&Ð&rX   r¬  gš™™™™™©?)ÚrtolrÜ   )r—   rŸ   r   r½   r°   r¾   Úassert_allcloserÀ   rÞ   r   rv  ©rS   rí  rñ   r¤   rÊ   Ú	py_outputs         rV   Útest_randomszTestParforNumPy.test_randoms  sz   € ò	'ð ˆØ×&Ñ& y´5·<±<À³?Ð2DÓEˆØ×*Ñ*¨1Ó-ˆÙ˜a“Lˆ	ä
�
‰
×"Ñ" =°)À$Ð"ÔGØ×Ñœ i´%·+±+°ÓAÀ1ÕErX   c                 ó  — d„ }d}| j                  |t        j                  |«      f«      }|j                  |«      } ||«      }| j	                  ||«       | j	                  t        |t        j                  f«      d«       y )Nc                 ó¢  — t         j                  j                  | | f¬«      }t         j                  j                  | | «      }t         j                  j	                  dd| | f«      }t         j                  j                  d| | f«      }t         j                  j                  dd| | f¬«      }t         j                  j                  ddd| | f«      }yrå  )r°   rr  rè  r   ré  rê  rÐ  rë  rì  s          rV   rí  z4TestParforNumPy.test_dead_randoms.<locals>.test_impl  s§   € Ü—	‘	×)Ñ)°°1¨vÐ)Ó6ˆAÜ—	‘	—‘  1Ó%ˆAÜ—	‘	× Ñ   c¨A¨q¨6Ó2ˆAÜ—	‘	×#Ñ# C¨!¨Q¨Ó0ˆAÜ—	‘	×!Ñ! !¨!°1°a°&Ð!Ó9ˆAÜ—	‘	×$Ñ$ Q¨¨1¨q°!¨fÓ5ˆAØrX   r¬  r   )r—   rŸ   r   r½   rÀ   rÞ   r   rv  rñ  s         rV   Útest_dead_randomsz!TestParforNumPy.test_dead_randoms  sq   € ò	ð ˆØ×&Ñ& y´5·<±<À³?Ð2DÓEˆØ×*Ñ*¨1Ó-ˆÙ˜a“Lˆ	Ø×Ñ˜¨	Ô2Ø×Ñœ i´%·+±+°ÓAÀ1ÕErX   c                 ó–  ‡ — d„ }d„ }d}t         j                  j                  |«      }t         j                  j                  d|¬«      j	                  t         j
                  «      }t         j                  j                  ||f«      }t        j                  t         j                  t         j                  g«      }‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       d}||fD ]�  }	‰ j                  |	t        j                  d d  f«      }
‰ j                  t        «      5 }|
j                  t        j                  g t         j                  ¬«      «       d d d «       ‰ j                  |t!        j"                  «      «       ŒŸ ˆ fd„}‰ j%                  ||«       ‰ j'                  ||«       ‰ j%                  ||«       ‰ j'                  ||«       y # 1 sw Y   Œ~xY w)	Nc                 ó"   — | j                  «       S rZ   ©r–  rÇ  s    rV   r¡  z,TestParforNumPy.test_min.<locals>.test_impl1'  rÖ  rX   c                 ó,   — t        j                  | «      S rZ   )r°   r–  rÇ  s    rV   r¦  z,TestParforNumPy.test_min.<locals>.test_impl2*  ó   € Ü—6‘6˜!“9ÐrX   éÓ   rú   rÉ  zDzero-size array to reduction operation minimum which has no identityr
  c                  ó&   •— ‰ j                  d«      S r  rÌ  r\   s   €rV   rÍ  z*TestParforNumPy.test_min.<locals>.<lambda>E  rÎ  rX   ©r°   rr  rs  rÐ  ÚastypeÚint32re  ÚinfrÔ   r—   r   rv  rð  r¹   r½   rä   r  rò  rÚ   rà   ©rS   r¡  r¦  rñ   ri  r“  rƒ  ro  ré   rØ   ÚpcfuncÚerÑ  s   `            rV   Útest_minzTestParforNumPy.test_min&  s»  ø€ ò	ò	ð ˆÜ�I‰I�N‰N˜1ÓˆÜ�I‰I×Ñ˜b qÐÓ)×0Ñ0´·±Ó:ˆÜ�I‰I�N‰N˜A˜q˜6Ó"ˆÜ�H‰H”b—f‘fœbŸf™fÐ%Ó&ˆØ�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!ð/ˆà Ó,ˆDØ×*Ñ*¨4´%·+±+¹a°.Ð1BÓCˆFØ×"Ñ"¤:Ô.°!Ø×"Ñ"¤2§8¡8¨B´b·h±hÔ#?Ô@÷ /à�M‰M˜#œs 1§;¡;Ó/Õ0ð	 -ó 9ˆØ×Ñ˜J¨Ô1Ø×#Ñ# J°Ô9Ø×Ñ˜J¨Ô1Ø×#Ñ# J°Õ9÷ /Ð.ús   Æ5H?È?I	c                 óš  ‡ — d„ }d„ }d}t         j                  j                  |«      }t         j                  j                  d|¬«      j	                  t         j
                  «      }t         j                  j                  ||f«      }t        j                  t         j                   t         j                   g«      }‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       d}||fD ]�  }	‰ j                  |	t        j                  d d  f«      }
‰ j                  t        «      5 }|
j                  t        j                  g t         j                  ¬«      «       d d d «       ‰ j                  |t!        j"                  «      «       ŒŸ ˆ fd„}‰ j%                  ||«       ‰ j'                  ||«       ‰ j%                  ||«       ‰ j'                  ||«       y # 1 sw Y   Œ~xY w)	Nc                 ó"   — | j                  «       S rZ   )r—  rÇ  s    rV   r¡  z,TestParforNumPy.test_max.<locals>.test_impl1L  rÖ  rX   c                 ó,   — t        j                  | «      S rZ   )r°   r—  rÇ  s    rV   r¦  z,TestParforNumPy.test_max.<locals>.test_impl2O  rû  rX   rü  rú   rÉ  zDzero-size array to reduction operation maximum which has no identityr
  c                  ó&   •— ‰ j                  d«      S r  rÌ  r\   s   €rV   rÍ  z*TestParforNumPy.test_max.<locals>.<lambda>j  rÎ  rX   rþ  r  s   `            rV   Útest_maxzTestParforNumPy.test_maxK  s¿  ø€ ò	ò	ð ˆÜ�I‰I�N‰N˜1ÓˆÜ�I‰I×Ñ˜b qÐÓ)×0Ñ0´·±Ó:ˆÜ�I‰I�N‰N˜A˜q˜6Ó"ˆÜ�H‰H”r—v‘v�g¤§¡˜wÐ'Ó(ˆØ�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!ð/ˆà Ó,ˆDØ×*Ñ*¨4´%·+±+¹a°.Ð1BÓCˆFØ×"Ñ"¤:Ô.°!Ø×"Ñ"¤2§8¡8¨B´b·h±hÔ#?Ô@÷ /à�M‰M˜#œs 1§;¡;Ó/Õ0ð	 -ó 9ˆØ×Ñ˜J¨Ô1Ø×#Ñ# J°Ô9Ø×Ñ˜J¨Ô1Ø×#Ñ# J°Õ9÷ /Ð.ús   Æ5IÉI
	c                 óp  ‡ — d„ }d„ }d}t        j                  g d¢«      }t         j                  j                  d|¬«      j	                  t         j
                  «      }t         j                  j                  ||f«      }t        j                  ddt         j                  d	d
g«      }‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       d}||fD ]�  }	‰ j                  |	t        j                  d d  f«      }
‰ j                  t        «      5 }|
j                  t        j                  g t         j                  ¬«      «       d d d «       ‰ j                  |t!        j"                  «      «       ŒŸ ˆ fd„}‰ j%                  ||«       ‰ j'                  ||«       ‰ j%                  ||«       ‰ j'                  ||«       y # 1 sw Y   Œ~xY w)Nc                 ó"   — | j                  «       S rZ   )r•  rÇ  s    rV   r¡  z/TestParforNumPy.test_argmax.<locals>.test_impl1q  ó   € Ø—8‘8“:ÐrX   c                 ó,   — t        j                  | «      S rZ   )r°   r•  rÇ  s    rV   r¦  z/TestParforNumPy.test_argmax.<locals>.test_impl2t  r¢  rX   rü  )rF  ræ  rä  ç       @rä  rú   rÉ  rF  ræ  r  rä  z*attempt to get argmax of an empty sequencer
  c                  ó&   •— ‰ j                  d«      S r  rÌ  r\   s   €rV   rÍ  z-TestParforNumPy.test_argmax.<locals>.<lambda>Ž  rÎ  rX   ©r°   re  rr  rÐ  rÿ  r   rs  ÚnanrÔ   r—   r   rv  rð  r¹   r½   rä   r  rò  rÚ   rà   r  s   `            rV   Útest_argmaxzTestParforNumPy.test_argmaxp  óº  ø€ ò	ò	 ð ˆÜ�H‰HÒ)Ó*ˆÜ�I‰I×Ñ˜b qÐÓ)×0Ñ0´·±Ó:ˆÜ�I‰I�N‰N˜A˜q˜6Ó"ˆÜ�H‰H�b˜"œbŸf™f b¨"Ð-Ó.ˆØ�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!Ø�
‰
�:˜qÔ!ð ;ˆØ Ó,ˆDØ×*Ñ*¨4´%·+±+¹a°.Ð1BÓCˆFØ×"Ñ"¤:Ô.°!Ø×"Ñ"¤2§8¡8¨B´b·h±hÔ#?Ô@÷ /à�M‰M˜#œs 1§;¡;Ó/Õ0ð	 -ó 9ˆØ×Ñ˜J¨Ô1Ø×#Ñ# J°Ô9Ø×Ñ˜J¨Ô1Ø×#Ñ# J°Õ9÷ /Ð.úó   Å:5H,È,H5	c                 óp  ‡ — d„ }d„ }d}t        j                  g d¢«      }t         j                  j                  d|¬«      j	                  t         j
                  «      }t         j                  j                  ||f«      }t        j                  ddt         j                  dd	g«      }‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       ‰ j                  ||«       d
}||fD ]�  }	‰ j                  |	t        j                  d d  f«      }
‰ j                  t        «      5 }|
j                  t        j                  g t         j                  ¬«      «       d d d «       ‰ j                  |t!        j"                  «      «       ŒŸ ˆ fd„}‰ j%                  ||«       ‰ j'                  ||«       ‰ j%                  ||«       ‰ j'                  ||«       y # 1 sw Y   Œ~xY w)Nc                 ó"   — | j                  «       S rZ   )rh  rÇ  s    rV   r¡  z/TestParforNumPy.test_argmin.<locals>.test_impl1•  r  rX   c                 ó,   — t        j                  | «      S rZ   )r°   rh  rÇ  s    rV   r¦  z/TestParforNumPy.test_argmin.<locals>.test_impl2˜  r¢  rX   rü  )rF  ræ  r  ræ  rä  rú   rÉ  rF  ræ  rä  z*attempt to get argmin of an empty sequencer
  c                  ó&   •— ‰ j                  d«      S r  rÌ  r\   s   €rV   rÍ  z-TestParforNumPy.test_argmin.<locals>.<lambda>²  rÎ  rX   r  r  s   `            rV   Útest_argminzTestParforNumPy.test_argmin”  r  r  c                 óÜ   — d„ }t        j                  d«      }| j                  ||«       t        j                  t        j
                  dd«      f}| j                  t        ||«      d«       y )Nc                 ó(   — | j                  d«       | S ©Nç      @©Úfill©r£   s    rV   rí  z4TestParforNumPy.test_ndarray_fill.<locals>.test_impl¹  ó   € Ø�F‰F�3ŒKØˆHrX   rú   rÜ   rƒ  ©r°   ÚzerosrÔ   r   r…  r{  rÀ   rÞ   ©rS   rí  r£   rÞ  s       rV   Útest_ndarray_fillz!TestParforNumPy.test_ndarray_fill¸  sT   € ò	ô �H‰H�R‹LˆØ�
‰
�9˜aÔ Ü—‘œUŸ]™]¨A¨sÓ3Ð5ˆØ×Ñœ i°Ó7¸Õ;rX   c                 óÜ   — d„ }t        j                  d«      }| j                  ||«       t        j                  t        j
                  dd«      f}| j                  t        ||«      d«       y )Nc                 ó(   — | j                  d«       | S r  r  r!  s    rV   rí  z6TestParforNumPy.test_ndarray_fill2d.<locals>.test_implÂ  r"  rX   ©rí   rí   rí   rƒ  rÜ   r#  r%  s       rV   Útest_ndarray_fill2dz#TestParforNumPy.test_ndarray_fill2dÁ  sT   € ò	ô �H‰H�U‹OˆØ�
‰
�9˜aÔ Ü—‘œUŸ]™]¨A¨sÓ3Ð5ˆØ×Ñœ i°Ó7¸Õ;rX   c                 ób   — d„ }t        j                  g d¢«      }d}| j                  |||«       y )Nc                 óÈ   — t        j                  ||dft         j                  ¬«      }| d| }|j                  } | dz  }|j	                  dd«      }||z  }||d d …d d …df<   |S ©NrÜ   r
  r   rI   ©r°   r$  r{  rÊ  r   ©r‡   rˆ   Úresult_matrixÚsub_aÚzÚresult_datas         rV   rí  z<TestParforNumPy.test_reshape_with_neg_one.<locals>.test_implÌ  sh   € ÜŸH™H a¨¨A Y´b·j±jÔAˆMØ�a˜�FˆEØ—
‘
ˆAØ�A‘ˆAØ—‘˜b !Ó$ˆAØ !™)ˆKØ#.ˆMš!šA˜a˜%Ñ Ø Ð rX   ©rF  r  rä  rå  ç      @ç      @r  g       @g      "@ç      $@g      &@râ  rý   ©r°   re  rÔ   ©rS   rí  r‡   rˆ   s       rV   Útest_reshape_with_neg_onez)TestParforNumPy.test_reshape_with_neg_oneÊ  ó1   € ò	!ô �H‰Hò 4ó 5ˆàˆà�
‰
�9˜a Õ#rX   c                 ób   — d„ }t        j                  g d¢«      }d}| j                  |||«       y )Nc                 óÈ   — t        j                  ||dft         j                  ¬«      }| d| }|j                  } | dz  }|j	                  dd«      }||z  }||d d …d d …df<   |S )NrÜ   r
  r   iåúÿÿr.  r/  s         rV   rí  z>TestParforNumPy.test_reshape_with_large_neg.<locals>.test_implÞ  sh   € ÜŸH™H a¨¨A Y´b·j±jÔAˆMØ�a˜�FˆEØ—
‘
ˆAØ�A‘ˆAØ—‘˜e QÓ'ˆAØ !™)ˆKØ#.ˆMš!šA˜a˜%Ñ Ø Ð rX   r4  rý   r8  r9  s       rV   Útest_reshape_with_large_negz+TestParforNumPy.test_reshape_with_large_negÜ  r;  rX   c                 ó"  — | j                  t        j                  «      5 }t        d¬«      d„ «       }t	        j
                  g d¢«      }d} |||«       d d d «       d}| j                  |t        j                  «      «       y # 1 sw Y   Œ1xY w)NTr“   c                 óÈ   — t        j                  ||dft         j                  ¬«      }| d| }|j                  } | dz  }|j	                  dd«      }||z  }||d d …d d …df<   |S r-  r.  )r‡   rˆ   Úrmr1  r2  r3  s         rV   rí  zETestParforNumPy.test_reshape_with_too_many_neg_one.<locals>.test_implñ  sf   € ä—X‘X˜q ! Q˜i¬r¯z©zÔ:�Ø˜!˜A˜�Ø—J‘J�Ø˜‘E�Ø—M‘M " bÓ)�Ø# a™i�Ø'�’1’Q�q�5‘	Ø�	rX   r4  rý   z7The reshape API may only include one negative argument.)	rð  r   ÚUnsupportedRewriteErrorr   r°   re  rä   r  rò  )rS   Úraisedrí  r‡   rˆ   ré   s         rV   Ú"test_reshape_with_too_many_neg_onez2TestParforNumPy.test_reshape_with_too_many_neg_oneî  s�   € à×Ñœv×=Ñ=Ô>À&Ü˜4Ô ñó !ðô —‘ò 8ó 9ˆAàˆAÙ�a˜ŒO÷ ?ð" IˆØ�‰�cœ3˜v×/Ñ/Ó0Õ1÷% ?Ð>ús    5BÂBc                 óX   — d„ }| j                  |t        j                  d«      d¬«       y )Nc                 óÜ   — t        j                  | «      t        j                  | «      z   t        j                  | «      z   t        j                  | «      z   t        j
                  | «      z   S rZ   )r°   rg  Úprodr–  r—  rÕ  rð   s    rV   rí  z0TestParforNumPy.test_0d_array.<locals>.test_impl  sD   € Ü—6‘6˜!“9œrŸw™w q›zÑ)¬B¯F©F°1«IÑ5¼¿¹¸q»	ÑAÄBÇFÁFÈ1ÃIÑMÐMrX   é   F©r«   )rÔ   r°   re  rû  s     rV   Útest_0d_arrayzTestParforNumPy.test_0d_array  s"   € ò	Nà�
‰
�9œbŸh™h q›k¸Eˆ
ÕBrX   c           	      óÀ   — d„ }t        j                  d«      dz  }| j                  ||«       | j                  t	        |t
        j                  d d d…   f«      d«       y )Nc                 óf   — t        j                  | j                  dz  | j                  dz  z   «      S rc  )r°   rg  ÚrealÚimag)r2  s    rV   rí  z6TestParforNumPy.test_real_imag_attr.<locals>.test_impl  s&   € Ü—6‘6˜!Ÿ&™& A™+¨¯©°!©Ñ3Ó4Ð4rX   r€   y      ð?      ð?rÜ   )r°   ræ  rÔ   rÀ   rÞ   r   r  )rS   rí  r2  s      rV   Útest_real_imag_attrz#TestParforNumPy.test_real_imag_attr	  sR   € ò	5ô �I‰I�a‹L˜FÑ#ˆØ�
‰
�9˜aÔ Ø×Ñœ i´%×2BÑ2BÁ3ÀQÀ3Ñ2GÐ1IÓJÈAÕNrX   N)rw   rN   rx   rC  r;   r�  r˜  r�  r²  rº  rÂ  rÒ  rÙ  rß  râ  ró  rö  r  r
  r  r  r&  r*  r:  r>  rD  rJ  rO  r|   rX   rV   rŠ  rŠ  y  s�   „ á1àñ$ó ð$ò	GòFò.ò .ò 
/ò9ò 9ò$9ò&FòFò$Fò"#:òJ#:òJ":òH":òH<ò<ò$ò$$ò$2ò,Có
OrX   rŠ  c                   óN   — e Zd ZdZ ej
                  e d«      ed„ «       «       Zy)ÚTestParforsUnsupportedz$Tests for unsupported use of parforszOnly impacts 32 bit hardwarec                 ól  — | j                  t        j                  «      5 }t        d¬«      d„ «       }t	        j
                  ddd«      j                  dd«      }t	        j
                  ddd«      } |||«       d	d	d	«       d
}| j                  |t        j                  «      «       y	# 1 sw Y   Œ1xY w)zu
        This test is in place until issues with the 'parallel'
        target on 32 bit hardware are fixed.
        Tr“   c                 ó.   — t        j                  | |«      S rZ   rA  r�  s     rV   ÚddotzHTestParforsUnsupported.test_unsupported_combination_raises.<locals>.ddot  s   € ä—v‘v˜a “|Ð#rX   r   rÜ   r'  rí   rú   NzCThe 'parallel' target is not currently supported on 32 bit hardware)
rð  r   ÚUnsupportedParforsErrorr   r°   rï   r   rä   r  rò  )rS   rC  rT  ri  rÕ  ré   s         rV   Ú#test_unsupported_combination_raisesz:TestParforsUnsupported.test_unsupported_combination_raises  s›   € ð ×Ñœv×=Ñ=Ô>À&Ü˜4Ô ñ$ó !ð$ô —‘˜A˜q "Ó%×-Ñ-¨a°Ó4ˆAÜ—‘˜A˜q "Ó%ˆAÙ��AŒJ÷ ?ðˆà�‰�cœ3˜v×/Ñ/Ó0Õ1÷ ?Ð>ús    AB*Â*B3N)	rw   rN   rx   rC  ÚunittestÚskipIfr:   r;   rV  r|   rX   rV   rQ  rQ    s0   „ Ù.Ø€X‡_�_˜�ZÐ!?Ó@Øñ2ó ó Añ2rX   rQ  c                   ó
  — 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d„ Zd„ Zd„ Zed„ «       Zd„ Zd„ Zed„ «       Ze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$d!„ Z%d"„ Z&d#„ Z'd$„ Z(d%„ Z)d&„ Z*d'„ Z+d(„ Z,d)„ Z-d*„ Z.d+„ Z/d,„ Z0d-„ Z1d.„ Z2d/„ Z3d0„ Z4d1„ Z5d2„ Z6d3„ Z7d4„ Z8d5„ Z9d6„ Z:d7„ Z;d8„ Z<d9„ Z=d:„ Z>d;„ Z?d<„ Z@d=„ ZAd>„ ZBd?„ ZCd@„ ZDdA„ ZEdB„ ZFdC„ ZGdD„ ZHdE„ ZIdF„ ZJdG„ ZKdH„ ZLdI„ ZMdJ„ ZNdK„ ZOdL„ ZPeQeRdM„ «       «       ZSyN)OÚTestParforsz6 Tests cpython, reduction and various parfors featuresc                 ó6   ‡ — d„ }‰ j                  |ˆ fd„«       y )Nc                 ó   — | |z  |z   S rZ   r|   )r‡   r£   rQ  s      rV   rí  z,TestParfors.test_arraymap.<locals>.test_impl.  s   € Ø�q‘5˜1‘9ÐrX   c                  ó&   •— ‰ j                  d«      S ©Nrý   rÌ  r\   s   €rV   rÍ  z+TestParfors.test_arraymap.<locals>.<lambda>1  s   ø€ ¨t×/IÑ/IÈ!Ô/LrX   )rÚ   rû  s   ` rV   Útest_arraymapzTestParfors.test_arraymap-  s   ø€ ò	ð 	×Ñ˜IÓ'LÕMrX   c                 ód   — d„ }| j                  |«       | j                  t        |d«      d«       y )Nc                  ó†   — t        j                  d«      } t        j                  d«      }t        j                  | |z   «      S )NrÜ   ©rú   é   )r°   re  rì  rg  ©r^  r]  s     rV   rí  z0TestParfors.test_0d_broadcast.<locals>.test_impl4  s/   € Ü—‘˜“ˆAÜ—‘˜Ó!ˆAÜ—6‘6˜!˜a™%“=Ð rX   r|   rÜ   ©rÔ   rÀ   rÞ   rû  s     rV   Útest_0d_broadcastzTestParfors.test_0d_broadcast3  ó,   € ò	!ð 	�
‰
�9ÔØ×Ñœ i°Ó4°aÕ8rX   c                 ód   — d„ }| j                  |«       | j                  t        |d«      d«       y )Nc                  ó†   — t        j                  d«      } t        j                  d«      }t        j                  | |z   «      S ©Nrb  )r°   rì  r$  rg  rd  s     rV   rí  z-TestParfors.test_2d_parfor.<locals>.test_impl<  s0   € Ü—‘˜Ó!ˆAÜ—‘˜Ó"ˆAÜ—6‘6˜!˜a™%“=Ð rX   r|   rÜ   re  rû  s     rV   Útest_2d_parforzTestParfors.test_2d_parfor;  rg  rX   c                 óh   ‡ ‡— d„ Šˆˆ fd„}d„ }‰ j                  ||«       ‰ j                  ||«       y )Nc               3   ól   K  — t        j                  d«      } t        j                  d«      }| |f–— y ­wrj  ©r°   rì  r$  rd  s     rV   Úcase1z)TestParfors.test_nd_parfor.<locals>.case1D  s+   è ø€ Ü—‘˜Ó!ˆAÜ—‘˜Ó"ˆAØ�a�&‹Lùs   ‚24c                  óD   •— t         ‰ «       ‰j                  d«      «      S rc  )r
   r  )ro  rS   s   €€rV   rÍ  z,TestParfors.test_nd_parfor.<locals>.<lambda>I  s   ø€ œ5¡£¨$×*DÑ*DÀQÓ*GÔHrX   c                 ó2   — t        j                  | |z   «      S rZ   rM  rd  s     rV   rí  z-TestParfors.test_nd_parfor.<locals>.test_implK  s   € Ü—6‘6˜!˜a™%“=Ð rX   )rÚ   rà   )rS   rÑ  rí  ro  s   `  @rV   Útest_nd_parforzTestParfors.test_nd_parforC  s7   ù€ ò	ô
 Iˆò	!ð 	×Ñ˜I xÔ0Ø×#Ñ# I¨xÕ8rX   c                 óD   ‡— ddl mŠ ˆfd„}d}| j                  ||«       y )Nr   )rì  c                 ó   •—  ‰| «      }|d   S r²  r|   )rñ   ri  rì  s     €rV   rí  z9TestParfors.test_np_func_direct_import.<locals>.test_implS  s   ø€ Ù�Q“ˆAØ�Q‘4ˆKrX   éo   )rÄ  rì  rÔ   )rS   rí  rñ   rì  s      @rV   Útest_np_func_direct_importz&TestParfors.test_np_func_direct_importQ  s    ø€ Ýô	ð ˆØ�
‰
�9˜aÕ rX   c                 ó  — d„ }| j                  |dd«       | j                  t        «      5 } t        d¬«      |«      } |dd«       d d d «       d}| j	                  |t        j                  «      «       y # 1 sw Y   Œ1xY w)Nc                 ó†   — t        j                  | «      }t        j                  |«      }t        j                  ||z   «      S rZ   r’  )r-  rñ   ri  r“  s       rV   rí  z2TestParfors.test_size_assertion.<locals>.test_implZ  s.   € Ü—‘˜“
ˆAÜ—‘˜“
ˆAÜ—6‘6˜!˜a™%“=Ð rX   rú   Tr“   é	   zSizes of A, B do not match)rÔ   rð  rñ  r   rä   r  rò  )rS   rí  rô  r¥   ré   s        rV   Útest_size_assertionzTestParfors.test_size_assertionY  sq   € ò	!ð
 	�
‰
�9˜b "Ô%Ø×Ñœ~Ô.°&Ø'”D $Ô'¨	Ó2ˆEÙ�"�aŒL÷ /ð +ˆØ�‰�cœ3˜v×/Ñ/Ó0Õ1÷	 /Ð.ús   ¬A8Á8Bc                 óž   — d„ }d}t         j                  j                  |«      }t        j                  |«      }| j	                  ||||«       y )Nc                 ó    — t        j                  d«      D ]5  }t        ||z  dz  |dz   |z  dz  «      D ]  }d||<   | |   dkD  sŒd||<   Œ Œ7 |S )Nrí   rÜ   r   ©rŸ   r   ró   )r£   Úis_positivern  r÷   rq  s        rV   rí  z'TestParfors.test_cfg.<locals>.test_implh  s^   € Ü—\‘\ !–_�Ü  !¡ Q¡¨¨1©¨a©°©
Ö4�AØ%&�K ‘NØ˜‘t˜a“xØ)*˜ Ašñ 5ð %ð ÐrX   rÈ  )r°   rr  Úrandr$  rÔ   )rS   rí  rn  r£   r~  s        rV   Útest_cfgzTestParfors.test_cfgf  s?   € ò	ð ˆÜ�I‰I�N‰N˜1ÓˆÜ—h‘h˜q“kˆØ�
‰
�9˜a ¨aÕ0rX   c           	      ó¬  — d„ }d}t         j                  j                  |«      }| j                  ||«       t         j                  j	                  d|¬«      j                  t         j                  «      }| j                  ||«       d„ }| j                  «       5  | j                  |«       d d d «       d}t         j                  j	                  d|¬«      j                  t         j                  «      }d„ }| j                  ||«       d„ }| j                  ||j                  d	«      «       d
„ }| j                  ||j                  d	«      «       | j                  t        |t        j                  d d …d d …f   f«      d«       d„ }| j                  ||«       | j                  t        |t        j                  d d  f«      d«       y # 1 sw Y   �ŒxY w)Nc                 ó"   — d}t        d„ | |«      S )Nrú   c                 ó   — t        | |«      S rZ   rù  r†   s     rV   rÍ  z<TestParfors.test_reduce.<locals>.test_impl.<locals>.<lambda>y  s
   € ¤c¨!¨Q¤irX   r   )ri  Úinit_vals     rV   rí  z*TestParfors.test_reduce.<locals>.test_implw  s   € ØˆHÜÑ/°°HÓ=Ð=rX   rü  rú   rÉ  c                  óL   — d„ } t        | t        j                  g d¢«      d«      S )Nc                 ó   — | dz  S rc  r|   r!  s    rV   rÍ  z<TestParfors.test_reduce.<locals>.test_impl.<locals>.<lambda>ƒ  s   € ˜!˜qš&rX   ©rÜ   rí   rý   rÿ   r€   rí   )r   r°   re  )Úgs    rV   rí  z*TestParfors.test_reduce.<locals>.test_impl‚  s   € Ù ˆAÜ˜!œRŸX™X¢oÓ6¸Ó:Ð:rX   é    c                 ó8   — t        j                  | | dk\     «      S r^  rM  rÇ  s    rV   rí  z*TestParfors.test_reduce.<locals>.test_impl‹  s   € Ü—6‘6˜!˜A˜q™D™'“?Ð"rX   c                 óN   — | d d …df   }t        j                  | |dk\  df   «      S )Nr   rý   rÜ   rM  ©ri  r“  s     rV   rí  z*TestParfors.test_reduce.<locals>.test_impl‘  s*   € Ø’!�A�#‘ˆAÜ—6‘6˜!˜A˜q™D ˜F™)Ó$Ð$rX   )é   rú   c                 óR   — | d d …df   }t        j                  | |dk\  dd…f   «      S )Nr   rý   rÜ   rí   rM  rŒ  s     rV   rí  z*TestParfors.test_reduce.<locals>.test_impl˜  s.   € Ø’!�A�#‘ˆAÜ—6‘6˜!˜A˜q™D  1 ˜H™+Ó&Ð&rX   rí   c                 ó6   — t        j                  | «      }| |z
  S rZ   )r°   Úamin)ri  Úmin_vals     rV   rí  z*TestParfors.test_reduce.<locals>.test_implŸ  s   € Ü—g‘g˜a“jˆGØ�w‘;ÐrX   )r°   rr  rs  rÔ   rÐ  rÿ  r   ÚassertTypingErrorr   rÀ   rÞ   rŸ   r{  ©rS   rí  rñ   ri  s       rV   Útest_reducezTestParfors.test_reducev  sn  € ò	>ð ˆÜ�I‰I�N‰N˜1ÓˆØ�
‰
�9˜aÔ Ü�I‰I×Ñ˜b qÐÓ)×0Ñ0´·±Ó:ˆØ�
‰
�9˜aÔ ò	;ð ×#Ñ#Õ%Ø�J‰J�yÔ!÷ &ð ˆÜ�I‰I×Ñ˜b qÐÓ)×0Ñ0´·±Ó:ˆò	#à�
‰
�9˜aÔ ò	%ð 	�
‰
�9˜aŸi™i¨Ó0Ô1ò	'ð 	�
‰
�9˜aŸi™i¨Ó0Ô1à×Ñœ i´%·-±-ÂÂ!ÀÑ2DÐ1FÓGÈÔKò	ð 	�
‰
�9˜aÔ à×Ñœ i´%·-±-ÁÐ2BÐ1DÓEÀqÕI÷? &Ñ%ús   ÂG	Ç	Gc                 óÐ   — d„ }d}| j                  t        «      5 }| j                  |d«      }d d d «       | j                  |t	        j
                  «      «       y # 1 sw Y   Œ/xY w)Nc                  óT   — d} t        d«      D ]  }t        j                  | «      } Œ | S r¦  )r   ÚcmathrH  ©Úaccr÷   s     rV   rí  z9TestParfors.test_use_of_reduction_var1.<locals>.test_impl§  s'   € ØˆCÜ˜A–Y�Ü—j‘j “o‘ð àˆJrX   úCUse of reduction variable acc in an unsupported reduction function.r|   ©rð  r¹   r—   rä   r  rò  ©rS   rí  ré   r  r  s        rV   Útest_use_of_reduction_var1z&TestParfors.test_use_of_reduction_var1¦  sV   € ò	ð UˆØ×ÑœzÔ*¨aØ×*Ñ*¨9°bÓ9ˆF÷ +à�‰�cœ3˜qŸ{™{Ó+Õ,÷ +Ð*úó   ›AÁA%c                 óä   — d„ }d}| j                  t        j                  «      5 }| j                  |d«      }d d d «       | j	                  |t        j                  «      «       y # 1 sw Y   Œ/xY w)Nc                  ó4   — d} t        d«      D ]  }| dz  } Œ	 | S ©NrÈ  rí   ©r   r˜  s     rV   rí  z9TestParfors.test_unsupported_floordiv1.<locals>.test_impl´  s#   € ØˆCÜ˜A–Y�Ø˜‘	‘ð àˆJrX   zÑParallel floordiv reductions are not supported. If all divisors are integers then a floordiv reduction can in some cases be parallelized as a multiply reduction followed by a floordiv of the resulting product.r|   )rð  r   ÚNumbaValueErrorr—   rä   r  rò  rœ  s        rV   Útest_unsupported_floordiv1z&TestParfors.test_unsupported_floordiv1³  s]   € ò	ð(ˆð
 ×Ñœv×5Ñ5Ô6¸!Ø×*Ñ*¨9°bÓ9ˆF÷ 7à�‰�cœ3˜qŸ{™{Ó+Õ,÷ 7Ð6úó   ¥A&Á&A/c                 óÐ   — d„ }d}| j                  t        «      5 }| j                  |d«      }d d d «       | j                  |t	        j
                  «      «       y # 1 sw Y   Œ/xY w)Nc                  ó:   — d} t        d«      D ]
  }| |dz   z  } Œ | S r¡  r¢  r˜  s     rV   rí  z4TestParfors.test_unsupported_xor1.<locals>.test_implÅ  s'   € ØˆCÜ˜A–Y�Ø�q˜1‘u‘‘ð àˆJrX   rš  r|   r›  rœ  s        rV   Útest_unsupported_xor1z!TestParfors.test_unsupported_xor1Ä  sV   € ò	ð UˆØ×ÑœzÔ*¨aØ×*Ñ*¨9°bÓ9ˆF÷ +à�‰�cœ3˜qŸ{™{Ó+Õ,÷ +Ð*úrž  c                 óˆ   — d„ }d}| j                  ||«       | j                  t        |t        j                  f«      d«       y )Nc                 óL   — t        j                  | «      }|j                  «       S rZ   r’  r›  s     rV   rí  z8TestParfors.test_parfor_array_access1.<locals>.test_implÓ  s   € Ü—‘˜“
ˆAØ—5‘5“7ˆNrX   rü  r   )rÔ   rÀ   r°  r   rw  ©rS   rí  rñ   s      rV   Útest_parfor_array_access1z%TestParfors.test_parfor_array_access1Ð  s9   € ò	ð ˆØ�
‰
�9˜aÔ Ø×Ñœ Y´·±°Ó>ÀÕBrX   c                 óˆ   — d„ }d}| j                  ||«       | j                  t        |t        j                  f«      d«       y )Nc                 óö   — t        j                  | «      }d}d} t        j                  t	        |«      «      D ]
  }|||   z  }Œ t        j                  t	        |«      «      D ]  }|| k(  sŒ	| ||   z  } Œ || z   S r²  )r°   rì  rŸ   r   rÂ   ©rñ   ri  r-  r÷   s       rV   rí  z8TestParfors.test_parfor_array_access2.<locals>.test_implÞ  su   € Ü—‘˜“
ˆAØˆAØˆAÜ—\‘\¤# a£&Ö)�Ø�Q�q‘T‘	‘ð *ô —\‘\¤# a£&Ö)�Ø˜“6Ø˜˜1™‘I‘Að *ð �q‘5ˆLrX   rü  r   ©rÔ   rÀ   rÉ  r   rw  r«  s      rV   Útest_parfor_array_access2z%TestParfors.test_parfor_array_access2Û  s;   € ò	ð ˆØ�
‰
�9˜aÔ Ø×ÑÔ4°YÄÇÁÀÓNÐPQÕRrX   c                 óä   — d„ }d}| j                  t        j                  «      5 }| j                  ||«       d d d «       | j	                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nc                 ó¶   — t        j                  | t         j                  «      }d}t        j                  t        |«      «      D ]  }|||   z  }|dk(  sŒ|}Œ y ©Nr   rí   )r°   rì  rv  rŸ   r   rÂ   r¯  s       rV   rí  z8TestParfors.test_parfor_array_access3.<locals>.test_implð  sK   € Ü—‘˜œ2Ÿ8™8Ó$ˆAØˆAÜ—\‘\¤# a£&Ö)�Ø�Q�q‘T‘	�Ø�a“4Ø‘Añ *rX   rü  z Overwrite of parallel loop index)rð  r   rB  rÔ   rä   r  rò  )rS   rí  rñ   rô  s       rV   Útest_parfor_array_access3z%TestParfors.test_parfor_array_access3ï  sZ   € ò	ð ˆØ×Ñœv×=Ñ=Ô>À&Ø�J‰J�y !Ô$÷ ?à�‰Ð8¼#¸f×>NÑ>NÓ:OÕP÷ ?Ð>úr¥  c           	      óD  — d„ }d}d}t         j                  j                  ||f«      }t         j                  j                  |«      }| j                  |||«       t	        |t        j                  t
        j                  dd«      t        j                  t
        j                  dd«      f«      \  }}| j                  t        |j                  «      dk(  xr d|j                  v «       |j                  d   }d}	d }
|j                  D ]5  }t        |t        j                  j                  j                   «      sŒ2d	}	|}
Œ7 | j                  |	«       d}|
j"                  j%                  «       D ]   }|j                  D ]�  }t        |t&        j(                  «      sŒt        |j*                  t&        j,                  «      sŒC|j*                  j.                  d
k(  sŒ]d	}| j                  |
j0                  |j*                  j2                  v «       Œ‘ Œ¢ | j                  |«       y )Nc                 ó.   — t        j                  | |«      S rZ   rA  )ri  rˆ   s     rV   rí  z8TestParfors.test_parfor_array_access4.<locals>.test_impl  rŽ  rX   rü  rÿ   rí   rƒ  rÜ   r   FTrÒ  )r°   rr  rs  rÔ   r¤  r   r…  r{  r7  rÂ   rš  r¨  r¯   rŸ   r�  r‘  r©  r·  r¿  r   r¸  rÅ  rÆ  r<  rË  r?  )rS   rí  rñ   Údri  rˆ   rž  r   r¬  Úparfor_foundr‘  rÐ  Úbuild_tuple_foundÚbls                 rV   Útest_parfor_array_access4z%TestParfors.test_parfor_array_access4ý  s�  € ò	 ð ˆØˆÜ�I‰I�N‰N˜A˜q˜6Ó"ˆÜ�I‰I�N‰N˜1ÓˆØ�
‰
�9˜a Ô#ä,ØœŸ™¤E§M¡M°1°cÓ:ÜŸ™¤E§M¡M°1°cÓ:ð<ó=‰ˆ�ð 	�‰œ˜GŸN™NÓ+¨qÑ0ÒH°Q¸'¿.¹.Ð5HÔIØ—‘˜qÑ!ˆØˆØˆØ—J”JˆDÜ˜$¤§¡× 4Ñ 4× ;Ñ ;Õ<Ø#�Ø‘ð ð
 	�‰˜Ô%Ø!Ðà×"Ñ"×)Ñ)Ö+ˆBØŸœ�Ü˜t¤R§Y¡YÕ/Ü& t§z¡z´2·7±7Õ;Ø ŸJ™JŸM™M¨]Ó:Ø(,Ð%Ø—O‘O F×$4Ñ$4¸¿
¹
×8HÑ8HÐ$HÕIñ  ð ,ð 	�‰Ð)Õ*rX   c                 óX   — d„ }t        j                  d«      }| j                  ||«       y )Nc                 óŽ   — t        j                  t        | «      «      D ]   }| j                  j	                  d«      | |<   Œ" | d   S ©Nr   rÿ   )rŸ   r   rÂ   r  rÁ   )r‡   r÷   s     rV   rí  z5TestParfors.test_parfor_dtype_type.<locals>.test_impl&  s7   € Ü—\‘\¤# a£&Ö)�Ø—w‘w—|‘| A“��!’ð *à�Q‘4ˆKrX   rú   rl  )rS   rí  r‡   s      rV   Útest_parfor_dtype_typez"TestParfors.test_parfor_dtype_type$  s$   € ò	ô
 �G‰G�B‹KˆØ�
‰
�9˜aÕ rX   c                 óˆ   — d„ }d}| j                  ||«       | j                  t        |t        j                  f«      d«       y )Nc                 ó    — t        j                  | df«      }d}t        j                  | «      D ]  }|||d d …f   j	                  «       z  }Œ |S )Nrý   r   )r°   rì  rŸ   r   rg  )rñ   r^  rQ  r÷   s       rV   rí  z8TestParfors.test_parfor_array_access5.<locals>.test_impl0  sG   € Ü—‘˜˜A˜“ˆAØˆAÜ—\‘\ !–_�Ø�Q�qš�s‘V—Z‘Z“\Ñ!‘ð %àˆHrX   rü  r   r°  r«  s      rV   Útest_parfor_array_access5z%TestParfors.test_parfor_array_access5.  s;   € ò	ð ˆØ�
‰
�9˜aÔ Ø×ÑÔ4°YÄÇÁÀÓNÐPQÕRrX   c                 óX   — d„ }t        j                  d«      }| j                  ||«       y )Nc                 óB   — t        d«      D ]  }d| d   z  | d<   Œ | d   S )Nrú   rí   r   r¢  )Úoutr÷   s     rV   rí  z8TestParfors.test_parfor_hoist_setitem.<locals>.test_impl>  s*   € Ü˜B–Z�Ø˜S ™V™��A’ð  à�q‘6ˆMrX   rÜ   rl  )rS   rí  rÆ  s      rV   Útest_parfor_hoist_setitemz%TestParfors.test_parfor_hoist_setitem;  s$   € ò	ô
 �g‰g�a‹jˆØ�
‰
�9˜cÕ"rX   c                 ó   — d„ }d}d}| j                  |||«       | j                  t        |t        j                  t        j                  f«      d«       | j                  t        |t        j                  t        j                  f«      d«       y )Nc                 óÜ   — t        j                  |«      }t        j                  | |f«      }t        j                  | «      }t        d«      D ]  }| t        j                  ||«      z  }Œ S r^  )r°   rì  ró   r\  )rn  ro  r_  r^  r]  r÷   r“  s          rV   rí  z8TestParfors.test_parfor_generate_fuse.<locals>.test_implI  sX   € Ü—‘˜“
ˆAÜ—‘˜˜A˜“ˆAÜ—‘˜“
ˆAÜ˜1–X�Ø�Rœ"Ÿ&™&  A›,Ñ&‘ð ð ˆHrX   rü  rý   rÿ   )rÔ   rÀ   rÁ  r   rw  rÞ   )rS   rí  rñ   r¸  s       rV   Útest_parfor_generate_fusez%TestParfors.test_parfor_generate_fuseF  sm   € ò	ð ˆØˆØ�
‰
�9˜a Ô#Ø×ÑÔ)¨)´e·j±jÄ%Ç*Á*Ð5MÓNÐPQÔRØ×Ñœ i´%·*±*¼e¿j¹jÐ1IÓJÈAÕNrX   c                 óÊ   — d„ }t        j                  dt         j                  «      }t        j                  dt         j                  «      }d|d<   | j                  |||«       y )Nc                 ó.   — t        j                  | |«      S rZ   )r°   Úbitwise_andrŒ  s     rV   rí  z.TestParfors.test_ufunc_expr.<locals>.test_implZ  s   € Ü—>‘> ! QÓ'Ð'rX   rý   r   rÜ   )r°   rì  Úuint8rÔ   )rS   rí  ri  r“  s       rV   Útest_ufunc_exprzTestParfors.test_ufunc_exprX  sJ   € ò	(ô �G‰G�A”r—x‘xÓ ˆÜ�G‰G�A”r—x‘xÓ ˆØˆˆ!‰Ø�
‰
�9˜a Õ#rX   c                 ó`   — d„ }| j                  t        |t        j                  f«      d«       y )Nc                 óN   — t        | f«      }t        | «      D ]
  }|dz   ||<   Œ |S )Nr  )Úunsafe_emptyró   ©rñ   ri  r÷   s      rV   rí  z;TestParfors.test_find_callname_intrinsic.<locals>.test_implc  s.   € Ü˜a˜TÓ"ˆAÜ˜1–X�Ø˜3‘w��!’ð àˆHrX   rÜ   )rÀ   rÁ  r   rw  rû  s     rV   Útest_find_callname_intrinsicz(TestParfors.test_find_callname_intrinsicb  s'   € ò	ð 	×ÑÔ)¨)´e·j±j°]ÓCÀQÕGrX   c                 ó.   — d„ }| j                  |d«       y )Nc                 ó^   — d}t        | «      D ]  }|dz  }Œ	 t        | «      D ]  }|dz  }Œ	 |S rì   r¢  ©rñ   r™  r÷   s      rV   rí  z7TestParfors.test_reduction_var_reuse.<locals>.test_implo  s>   € ØˆCÜ˜A–Y�Ø�q‘‘ð ô ˜A–Y�Ø�q‘‘ð ð ˆJrX   r�  rú  rû  s     rV   Útest_reduction_var_reusez$TestParfors.test_reduction_var_reusem  s   € ò	ð 	�
‰
�9˜bÕ!rX   c                 óš   — d„ }| j                  |t        j                  d«      t        j                  d«      j                  d«      «       y )Nc                 óZ   — d}t        | j                  d   «      D ]  }||   sŒ	|dz  }Œ |S ©NrÜ   r   ©r   rd  )ri  Úcondr¥  r÷   s       rV   rí  z8TestParfors.test_non_identity_initial.<locals>.test_impl|  s5   € ØˆAÜ˜AŸG™G A™JÖ'�Ø˜“7Ø˜‘F‘Að (ð ˆHrX   rú   Úbool©rÔ   r°   rì  rÿ  rû  s     rV   Útest_non_identity_initialz%TestParfors.test_non_identity_initialz  s4   € ò	ð 	�
‰
�9œbŸg™g b›k¬2¯7©7°2«;×+=Ñ+=¸fÓ+EÕFrX   c                 óš   — d„ }| j                  |t        j                  d«      t        j                  d«      j                  d«      «       y )Nc                 óx   — d}d}t        | j                  d   «      D ]  }||   r|dz  }|dz  }Œ|dz  }Œ ||z   S )NrÜ   rú   r   rí   rÜ  )ri  rÝ  r¥  r©  r÷   s        rV   rí  z9TestParfors.test_if_not_else_reduction.<locals>.test_impl†  sP   € ØˆAØˆAÜ˜AŸG™G A™JÖ'�Ø˜’7Ø˜‘F�AØ˜‘F‘Aà˜‘F‘Að (ð �q‘5ˆLrX   rú   rÞ  rß  rû  s     rV   Útest_if_not_else_reductionz&TestParfors.test_if_not_else_reduction„  s4   € ò		ð 	�
‰
�9œbŸg™g b›k¬2¯7©7°2«;×+=Ñ+=¸fÓ+EÕFrX   c                 ó.   — d„ }| j                  |d«       y )Nc                 ó,  — d}|d   |d   z  }t        j                  |t         j                  «      }t        j                  |«      j	                  |«      }t        j                  | «      D ]  }||z  }Œ	 t        j                  | «      D ]  }||z  }Œ	 |S ©N©é   r   r   rÜ   ©r°   r$  Úint_ræ  r   rŸ   r   ©rñ   ÚshprÊ  Úresult1Útmpr÷   s         rV   rí  z?TestParfors.test_two_d_array_reduction_reuse.<locals>.test_impl“  sƒ   € ØˆCØ�q‘6˜C ™F‘?ˆDÜ—h‘h˜s¤B§G¡GÓ,ˆGÜ—)‘)˜D“/×)Ñ)¨#Ó.ˆCä—\‘\ !–_�Ø˜3‘‘ð %ô —\‘\ !–_�Ø˜3‘‘ð %ð ˆNrX   rÈ  rú  rû  s     rV   Ú test_two_d_array_reduction_reusez,TestParfors.test_two_d_array_reduction_reuse’  s   € ò	ð 	�
‰
�9˜cÕ"rX   c                 ó.   — d„ }| j                  |d«       y )Nc                 óÒ   — t        j                  dt         j                  «      }t        j                  | «      D ]*  }|t        j
                  |gt         j                  «      z  }Œ, |S r  )r°   r$  rê  rŸ   r   re  )rñ   Úresultr÷   s      rV   rí  z9TestParfors.test_one_d_array_reduction.<locals>.test_impl¤  sJ   € Ü—X‘X˜a¤§¡Ó)ˆFä—\‘\ !–_�Øœ"Ÿ(™( A 3¬¯©Ó0Ñ0‘ð %ð ˆMrX   rÈ  rú  rû  s     rV   Útest_one_d_array_reductionz&TestParfors.test_one_d_array_reduction£  s   € ò	ð 	�
‰
�9˜cÕ"rX   c                 ó.   — d„ }| j                  |d«       y )Nc                 óî   — d}|d   |d   z  }t        j                  |t         j                  «      }t        j                  |«      j	                  |«      }t        j                  | «      D ]  }||z  }Œ	 |S ræ  ré  rë  s         rV   rí  z9TestParfors.test_two_d_array_reduction.<locals>.test_impl¯  sf   € ØˆCØ�q‘6˜C ™F‘?ˆDÜ—h‘h˜s¤B§G¡GÓ,ˆGÜ—)‘)˜D“/×)Ñ)¨#Ó.ˆCä—\‘\ !–_�Ø˜3‘‘ð %ð ˆNrX   rÈ  rú  rû  s     rV   Útest_two_d_array_reductionz&TestParfors.test_two_d_array_reduction®  s   € ò		ð 	�
‰
�9˜cÕ"rX   c                 ó.   — d„ }| j                  |d«       y )Nc                 óÜ   — d}t        j                  |t         j                  «      }t        j                  g d¢«      j	                  |«      }t        j                  | «      D ]  }||z  }Œ	 |S )Nrü   )rF  r  rä  rå  r5  r6  )r°   r$  r·  re  r   rŸ   r   ©rñ   rì  rí  rî  r÷   s        rV   rí  zJTestParfors.test_two_d_array_reduction_with_float_sizes.<locals>.test_impl¿  sW   € ØˆCÜ—h‘h˜s¤B§J¡JÓ/ˆGÜ—(‘(Ò9Ó:×BÑBÀ3ÓGˆCä—\‘\ !–_�Ø˜3‘‘ð %ð ˆNrX   rÈ  rú  rû  s     rV   Ú+test_two_d_array_reduction_with_float_sizesz7TestParfors.test_two_d_array_reduction_with_float_sizes¼  s   € ò	ð 	�
‰
�9˜cÕ"rX   c                 ó.   — d„ }| j                  |d«       y )Nc                 óÆ   — d}dt        j                  |t         j                  «      z  }dt        j                  |«      z  }t	        j
                  | «      D ]  }||z  }Œ	 |S )Nrç  rí   )r°   rì  rê  Ú	ones_likerŸ   r   rù  s        rV   rí  z>TestParfors.test_two_d_array_reduction_prod.<locals>.test_implÌ  sU   € ØˆCØœ"Ÿ'™' #¤r§w¡wÓ/Ñ/ˆGØ”b—l‘l 7Ó+Ñ+ˆCä—\‘\ !–_�Ø˜3‘‘ð %ð ˆNrX   rÈ  rú  rû  s     rV   Útest_two_d_array_reduction_prodz+TestParfors.test_two_d_array_reduction_prodË  s   € ò	ð 	�
‰
�9˜cÕ"rX   c                 ó.   — d„ }| j                  |d«       y )Nc                 óÔ   — d}t        j                  |t         j                  «      }t        j                  | «      D ])  }|t        j
                  |t         j                  «      z  }Œ+ |S )N)rý   rí   rH  )r°   r$  rê  rŸ   r   rì  )rñ   rì  rí  r÷   s       rV   rí  z;TestParfors.test_three_d_array_reduction.<locals>.test_implÙ  sM   € ØˆCÜ—h‘h˜s¤B§G¡GÓ,ˆGä—\‘\ !–_�Øœ2Ÿ7™7 3¬¯©Ó0Ñ0‘ð %ð ˆNrX   rÈ  rú  rû  s     rV   Útest_three_d_array_reductionz(TestParfors.test_three_d_array_reductionØ  s   € ò	ð 	�
‰
�9˜cÕ"rX   c                 ó\   — d„ }d}t        j                  |«      }| j                  ||«       y )Nc                 ó(   — | j                  «       dz   S r  )ÚargsortrÇ  s    rV   rí  z>TestParfors.test_preparfor_canonicalize_kws.<locals>.test_implæ  s   € Ø—9‘9“; ‘?Ð"rX   rü  ©r°   ræ  rÔ   r“  s       rV   Útest_preparfor_canonicalize_kwsz+TestParfors.test_preparfor_canonicalize_kwsä  s)   € ò	#ð ˆÜ�I‰I�a‹LˆØ�
‰
�9˜aÕ rX   c                 óö   — d„ }t        j                  dt        j                  d«      «      }| j                  |t	        j
                  |«      f«      }| j                  |j                  |«       ||«      «       y )Nc                 ó   — | j                   S rZ   r
  rÇ  s    rV   rí  z8TestParfors.test_preparfor_datetime64.<locals>.test_implï  s   € Ø—7‘7ˆNrX   rÜ   zdatetime64[ns])r°   rÃ  r  r—   rŸ   r   rÀ   r½   )rS   rí  ri  r¤   s       rV   Útest_preparfor_datetime64z%TestParfors.test_preparfor_datetime64í  s_   € ò	ô �H‰H�QœŸ™Ð!1Ó2Ó3ˆØ×&Ñ& y´5·<±<À³?Ð2DÓEˆØ×Ñ˜×+Ñ+¨AÓ.±	¸!³Õ=rX   c                 óh   — d„ }| j                  |t        j                  j                  d«      «       y )Nc                 ó˜   — | j                   d   }d}t        |«      D ]*  }h d£}|j                  |«       d}|D ]  }||z  }Œ	 ||z  }Œ, |S )Nr   >   rÜ   rí   rý   )rd  r   r»  )r^  rñ   r™  r÷   ÚRrî  r£   s          rV   rí  zITestParfors.test_no_hoisting_with_member_function_call.<locals>.test_impl÷  sZ   € Ø—‘˜‘
ˆAØˆCÜ˜A–Y�Ú�Ø—‘�a”Ø�Û�AØ˜1‘H‘Cð à�s‘
‘ð ð ˆJrX   r¬  )rÔ   r°   rr  rs  rû  s     rV   Ú*test_no_hoisting_with_member_function_callz6TestParfors.test_no_hoisting_with_member_function_callö  s$   € ò
	ð 	�
‰
�9œbŸi™iŸn™n¨SÓ1Õ2rX   c                 ó,   — d„ }| j                  |«       y)zñ issue3671: X != 0 becomes an arrayexpr with operator.ne.
            That is turned into a parfor by devectorizing.  Make sure
            the return type of the devectorized operator.ne
            on integer types works properly.
        c                  óV   — t        j                  dt         j                  ¬«      } | dk7  S )Nrú   r
  r   )r°   r$  rê  ©r^  s    rV   rí  z8TestParfors.test_array_compare_scalar.<locals>.test_impl  s   € Ü—‘˜¤2§7¡7Ô+ˆAØ˜‘6ˆMrX   Nrú  rû  s     rV   Útest_array_compare_scalarz%TestParfors.test_array_compare_scalar  s   € ò	ð 	�
‰
�9ÕrX   c                 ó^   — d„ }t        j                  d«      }| j                  ||dd¬«       y )Nc                 óV   — t        | «      }| d| }|r| d|dz   }|j                  «       S r´  )rÂ   rg  )r£   ÚhalfrÊ  Úparrs       rV   rí  z?TestParfors.test_array_analysis_optional_def.<locals>.test_impl  s4   € Ü�q“6ˆDØ�Q�t�9ˆDáØ˜˜4 ™7�|�à—8‘8“:ÐrX   r'  TFrI  rl  ©rS   rí  r£   s      rV   Ú test_array_analysis_optional_defz,TestParfors.test_array_analysis_optional_def  s*   € ò	ô �G‰G�B‹KˆØ�
‰
�9˜a ¸ˆ
Õ>rX   c                 ód  — d„ }t        j                  dt        ¬«      }t        j                  dt        ¬«      }| j                  |||«       | j	                  t        |t        j                  t        j                  dd«      t        j                  t        j                  dd«      f«      d«       y )Nc                 ó  — t        j                  t        | «      t         j                  ¬«      }t        |«      }t	        j
                  |«      D ]
  }| |   ||<   Œ t	        j
                  |«      D ]  }||   ||   z   ||<   Œ |S rµ  )r°   rÃ  rÂ   r{  rŸ   r   )r‡   rˆ   ÚdatarÊ  r÷   s        rV   rí  z7TestParfors.test_prange_side_effects.<locals>.test_impl  sp   € Ü—8‘8œC ›F¬"¯*©*Ô5ˆDÜ�t“9ˆDÜ—\‘\ $Ö'�Ø˜A™$��Q’ð (ä—\‘\ $Ö'�Ø˜q™' A a¡D™.��Q’ð (àˆKrX   rÈ  r
  rÜ   rƒ  )	r°   ræ  ÚfloatrÔ   rÀ   rÞ   r   r…  r{  )rS   rí  r£   rQ  s       rV   Útest_prange_side_effectsz$TestParfors.test_prange_side_effects  sƒ   € ò	ô �I‰I�g¤UÔ+ˆÜ�I‰I�g¤UÔ+ˆà�
‰
�9˜a Ô#Ø×Ñœ iÜ%*§[¡[´·±ÀÀ3Ó%GÜ%*§[¡[´·±ÀÀ3Ó%Gð%IóJàKLõ	NrX   c                 óX   — d„ }t        j                  d«      }| j                  ||«       y )Nc                 ó†   — d}d}t        j                  t        | «      «      D ]  }| |xx   |d   |d   z   |z   z  cc<   Œ | S )Nrã  rH  r   rÜ   )rŸ   r   rÂ   ©r‡   Úatuprˆ   r÷   s       rV   rí  z*TestParfors.test_tuple1.<locals>.test_impl0  sH   € ØˆDØˆAÜ—\‘\¤# a£&Ö)�Ø�!“˜˜Q™ $ q¡'Ñ)¨AÑ-Ñ-”ð *àˆHrX   rú   r  r  s      rV   Útest_tuple1zTestParfors.test_tuple1/  ó$   € ò	ô �I‰I�b‹MˆØ�
‰
�9˜aÕ rX   c                 óX   — d„ }t        j                  d«      }| j                  ||«       y )Nc                 óŽ   — | j                   }d}t        j                  t        | «      «      D ]  }| |xx   |d   |z   z  cc<   Œ | S )NrH  r   )rd  rŸ   r   rÂ   r  s       rV   rí  z*TestParfors.test_tuple2.<locals>.test_impl;  sB   € Ø—7‘7ˆDØˆAÜ—\‘\¤# a£&Ö)�Ø�!“˜˜Q™ !™Ñ#”ð *àˆHrX   rú   r  r  s      rV   Útest_tuple2zTestParfors.test_tuple2:  r"  rX   c                 óX   — d„ }t        j                  d«      }| j                  ||«       y )Nc                 ó¶   — t        j                  d«      df}d}t        j                  t	        | «      «      D ]  }| |xx   |d   d   |d   z   |z   z  cc<   Œ  | S )Nrú   rÿ   rH  r   r€   rÜ   )r°   ræ  rŸ   r   rÂ   r  s       rV   rí  z*TestParfors.test_tuple3.<locals>.test_implF  sY   € Ü—I‘I˜b“M 1Ð%ˆDØˆAÜ—\‘\¤# a£&Ö)�Ø�!“˜˜Q™ ™
 T¨!¡WÑ,¨qÑ0Ñ0”ð *àˆHrX   rú   r  r  s      rV   Útest_tuple3zTestParfors.test_tuple3E  r"  rX   c                 óX   — d„ }t        j                  d«      }| j                  ||«       y )Nc                 ó¸   — t        dd¬«      }d}t        j                  t        | «      «      D ])  }| |xx   |j                  |j
                  z   |z   z  cc<   Œ+ | S ©Nrý   rÿ   r‚   rH  )r�   rŸ   r   rÂ   rƒ   r„   )r‡   Úantuprˆ   r÷   s       rV   rí  z/TestParfors.test_namedtuple1.<locals>.test_implQ  sO   € Ü"¨°!Ô4ˆEØˆAÜ—\‘\¤# a£&Ö)�Ø�!“˜Ÿ™ e§k¡kÑ1°AÑ5Ñ5”ð *àˆHrX   rú   r  r  s      rV   Útest_namedtuple1zTestParfors.test_namedtuple1P  r"  rX   c                 óv   ‡— t        dd«      Šˆfd„}t        j                  d«      }| j                  ||«       y )NÚTestNamedTuple2r‚   c                 ó´   •—  ‰dd¬«      }d}t        j                  t        | «      «      D ])  }| |xx   |j                  |j                  z   |z   z  cc<   Œ+ | S r+  )rŸ   r   rÂ   rƒ   r„   )r‡   r,  rˆ   r÷   r/  s       €rV   rí  z/TestParfors.test_namedtuple2.<locals>.test_impl]  sP   ø€ Ù#¨!°1Ô5ˆEØˆAÜ—\‘\¤# a£&Ö)�Ø�!“˜Ÿ™ e§k¡kÑ1°AÑ5Ñ5”ð *àˆHrX   rú   )r   r°   ræ  rÔ   )rS   rí  r£   r/  s      @rV   Útest_namedtuple2zTestParfors.test_namedtuple2[  s3   ø€ Ü$Ð%6Ð8JÓKˆô	ô �I‰I�b‹MˆØ�
‰
�9˜aÕ rX   c                 óŒ   — t        ddg«      }d„ }d„ } |t        j                  d«      ¬«      }| j                  |||g¬«       y )NÚTestNamedTuple3rQ  c                 ó"   — d| j                   d d  y )Nr€   ©rQ  re  s    rV   rí  z/TestParfors.test_namedtuple3.<locals>.test_impll  s   € ØˆA�C‰C‘‰FrX   c                 ól   — t         j                  j                  | j                  |j                  «       y rZ   )r°   r¾   r¿   rQ  r†   s     rV   ri  z.TestParfors.test_namedtuple3.<locals>.comparero  s   € Ü�J‰J×*Ñ*¨1¯3©3°·±Õ4rX   rú   r5  rk  )r   r°   r$  rÔ   )rS   r3  rí  ri  r£   s        rV   Útest_namedtuple3zTestParfors.test_namedtuple3g  sD   € ô % ¸¸Ó>ˆò	ò	5ñ œbŸh™h r›lÔ+ˆØ�
‰
�9˜a°X°Jˆ
Õ?rX   c                 óX  — d„ }t        j                  d«      dz   }t        j                  d«      dz   }| j                  |||«       | j                  t	        |t        j                  t
        j                  dd«      t        j                  t
        j                  dd«      f«      d«       y )Nc                 ó   — || z  }|S rZ   r|   r†   s     rV   rí  z1TestParfors.test_inplace_binop.<locals>.test_implv  s   € Ø�‰FˆAØˆHrX   rú   rÈ  rÜ   rƒ  )r°   ræ  rÔ   rÀ   rÞ   r   r…  r{  ©rS   rí  r^  r]  s       rV   Útest_inplace_binopzTestParfors.test_inplace_binopu  s‡   € ò	ô �I‰I�b‹M˜BÑˆÜ�I‰I�b‹M˜CÑˆØ�
‰
�9˜a Ô#Ø×Ñœ iÜ%*§[¡[´·±ÀÀ3Ó%GÜ%*§[¡[´·±ÀÀ3Ó%Gð%IóJàKLõ	NrX   c                 ó\   — d„ }t        j                  ddg«      }| j                  ||«       y )Nc                 óÀ   — t        | «      }||f}t        j                  d|z   dz   t        j                  ¬«      }|dd d …f   }t	        | «      D ]  \  }}||||f<   Œ |S )Nrù  r
  r   ©rÂ   r°   r$  Úuint64r§  ©r‡   rñ   Úarray_shapeÚindicesÚk_listr÷   rˆ  s          rV   rí  z0TestParfors.test_tuple_concat.<locals>.test_implƒ  sc   € Ü�A“ˆAØ˜Q˜$ˆKÜ—h‘h  {Ñ 2°TÑ 9Ä"Ç)Á)ÔLˆGØ˜Q¢˜T‘]ˆFä! !ž‘��1Ø ��q˜!�t’ð %àˆMrX   rÜ   r8  r  s      rV   Útest_tuple_concatzTestParfors.test_tuple_concat�  s)   € ò	ô �H‰H�a˜�VÓˆØ�
‰
�9˜aÕ rX   c                 ó\   — d„ }t        j                  ddg«      }| j                  ||«       y )Nc                 óÆ   — t        | «      }||f}t        j                  d|z   dz   d d t        j                  ¬«      }|dd d …f   }t	        | «      D ]  \  }}||||f<   Œ |S )Nrù  rI   r
  r   r>  r@  s          rV   rí  zCTestParfors.test_tuple_concat_with_reverse_slice.<locals>.test_impl’  sm   € Ü�A“ˆAØ˜Q˜$ˆKÜ—h‘h  {Ñ 2°TÑ 9¸3¸BÐ?Ü%'§Y¡Yô0ˆGà˜Q¢˜T‘]ˆFä! !ž‘��1Ø ��q˜!�t’ð %àˆMrX   rÜ   r8  r  s      rV   Ú$test_tuple_concat_with_reverse_slicez0TestParfors.test_tuple_concat_with_reverse_slice�  s)   € ò		ô �H‰H�a˜�VÓˆØ�
‰
�9˜aÕ rX   c                 óX   — d„ }t        j                  d«      }| j                  ||«       y )Nc                 ó8   — | f| | fz   }|d   j                  «       S r²  ©rg  )r‡   ÚSs     rV   rí  z6TestParfors.test_array_tuple_concat.<locals>.test_impl¢  s!   € Ø�˜˜1�v‘ˆAØ�Q‘4—8‘8“:ÐrX   ©rý   rý   rl  r  s      rV   Útest_array_tuple_concatz#TestParfors.test_array_tuple_concat   s$   € ò	ô �G‰G�E‹NˆØ�
‰
�9˜aÕ rX   c                 óX   — d„ }t        j                  d«      }| j                  ||«       y )Nc                 ó   — | dz  S )Nr5  r|   r!  s    rV   rí  z3TestParfors.test_high_dimension1.<locals>.test_impl«  s   € Ø�s‘7ˆNrX   )rí   rí   rí   rí   rí   é   rl  r  s      rV   Útest_high_dimension1z TestParfors.test_high_dimension1©  s$   € ò	ä�G‰GÐ'Ó(ˆØ�
‰
�9˜aÕ rX   c                 óZ   — d„ }d}| j                  |t        j                  |«      |«       y )Nc                 óD   — t        j                  |«      D ]  }d| |<   Œ	 | S r  ©rŸ   Úpndindex©r£   Úszr÷   s      rV   rí  z-TestParfors.test_tuple_arg.<locals>.test_impl±  ó#   € Ü—^‘^ BÖ'�Ø��!’ð (àˆHrX   ©rú   r€   )rÔ   r°   rÃ  ©rS   rí  rW  s      rV   Útest_tuple_argzTestParfors.test_tuple_arg°  s&   € ò	ð ˆØ�
‰
�9œbŸh™h r›l¨BÕ/rX   c                 óZ   — d„ }d}| j                  |t        j                  |«      d«       y )Nc                 óD   — t        j                  |«      D ]  }d| |<   Œ	 | S r  rT  rV  s      rV   rí  z=TestParfors.test_tuple_arg_not_whole_array.<locals>.test_impl¹  rX  rX   rY  ©rú   rý   ©rÔ   r°   r$  rZ  s      rV   Útest_tuple_arg_not_whole_arrayz*TestParfors.test_tuple_arg_not_whole_array¸  s&   € ò	ð ˆØ�
‰
�9œbŸh™h r›l¨GÕ4rX   c                 óX   — d„ }d}| j                  |t        j                  |«      «       y )Nc                 óH   — d}t        j                  |«      D ]  }d| |<   Œ	 | S )NrY  rÜ   rT  rV  s      rV   rí  z6TestParfors.test_tuple_for_pndindex.<locals>.test_implÁ  s(   € ØˆBÜ—^‘^ BÖ'�Ø��!’ð (àˆHrX   rY  r_  rZ  s      rV   Útest_tuple_for_pndindexz#TestParfors.test_tuple_for_pndindexÀ  s$   € ò	ð
 ˆØ�
‰
�9œbŸh™h r›lÕ+rX   c                 óZ   — d„ }d}| j                  |t        j                  |«      d«       y )Nc                 óL   — |df}t        j                  |«      D ]  }d| |<   Œ	 | S rz  rT  )r£   ÚfirstrW  r÷   s       rV   rí  z5TestParfors.test_tuple_arg_literal.<locals>.test_implÊ  s,   € Ø˜�ˆBÜ—^‘^ BÖ'�Ø��!’ð (àˆHrX   rY  rú   r_  rZ  s      rV   Útest_tuple_arg_literalz"TestParfors.test_tuple_arg_literalÉ  s&   € ò	ð
 ˆØ�
‰
�9œbŸh™h r›l¨BÕ/rX   c                 óŒ   ‡ ‡‡‡‡— d„ Šd„ Šd„ Š ‰ ‰«       ‰«      Šˆˆˆˆ ˆfd„}t         t        d¬«      fD ]
  } ||«       Œ y )Nc                 óD   — t        j                  |«      D ]  }d| |<   Œ	 | S r  rT  rV  s      rV   rí  z?TestParfors.test_tuple_of_literal_nonliteral.<locals>.test_implÖ  rX  rX   c                 ó   —  || d«      S )Nr^  r|   )r£   r  s     rV   r6  z:TestParfors.test_tuple_of_literal_nonliteral.<locals>.callÛ  s   € Ù�a˜“>Ð!rX   c                  ó,   — t        j                  d«      S )Nr  ©r°   r$  r|   rX   rV   rÍ  z>TestParfors.test_tuple_of_literal_nonliteral.<locals>.<lambda>Þ  s   € œBŸH™H XÔ.rX   c                 ól   •—  | ‰«      }t        ‰«      } | ‰«       |«      }‰j                  ‰|«       y rZ   )r   ÚassertPreciseEqual)	ÚdecÚf1Úf2Úgotr6  ÚexpectedÚ	get_inputrS   rí  s	       €€€€€rV   rÔ   z;TestParfors.test_tuple_of_literal_nonliteral.<locals>.checká  s3   ø€ Ù�Y“ˆBÜ�d“ˆBÙ‘Y“[ "Ó%ˆCØ×#Ñ# H¨cÕ2rX   Tr“   ©r   )rS   rÔ   r¸  r6  rs  rt  rí  s   `  @@@@rV   Ú test_tuple_of_literal_nonliteralz,TestParfors.test_tuple_of_literal_nonliteralÒ  sI   ü€ ò	ò
	"ñ /ˆ	Ù™	› YÓ/ˆ÷	3ð 	3ô œ dÔ+Ó,ˆAÙ�!�Hñ -rX   c                 óZ   — d„ }d}| j                  |t        j                  |«      |«       y )Nc                 óD   — t        j                  |«      D ]  }d| |<   Œ	 | S r  rT  rV  s      rV   rí  z0TestParfors.test_tuple_arg_1d.<locals>.test_implë  rX  rX   ©rú   r_  rZ  s      rV   Útest_tuple_arg_1dzTestParfors.test_tuple_arg_1dê  s&   € ò	ð ˆØ�
‰
�9œbŸh™h r›l¨BÕ/rX   c                 óX   — d„ }d}| j                  |t        j                  |«      «       y )Nc                 óH   — d}t        j                  |«      D ]  }d| |<   Œ	 | S ©Nry  rÜ   rT  rV  s      rV   rí  z8TestParfors.test_tuple_arg_1d_literal.<locals>.test_impló  s(   € ØˆBÜ—^‘^ BÖ'�Ø��!’ð (àˆHrX   ry  r_  rZ  s      rV   Útest_tuple_arg_1d_literalz%TestParfors.test_tuple_arg_1d_literalò  s$   € ò	ð
 ˆØ�
‰
�9œbŸh™h r›lÕ+rX   c                 óV   — d„ }| j                  |t        j                  d«      d«       y )Nc                 óD   — t        j                  |«      D ]  }d| |<   Œ	 | S r  rT  rV  s      rV   rí  z4TestParfors.test_int_arg_pndindex.<locals>.test_implü  rX  rX   r  rý   r_  rû  s     rV   Útest_int_arg_pndindexz!TestParfors.test_int_arg_pndindexû  s"   € ò	ð 	�
‰
�9œbŸh™h xÓ0°!Õ4rX   c                 ó  ‡— t         d„ «       Šˆfd„}d}t        j                  ||f«      }t        j                  d d …d d d…f   t
        j                  f}| j                  t        ||«      d«       | j                  |||«       y )Nc                 ój   — t        ||z   dz   dz  dz   |dz
  d«      D ]  }| |dz   |f   dz   | ||f<   Œ y ©NrÜ   rí   ©ró   )Úur÷   ÚevenrÊ  rq  s        rV   Úissue7854_procz=TestParfors.test_prange_unknown_call1.<locals>.issue7854_proc  sI   € ä˜D 1™H q™L¨AÑ-°Ñ1°4¸!±8¸QÖ?�Ø˜A ™E 1˜H™+¨™/��!�Q�$’ñ @rX   c                 ó¬   •— t        j                  d|dz
  «      D ]  } ‰| |d|«       Œ t        j                  d|dz
  «      D ]  } ‰| |d|«       Œ | S rÛ  ©rŸ   r   )r†  rÊ  r÷   rˆ  s      €rV   rí  z8TestParfors.test_prange_unknown_call1.<locals>.test_impl
  sV   ø€ Ü—\‘\ ! T¨A¡XÖ.�Ù˜q ! Q¨Õ-ð /ä—\‘\ ! T¨A¡XÖ.�Ù˜q ! Q¨Õ-ð /àˆHrX   rÿ   rÜ   rí   )
rA   r°   r$  rŸ   r{  r   rv  rÀ   rÞ   rÔ   )rS   rí  rÊ  r†  Úcptypesrˆ  s        @rV   Útest_prange_unknown_call1z%TestParfors.test_prange_unknown_call1  sy   ø€ Ü	ñ	*ó 
ð	*ô	ð ˆÜ�H‰H�d˜D�\Ó"ˆÜ—=‘=¢¡C a C Ñ(¬%¯+©+Ð6ˆØ×Ñœ i°Ó9¸1Ô=Ø�
‰
�9˜a Õ&rX   c                 óî   — d„ }d}t        j                  ||f«      }t        j                  d d …d d d…f   t        j
                  f}| j                  t        ||«      d«       | j                  |||«       y )Nc                 ó8  — t        j                  d|dz
  «      D ]2  }t        |dz   dz  dz   |dz
  d«      D ]  }| |dz   |f   dz   | ||f<   Œ Œ4 t        j                  d|dz
  «      D ]/  }t        |dz  dz   |dz
  d«      D ]  }| |dz   |f   dz   | ||f<   Œ Œ1 | S r„  r}  )r†  rÊ  r÷   rq  s       rV   rí  z6TestParfors.test_prange_index_calc1.<locals>.test_impl  s¹   € Ü—\‘\ ! T¨A¡XÖ.�Ü  A¡¨™{¨Q™°°q±¸!Ö<�AØ  A¡ q ™k¨A™o�A�a˜�d’Gñ =ð /ô —\‘\ ! T¨A¡XÖ.�Ü˜q 1™u q™y¨$°©(°AÖ6�AØ  A¡ q ™k¨A™o�A�a˜�d’Gñ 7ð /ð ˆHrX   rÿ   rÜ   rí   ©	r°   r$  rŸ   r{  r   rv  rÀ   rÞ   rÔ   )rS   rí  rÊ  r†  r‹  s        rV   Útest_prange_index_calc1z#TestParfors.test_prange_index_calc1  sf   € ò	ð ˆÜ�H‰H�d˜D�\Ó"ˆÜ—=‘=¢¡C a C Ñ(¬%¯+©+Ð6ˆØ×Ñœ i°Ó9¸1Ô=Ø�
‰
�9˜a Õ&rX   c                 óP  — d„ }d}t        j                  ||f«      }t        j                  ||f«      }t        j                  d d …d d d…f   t        j                  d d …d d d…f   t        j
                  f}| j                  t        ||«      d«       | j                  ||||«       y )Nc                 óì   — t        j                  |«      D ]!  }t        |«      D ]  }|||f   dz   | ||f<   Œ Œ# t        j                  |«      D ]  }t        |«      D ]	  }d|||f<   Œ Œ | d   |d   z   S )NrÜ   rý   r  r}  )r‡   rˆ   rÊ  r÷   rq  s        rV   rí  z9TestParfors.test_prange_reverse_order1.<locals>.test_impl,  s�   € Ü—\‘\ $Ö'�Ü˜tž�AØ  1 ™g¨™k�A�a˜�d’Gñ %ð (ô —\‘\ $Ö'�Ü˜tž�AØ�A�a˜�d’Gñ %ð (ð �T‘7˜Q˜t™WÑ$Ð$rX   rú   rÜ   rí   r�  ©rS   rí  rÊ  r‡   rˆ   r‹  s         rV   Útest_prange_reverse_order1z&TestParfors.test_prange_reverse_order1)  s�   € ò	%ð ˆÜ�H‰H�d˜D�\Ó"ˆÜ�H‰H�d˜D�\Ó"ˆÜ—=‘=¢¡C a C Ñ(¬%¯-©-º¹3¸Q¸3¸Ñ*?ÄÇÁÐMˆØ×Ñœ i°Ó9¸1Ô=Ø�
‰
�9˜a  DÕ)rX   c                 óÜ   — d„ }d}t        j                  |«      }t        j                  d d  t        j
                  f}| j                  t        ||«      d«       | j                  |||«       y )Nc                 óŒ   — d}t        j                  |«      D ]  }|| |<   Œ	 t        j                  |«      D ]
  }|| d   z  }Œ |S )Nr   r€   rŠ  )r‡   rÊ  rˆ   r÷   s       rV   rí  z@TestParfors.test_prange_parfor_index_then_not.<locals>.test_impl?  sH   € ØˆAÜ—\‘\ $Ö'�Ø��!’ð (ä—\‘\ $Ö'�Ø�Q�q‘T‘	‘ð (àˆHrX   rú   rí   r�  )rS   rí  rÊ  r‡   r‹  s        rV   Ú!test_prange_parfor_index_then_notz-TestParfors.test_prange_parfor_index_then_not<  sY   € ò	ð ˆÜ�H‰H�T‹NˆÜ—=‘=¡Ð#¤U§[¡[Ð1ˆØ×Ñœ i°Ó9¸1Ô=Ø�
‰
�9˜a Õ&rX   c                 óN  — d„ }d}t        j                  |«      }t        |«      }t        j                  d d  t
        j                  j                  t
        j                  |«      t
        j                  f}| j                  t        ||«      d«       | j                  ||||«       y )Nc                 ó¤   — d}t        j                  |«      D ]  }|||   z   | |<   Œ t        j                  |«      D ]  }|| |   |d   z   z  }Œ |S r¦  rŠ  )r‡   ÚtuprÊ  r™  r÷   s        rV   rí  zJTestParfors.test_prange_parfor_index_const_tuple_fusion.<locals>.test_implP  sY   € ØˆCÜ—\‘\ $Ö'�Ø˜3˜q™6‘z��!’ð (ä—\‘\ $Ö'�Ø�q˜‘t˜c !™f‘}Ñ$‘ð (àˆJrX   rú   rÜ   )r°   r$  rž   rŸ   r{  r   Ú
containersÚUniTuplerw  rÀ   rÞ   rÔ   r“  s         rV   Ú+test_prange_parfor_index_const_tuple_fusionz7TestParfors.test_prange_parfor_index_const_tuple_fusionM  sƒ   € ò	ð ˆÜ�H‰H�T‹NˆÜ�!‹HˆÜ—=‘=¡Ð#Ü×#Ñ#×,Ñ,¬U¯]©]¸DÓAÜ—:‘:ðˆð 	×Ñœ i°Ó9¸1Ô=Ø�
‰
�9˜a  DÕ)rX   c                 ó,  — d„ }d}t        j                  |«      }t        j                  |«      }t        j                  d d  t        j                  d d  t        j
                  f}| j                  t        ||«      d«       | j                  ||||«       y )Nc                 ó¨   — t        j                  |«      D ]
  }| d   ||<   Œ t        j                  |«      D ]  }|| |<   Œ	 |dxx   | d   z  cc<   |S )Nr€   r   rŠ  )r‡   rˆ   rÊ  r÷   s       rV   rí  zITestParfors.test_prange_non_parfor_index_then_opposite.<locals>.test_impld  sV   € Ü—\‘\ $Ö'�Ø˜‘t��!’ð (ä—\‘\ $Ö'�Ø��!’ð (ð ˆa‹D�A�a‘D‰L‹DØˆHrX   rú   rí   r�  r“  s         rV   Ú*test_prange_non_parfor_index_then_oppositez6TestParfors.test_prange_non_parfor_index_then_oppositea  ss   € ò	ð ˆÜ�H‰H�T‹NˆÜ�H‰H�T‹NˆÜ—=‘=¡Ð#¤U§]¡]±1Ð%5´u·{±{ÐCˆØ×Ñœ i°Ó9¸1Ô=Ø�
‰
�9˜a  DÕ)rX   c                 óÖ   — dd„}t        j                  d«      }| j                  ||d t         j                  j                  d„ g¬«       | j                  |j                  «       d«       y )Nc                 ó4   — t        d«      D ]
  }|€Œd| |<   Œ y )NrÜ   ræ  r¢  )ÚarrÚpredr÷   s      rV   rí  z3TestParfors.test_prange_optional.<locals>.test_implu  s   € Ü˜A–Y�ØÑ#Ø �C˜’Fñ rX   rú   c                 ó   — | |k(  S rZ   r|   ©r£   rQ  s     rV   rÍ  z2TestParfors.test_prange_optional.<locals>.<lambda>}  s   € °A¸²FrX   rk  r7  rZ   )r°   rì  rÔ   r¾   r¿   rÀ   rg  ©rS   rí  r£  s      rV   Útest_prange_optionalz TestParfors.test_prange_optionalt  sZ   € ó	!ô
 �g‰g�b‹kˆØ�
‰
�9˜c 4Ü')§z¡z×'EÑ'EÙ':ð'<ð 	ô 	=ð 	×Ñ˜Ÿ™› DÕ)rX   c                 óÊ   — d„ }| j                  t        «      5 }| j                  |«       d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Nc                  ó   — d} | d   S )N©g333333ó?gÍÌÌÌÌÌô?r   r|   re  s    rV   rí  z8TestParfors.test_untraced_value_tuple.<locals>.test_impl‚  s   € ØˆAØ�Q‘4ˆKrX   rî  rï  ró  s      rV   Útest_untraced_value_tuplez%TestParfors.test_untraced_value_tuple€  sM   € ò	ð ×Ñœ~Ô.°&Ø�J‰J�yÔ!÷ /à�‰Ð4´c¸&×:JÑ:JÓ6KÕL÷ /Ð.úrö  c                 óÊ   — d„ }| j                  t        «      5 }| j                  |«       d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Nc                  ó   — d} | d   d   S )N)r«  r   r|   re  s    rV   rí  zBTestParfors.test_recursive_untraced_value_tuple.<locals>.test_implŒ  s   € ØˆAØ�Q‘4˜‘7ˆNrX   rî  rï  ró  s      rV   Ú#test_recursive_untraced_value_tuplez/TestParfors.test_recursive_untraced_value_tupleŠ  sM   € ò	ð ×Ñœ~Ô.°&Ø�J‰J�yÔ!÷ /à�‰Ð4´c¸&×:JÑ:JÓ6KÕL÷ /Ð.úrö  c                 óü   — d„ }t        j                  t         j                  dd«      f}| j                  t	        ||«      d«       t        j                  dt
        j                  ¬«      }| j                  ||«       y )Nc                 ó”  — d}t        | «      }t        j                  |t        j                  «      }t	        |«      D ]  }| |   |d   z  ||<   Œ t        |«      }t        j                  |t        j                  «      }t	        |«      D ]  }||   |d   z
  ||<   Œ d}t        |«      }	t	        |	«      D ]
  }
|||
   z  }Œ ||d   z   S )Nr«  r   rÜ   ræ  ©rÂ   r°   rÃ  r{  r   )r£  r‡   Ún1Úarr2r÷   Ún2Úarr3rq  ÚtotalÚn3r®   s              rV   rí  z9TestParfors.test_untraced_value_parfor.<locals>.test_impl–  s¿   € ØˆAÜ�S“ˆBÜ—8‘8˜B¤§
¡
Ó+ˆDÜ˜B–Z�Ø˜a™& 1 Q¡4™-��Q’ð  ä�T“ˆBÜ—8‘8˜B¤§
¡
Ó+ˆDÜ˜B–Z�Ø˜q™' A a¡D™.��Q’ð  àˆEÜ�T“ˆBÜ˜B–Z�Ø˜˜a™Ñ ‘ð  à˜1˜Q™4‘<ÐrX   rÜ   rƒ  rú   r
  )r   r…  rv  rÀ   rÞ   r°   ræ  rÔ   )rS   rí  r±  r£  s       rV   Útest_untraced_value_parforz&TestParfors.test_untraced_value_parfor”  s[   € ò	 ô  �{‰{œ5Ÿ;™;¨¨3Ó/Ð2ˆØ×Ñœ i°Ó5°qÔ9ä�i‰i˜¤"§(¡(Ô+ˆØ�
‰
�9˜cÕ"rX   c                 óT   — d„ }| j                  |t        j                  d«      «       y )Nc                 óh   — d}t        | j                  d   «      D ]  }|r| d| |d d …f<   |dz  }Œ | S r¦  )ró   rd  )r£   r;  rñ   s      rV   rí  z;TestParfors.test_setitem_2d_one_replaced.<locals>.test_impl®  sA   € ØˆEÜ˜1Ÿ7™7 1™:Ö&�áÙØ��%š�(‘Ø˜‘
‘ð 'ð ˆHrX   )rý   rÜ   r_  rû  s     rV   Útest_setitem_2d_one_replacedz(TestParfors.test_setitem_2d_one_replaced¬  s    € ò	ð 	�
‰
�9œbŸh™h vÓ.Õ/rX   c                 ó¬   — d„ }t        j                  d«      }| j                  ||dd«       | j                  ||dd«       | j                  ||dd«       y )Nc                 óÀ   — t        j                  | j                  «      }|r|j                  t         j                  «      S |r||   }n||dz
     }|| j                  z  S r  )r°   ræ  rÊ  rÿ  r{  )r£  Úflag1Úflag2Úinvr  s        rV   rí  z7TestParfors.test_1array_control_flow.<locals>.test_impl¼  sQ   € Ü—)‘)˜CŸH™HÓ%ˆCÙØ—z‘z¤"§*¡*Ó-Ð-ÙØ˜#‘h‘à˜# ™'‘l�Ø˜Ÿ™‘>Ð!rX   rÈ  TFr  r§  s      rV   Útest_1array_control_flowz$TestParfors.test_1array_control_flowº  sL   € ò	"ô �i‰i˜‹nˆØ�
‰
�9˜c 4¨Ô/Ø�
‰
�9˜c 4¨Ô.Ø�
‰
�9˜c 5¨%Õ0rX   c                 ó„   — d„ }t        j                  d«      }| j                  ||dd«       | j                  ||dd«       y )Nc                 ó¸   — t        j                  | j                  «      }t        j                  || j                  |z   «      }|r
||   }||z  S ||dz
     }||z  S r  ©r°   ræ  rÊ  )r£  rp  ÚflagÚinv1Úinv2r  s         rV   rí  z9TestParfors.test_2array_1_control_flow.<locals>.test_implÍ  s]   € Ü—9‘9˜SŸX™XÓ&ˆDÜ—9‘9˜Q §¡¨1¡Ó-ˆDÙØ˜4‘j�ð ˜‘:Ðð ˜4 !™8‘n�Ø˜‘:ÐrX   rÈ  rú   TFr  r§  s      rV   Útest_2array_1_control_flowz&TestParfors.test_2array_1_control_flowË  s:   € ò	ô �i‰i˜‹nˆØ�
‰
�9˜c 2 tÔ,Ø�
‰
�9˜c 2 uÕ-rX   c                 ó„   — d„ }t        j                  d«      }| j                  ||dd«       | j                  ||dd«       y )Nc                 óÒ   — t        j                  | j                  «      }t        j                  || j                  |z   «      }|r||   }||   }||z  S ||dz
     }||dz
     }||z  S r  rÅ  )r£  rp  rÆ  rÇ  rÈ  Úret1Úret2s          rV   rí  z9TestParfors.test_2array_2_control_flow.<locals>.test_implÜ  ss   € Ü—9‘9˜SŸX™XÓ&ˆDÜ—9‘9˜Q §¡¨1¡Ó-ˆDÙØ˜D‘z�Ø˜D‘z�ð ˜$‘;Ðð ˜D 1™H‘~�Ø˜D 1™H‘~�Ø˜$‘;ÐrX   rÈ  rú   TFr  r§  s      rV   Útest_2array_2_control_flowz&TestParfors.test_2array_2_control_flowÚ  s:   € ò		ô �i‰i˜‹nˆØ�
‰
�9˜c 2 tÔ,Ø�
‰
�9˜c 2 uÕ-rX   c                 ó„   — d„ }| j                  |d«       | j                  t        |t        j                  f«      d«       y )Nc                 óH  — t        j                  | t         j                  ¬«      }t        j                  | t         j                  ¬«      }t        | «      D ]  }t	        |«      D ]  }||xx   dz  cc<   Œ Œ! t        | «      D ]  }|dk(  rŒ	||   ||dz
     z
  ||<   Œ |dd  S )Nr
  rÜ   r   )r°   r$  rw  r   ró   )rñ   ÚrÚcr÷   rq  s        rV   rí  z-TestParfors.test_issue8515.<locals>.test_implï  s“   € Ü—‘˜¤"§'¡'Ô*ˆAÜ—‘˜¤"§'¡'Ô*ˆAÜ˜A–Y�Ü˜qž�AØ�a“D˜A‘I”Dñ "ð ô ˜A–Y�Ø˜’6ØØ˜‘t˜a  A¡™h‘��!’ð ð �Q�R�5ˆLrX   rP  rí   )rÔ   rÀ   rÞ   r   rv  rû  s     rV   Útest_issue8515zTestParfors.test_issue8515ë  s4   € ò	ð 	�
‰
�9˜bÔ!Ø×Ñœ i´%·+±+°ÓAÀ1ÕErX   c                 ó0   — d„ }| j                  |dd«       y )Nc                 ó$  — d}d}t        j                  ||f«      }t        |«      D ]f  }t        |«      D ]V  }t        j                  |«      }|d   }t        j                  |«      }	t	        | |«      D ]  }
d|	|
<   Œ	 |	d   }||z   |||f<   ŒX Œh |S )NrÁ  rý   r   rÜ   )r°   rÃ  ró   rì  r   )Úi1Úi2rn  rK  r‡   rQ  r£   r¿  rÕ  Úp2r÷   rq  s               rV   rí  z-TestParfors.test_issue9029.<locals>.test_impl	  s˜   € ØˆAØˆAÜ—‘˜!˜A˜“ˆAô ˜1–X�Ü˜qž�AÜŸW™W Q›Z�FØ˜q™	�AäŸ™ !›�BÜ# B¨ž^˜Ø !˜˜1šð ,à˜1™�Aà ™U�A�a˜�c’Fñ "ð ð ˆHrX   r   rý   rú  rû  s     rV   Útest_issue9029zTestParfors.test_issue9029ÿ  s   € ò	ð, 	�
‰
�9˜a Õ#rX   c                 ó¤   — d„ }| j                  |dd«       | j                  t        |t        j                  t        j                  f«      d«       y )Nc                 óº   — t        j                  d«      }t        j                  |«      }t        j                  d«      }t	        t        | |«      «      }||z   |z   S ©NrÈ  )r°   rì  rf  ÚceilÚintr—  )r‡   rˆ   r^  r]  rÒ  s        rV   rí  z:TestParfors.test_fusion_no_side_effects.<locals>.test_impl	  sF   € Ü—‘˜“ˆAÜ—	‘	˜!“ˆAÜ—‘˜“ˆAÜ”C˜˜1“I“ˆAØ�q‘5˜1‘9ÐrX   gš™™™™™@g333333@rÜ   )rÔ   rÀ   rÞ   r   r{  rû  s     rV   Útest_fusion_no_side_effectsz'TestParfors.test_fusion_no_side_effects	  s>   € ò	ð 	�
‰
�9˜c 3Ô'Ø×Ñœ i´%·-±-ÄÇÁÐ1OÓPÐRSÕTrX   c                 óv   — t        d¬«      d„ «       }| j                   |d«      |j                  d«      «       y )NTr“   c                 óD   — d}t        d«       t        | «      D ]  }|}Œ |S r¦  ©r   r   )r£   rÒ  r÷   s      rV   Údef_in_loopzCTestParfors.test_issue9256_lower_sroa_conflict.<locals>.def_in_loop%	  s'   € àˆAÜ˜AÔÜ˜A–Y�Ø‘ð àˆHrX   rú   ©r   rÀ   Úpy_func)rS   rã  s     rV   Ú"test_issue9256_lower_sroa_conflictz.TestParfors.test_issue9256_lower_sroa_conflict$	  s:   € Ü	�tÔ	ñ	ó 
ð	ð 	×Ñ™ R›¨+×*=Ñ*=¸bÓ*AÕBrX   c                 óº   — d„ } |d«      }| j                  |  t        d¬«      |«      d«      «       | j                  |  t        d¬«      |«      d«      «       y )Nc                 óZ   — | }t        d«       t        | «      D ]
  }|sŒ| dz   }Œ |dkD  fS ©NrÜ   rÿ   r   râ  )r£   rÒ  Ú_ir¸  s       rV   rã  zLTestParfors.test_issue9256_lower_sroa_conflict_variant1.<locals>.def_in_loop0	  s8   € ØˆAÜ˜AÔÜ˜Q–i�ÚØ˜A™‘Að  ð �a˜!‘e�8ˆOrX   rÿ   Fr“   T©rÀ   r   ©rS   rã  rs  s      rV   Ú+test_issue9256_lower_sroa_conflict_variant1z7TestParfors.test_issue9256_lower_sroa_conflict_variant1/	  s\   € ò	ñ ˜q“>ˆØ×Ñ˜Ð#DÐ#7¤4°Ô#7¸Ó#DÀQÓ#GÔHØ×Ñ˜Ð#CÐ#6¤4°Ô#6°{Ó#CÀAÓ#FÕGrX   c                 óº   — d„ } |d«      }| j                  |  t        d¬«      |«      d«      «       | j                  |  t        d¬«      |«      d«      «       y )Nc                 óz   — | }t        d«       t        | «      D ]  }|sŒt        | «      D ]  }| dz   }Œ	 Œ |dkD  fS ré  )r   r   ró   )r£   rÒ  rê  Ú_jr¸  s        rV   rã  zLTestParfors.test_issue9256_lower_sroa_conflict_variant2.<locals>.def_in_loop=	  sF   € ØˆAÜ˜AÔÜ˜Q–i�ÚÜ# Ažh˜Ø ™E™ñ 'ð  ð �a˜!‘e�8ˆOrX   rÿ   Fr“   Trë  rì  s      rV   Ú+test_issue9256_lower_sroa_conflict_variant2z7TestParfors.test_issue9256_lower_sroa_conflict_variant2<	  s\   € ò	ñ ˜q“>ˆØ×Ñ˜Ð#DÐ#7¤4°Ô#7¸Ó#DÀQÓ#GÔHØ×Ñ˜Ð#CÐ#6¤4°Ô#6°{Ó#CÀAÓ#FÕGrX   c                 ó*  — t         j                  ddg}i t        j                  ¥dddœ¥}	 t	        j
                  ||t        j                  d¬«       y # t        j                  $ r+}d|j                  › �}| j                  |¬«       Y d }~y d }~ww xY w)	Nz-mz"numba.tests.parfor_iss9490_usecaseÚ1)ÚPYTHONHASHSEEDÚNUMBA_NUM_THREADSzutf-8)ÚenvÚstderrÚencodingzsubprocess failed with output:
)ré   )
ÚsysÚ
executableÚosÚenvironÚsubpÚcheck_outputÚSTDOUTÚCalledProcessErrorÚoutputÚfail)rS   ÚcmdÚenvsr  ré   s        rV   Ú"test_issue9490_non_det_ssa_problemz.TestParfors.test_issue9490_non_det_ssa_problemJ	  s”   € ô �N‰NØØ0ð
ˆð

Ü�j‰jð
ð "ð "%ò
ˆð	Ü×Ñ˜c tÜ%)§[¡[Ø'.ö0øô ×&Ñ&ò 	Ø4°Q·X±X°JÐ?ˆCØ�I‰I˜#ˆI×Ñûð	ús   ¬'A ÁBÁ'!BÂBN)Trw   rN   rx   rC  r_  rf  rk  rr  rv  rz  r€  r”  r�  r¤  r¨  r¬  r±  rµ  r;   r¼  rÀ  rÃ  r=   rÇ  rÊ  rÏ  rÔ  rØ  rà  rã  rï  ró  rö  rú  rþ  r  r  r	  r  r  r  r  r!  r%  r(  r-  r1  r7  r;  rD  rG  rM  rQ  r[  r`  rc  rg  rv  rz  r~  r�  rŒ  r�  r”  r—  r�  r   r¨  r¬  r¯  r¹  r¼  rÂ  rÉ  rÎ  rÓ  rÙ  rß  ræ  rí  rñ  r<   r@   r  r|   rX   rV   rZ  rZ  )  sÜ  „ á@òNò9ò9ò9ò!ò2ò1ò .Jò`-ò-ò"
-ò	CòSò(Qð ñ$+ó ð$+òL!òSð ñ#ó ð#ð ñOó ðOò"$ò	Hò"òGòGò#ò"	#ò#ò#ò#ò
#ò!ò>ò3ò
ò
?òNò$	!ò	!ò	!ò	!ò
!ò@ò
Nò!ò!ò !ò!ò0ò5ò,ò0òò00ò,ò5ò'ò*'ò$*ò&'ò"*ò(*ò&
*òMòMò#ò00ò1ò".ò.ò"Fò($ò6Uò	CòHòHð Ø"ñó #ó ñrX   rZ  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestParforsLeaksc                 ó`   —  | j                   |g|¢­Ž \  }} | j                  |||g|¢­i |¤Ž y rZ   rÒ   rÓ   s         rV   rÔ   zTestParforsLeaks.checkg	  ó;   € Ø(˜×(Ñ(¨Ð7°$Ò7‰ˆˆvØ$ˆ×$Ñ$ V¨U°FÐL¸TÒLÀVÓLrX   c                 ó’   — d„ }t        j                  d«      j                  t         j                  «      }| j	                  ||«       y )Nc                 ó"   — | j                  «       S rZ   rJ  )r£  s    rV   rí  z2TestParforsLeaks.test_reduction.<locals>.test_implm	  s   € Ø—7‘7“9ÐrX   rú   ©r°   ræ  rÿ  r{  rÔ   r§  s      rV   Útest_reductionzTestParforsLeaks.test_reductionk	  s3   € ò	ô �i‰i˜‹m×"Ñ"¤2§:¡:Ó.ˆØ�
‰
�9˜cÕ"rX   c                 ó’   — d„ }t        j                  d«      j                  t         j                  «      }| j	                  ||«       y )Nc                 ót   — d}d}t        | j                  «      D ]  }|| |   z  }|d| |   dz   z  z  }Œ ||z  S )Nræ  rF  rÜ   )r   rÊ  )r£  r‡   rˆ   r÷   s       rV   rí  z@TestParforsLeaks.test_multiple_reduction_vars.<locals>.test_implu	  sN   € ØˆAØˆAÜ˜CŸH™HÖ%�Ø�S˜‘V‘�Ø�R˜3˜q™6 A™:Ñ&Ñ&‘ð &ð �q‘5ˆLrX   rú   r  r§  s      rV   Útest_multiple_reduction_varsz-TestParforsLeaks.test_multiple_reduction_varss	  s3   € ò	ô �i‰i˜‹m×"Ñ"¤2§:¡:Ó.ˆØ�
‰
�9˜cÕ"rX   N)rw   rN   rx   rÔ   r  r  r|   rX   rV   r  r  e	  s   „ òMò#ó
#rX   r  c                   óÜ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
d„ «       Ze
d	„ «       Ze
d
„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Ze
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y)ÚTestParforsSlicec                 óT   — d„ }| j                  |t        j                  d«      «       y )Nc                 óD   — | j                   \  }| d|dz
   | d|dz
   z   }|S ©Nr   rí   rÜ   ©rd  ©r‡   rñ   rˆ   s      rV   rí  z6TestParforsSlice.test_parfor_slice1.<locals>.test_impl„	  s0   € Ø—7‘7‰DˆQØ�!�A�a‘C�˜1˜Q˜q ™s˜8Ñ#ˆAØˆHrX   rú   ©rÔ   r°   rì  rû  s     rV   Útest_parfor_slice1z#TestParforsSlice.test_parfor_slice1ƒ	  s   € ò	ð
 	�
‰
�9œbŸg™g b›kÕ*rX   c                 óL  — d„ }| j                  |t        j                  d«      d«       | j                  t        «      5 }  t        d¬«      |«      t        j                  d«      d«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nc                 ó>   — | j                   \  }| d|dz
   | d| z   }|S r  r  ©r‡   r-  rñ   rˆ   s       rV   rí  z6TestParforsSlice.test_parfor_slice2.<locals>.test_implŒ	  s,   € Ø—7‘7‰DˆQØ�!�A�a‘C�˜1˜Q˜q˜6Ñ!ˆAØˆHrX   rú   ry  Tr“   údo not match©	rÔ   r°   rì  rð  rñ  r   rä   r  rò  ró  s      rV   Útest_parfor_slice2z#TestParforsSlice.test_parfor_slice2‹	  sy   € ò	ð 	�
‰
�9œbŸg™g b›k¨1Ô-à×Ñœ~Ô.°&Ø*ÐŒD˜$Ô 	Ó*¬2¯7©7°2«;°rÔ:÷ /à�‰�n¤c¨&×*:Ñ*:Ó&;Õ<÷ /Ð.ús   ¿-BÂB#c                 óT   — d„ }| j                  |t        j                  d«      «       y )Nc                 ó^   — | j                   \  }}| d|dz
  …d|dz
  …f   | d|…d|…f   z   }|S r¦  r  r  s       rV   rí  z6TestParforsSlice.test_parfor_slice3.<locals>.test_impl™	  sF   € Ø—G‘G‰EˆQˆqØ�!�A�a‘C�%˜˜!˜A™#˜�+‘  1 Q 3 q¨ s 7¡Ñ+ˆAØˆHrX   ©rÿ   rý   r  rû  s     rV   Útest_parfor_slice3z#TestParforsSlice.test_parfor_slice3˜	  ó   € ò	ð
 	�
‰
�9œbŸg™g e›nÕ-rX   c                 óT   — d„ }| j                  |t        j                  d«      «       y )Nc                 óX   — | j                   \  }}| d d …d|dz
  …f   | d d …d|…f   z   }|S r¦  r  r  s       rV   rí  z6TestParforsSlice.test_parfor_slice4.<locals>.test_impl¡	  s:   € Ø—G‘G‰EˆQˆqØ’!�A�a˜‘c�E�'‘
˜Qšq  1 ˜u™XÑ%ˆAØˆHrX   r"  r  rû  s     rV   Útest_parfor_slice4z#TestParforsSlice.test_parfor_slice4 	  r$  rX   c                 óT   — d„ }| j                  |t        j                  d«      «       y )Nc                 óX   — | j                   \  }}| d|dz
  …d d …f   | d|…d d …f   z   }|S r¦  r  r  s       rV   rí  z6TestParforsSlice.test_parfor_slice5.<locals>.test_impl©	  s:   € Ø—G‘G‰EˆQˆqØ�!�A�a‘C�%š�'‘
˜Q˜q ˜s¢1˜u™XÑ%ˆAØˆHrX   r"  r  rû  s     rV   Útest_parfor_slice5z#TestParforsSlice.test_parfor_slice5¨	  r$  rX   c                 óT   — d„ }| j                  |t        j                  d«      «       y )Nc                 óL   — | j                  «       }| dd d …f   |d d …df   z   }|S r  ©Ú	transpose©r‡   rˆ   rÒ  s      rV   rí  z6TestParforsSlice.test_parfor_slice6.<locals>.test_impl±	  s+   € Ø—‘“ˆAØ�!’A�#‘˜š1˜Q˜3™‘ˆAØˆHrX   r"  r  rû  s     rV   Útest_parfor_slice6z#TestParforsSlice.test_parfor_slice6°	  r$  rX   c                 óH  — d„ }| j                  |t        j                  d«      «       | j                  t        «      5 }  t        d¬«      |«      t        j                  d«      «       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nc                 óL   — | j                  «       }| dd d …f   |dd d …f   z   }|S r  r-  r/  s      rV   rí  z6TestParforsSlice.test_parfor_slice7.<locals>.test_impl¹	  s+   € Ø—‘“ˆAØ�!’A�#‘˜˜1šQ˜3™‘ˆAØˆHrX   rL  Tr“   rã  r  r  ró  s      rV   Útest_parfor_slice7z#TestParforsSlice.test_parfor_slice7¸	  su   € ò	ð 	�
‰
�9œbŸg™g e›nÔ-à×Ñœ~Ô.°&Ø*ÐŒD˜$Ô 	Ó*¬2¯7©7°5«>Ô:÷ /à�‰�n¤c¨&×*:Ñ*:Ó&;Õ<÷ /Ð.ús   ¾,BÂB!c                 ór   — d„ }| j                  |t        j                  d«      j                  d«      «       y )Nc                 ól   — | j                   \  }}| j                  «       }| d|…d|…f   |d|…d|…f<   |S r  ©rd  r.  r  s       rV   rí  z6TestParforsSlice.test_parfor_slice8.<locals>.test_implÇ	  sD   € Ø—G‘G‰EˆQˆqØ—‘“ˆAØ˜1˜Q˜3˜q ˜s˜7™ˆAˆa�ˆc�!�A�#ˆg‰JØˆHrX   ry  rL  ©rÔ   r°   ræ  r   rû  s     rV   Útest_parfor_slice8z#TestParforsSlice.test_parfor_slice8Å	  ó*   € ò	ð 	�
‰
�9œbŸi™i¨›l×2Ñ2°5Ó9Õ:rX   c                 ór   — d„ }| j                  |t        j                  d«      j                  d«      «       y )Nc                 ól   — | j                   \  }}| j                  «       }| d d …d|…f   |d|…d|…f<   |S r  r6  r  s       rV   rí  z6TestParforsSlice.test_parfor_slice9.<locals>.test_implÑ	  s@   € Ø—G‘G‰EˆQˆqØ—‘“ˆAØš1˜Q˜q˜S˜5™ˆAˆa�ˆc�!�A�#ˆg‰JØˆHrX   rc  rã  r7  rû  s     rV   Útest_parfor_slice9z#TestParforsSlice.test_parfor_slice9Ï	  s*   € ò	ð 	�
‰
�9œbŸi™i¨›m×3Ñ3°EÓ:Õ;rX   c                 ór   — d„ }| j                  |t        j                  d«      j                  d«      «       y )Nc                 ód   — | j                   \  }}| j                  «       }| dd|…f   |dd|…f<   |S r  r6  r  s       rV   rí  z7TestParforsSlice.test_parfor_slice10.<locals>.test_implÛ	  s<   € Ø—G‘G‰EˆQˆqØ—‘“ˆAØ˜˜1˜Q˜3˜‘xˆAˆa��!�ˆe‰HØˆHrX   ry  rL  r7  rû  s     rV   Útest_parfor_slice10z$TestParforsSlice.test_parfor_slice10Ù	  r9  rX   c                 ór   — d„ }| j                  |t        j                  d«      j                  d«      «       y )Nc                 ór   — | j                   \  }}}| j                  «       }| d d …dd|…f   |d d …dd|…f<   |S r  ©rd  r³   )r‡   r-  rñ   rp  rˆ   s        rV   rí  z7TestParforsSlice.test_parfor_slice11.<locals>.test_implä	  sB   € Ø—g‘g‰GˆQˆq�Ø—‘“ˆAØš1˜Q˜q ˜s˜7™ˆAŠa��!�A�#ˆg‰JØˆHrX   é   )rý   rý   rý   r7  rû  s     rV   Útest_parfor_slice11z$TestParforsSlice.test_parfor_slice11ã	  s*   € ò	ð 	�
‰
�9œbŸi™i¨›m×3Ñ3°GÓ<Õ=rX   c                 ór   — d„ }| j                  |t        j                  d«      j                  d«      «       y )Nc                 ód   — | j                   \  }}| j                  «       }| dd d…f   |ddd…f<   |S )Nr   éþÿÿÿrÜ   rI   rB  r  s       rV   rí  z7TestParforsSlice.test_parfor_slice12.<locals>.test_implí	  s<   € Ø—G‘G‰EˆQˆqØ—‘“ˆAØ˜!˜C˜R˜C˜%™ˆAˆa��"�ˆf‰IØˆHrX   rc  rã  r7  rû  s     rV   Útest_parfor_slice12z$TestParforsSlice.test_parfor_slice12ì	  ó*   € ò	ð 	�
‰
�9œbŸi™i¨›m×3Ñ3°EÓ:Õ;rX   c                 ór   — d„ }| j                  |t        j                  d«      j                  d«      «       y )Nc                 óp   — | j                   \  }}| j                  «       }d}| d| |dz
  …f   |dd|…f<   |S )NrI   r   rÜ   rB  )r‡   r-  rñ   rˆ   rÒ  s        rV   rí  z7TestParforsSlice.test_parfor_slice13.<locals>.test_implö	  sG   € Ø—G‘G‰EˆQˆqØ—‘“ˆAØˆAØ˜˜A˜2˜a ™c˜6˜‘{ˆAˆa��!�ˆe‰HØˆHrX   rc  rã  r7  rû  s     rV   Útest_parfor_slice13z$TestParforsSlice.test_parfor_slice13õ	  s*   € ò	ð 	�
‰
�9œbŸi™i¨›m×3Ñ3°EÓ:Õ;rX   c                 ór   — d„ }| j                  |t        j                  d«      j                  d«      «       y )Nc                 ód   — | j                   \  }}| j                  «       }| ddd…f   |dd d…f<   |S )Nr   éýÿÿÿrÿ   rÜ   rI   rB  r  s       rV   rí  z7TestParforsSlice.test_parfor_slice14.<locals>.test_impl 
  s<   € Ø—G‘G‰EˆQˆqØ—‘“ˆAØ˜˜2˜a˜4˜‘yˆAˆa���ˆe‰HØˆHrX   rc  rã  r7  rû  s     rV   Útest_parfor_slice14z$TestParforsSlice.test_parfor_slice14ÿ	  rI  rX   c                 ór   — d„ }| j                  |t        j                  d«      j                  d«      «       y )Nc                 ól   — | j                   \  }}| j                  «       }| ddd…f   |d|dz
   d …f<   |S )Nr   rO  rÿ   rÜ   rB  r  s       rV   rí  z7TestParforsSlice.test_parfor_slice15.<locals>.test_impl	
  s@   € Ø—G‘G‰EˆQˆqØ—‘“ˆAØ˜Q˜r !˜t˜V™9ˆAˆa�!�A‘#�‘ˆi‰LØˆHrX   rc  rã  r7  rû  s     rV   Útest_parfor_slice15z$TestParforsSlice.test_parfor_slice15
  rI  rX   c                 ó   — d„ }| j                  |t        j                  d«      t        j                  d«      d«       t        j
                  dd t        j
                  dd t        j                  f}| j                  t        ||«      d«       y)zÞ This test is disabled because if n is larger than the array size
            then n and n-1 will both be the end of the array and thus the
            slices will in fact be of different sizes and unable to fuse.
        c                 ó\   — | j                   |j                   k(  sJ ‚d| d| d|d|dz
   | |z  S ©Nrú   rÜ   r   r  )r‡   rˆ   rñ   s      rV   rí  z7TestParforsSlice.test_parfor_slice16.<locals>.test_impl
  s;   € Ø—7‘7˜aŸg™gÒ%Ð&Ð%ØˆAˆa�ˆFØˆAˆa��1‘ˆJØ�q‘5ˆLrX   rú   é   Nrí   )	rÔ   r°   rì  r$  rŸ   r{  rv  rÀ   rÞ   ©rS   rí  r¡   s      rV   Útest_parfor_slice16z$TestParforsSlice.test_parfor_slice16
  sd   € ò	ð 	�
‰
�9œbŸg™g b›k¬2¯8©8°B«<¸Ô;Ü—‘™aÐ ¤%§-¡-±Ð"2´E·K±KÐ@ˆØ×Ñœ i°Ó6¸Õ:rX   c                 óV   — d„ }| j                  |dt        j                  d«      «       y )Nc                 óR   — t        j                  | «      }t        |«      }||| d  |S rZ   ©r°   r$  rÂ   )r-  ri  r“  rñ   s       rV   rí  z7TestParforsSlice.test_parfor_slice17.<locals>.test_impl"
  s*   € Ü—‘˜“ˆAÜ�A“ˆAØˆAˆqˆbˆcˆFØˆHrX   rú   r  rû  s     rV   Útest_parfor_slice17z$TestParforsSlice.test_parfor_slice17!
  s!   € ò	ð 	�
‰
�9˜b¤"§'¡'¨"£+Õ.rX   c                 ó,   — d„ }| j                  |«       y )Nc                  ól   — t        j                  d«      } t        j                  dd«      | dd | d   }|S )Nrú   r   rH  rÜ   rW  rý   )r°   r$  ræ  )r‡   rQ  s     rV   rí  z7TestParforsSlice.test_parfor_slice18.<locals>.test_impl,
  s2   € Ü—‘˜“ˆAÜ—Y‘Y˜q !“_ˆAˆa�ˆFØ�!‘ˆAØˆHrX   rú  rû  s     rV   Útest_parfor_slice18z$TestParforsSlice.test_parfor_slice18*
  s   € ò	ð 	�
‰
�9ÕrX   c                 óT   — d„ }| j                  |t        j                  d«      «       y )Nc                 ó"   — | d dxxx dz  ccc | S r¦  r|   r  s    rV   rí  z7TestParforsSlice.test_parfor_slice19.<locals>.test_impl6
  s   € Øˆbˆq‹E�Q‰J‹EØˆHrX   rú   r  rû  s     rV   Útest_parfor_slice19z$TestParforsSlice.test_parfor_slice194
  ó   € ò	ð 	�
‰
�9œbŸg™g b›kÕ*rX   c                 ó0   — d„ }| j                  |d¬«       y )Nc                  óP   — t        j                  d«      } | dd  }t        |«      }|S )Nrú   rÜ   )r°   rì  rÂ   )r‡   rÒ  r¥  s      rV   rí  z7TestParforsSlice.test_parfor_slice20.<locals>.test_impl>
  s(   € Ü—‘˜“ˆAØ�!�"�ˆAÜ�A“ˆAØˆHrX   FrI  rú  rû  s     rV   Útest_parfor_slice20z$TestParforsSlice.test_parfor_slice20<
  s   € ò	ð 	�
‰
�9¨uˆ
Õ5rX   c                 ó¬   — d„ }t         j                  j                  d«      }t         j                  j                  d«      }| j                  |||«       y )Nc                 óŽ   — | j                  | j                  d«      } |j                  |j                  d«      }| |d d…d d …f   k\  S )NrÜ   rI   )r   rÊ  )Úx1Úx2s     rV   rí  z7TestParforsSlice.test_parfor_slice21.<locals>.test_implG
  sA   € Ø—‘˜BŸG™G QÓ'ˆBØ—‘˜BŸG™G QÓ'ˆBØ˜˜C˜R˜C¢˜F™Ñ#Ð#rX   r€   rû   )r°   rr  r  rÔ   ©rS   rí  rj  rk  s       rV   Útest_parfor_slice21z$TestParforsSlice.test_parfor_slice21F
  s=   € ò	$ô
 �Y‰Y�^‰^˜AÓˆÜ�Y‰Y�^‰^˜AÓˆØ�
‰
�9˜b "Õ%rX   c                 ó„   — d„ }t        j                  d«      }t        j                  d«      }| j                  |||«       y )Nc                 óh   — t        j                  d«      }t        d«      D ]  }|| d d …|f   z  }Œ |S r}  )r°   r$  r   )rj  rk  rˆ   r÷   s       rV   rí  z7TestParforsSlice.test_parfor_slice22.<locals>.test_implQ
  s3   € Ü—‘˜“ˆAÜ˜A–Y�Ø�Rš˜2˜‘Y‘‘ð àˆHrX   )rú   rH  rÿ   )r°   r$  re  rÔ   rl  s       rV   Útest_parfor_slice22z$TestParforsSlice.test_parfor_slice22P
  s4   € ò	ô �X‰X�fÓˆÜ�X‰X�a‹[ˆØ�
‰
�9˜b "Õ%rX   c                 óT   — d„ }| j                  |t        j                  d«      «       y )Nc                 ó   — d| d d | S )Nrí   r   r|   r!  s    rV   rí  z7TestParforsSlice.test_parfor_slice23.<locals>.test_impl]
  s   € ØˆAˆbˆqˆEØˆHrX   rú   r  rû  s     rV   Útest_parfor_slice23z$TestParforsSlice.test_parfor_slice23[
  rd  rX   c                 óz   — d„ }t        dd«      D ])  }| j                  |dt        j                  d«      |«       Œ+ y )Nc                 óV   — t        j                  | «      }||d  }|d t        |«       }|S rZ   r\  ©r-  ri  rñ   r“  rƒ  s        rV   rí  z7TestParforsSlice.test_parfor_slice24.<locals>.test_impld
  s.   € Ü—‘˜“ˆAØ�!�"�ˆAØ�'”3�q“6�
ˆAØˆHrX   éñÿÿÿrP  rú   ©ró   rÔ   r°   rì  ©rS   rí  r÷   s      rV   Útest_parfor_slice24z$TestParforsSlice.test_parfor_slice24c
  ó3   € ò	ô �s˜B–ˆAØ�J‰J�y "¤b§g¡g¨b£k°1Õ5ñ  rX   c                 óz   — d„ }t        dd«      D ])  }| j                  |dt        j                  d«      |«       Œ+ y )Nc                 óV   — t        j                  | «      }|d | }|d t        |«       }|S rZ   r\  rv  s        rV   rí  z7TestParforsSlice.test_parfor_slice25.<locals>.test_impln
  s.   € Ü—‘˜“ˆAØ�"�1�ˆAØ�'”3�q“6�
ˆAØˆHrX   rw  rP  rú   rx  ry  s      rV   Útest_parfor_slice25z$TestParforsSlice.test_parfor_slice25m
  r{  rX   c                 óT   — d„ }| j                  |t        j                  d«      «       y )Nc                 óZ   — | j                   \  }| j                  «       }| dd ||dz
   d  |S )NrO  rÿ   rÜ   rB  r  s      rV   rí  z7TestParforsSlice.test_parfor_slice26.<locals>.test_implx
  s4   € Ø—7‘7‰DˆQØ—‘“ˆAØ˜2˜a˜ˆA��!‘ˆfˆgˆJØˆHrX   rÿ   ©rÔ   r°   ræ  rû  s     rV   Útest_parfor_slice26z$TestParforsSlice.test_parfor_slice26w
  s   € ò	ð 	�
‰
�9œbŸi™i¨›lÕ+rX   c                 óT   — d„ }| j                  |t        j                  d«      «       y )Nc                 ól   — d}t        | j                  d   «      D ]  }| |   dk7  r|dz  }|sŒ| d | }Œ yr¦  rÜ  )r‡   Ún_valid_valsr÷   Úunuseds       rV   rí  z7TestParforsSlice.test_parfor_slice27.<locals>.test_implƒ
  sG   € ØˆLä˜AŸG™G A™JÖ'�Ø�Q‘4˜1’9Ø  AÑ%�LâØ˜} Ð-‘Fð (ð rX   rý   r�  rû  s     rV   Útest_parfor_slice27z$TestParforsSlice.test_parfor_slice27€
  s   € ò
	ð 	�
‰
�9œbŸi™i¨›lÕ+rX   c           	      ó>  ‡— t        ddd «      t        dd d «      t        d dd«      t        d d d «      t        d d d«      fD ][  Šˆfd„}d}| j                  ||«       t        j                  |dz  «      j	                  |df«      }ˆfd	„}| j                  ||«       Œ] y )
NrÜ   rý   rí   rI   rG  c                 óÂ   •— t        j                  | dz  «      j                  | df«      }d}t        j                  | «      D ]  }|||‰f   j                  «       z  }Œ |S ©Nrÿ   r   )r°   ræ  r   rŸ   r   rg  )rñ   r^  rQ  r÷   Útss       €rV   rí  zHTestParforsSlice.test_parfor_array_access_lower_slice.<locals>.test_impl•
  sX   ø€ Ü—I‘I˜a !™eÓ$×,Ñ,¨a°¨VÓ4�Ø�ÜŸ™ až�AØ˜˜1˜b˜5™Ÿ™›Ñ'‘Að )à�rX   rú   rÿ   c                 óŠ   •— d}t        j                  | j                  d   «      D ]  }|| |‰f   j                  «       z  }Œ |S r²  )rŸ   r   rd  rg  )r^  rQ  r÷   r‹  s      €rV   rí  zHTestParforsSlice.test_parfor_array_access_lower_slice.<locals>.test_impl¡
  s@   ø€ Ø�ÜŸ™ a§g¡g¨a¡jÖ1�AØ˜˜1˜b˜5™Ÿ™›Ñ'‘Að 2à�rX   )ÚslicerÔ   r°   ræ  r   )rS   rí  rñ   r^  r‹  s       @rV   Ú$test_parfor_array_access_lower_slicez5TestParforsSlice.test_parfor_array_access_lower_slice‘
  sš   ø€ Ü˜˜A˜tÓ$¤e¨A¨t°TÓ&:¼EÀ$ÈÈ2Ó<NÜ˜˜t TÓ*¬E°$¸¸bÓ,AóCˆBôð ˆAØ�J‰J�y !Ô$ä—	‘	˜!˜a™%Ó ×(Ñ(¨!¨Q¨Ó0ˆAôð �J‰J�y !Õ$ñ+CrX   N) rw   rN   rx   r  r  r#  r'  r*  r0  r3  r=   r8  r<  r?  rD  rH  rL  rP  rS  rY  r]  r`  rc  rg  rm  rp  rs  rz  r~  r‚  r‡  rŽ  r|   rX   rV   r  r  €	  sÊ   „ ò+ò=ò.ò.ò.ò.ò=ð ñ;ó ð;ð ñ<ó ð<ð ñ;ó ð;ò>ò<ò<ò<ò<ð ñ;ó ð;ò/òò+ò6ò&ò	&ò+ò6ò6ò,ò,ó"%rX   r  c                   ó   — e Zd Zd„ Zy)ÚTestParforsOptionsc                 ó:  — d„ }| j                  |t        j                  d«      «       t        j                  d d  f}| j                  t        ||«      d«       | j                  t        ||d¬«      d«       | j                  t        ||dd¬«      d«       | j                  t        ||ddd¬	«      d
«       | j                  t        ||dddd¬«      d«       | j                  t        ||ddddd¬«      d«       | j                  t        ||dddddd¬«      d«       y )Nc                 ó  — | j                   d   }t        j                  |«      }t        j                  t	        |«      D �cg c]  }|‘Œ c}«      }| ||z  z   |d | t        |«      D ]  }||   | |   z  ||<   Œ t        d„ |d«      S c c}w )Nr   c                 ó   — | |z   S rZ   r|   r¦  s     rV   rÍ  zKTestParforsOptions.test_parfor_options.<locals>.test_impl.<locals>.<lambda>µ
  s   €  Q q¢SrX   )rd  r°   rì  re  ró   r   r   )r‡   rñ   rˆ   r÷   rÒ  s        rV   rí  z9TestParforsOptions.test_parfor_options.<locals>.test_impl®
  s‡   € Ø—‘˜‘
ˆAÜ—‘˜“
ˆAÜ—‘¤e¨A¤hÓ0¡h š1 hÑ0Ó1ˆAØ˜˜A™‘IˆAˆbˆqˆEÜ˜A–Y�Ø˜‘t˜a ™d‘{��!’ð ä™.¨!¨QÓ/Ð/ùò	 1s   Á	Brú   rÜ   F)Úfusionrû   )r”  Úcomprehensionr€   )r”  r•  Úsetitemrÿ   )r”  r•  r–  r   rý   )r”  r•  r–  r   Ú	reductionrí   )r”  r•  r–  r   r—  rÄ  r   )rÔ   r°   rì  rŸ   r{  rÀ   rÞ   rX  s      rV   Útest_parfor_optionsz&TestParforsOptions.test_parfor_options­
  s&  € ò	0ð 	�
‰
�9œbŸg™g b›kÔ*Ü—‘™aÐ Ð"ˆà×Ñœ i°Ó6¸Ô:à×Ñœ i°¸eÔDÀaÔHà×Ñœ i°¸eØ',ô.Ø/0ô	2ð 	×Ñœ i°¸eØ',°eô=Ø>?ô	Að 	×Ñœ i°¸eØ',°eÀEôKØLMô	Oð 	×Ñœ i°¸eØ',°eÀEØ#(ô*à+,ô	.ð 	×Ñœ i°¸eØ',°eÀEØ#(°ô7à89õ	;rX   N)rw   rN   rx   r˜  r|   rX   rV   r�  r�  ª
  s   „ ó ;rX   r�  c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestParforsBitMaskc                 óV   — d„ }| j                  |t        j                  d«      d«       y )Nc                 ó   — | |kD  }d| |<   | S r²  r|   r  s      rV   rí  z:TestParforsBitMask.test_parfor_bitmask1.<locals>.test_implÔ
  s   € Ø�A‘ˆAØˆAˆa‰DØˆHrX   rú   r€   r�  rû  s     rV   Útest_parfor_bitmask1z'TestParforsBitMask.test_parfor_bitmask1Ó
  s!   € ò	ð
 	�
‰
�9œbŸi™i¨›m¨QÕ/rX   c                 ód   — d„ }t        j                  d«      }|dkD  }| j                  |||«       y )Nc                 ó   — d| |<   | S r²  r|   r†   s     rV   rí  z:TestParforsBitMask.test_parfor_bitmask2.<locals>.test_implÜ
  ó   € ØˆAˆa‰DØˆHrX   rú   r€   r  r9  s       rV   Útest_parfor_bitmask2z'TestParforsBitMask.test_parfor_bitmask2Û
  ó/   € ò	ô �I‰I�b‹MˆØ�‰EˆØ�
‰
�9˜a Õ#rX   c                 ód   — d„ }t        j                  d«      }|dkD  }| j                  |||«       y )Nc                 ó   — | |   | |<   | S rZ   r|   r†   s     rV   rí  z:TestParforsBitMask.test_parfor_bitmask3.<locals>.test_implå
  s   € Ø�Q‘4ˆAˆa‰DØˆHrX   rú   r€   r  r9  s       rV   Útest_parfor_bitmask3z'TestParforsBitMask.test_parfor_bitmask3ä
  r¢  rX   c                 ód   — d„ }t        j                  d«      }|dkD  }| j                  |||«       y )Nc                 ó   — d| z  |   | |<   | S rc  r|   r†   s     rV   rí  z:TestParforsBitMask.test_parfor_bitmask4.<locals>.test_implî
  s   € Ø˜‘E˜1‘:ˆAˆa‰DØˆHrX   rú   r€   r  r9  s       rV   Útest_parfor_bitmask4z'TestParforsBitMask.test_parfor_bitmask4í
  r¢  rX   c                 ód   — d„ }t        j                  d«      }|dkD  }| j                  |||«       y )Nc                 ó"   — | |   | |   z  | |<   | S rZ   r|   r†   s     rV   rí  z:TestParforsBitMask.test_parfor_bitmask5.<locals>.test_impl÷
  s   € Ø�Q‘4˜!˜A™$‘;ˆAˆa‰DØˆHrX   rú   r€   r  r9  s       rV   Útest_parfor_bitmask5z'TestParforsBitMask.test_parfor_bitmask5ö
  r¢  rX   c                 ó@  — d„ }t        j                  d«      }|dkD  }t        j                  t        |«      «      }| j	                  t
        «      5 }| j                  ||||«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nc                 ó   — || |<   | S rZ   r|   r/  s      rV   rí  z:TestParforsBitMask.test_parfor_bitmask6.<locals>.test_impl   r   rX   rú   r€   rî  )
r°   ræ  r$  rg  rð  rñ  rÔ   rä   r  rò  )rS   rí  r‡   rˆ   rÒ  rô  s         rV   Útest_parfor_bitmask6z'TestParforsBitMask.test_parfor_bitmask6ÿ
  s}   € ò	ô �I‰I�b‹MˆØ�‰EˆÜ�H‰H”S˜“VÓˆð ×Ñœ~Ô.°&Ø�J‰J�y ! Q¨Ô*÷ /à�‰Ð4´c¸&×:JÑ:JÓ6KÕL÷ /Ð.ús   ÁBÂBN)	rw   rN   rx   r�  r¡  r¥  r¨  r«  r®  r|   rX   rV   rš  rš  Ð
  s!   „ ò0ò$ò$ò$ò$óMrX   rš  c                   óÀ   — 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d„ Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestParforsMiscz?
    Tests miscellaneous parts of ParallelAccelerator use.
    c                 ó*  — d„ } t        dd¬«      |«      }t        j                  d¬«      5 }t        j                  d«       t        j                  dd¬«       t        j                  dd	t
        j                  j                  d
¬«        |«        d d d «       | j                  t        «      d«       |j                  j                  «       D �cg c]  }|j                  j                  ‘Œ }}| j                  |dg«       y # 1 sw Y   ŒsxY wc c}w )Nc                  ó~   — t        j                  d«      } t        | j                  «      D ]  }| |xx   |z  cc<   Œ | S rÜ  )r°   rì  r   rÊ  )r£  r÷   s     rV   r    z9TestParforsMisc.test_no_warn_if_cache_set.<locals>.pyfunc  s4   € Ü—'‘'˜#“,ˆCÜ˜CŸH™HÖ%�Ø�A“˜!‘”ð &àˆJrX   T)r”   Úcache©ÚrecordÚalwaysÚignoreÚ	typeguard)ÚactionÚmodulez.*TBB_INTERFACE_VERSION.*znumba\.np\.ufunc\.parallel.*)r¹  ÚmessageÚcategoryrº  r   F)r   ÚwarningsÚcatch_warningsÚsimplefilterÚfilterwarningsrŸ   r   ÚNumbaWarningrÀ   rÂ   r�   r¿  rå   Úhas_dynamic_globals)rS   r    r¥   Úraised_warningsrç   rÂ  s         rV   Útest_no_warn_if_cache_setz)TestParforsMisc.test_no_warn_if_cache_set  sò   € ò	ð 0”˜d¨$Ô/°Ó7ˆä×$Ñ$¨DÕ1°_Ü×!Ñ! (Ô+Ü×#Ñ#¨8Ø+6õ8ô ×#Ñ#¨8Ø,HÜ-2¯\©\×-FÑ-FØ+JõLñ ŒG÷ 2ð 	×Ñœ˜_Ó-¨qÔ1ð ,1¯?©?×+AÑ+AÔ+CóEÙ+C 4ð  $Ÿ|™|×?Ó?Ø+Cð 	ð Eà×ÑÐ,¨u¨gÕ6÷! 2Ð1üòEs   ­A%DÃDÄDc                 óö   — d„ }| j                  |d«      }t        «       5 }|j                  «        d d d «       j                  «       j	                  «       D ]  }| j                  d|«       Œ y # 1 sw Y   Œ?xY w)Nc                  óž   — t        j                  d«      } t        j                  dd«      | dd t        d| d   «       t        d| d   «       | S )Nrú   r   rH  rÜ   rW  za[3]:rý   )r°   r$  ræ  Úprintre  s    rV   rØ   zITestParforsMisc.test_statement_reordering_respects_aliasing.<locals>.impl0  sE   € Ü—‘˜“ˆAÜ—Y‘Y˜q !“_ˆAˆa�ˆFÜ�'˜1˜Q™4Ô Ü�'˜1˜Q™4Ô ØˆHrX   r|   z	a[3]: 2.0)r—   r4   r½   Úgetvaluer(  rÀ   )rS   rØ   rç   ÚstdoutÚlines        rV   Ú+test_statement_reordering_respects_aliasingz;TestParforsMisc.test_statement_reordering_respects_aliasing/  sg   € ò	ð ×$Ñ$ T¨2Ó.ˆÜÔ &Ø×ÑÔ÷ à—O‘OÓ%×0Ñ0Ö2ˆDØ×Ñ˜[¨$Õ/ñ 3÷ Ðús    A/Á/A8c                 óÞ  — d„ }t        j                  t         j                  dg«      } t        d¬«      |«      }t        j
                  j                  j                  }	 dt        j
                  j                  _        t         j                  j                   ||«       ||«      «       |t        j
                  j                  _        y # |t        j
                  j                  _        w xY w)Nc                 ó,   — t        j                  | «      S rZ   )r°   ÚisinfrÇ  s    rV   rí  z;TestParforsMisc.test_parfor_ufunc_typing.<locals>.test_impl>  s   € Ü—8‘8˜A“;ÐrX   ræ  Tr“   )
r°   re  r  r   rŸ   r�  r‘  Úsequential_parfor_loweringr¾   Úassert_array_equal)rS   rí  ri  r¥   Úold_seq_flags        rV   Útest_parfor_ufunc_typingz(TestParforsMisc.test_parfor_ufunc_typing=  s¡   € ò	ô �H‰H”b—f‘f˜c�]Ó#ˆØ#”˜dÔ# IÓ.ˆä—}‘}×+Ñ+×FÑFˆð	KØ>BŒE�M‰M× Ñ Ô;Ü�J‰J×)Ñ)©)°A«,¹¸a»ÔAð ?KŒE�M‰M× Ñ Õ;ø¸lŒE�M‰M× Ñ Õ;ús   Á AC Ã!C,c                 óB   — d„ }| j                  t        |d«      d«       y )Nc                  ó¶   — d} g d¢}t         j                  j                  j                  «        |}t        j                  d«      D ]
  }| ||   z  } Œ | |d   z   S )Nr   r‡  r€   rí   )rŸ   r�  r‘  Úinit_pranger   )Úresr£  Údummyr÷   s       rV   rí  z6TestParforsMisc.test_init_block_dce.<locals>.test_implN  sT   € ØˆCÚˆCÜ�M‰M× Ñ ×,Ñ,Ô.ØˆEÜ—\‘\ !–_�Ø�s˜1‘v‘‘ð %à˜˜q™‘>Ð!rX   r|   r   )rÀ   r´  rû  s     rV   Útest_init_block_dcez#TestParforsMisc.test_init_block_dceL  s!   € ò	"ð 	×ÑÔ,¨Y¸Ó;¸QÕ?rX   c                 ó,   — d„ }| j                  |«       y )Nc                  ó`   — d} t        d«      D ]  }| dz  } Œ	 t        j                  | f«      }|S )Nr   rÿ   rÜ   ©ró   r°   r$  )r™  rJ   r  s      rV   rí  zBTestParforsMisc.test_alias_analysis_for_parfor1.<locals>.test_implZ  s5   € ØˆCÜ˜1–X�Ø�q‘‘ð ô —8‘8˜S˜FÓ#ˆDØˆKrX   rú  rû  s     rV   Útest_alias_analysis_for_parfor1z/TestParforsMisc.test_alias_analysis_for_parfor1Y  s   € ò	ð 	�
‰
�9ÕrX   c                 ó"  ‡‡— dŠt        dd¬«       G ˆfd„dt        «      «       Š G ˆfd„dt        «      }t        d|¬	«      d
„ «       }| j	                  t
        j                  j                  j                  «       | j                  t        j                  «      5 } |«        d d d «       | j                  ‰t        j                  «      «       | j	                  t
        j                  j                  j                  «       y # 1 sw Y   ŒbxY w)NÚ
BROKEN_MSGTF)Úmutates_CFGÚanalysis_onlyc                   ó"   •— e Zd ZdZd„ Zˆ fd„Zy)úVTestParforsMisc.test_no_state_change_in_gufunc_lowering_on_error.<locals>.BreakParforsÚbreak_parforsc                 ó.   — t        j                  | «       y rZ   )r1   rÞ  r\   s    rV   rÞ  z_TestParforsMisc.test_no_state_change_in_gufunc_lowering_on_error.<locals>.BreakParfors.__init__o  s   € Ü×%Ñ% dÕ+rX   c                 ó  •— |j                   j                  j                  «       D ]`  }|j                  D ]N  }t	        |t
        j                  j                  j                  «      sŒ2 G ˆfd„dt        «      } |«       |_
        ŒP  y y )Nc                   ó   •— e Zd Zˆ fd„Zy)úoTestParforsMisc.test_no_state_change_in_gufunc_lowering_on_error.<locals>.BreakParfors.run_pass.<locals>.Brokenc                 ó.   •— t        j                  ‰«      ‚rZ   )r   ÚLoweringError)rS   ÚotherrÞ  s     €rV   Ú
differencezzTestParforsMisc.test_no_state_change_in_gufunc_lowering_on_error.<locals>.BreakParfors.run_pass.<locals>.Broken.difference~  s   ø€ Ü*0×*>Ñ*>¸zÓ*JÐ$JrX   N)rw   rN   rx   rë  ©rÞ  s   €rV   ÚBrokenrç  |  s	   ø„ õ!KrX   rí  T)rw  rš  r¿  r¨  r¯   rŸ   r�  r‘  r©  r¸   Úraces)rS   r‡  ÚblkrÐ  rí  rÞ  s        €rV   Úrun_passz_TestParforsMisc.test_no_state_change_in_gufunc_lowering_on_error.<locals>.BreakParfors.run_passr  sf   ø€ Ø Ÿ=™=×/Ñ/×6Ñ6Ö8�CØ #§¤˜Ü% d¬E¯M©M×,@Ñ,@×,GÑ,GÕHöK¬ô Kñ
 *0«˜D�Jð !)ñ  ñ 9rX   N)rw   rN   rx   Ú_namerÞ  rð  rì  s   €rV   ÚBreakParforsrâ  k  s   ø„ à#ˆEò,õ rX   rò  c                   ó   •— e Zd Zˆ fd„Zy)ú^TestParforsMisc.test_no_state_change_in_gufunc_lowering_on_error.<locals>.BreakParforsCompilerc                 ó”   •— t        j                  | j                  «      }|j                  ‰t        «       |j                  «        |gS rZ   )r/   Údefine_nopython_pipeliner‡  Úadd_pass_afterr2   Úfinalize)rS   Úpmrò  s     €rV   Údefine_pipelineszoTestParforsMisc.test_no_state_change_in_gufunc_lowering_on_error.<locals>.BreakParforsCompiler.define_pipelines‡  s7   ø€ Ü'×@Ñ@ÀÇÁÓL�Ø×!Ñ! ,´Ô?Ø—‘”Ø�t�rX   N)rw   rN   rx   rú  )rò  s   €rV   ÚBreakParforsCompilerrô  …  s   ø„ õrX   rû  )r”   Úpipeline_classc                  ó4   — d} t        d«      D ]  }| dz  } Œ	 | S r  r¢  )r£   rJ   s     rV   ÚfoozMTestParforsMisc.test_no_state_change_in_gufunc_lowering_on_error.<locals>.fooŽ  s#   € àˆAÜ˜A–Y�Ø�Q‘‘ð àˆHrX   )r0   r1   r.   r   ÚassertFalserŸ   r�  r‘  rÏ  rð  r   ré  rä   r  rò  )rS   rû  rþ  rô  rÞ  rò  s       @@rV   Ú0test_no_state_change_in_gufunc_lowering_on_errorz@TestParforsMisc.test_no_state_change_in_gufunc_lowering_on_errord  s×   ù€ ð
 "ˆ
ä	 4°uÔ	=ö	 œ<ó 	 ó 
>ð	 ö2	¤<ô 	ô 
�tÐ,@Ô	Añ	ó 
Bð	ð 	×ÑœŸ™×-Ñ-×HÑHÔIà×Ñœv×3Ñ3Ô4¸ÙŒE÷ 5ð 	�‰�j¤# f×&6Ñ&6Ó"7Ô8ð 	×ÑœŸ™×-Ñ-×HÑHÕI÷ 5Ð4ús   ÂDÄDc                 óÔ  ‡‡	—  G d„ dt         j                  «      } |d«      Š	 t        |«      t        j                  «        G d„ dt
        «      }t        j                  |«      ˆ	fd„«       }t        |«      d„ «       }t        |dd	d
i¬«      d„ «       }t        d„ «       Št        ˆfd„«       }t        j                  j                  j                  }| j                  |«       	  | |«       «       | j                  t        j                  j                  j                  «       |t        j                  j                  _        y # |t        j                  j                  _        w xY w)Nc                   ó   — e Zd Zy)ú2TestParforsMisc.test_issue_5098.<locals>.DummyTypeN©rw   rN   rx   r|   rX   rV   Ú	DummyTyper  ¡  ó   „ ØrX   r  Úmy_dummyc                   ó   — e Zd Zy)ú.TestParforsMisc.test_issue_5098.<locals>.DummyNr  r|   rX   rV   ÚDummyr	  §  r  rX   r
  c                 ó   •— ‰S rZ   r|   )ÚvalrÒ  Ú
dummy_types     €rV   Útypeof_Dummyz5TestParforsMisc.test_issue_5098.<locals>.typeof_Dummyª  s	   ø€ àÐrX   c                 óH   — t        |j                  j                  «       «      S rZ   )r"   ÚcontextÚget_dummy_value)ÚtypÚobjrÒ  s      rV   Úunbox_indexz4TestParforsMisc.test_issue_5098.<locals>.unbox_index®  s   € ä˜qŸy™y×8Ñ8Ó:Ó;Ð;rX   Úmethod1r”   T)Újit_optionsc                 ó   — d„ }|S )Nc                 óþ   — d„ }t        |«      }t        j                  |t        j                  ¬«      }t	        |«      D ]  } |||   |«      ||<   Œ t	        |dz
  «      D ]  }||xx    |||   |«      z  cc<   Œ |S )Nc                 ó~   — | j                  «       }t        j                  |t        j                  | «      <    ||«      S rZ   )r³   r°   r  rÎ  )r‡   ÚfrÒ  s      rV   ÚbazzPTestParforsMisc.test_issue_5098.<locals>._get_method1.<locals>._foo.<locals>.bazµ  s+   € ØŸ™›�AÜ%'§V¡V�A”b—h‘h˜q“k‘NÙ˜Q›4�KrX   r
  rÜ   r²  )r  r£  rŽ   r  ÚlengthÚ
output_arrr÷   s          rV   Ú_foozCTestParforsMisc.test_issue_5098.<locals>._get_method1.<locals>._foo´  sz   € ò ô
 ˜S›�ÜŸX™X f´B·J±JÔ?�
Ü ž�AÙ$'¨¨A©°Ó$5�J˜q’Mð (ä ¨¡
Ö+�AØ˜q“M¡S¨¨Q©°Ó%6Ñ6”Mð ,à!Ð!rX   r|   )r  r£  rŽ   r  s       rV   Ú_get_method1z5TestParforsMisc.test_issue_5098.<locals>._get_method1²  s   € ò"ð ˆKrX   c                 ó"   — | j                  «       S rZ   rÅ  )rÕ  s    rV   Úbarz,TestParforsMisc.test_issue_5098.<locals>.barÃ  s   € à—6‘6“8ˆOrX   c                 óZ   •— | j                  t        j                  g d¢g d¢g«      ‰«      S )N©rF  r  rä  )rå  r5  r6  )r  r°   re  )r¸  r!  s    €rV   Útest1z.TestParforsMisc.test_issue_5098.<locals>.test1Ç  s"   ø€ à—9‘9œRŸX™X¢ºÐ&HÓIÈ3ÓOÐOrX   )r   ÚOpaquer   r#   ÚOpaqueModelÚobjectr    Úregisterr!   r   r   rŸ   r�  r‘  rÏ  rÿ  )
rS   r  r
  r  r  r  r$  Ú
save_stater!  r  s
           @@rV   Útest_issue_5098zTestParforsMisc.test_issue_5098   s?  ù€ ô	œŸ™ô 	ñ ˜zÓ*ˆ
Ø!Œ�yÓ!¤&×"4Ñ"4Ô5ô	”Fô 	ô 
×	Ñ	˜eÓ	$ó	ó 
%ð	ô 
ˆyÓ	ñ	<ó 
ð	<ô 
˜ I¸JÀtÐ;LÔ	Mñ	ó 
Nð	ô  
ñ	ó 
ð	ô 
ó	Pó 
ð	Pô —]‘]×)Ñ)×DÑDˆ
Ø×Ñ˜Ô$ð	IÙ‘%“'ŒNØ×ÑœUŸ]™]×1Ñ1×LÑLÔMð ?IŒE�M‰M× Ñ Õ;ø¸jŒE�M‰M× Ñ Õ;ús   Ã&A E Å!E'c                 óT  — t        d¬«      d„ «       }t        dd«      5  | j                  t        j                  «      5 } |d«       d d d «       d d d «       t        j                  «      }| j                  d|«       | j                  d|«       y # 1 sw Y   ŒKxY w# 1 sw Y   ŒOxY w)	NTr“   c                 ó>   — d}d}t        d«      D ]
  }|||    z  }Œ |S )N)rÜ   rí   rý   rÿ   r   rú   r¢  )ÚidxÚbig_tupr2  r£   s       rV   Úoversize_tuplezMTestParforsMisc.test_oversized_tuple_as_arg_to_kernel.<locals>.oversize_tuple×  s-   € àˆGØˆAÜ˜B–Z�Ø�W˜S‘\Ñ!‘ð  àˆHrX   ÚNUMBA_PARFOR_MAX_TUPLE_SIZEÚ3r   zUse of a tuplezin a parallel region)r   r6   rð  r   rU  r  rò  rä   )rS   r/  rô  Úerrstrs       rV   Ú%test_oversized_tuple_as_arg_to_kernelz5TestParforsMisc.test_oversized_tuple_as_arg_to_kernelÕ  s”   € ä	�tÔ	ñ	ó 
ð	ô !Ð!>ÀÕDØ×"Ñ"¤6×#AÑ#AÔBÀfÙ˜qÔ!÷ C÷ Eô �V×%Ñ%Ó&ˆØ�‰Ð&¨Ô/Ø�‰Ð,¨fÕ5÷ CÐBú÷ EÐDús"   Ÿ B¿	BÁBÂB	ÂBÂB'c                 ó¼   — d„ }d}t         j                  j                  dd|¬«      }t         j                  j                  dd|¬«      }| j                  |||«       y )Nc                 ó  — d}t        j                  | j                  || j                  ¬«      }| j                  }t	        |d   «      D ]9  }t	        |d   «      D ]&  }| ||f   |||f   z
  | ||f   |||f   z   z  |||f<   Œ( Œ; |S ©Nr   r
  rÜ   )r°   Úfullrd  r  r   )Úimg_nirÚimg_redÚ	fillvalueÚout_imgÚdimsrQ  r£   s          rV   Ú	ndvi_njitz1TestParforsMisc.test_issue5167.<locals>.ndvi_njité  s•   € ØˆIÜ—g‘g˜gŸm™m¨Y¸g¿m¹mÔLˆGØ—=‘=ˆDÜ˜D ™G–_�Ü  Q¡ž�AØ&-¨a°¨d¡m°g¸aÀ¸d±mÑ&CØ&-¨a°¨d¡m°g¸aÀ¸d±mÑ&Cñ&E�G˜A˜q˜D’Mñ )ð %ð ˆNrX   )rÿ   rÿ   rF  g     ˆÃ@)Úlowrç  rÊ  )r°   rr  ÚuniformrÔ   )rS   r=  Ú
tile_shapeÚarray1Úarray2s        rV   Útest_issue5167zTestParforsMisc.test_issue5167ç  sT   € ò	ð ˆ
Ü—‘×"Ñ" s°¸zÐ"ÓJˆÜ—‘×"Ñ" s°¸zÐ"ÓJˆØ�
‰
�9˜f fÕ-rX   c                 ó"  — d„ }t         d„ «       }t        j                  j                  d¬«      }  t        d¬«      |«      |j                  «       |d«      } ||j                  «       |d«      }t        j                  j                  ||«       y )Nc                 ó@  — t        j                  | j                  d   | j                  d   ft         j                  ¬«      }t	        | j                  d   «      D ]A  }t        |dz   | j                  d   «      D ]   } || |   | |   g|¢­Ž }||||f<   ||||f<   Œ" ŒC |S r6  )r°   r$  rd  r·  r   ró   )r‡   rr  Ú	dist_argsrò  r÷   rq  r¸  s          rV   Ú
reproducerz2TestParforsMisc.test_issue5065.<locals>.reproducerú  s™   € Ü—X‘X˜qŸw™w q™z¨1¯7©7°1©:Ð6¼b¿j¹jÔIˆFÜ˜AŸG™G A™JÖ'�Ü˜q 1™u a§g¡g¨a¡jÖ1�AÙ˜Q˜q™T 1 Q¡4Ð4¨)Ò4�AØ#$�F˜1˜a˜4‘LØ#$�F˜1˜a˜4’Lñ 2ð (ð
 ˆMrX   c                 óŒ   — d}t        | j                  d   «      D ]  }|| |   ||   z
  dz  z  }Œ t        j                  |«      S )Nræ  r   rí   )ró   rd  r°   rH  )r£   rQ  rò  r÷   s       rV   Ú	euclideanz1TestParforsMisc.test_issue5065.<locals>.euclidean  sG   € àˆFÜ˜1Ÿ7™7 1™:Ö&�Ø˜1˜Q™4 ! A¡$™;¨1Ñ,Ñ,‘ð 'ä—7‘7˜6“?Ð"rX   )r€   rí   rÉ  Tr“   r|   )r   r°   rr  r³   r¾   rð  )rS   rG  rI  r‡   rr  rs  s         rV   Útest_issue5065zTestParforsMisc.test_issue5065ø  s   € ò	ô 
ñ	#ó 
ð	#ô �I‰I×Ñ &ÐÓ)ˆà-Ð!Œd˜DÔ! *Ó-¨a¯f©f«h¸	À"ÓEˆÙ˜aŸf™f›h¨	°"Ó5ˆä
�
‰
×"Ñ" 3¨Õ1rX   c                 ó‚   — d„ }t        j                  d«      t        j                  d«      f}| j                  ||«       y )Nc                 óx   — dgt        | «      z  }t        t        | «      «      D ]  }t        | |   «      ||<   Œ |S r²  )rÂ   r   )Úmyarrayrò  r÷   s      rV   Útest_numba_parallelz;TestParforsMisc.test_issue5001.<locals>.test_numba_parallel  s;   € Ø�Sœ3˜w›<Ñ'ˆFÜœC ›LÖ)�Ü ¨¡
›O��q’	ð *àˆMrX   rÈ  é2   )r°   rÃ  rÔ   )rS   rN  rM  s      rV   Útest_issue5001zTestParforsMisc.test_issue5001  s2   € ò	ô —8‘8˜C“=¤§¡¨"£Ð.ˆØ�
‰
Ð&¨Õ0rX   c                 ó`   ‡— t         d„ «       Št        d¬«      ˆfd„«       } |dgfdz  «       y )Nc                  ó   — y rZ   r|   )Úgridss    rV   rþ  z+TestParforsMisc.test_issue3169.<locals>.foo  ó   € àrX   Tr“   c                 ó6   •— t        d«      D ]
  } ‰| «       Œ y r  r¢  )rS  r£   rþ  s     €rV   r!  z+TestParforsMisc.test_issue3169.<locals>.bar"  s   ø€ ä˜A–Y�Ù�E•
ñ rX   rÜ   rí   ru  )rS   r!  rþ  s     @rV   Útest_issue3169zTestParforsMisc.test_issue3169  s?   ø€ ä	ñ	ó 
ð	ô 
�tÔ	ó	ó 
ð	ñ
 	ˆaˆSˆF�Q‰J�rX   c                 ó„   ‡— t        dd«      }ˆfd„}t        d¬«      d„ «       Š |dd¬«      }| j                  ||«       y )	NÚmytyper†   c                 óN   •— t        d«      D ]  } ‰|| «       Œ | j                  S r^  )r   r‡   )Úmydatar®   Úinners     €rV   Úouterz-TestParforsMisc.test_issue4846.<locals>.outer/  s$   ø€ Ü˜A–Y�Ù�a˜Õ ð à—8‘8ˆOrX   T)Únogilc                 ó<   — | |j                   f}| |j                  f}y rZ   r†   )r®   rZ  r  rˆ  s       rV   r[  z-TestParforsMisc.test_issue4846.<locals>.inner4  s   € à�F—H‘H�ˆAØ�F—H‘H�‰ArX   r‡   rˆ   )r   r   rÔ   )rS   rX  r\  rZ  r[  s       @rV   Útest_issue4846zTestParforsMisc.test_issue4846*  sK   ø€ ô ˜H jÓ1ˆô	ô
 
�DÔ	ñ	ó 
ð	ñ ˜# Ô%ˆà�
‰
�5˜&Õ!rX   c                 ó,   — d„ }| j                  |«       y )Nc                  óP   — d} d}t        t        | «      «      D ]
  }|| |   z  }Œ |S )Nr‡  r   ©r   rÂ   )r£   r‡   r÷   s      rV   Útest1bz.TestParforsMisc.test_issue3748.<locals>.test1b?  s0   € ØˆAØˆAÜœC ›F–^�Ø�Q�q‘T‘	‘ð $àˆHrX   rú  )rS   rc  s     rV   Útest_issue3748zTestParforsMisc.test_issue3748=  s   € ò	ð 	�
‰
�6ÕrX   c                 ój   — d„ }d}t        j                  |t        ¬«      }| j                  |||«       y )Nc                 ón   — t        | d   «      D ]#  }t        | d   «      D ]  }|dz  |z   ||   |<   Œ Œ% |S )Nr   rÜ   g      @r¢  )rÊ  r£  r£   rQ  s       rV   Úparallel_testz5TestParforsMisc.test_issue5277.<locals>.parallel_testJ  sB   € Ü˜D ™G–_�Ü  Q¡ž�AØ ! C¡¨!¡�C˜‘F˜1’Iñ )ð %ð ˆJrX   r  r
  )r°   r$  rÞ  rÔ   )rS   rg  rÊ  r£  s       rV   Útest_issue5277zTestParforsMisc.test_issue5277H  s.   € ò	ð ˆÜ�h‰h�t¤3Ô'ˆà�
‰
�= $¨Õ,rX   c                 óÖ   — t        d¬«      d„ «       }t        j                  d«      }d}t        j                  d«      }| j                   ||||«      |j	                  |||«      «       y )NTr“   c                 ób   — t        d«      D ]  }t        d«      D ]	  }d|||f<   Œ Œ |r|dz  }|S r  ©r   ró   )rö   ÚmethodrÆ  r÷   rq  s        rV   rþ  z5TestParforsMisc.test_issue5570_ssa_races.<locals>.fooV  s>   € ä˜A–Y�Ü˜qž�AØ !�C˜˜1˜’Iñ "ð ñ Ø�q‘�ØˆJrX   )r€   r€   é9   r)  )r   r°   r$  rn  rå  )rS   rþ  rö   rl  rÆ  s        rV   Útest_issue5570_ssa_racesz(TestParforsMisc.test_issue5570_ssa_racesU  se   € Ü	�tÔ	ñ	ó 
ð	ô �h‰h�u‹oˆØˆÜ�h‰h�vÓˆà×ÑÙ��V˜SÓ!Ø�K‰K˜˜V SÓ)õ	
rX   c                 óò   — t        d¬«      d„ «       }t        j                  j                  d«       t        j                  j                  d«      }| j	                   ||«      |j                  |«      «       y )NTr“   c                 ój   — | }t        dd«      D ]  }||d d …d d …f   }Œ t        j                  «      S )Nr   rú   )ró   r°   r—  )r¡   Úpackager×  Úz_stacks       rV   Úfind_maxima_3D_jitzDTestParforsMisc.test_issue6095_numpy_max.<locals>.find_maxima_3D_jiti  s5   € àˆGÜ˜q "ž�Ø! %ªªA +Ñ.‘ð &ä—6‘6˜'“?Ð"rX   r   )rú   rú   rú   )r   r°   rr  r„  rn  rå  )rS   rs  r¡   s      rV   Útest_issue6095_numpy_maxz(TestParforsMisc.test_issue6095_numpy_maxh  sc   € Ü	�tÔ	ñ	#ó 
ð	#ô 	�	‰	�‰�qÔÜ�y‰y×Ñ Ó-ˆØ×ÑÙ˜tÓ$Ø×&Ñ& tÓ,õ	
rX   c                 óÔ   — d„ }d}d}t        j                  ||ft         j                  ¬«      }t        j                  ||ft         j                  ¬«      }| j                  |||«       y )Nc                 ó†   — | j                   }|d   }t        |«      D ]!  }| |d d …f   ||d d …f<   ||dfxx   dz  cc<   Œ# |S r¦  )rd  r   )ÚggÚgg_nextÚgsr¸  Úi_ggs        rV   rí  z3TestParforsMisc.test_issue5942_1.<locals>.test_implz  sS   € Ø—‘ˆBØ�1‘ˆAÜ˜qž	�Ø$& tªQ w¡K�˜ša˜Ñ Ø˜˜a˜Ó  AÑ%Ô ð "ð ˆNrX   rÿ   rí   r
  )r°   r$  r   rÔ   )rS   rí  r¸  r®   rw  rx  s         rV   Útest_issue5942_1z TestParforsMisc.test_issue5942_1w  sS   € ò	ð ˆØˆä—(‘(˜A˜q˜6¬2¯8©8Ô4ˆÜ—(‘(˜A˜q˜6¬2¯8©8Ô4ˆØ�
‰
�9˜b 'Õ*rX   c                 ó8   — d„ }d}d}| j                  |||«       y )Nc                 ó.  — t        j                  | |ft         j                  ¬«      }t        j                  | |ft         j                  ¬«      }t        | «      D ]8  }t	        |«      D ]	  }||||f<   Œ ||d d …f   ||d d …f<   ||dfxx   dz  cc<   Œ: |S )Nr
  r   rÜ   )r°   r$  r   r   ró   )r¸  r®   rw  rx  rz  rñ   s         rV   rí  z3TestParforsMisc.test_issue5942_2.<locals>.test_implŒ  sŒ   € Ü—h‘h  1˜v¬r¯x©xÔ8ˆBÜ—h‘h  1˜v¬r¯x©xÔ8ˆGä˜qž	�Ü˜qž�AØ"&�B�t˜Q�w’Kð "à$& tªQ w¡K�˜ša˜Ñ Ø˜˜a˜Ó  AÑ%Ô ð	 "ð ˆNrX   rÿ   rí   rú  )rS   rí  r¸  r®   s       rV   Útest_issue5942_2z TestParforsMisc.test_issue5942_2Š  s#   € ò
	ð ˆØˆà�
‰
�9˜a Õ#rX   c                 ó¬   — t        d¬«      d„ «       }t        j                  g d¢g d¢g«      }| j                   ||«      |j	                  |«      «       y )NTr“   c                 ó�  — t        | j                  d   «      D ]ª  }t        j                  }t        j                  g d¢t        j
                  ¬«      }dD ][  }t        j                  j                  | |d d …f   |z   «      }||k  sŒ2|}t        j                  |||gt        j
                  ¬«      }Œ] | |d d …fxx   |z  cc<   Œ¬ | S )Nr   )r   r   r   r
  )rÜ   r   rI   )r   rd  r°   r  re  r·  r<  Únorm)rÑ  r   rr  Útrr÷   Údist_ts         rV   r  z)TestParforsMisc.test_issue6102.<locals>.f¡  sž   € ä˜QŸW™W Q™ZÖ(�Ü—v‘v�Ü—X‘Xši¬r¯z©zÔ:�Û#�AÜŸY™YŸ^™^¨A¨b²!¨e©H°q©LÓ9�FØ “}Ø%˜ÜŸX™X q¨!¨Q i´r·z±zÔB™ð	 $ð
 �"’a�%“˜B‘”ð )ð ˆHrX   )ræ  ræ  ræ  )ræ  ræ  rF  )r   r°   re  rn  rå  )rS   r  rÑ  s      rV   Útest_issue6102zTestParforsMisc.test_issue6102�  sL   € ô 
�tÔ	ñ
	ó 
ð
	ô �H‰H’l¢LÐ1Ó2ˆØ×Ñ¡ !£ a§i¡i°£lÕ3rX   c                 ó,   — d„ }| j                  |«       y )Nc                  óÖ   — d} t        j                  | f«      }t        j                  | dz
  f«      }t        t	        |«      «      D ]   }t        j
                  |||dz    «      ||<   Œ" |S rz  )r°   rì  rÃ  r   rÂ   rg  )rñ   Úna_maskrò  r÷   s       rV   rí  z1TestParforsMisc.test_issue6774.<locals>.test_impl³  s_   € ØˆAÜ—g‘g˜q˜d“mˆGÜ—X‘X˜q 1™u˜hÓ'ˆFÜœC ›KÖ(�ÜŸF™F 7¨1¨Q°©UÐ#3Ó4��q’	ð )àˆMrX   rú  rû  s     rV   Útest_issue6774zTestParforsMisc.test_issue6774±  s   € ò	ð 	�
‰
�9ÕrX   c                 ó,   — d„ }| j                  |«       y )Nc                  óD   — t        j                  t        t        f«      } | S rZ   )r°   r$  Ú_GLOBAL_INT_FOR_TESTING1Ú_GLOBAL_INT_FOR_TESTING2)Úbufs    rV   rí  z9TestParforsMisc.test_issue4963_globals.<locals>.test_impl¾  s   € Ü—(‘(Ô4Ô6NÐOÓPˆCØˆJrX   rú  rû  s     rV   Útest_issue4963_globalsz&TestParforsMisc.test_issue4963_globals½  s   € ò	ð 	�
‰
�9ÕrX   c                 ó>   ‡‡— dŠdŠˆˆfd„}| j                  |«       y )Nr   r€   c                  ó6   •— t        j                  ‰‰f«      } | S rZ   rl  )r�  Ú_FREEVAR_INT_FOR_TESTING1Ú_FREEVAR_INT_FOR_TESTING2s    €€rV   rí  z:TestParforsMisc.test_issue4963_freevars.<locals>.test_implÆ  s   ø€ Ü—(‘(Ð5Ð7PÐQÓRˆCØˆJrX   rú  )rS   rí  r‘  r’  s     @@rV   Útest_issue4963_freevarsz'TestParforsMisc.test_issue4963_freevarsÃ  s"   ù€ Ø$&Ð!Ø$%Ð!õ	ð 	�
‰
�9ÕrX   c                 óà   ‡— ddl m}m}m} t        j
                  d„ «       Št	        j
                  dd¬«      ˆfd„«       }|j                   | ||| ||«      g«      «       ||«      f«       y )Nr   )ÚListTypeÚTuplerw  c                  ó   — y rZ   r|   r!  s    rV   Ú_sinkz>TestParforsMisc.test_issue_9182_recursion_error.<locals>._sinkÎ  rT  rX   FT)r³  r”   c                 óì   •— t        t        |«      «      D ]\  }| D ]U  }|d   }|d   }|dk(  r|d   }n(t        |«      dk(  r|d   |d   }}nt        |«      dk(  r	 |dk(  sŒF ‰«        ‰«       ŒW Œ^ y )Nr   rí   rÜ   rÿ   rb  )	ÚclausesÚnodesÚpiterÚclauseÚclause_typeÚclause_variablesÚclause_var_1Úclause_var_2r˜  s	           €rV   Ú_ground_node_rulezJTestParforsMisc.test_issue_9182_recursion_error.<locals>._ground_node_ruleÓ  s—   ø€ ô
  ¤ E£
Ö+�Û%�FØ"(¨¡)�KØ'-¨a¡yÐ$Ø" aÒ'Ø'7¸Ñ':™ÜÐ-Ó.°!Ò3à,¨QÑ/Ø,¨QÑ/ð '3™ô
 Ð-Ó.°!Ò3Øà" aÓ'Ù˜lÔ+Ù˜lÕ+ñ! &ñ ,rX   )Únumba.typesr•  r–  rw  rŸ   r   Úcompile)rS   r•  r–  rw  r¢  r˜  s        @rV   Útest_issue_9182_recursion_errorz/TestParforsMisc.test_issue_9182_recursion_errorË  sr   ø€ ß5Ñ5ä	�‰ñ	ó 
ð	ô 
�‰˜%¨$Ô	/ó	,ó 
0ð	,ð. 	×!Ñ!á™  d©H°T«NÐ;Ó<Ó=Ù˜“ðõ	
rX   c                 ór   — t        d¬«      d„ «       }| j                   |«       |j                  «       «       y )NTr“   c                  ót   — d} t        d«      D ]'  }t        d«      D ]  }t        d«      D ]  }| dz  } Œ	 Œ Œ) | S r¦  rk  )r™  rñ   r÷   rq  s       rV   rþ  z8TestParforsMisc.test_lookup_cycle_detection.<locals>.fooõ  sC   € ð ˆCÜ˜A–Y�Ü˜qž�AÜ" 1žX˜Ø˜q™™ñ &ñ "ð ð ˆJrX   rä  )rS   rþ  s     rV   Útest_lookup_cycle_detectionz+TestParforsMisc.test_lookup_cycle_detectionò  s5   € ô 
�tÔ	ñ	ó 
ð	ð 	×Ñ™› §¡£Õ.rX   c                 óº   — d„ }d} t        j                  d¬«      |«      } t        j                  d¬«      |«      }| j                   ||«       ||«      «       y )Nc                 óº   — d}t        j                  | «      D ]@  }t        j                  |«      }|di}t        d«      D ]  }||xx   dz  cc<   Œ |||   z  }ŒB |S )Nr   ræ  r€   rÜ   )rŸ   r   rv  ró   )Ú	num_nodesrÆ  Ú
inode_uintÚinodeÚprJ   s         rV   Ú
issue_9678z=TestParforsMisc.test_issue_9678_build_map.<locals>.issue_9678  s`   € ØˆCÜ#Ÿl™l¨9Ö5�
ÜŸ™ JÓ/�Ø˜C�L�Ü˜qž�AØ�e“H ‘M”Hð "à�q˜‘x‘‘ð 6ð ˆJrX   rc  Fr“   T)rŸ   ÚjitrÀ   )rS   r¯  r«  Úissue_9678_serialÚissue_9678_parallels        rV   Útest_issue_9678_build_mapz)TestParforsMisc.test_issue_9678_build_map  sX   € ò	ð ˆ	Ø5œEŸI™I¨uÔ5°jÓAÐØ6œeŸi™i°Ô6°zÓBÐØ×ÑÑ*¨9Ó5Ù,¨YÓ7õ	9rX   N) rw   rN   rx   rC  rÄ  rË  rÒ  rØ  rÜ  r   r*  r3  rC  rJ  rP  rV  r=   r_  rd  rh  rn  rt  r{  r~  r>   r„  rˆ  rŽ  r“  r¥  r¨  r³  r|   rX   rV   r°  r°    s®   „ ñò7ò80òKò@ò	ò:Jòx3Iòj6ò$.ò"2ò2	1òð ñ"ó ð"ò$	ò-ò
ò&
ò+ò&$ð& ñ4ó ð4ò&
òòò%
òN/ó 9rX   r°  c                   ób   — e Zd Zd„ Zd„ Zd„ Z	 	 	 dd„Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestParforsDiagnosticsc                 ó`   —  | j                   |g|¢­Ž \  }} | j                  |||g|¢­i |¤Ž y rZ   rÒ   rÓ   s         rV   rÔ   zTestParforsDiagnostics.check  r	  rX   c                 ól   — | j                  |«      }| j                  |«      }| j                  ||«       y rZ   )Ú_fusion_equivalentrÀ   )rS   rr  rs  r‡   rˆ   s        rV   Úassert_fusion_equivalencez0TestParforsDiagnostics.assert_fusion_equivalence  s2   € Ø×#Ñ# CÓ(ˆØ×#Ñ# HÓ-ˆØ×Ñ˜˜AÕrX   c                 óÔ   — t        t        «      }t        |j                  «       «      }t	        |j                  «       «      D ]  }||   D �cg c]  }||z
  ‘Œ	 c}|||z
  <   Œ  |S c c}w rZ   )r   r¸   r–  ÚkeysÚsorted)rS   ÚthingÚnewÚmin_keyr®   r£   s         rV   r¸  z)TestParforsDiagnostics._fusion_equivalent   sb   € ô œ$ÓˆÜ�e—j‘j“lÓ#ˆÜ˜Ÿ
™
›Ö%ˆAØ5:¸1²XÓ>±X°  G£°XÑ>ˆC��G‘Òð &àˆ
ùò  ?s   ÁA%Nc                 ó*  — |� | j                  ||j                  «       «       |�| j                  ||j                  «       |�| j                  ||j                  «       |�D|j
                  j                  «       }|D ]%  }|D ]  }	|	d   |k(  sŒ Œ d|›d|›�}
t        |
«      ‚ |�+|j                  «       }| j                  |t        |«      «       t        «       5  t        dd«      D ]  }|j                  |«       Œ 	 d d d «       y # 1 sw Y   y xY w)Nr   zReplacement for z was not found. Had rÜ   r€   )rÀ   Úcount_parforsr¹  Úfusion_infoÚnested_fusion_infor”  r¿  rñ  Úhoisted_allocationsrÂ   r4   ró   Údump)rS   r  Úparfors_countrÂ  rÃ  r”  rÄ  Úreplr£   Úreplacedré   Úhoisted_allocss               rV   Úassert_diagnosticsz)TestParforsDiagnostics.assert_diagnostics.  s  € ð Ð$Ø×Ñ˜]¨K×,EÑ,EÓ,GÔHØÐ"Ø×*Ñ*¨;¸×8OÑ8OÔPØÐ)Ø×*Ñ*Ð+=Ø+6×+IÑ+IôKàÐ#Ø×+Ñ+×2Ñ2Ó4ˆDÛ!�Û $�HØ ‘{ aÓ'Ùñ !%ò IJÉ4ÐP�CÜ(¨Ó-Ð-ð "ð Ð*Ø(×<Ñ<Ó>ˆNØ×ÑÐ0´#°nÓ2EÔFô ÕÜ˜1˜a–[�Ø× Ñ  Õ#ñ !÷ ×Ñús   Ã#D	Ä	Dc                 óž   — d„ }| j                  |«       | j                  |d«      }|j                  d   }| j                  |ddddgi¬«       y )	Nc                  ód   — d} t        j                  | «      }t        j                  | «      }||z   S ©Nrú   rn  ©rñ   r‡   rˆ   s      rV   rí  z9TestParforsDiagnostics.test_array_expr.<locals>.test_implL  s*   € ØˆAÜ—‘˜“
ˆAÜ—‘˜“ˆAØ�q‘5ˆLrX   r|   Úparfor_diagnosticsrÜ   rý   rÿ   r€   )rÆ  rÂ  ©rÔ   r—   r—  rÊ  ©rS   rí  r¤   r  s       rV   Útest_array_exprz&TestParforsDiagnostics.test_array_exprK  sX   € ò	ð 	�
‰
�9ÔØ×&Ñ& y°"Ó5ˆØ—o‘oÐ&:Ñ;ˆØ×Ñ ¸1Ø/0°1°a°&¨kð 	 õ 	;rX   c                 ó”   — d„ }| j                  |«       | j                  |d«      }|j                  d   }| j                  |d¬«       y )Nc                  ód   — d} t        j                  | «      }t        | «      D ]
  }|dz  ||<   Œ |S rÍ  ©r°   rÃ  r   )rñ   r‡   r÷   s      rV   rí  z5TestParforsDiagnostics.test_prange.<locals>.test_implY  s4   € ØˆAÜ—‘˜“ˆAÜ˜A–Y�Ø˜2‘v��!’ð àˆHrX   r|   rÏ  rÜ   ©rÆ  rÐ  rÑ  s       rV   Útest_prangez"TestParforsDiagnostics.test_prangeX  sI   € ò	ð 	�
‰
�9ÔØ×&Ñ& y°"Ó5ˆØ—o‘oÐ&:Ñ;ˆØ×Ñ ¸1ÐÕ=rX   c                 óÄ   — d„ }| j                  |«       | j                  |d«      }|j                  d   }| j                  t	        d„ |j
                  D «       «      «       y)zEmake sure original user variable name is used in fusion info
        c                  ó   — d} t        j                  | «      }t        j                  |«      }t        j                  ||z  «      }d}t	        | dz
  «      D ]&  }t	        | dz
  «      D ]  }|||   ||dz      z   z  }Œ Œ( |S )Nrú   r   rí   rÜ   )r°   rì  ÚsinÚcosr   )rñ   r£   r‡   rˆ   r™  r÷   rq  s          rV   rí  z;TestParforsDiagnostics.test_user_varname.<locals>.test_implh  s|   € ØˆAÜ—‘˜“
ˆAÜ—‘�q“	ˆAÜ—‘�q˜1‘u“ˆAØˆCÜ˜A ™E–]�Ü  A¡ž�AØ˜1˜Q™4 ! A¨¡E¡(™?Ñ*‘Cñ 'ð #ð ˆJrX   r|   rÏ  c              3   ó8   K  — | ]  }d |j                   v –— Œ y­w)zslice(0, n, 1)N)r»  )rÔ  rÑ  s     rV   rÖ  z;TestParforsDiagnostics.test_user_varname.<locals>.<genexpr>y  s   è ø€ ÐRÑ7Q°!Ð  A§I¡IÔ-Ñ7Qùs   ‚N)rÔ   r—   r—  r7  ÚanyÚfusion_reportsrÑ  s       rV   Útest_user_varnamez(TestParforsDiagnostics.test_user_varnamee  sY   € ò		ð 	�
‰
�9ÔØ×&Ñ& y°"Ó5ˆØ—o‘oÐ&:Ñ;ˆð 	�‰ÜÑR°{×7QÒ7QÓRÓRõ	TrX   c                 óœ   — d„ }| j                  |«       | j                  |d«      }|j                  d   }| j                  |dddgi¬«       y )Nc                  ó’   — d} t        j                  | | f«      }t        | «      D ]  }t        | «      D ]  }|dz  |z   |||f<   Œ Œ! |S rÍ  rÕ  )rñ   r‡   r÷   rq  s       rV   rí  z<TestParforsDiagnostics.test_nested_prange.<locals>.test_impl|  sQ   € ØˆAÜ—‘˜!˜Q˜Ó ˆAÜ˜A–Y�Ü ž�AØ "™f q™j�A�a˜�d’Gñ #ð ð ˆHrX   r|   rÏ  rí   rÜ   )rÆ  rÃ  rÐ  rÑ  s       rV   Útest_nested_prangez)TestParforsDiagnostics.test_nested_prange{  sV   € ò	ð 	�
‰
�9ÔØ×&Ñ& y°"Ó5ˆØ—o‘oÐ&:Ñ;ˆØ×Ñ ¸1Ø45¸°s°8ð 	 õ 	=rX   c                 ó    — d„ }| j                  |«       | j                  |d«      }|j                  d   }| j                  |dddgidg¬«       y )	Nc                  ó^   — d} t        j                  | «      }t        j                  |«      }|S rÍ  )r°   rì  rh  rÎ  s      rV   rí  zCTestParforsDiagnostics.test_function_replacement.<locals>.test_impl‹  s&   € ØˆAÜ—‘˜“
ˆAÜ—	‘	˜!“ˆAØˆHrX   r|   rÏ  rÜ   rí   rý   )rh  rÄ  )rÆ  rÂ  r”  rÐ  rÑ  s       rV   Útest_function_replacementz0TestParforsDiagnostics.test_function_replacementŠ  s]   € ò	ð 	�
‰
�9ÔØ×&Ñ& y°"Ó5ˆØ—o‘oÐ&:Ñ;ˆØ×Ñ ¸1Ø-.°°¨HØ0CÐ/Eð 	 õ 	GrX   c                 ó”   — d„ }| j                  |«       | j                  |d«      }|j                  d   }| j                  |d¬«       y )Nc                  ón   — d} t        j                  | dz   «      }d}t        | «      D ]
  }|||   z  }Œ |S rV  ©r°   rì  r   ©rñ   r‡   r™  r÷   s       rV   rí  z8TestParforsDiagnostics.test_reduction.<locals>.test_impl™  s=   € ØˆAÜ—‘˜˜A™“ˆAØˆCÜ˜A–Y�Ø�q˜‘t‘‘ð àˆJrX   r|   rÏ  rí   rÖ  rÐ  rÑ  s       rV   r  z%TestParforsDiagnostics.test_reduction˜  óI   € ò	ð 	�
‰
�9ÔØ×&Ñ& y°"Ó5ˆØ—o‘oÐ&:Ñ;ˆØ×Ñ ¸1ÐÕ=rX   c                 ó”   — d„ }| j                  |«       | j                  |d«      }|j                  d   }| j                  |d¬«       y )Nc                  ón   — d} t        j                  | dz   «      }d}t        | «      D ]
  }|||   z
  }Œ |S rV  rè  ré  s       rV   rí  z>TestParforsDiagnostics.test_reduction_binop.<locals>.test_impl§  s=   € ØˆAÜ—‘˜˜A™“ˆAØˆCÜ˜A–Y�Ø˜A˜a™D‘j‘ð àˆJrX   r|   rÏ  rí   rÖ  rÐ  rÑ  s       rV   Útest_reduction_binopz+TestParforsDiagnostics.test_reduction_binop¦  rê  rX   c                 ó”   — d„ }| j                  |«       | j                  |d«      }|j                  d   }| j                  |d¬«       y )Nc                  ó>   — d} t        j                  | «      }d|d d  |S )Nrú   rH  rë  )rñ   r‡   s     rV   rí  z6TestParforsDiagnostics.test_setitem.<locals>.test_implµ  s"   € ØˆAÜ—‘˜“
ˆAØˆA‰aˆDØˆHrX   r|   rÏ  rÜ   rÖ  rÐ  rÑ  s       rV   Útest_setitemz#TestParforsDiagnostics.test_setitem´  sI   € ò	ð 	�
‰
�9ÔØ×&Ñ& y°"Ó5ˆØ—o‘oÐ&:Ñ;ˆØ×Ñ ¸1ÐÕ=rX   c                 ó”   — d„ }| j                  |«       | j                  |d«      }|j                  d   }| j                  |d¬«       y )Nc                  ó˜   — d} d}d}t        | «      D ]5  }t        j                  |f«      }t        |«      D ]  }|||<   Œ	 ||d   z  }Œ7 |S )Nrú   r€   r   rI   )r   r°   r$  ró   )rñ   r-  r™  r÷   Útemprq  s         rV   rí  zBTestParforsDiagnostics.test_allocation_hoisting.<locals>.test_implÁ  sY   € ØˆAØˆAØˆCÜ˜A–Y�Ü—x‘x  “~�Ü˜qž�AØ�D˜’Gð "à�t˜B‘x‘‘ð	 ð
 ˆJrX   r|   rÏ  rÜ   )rÄ  rÐ  rÑ  s       rV   Útest_allocation_hoistingz/TestParforsDiagnostics.test_allocation_hoistingÀ  sI   € ò		ð 	�
‰
�9ÔØ×&Ñ& y°"Ó5ˆØ—o‘oÐ&:Ñ;ˆØ×Ñ ÀÐÕCrX   )NNNNN)rw   rN   rx   rÔ   r¹  r¸  rÊ  rÒ  r×  rß  râ  rå  r  rí  rð  rô  r|   rX   rV   rµ  rµ    sS   „ òMòò
ð =AØ@DØBFó$ò:;ò>òTò,=òGò>ò>ò
>óDrX   rµ  c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestPrangeBasec                 óÌ  — |j                   }t        |j                  «      }|€Qd|j                  v sJ ‚t        |j                  D �cg c]  }|dk7  r|nd‘Œ c}«      }t	        |j
                  «      }�n9|j                  j                  d«      }g }t        j                  |«      D ]I  }	|	j                  dk(  sŒt        |	j                  «      |k(  sŒ,|j                  |	j                  dz   «       ŒK |j                  d«       t        |«      }t        |«      dz
  }
t        j                   dv r	d|
dz  z   }
n,t        j                   dv rnt#        t        j                   «      ‚t%        |j
                  «      }t        |«      t        |«      k  sJ ‚|D ]  }||   }|
||<   Œ t	        |«      }|j'                  ||¬«      }t)        j*                  |t-        «       «      }|S c c}w )z�
        This function does the actual code augmentation to enable the explicit
        testing of `prange` calls in place of `range`.
        ró   r   ÚLOAD_GLOBALrÜ   ))rý   r«  )rý   rc  )rý   rè  )rý   é   ))rý   rú   )Úco_codeÚco_names)Ú__code__r¸   rû  rž   Úbytesrú  r×  ÚdisÚBytecodeÚopnamerB   r±  r²   ÚoffsetrÂ   rC   Ú	PYVERSIONÚNotImplementedErrorÚ	bytearrayÚreplaceÚpytypesÚFunctionTypeÚglobals)rS   r    Úpatch_instanceÚpyfunc_codeÚprange_namesr£   Únew_codeÚ	range_idxÚrange_locationsÚinstrÚ
prange_idxr÷   r-  Úprange_codeÚpfuncs                  rV   Úgenerate_prange_funcz#TestPrangeBase.generate_prange_funcÔ  s×  € ð
 —o‘oˆä˜K×0Ñ0Ó1ˆàÐ!ð ˜k×2Ñ2Ñ2Ð2Ð2Ü Ø+6×+?Ò+?ó"AÙ+? að ()¨G¢|¡!¸Ñ"AØ+?ñ"Aó BˆLä˜[×0Ñ0Ó1ŠHð $×,Ñ,×2Ñ2°7Ó;ˆIØ ˆOäŸ™ kÖ2�Ø—<‘< =Ó0Ü+¨E¯I©IÓ6¸)ÓCØ'×.Ñ.¨u¯|©|¸aÑ/?Õ@ð 3ð
 ×Ñ Ô)Ü  Ó.ˆLÜ˜\Ó*¨QÑ.ˆJÜ�‰Ð"FÑFà *°¡/Ñ2‘
Ü—‘ JÑ.Øä)¬%¯/©/Ó:Ð:Ü  ×!4Ñ!4Ó5ˆHÜ�~Ó&¬#¨oÓ*>Ò>Ð>Ð>ã#�Ø% aÑ(�Ø *�˜’ð $ô ˜X“ˆHð "×)Ñ)°(Ø3?ð *ó Aˆô ×$Ñ$ [´'³)Ó<ˆàˆùòO"As   ÁG!c                 ó\  — |j                  dd«      }|j                  dd«      }|j                  dd«      }| j                  ||«      }t        |D �cg c]  }t        j                  |«      ‘Œ c}«      }	| j                  ||	«      }
t        j                  d¬«      5 }t        j                  d«       | j                  ||	«      }ddd«       |r| j                  ||	«       |r | j                  ||	«      }t        d	|ifi |¤Ž} | j                  ||
g|¢­i |¤Ž S c c}w # 1 sw Y   Œ^xY w)
aÔ
  
        The `prange` tester
        This is a hack. It basically switches out range calls for prange.
        It does this by copying the live code object of a function
        containing 'range' then copying the .co_names and mutating it so
        that 'range' is replaced with 'prange'. It then creates a new code
        object containing the mutation and instantiates a function to contain
        it. At this point three results are created:
        1. The result of calling the original python function.
        2. The result of calling a njit compiled version of the original
            python function.
        3. The result of calling a njit(parallel=True) version of the mutated
           function containing `prange`.
        The three results are then compared and the `prange` based function's
        llvm_ir is inspected to ensure the scheduler code is present.

        Arguments:
         pyfunc - the python function to test
         args - data arguments to pass to the pyfunc under test

        Keyword Arguments:
         patch_instance - iterable containing which instances of `range` to
                          replace. If not present all instance of `range` are
                          replaced.
         scheduler_type - 'signed', 'unsigned' or None, default is None.
                           Supply in cases where the presence of a specific
                           scheduler is to be asserted.
         check_fastmath - if True then a check will be performed to ensure the
                          IR contains instructions labelled with 'fast'
         check_fastmath_result - if True then a check will be performed to
                                 ensure the result of running with fastmath
                                 on matches that of the pyfunc
         Remaining kwargs are passed to np.testing.assert_almost_equal


        Example:
            def foo():
                acc = 0
                for x in range(5):
                    for y in range(10):
                        acc +=1
                return acc

            # calling as
            prange_tester(foo)
            # will test code equivalent to
            # def foo():
            #     acc = 0
            #     for x in prange(5): # <- changed
            #         for y in prange(10): # <- changed
            #             acc +=1
            #     return acc

            # calling as
            prange_tester(foo, patch_instance=[1])
            # will test code equivalent to
            # def foo():
            #     acc = 0
            #     for x in range(5): # <- outer loop (0) unchanged
            #         for y in prange(10): # <- inner loop (1) changed
            #             acc +=1
            #     return acc

        r	  Nr©   FÚcheck_fastmath_resultTr´  r¶  rª   )r¼   r  rž   rŸ   r   rœ   r½  r¾  r¿  r—   rB  rš   r  rÐ   )rS   r    r¡   r¢   r	  r©   r  r  r£   r�   r¥   rÃ  r¤   Ú
fastcpfuncs                 rV   Úprange_testerzTestPrangeBase.prange_tester
  s*  € ðB  Ÿ™Ð$4°dÓ;ˆØŸ™Ð$4°eÓ<ˆØ &§
¡
Ð+BÀEÓ JÐà×)Ñ)¨&°.ÓAˆô ©dÓ3©d¨”U—\‘\ !•_¨dÑ3Ó4ˆØ×!Ñ! &¨#Ó.ˆô ×$Ñ$¨DÕ1°_Ü×!Ñ! (Ô+Ø×*Ñ*¨5°#Ó6ˆF÷ 2ñ
 Ø× Ñ  ¨Ô,ñ !Ø×7Ñ7¸¸sÓCˆJÜÐ+¨ZÐ8ÑC¸FÑCˆFà$ˆ×$Ñ$ V¨U°FÐL¸TÒLÀVÒLØÐùò' 4÷ 2Ð1ús   ÁDÂ(D"Ä"D+N)rw   rN   rx   r  r  r|   rX   rV   rö  rö  Ò  s   „ ò4ól\rX   rö  c                   ó  — 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d„ Zd„ Zd„ Z ej&                  d«      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 d„ Z!d„ Z"d „ Z#d!„ Z$d"„ Z%d#„ Z&d$„ Z'y%)&ÚTestPrangeBasicz Tests Prange c                 ó2   — d„ }| j                  |dd¬«       y )Nc                  ód   — d} t        j                  | «      }t        | «      D ]
  }d|z  ||<   Œ |S )Nrÿ   r  ©r°   r$  ró   rÓ  s      rV   rí  z0TestPrangeBasic.test_prange01.<locals>.test_impln  s4   € ØˆAÜ—‘˜“ˆAÜ˜1–X�Ø˜Q‘w��!’ð àˆHrX   rã   T©r¨   r©   ©r  rû  s     rV   Útest_prange01zTestPrangeBasic.test_prange01m  ó#   € ò	ð 	×Ñ˜9°ZØ*.ð 	õ 	0rX   c                 ó2   — d„ }| j                  |dd¬«       y )Nc                  ór   — d} t        j                  | dz
  «      }t        d| «      D ]  }d|z  ||dz
  <   Œ |S )Nrÿ   rÜ   r  r  rÓ  s      rV   rí  z0TestPrangeBasic.test_prange02.<locals>.test_implx  s>   € ØˆAÜ—‘˜˜Q™“ˆAÜ˜1˜a–[�Ø ™7��!�a‘%’ð !àˆHrX   rã   Tr  r  rû  s     rV   Útest_prange02zTestPrangeBasic.test_prange02w  r   rX   c                 ó2   — d„ }| j                  |dd¬«       y )Nc                  ó4   — d} t        d«      D ]  }| dz  } Œ	 | S ©Nrú   rí   r…  ©r¥  r÷   s     rV   rí  z0TestPrangeBasic.test_prange03.<locals>.test_impl‚  ó#   € ØˆAÜ˜2–Y�Ø�Q‘‘ð àˆHrX   rã   Tr  r  rû  s     rV   Útest_prange03zTestPrangeBasic.test_prange03�  ó#   € ò	ð
 	×Ñ˜9°ZØ*.ð 	õ 	0rX   c                 ó2   — d„ }| j                  |dd¬«       y )Nc                  ó4   — d} t        d«      D ]  }| dz  } Œ	 | S )Nrý   rú   rí   r…  r'  s     rV   rí  z3TestPrangeBasic.test_prange03mul.<locals>.test_impl‹  s#   € ØˆAÜ˜2–Y�Ø�Q‘‘ð àˆHrX   rã   Tr  r  rû  s     rV   Útest_prange03mulz TestPrangeBasic.test_prange03mulŠ  r*  rX   c                 ó2   — d„ }| j                  |dd¬«       y )Nc                  ó4   — d} t        d«      D ]  }| dz  } Œ	 | S )NrÈ  rú   rí   r…  r'  s     rV   rí  z3TestPrangeBasic.test_prange03sub.<locals>.test_impl”  s#   € ØˆAÜ˜2–Y�Ø�Q‘‘ð àˆHrX   rã   Tr  r  rû  s     rV   Útest_prange03subz TestPrangeBasic.test_prange03sub“  r*  rX   c                 ó2   — d„ }| j                  |dd¬«       y )Nc                  ó4   — d} t        d«      D ]  }| dz  } Œ	 | S r&  r…  r'  s     rV   rí  z3TestPrangeBasic.test_prange03div.<locals>.test_impl�  r(  rX   rã   Tr  r  rû  s     rV   Útest_prange03divz TestPrangeBasic.test_prange03divœ  r*  rX   c                 ó2   — d„ }| j                  |dd¬«       y )Nc                  óx   — d} d}t        j                  d«      }t        d«      D ]  }|| k(  r|||<   Œd||<   Œ |S )Nrí   rý   rÿ   r   ©r°   rÃ  ró   ©r‡   rˆ   ri  r÷   s       rV   rí  z0TestPrangeBasic.test_prange04.<locals>.test_impl¦  sG   € ØˆAØˆAÜ—‘˜“ˆAÜ˜1–X�Ø˜’6Ø�A�a’Dà�A�a’Dð	 ð
 ˆHrX   rã   Tr  r  rû  s     rV   Útest_prange04zTestPrangeBasic.test_prange04¥  s#   € ò		ð 	×Ñ˜9°ZØ*.ð 	õ 	0rX   c                 ó2   — d„ }| j                  |dd¬«       y )Nc                  ó’   — d} t        j                  | t         j                  ¬«      }d}t        d| dz
  d«      D ]
  }|||   z  }Œ |S ©Nrÿ   r
  r   rÜ   ©r°   rì  r{  ró   ©rñ   ri  r¥  r÷   s       rV   rí  z0TestPrangeBasic.test_prange05.<locals>.test_impl´  sI   € ØˆAÜ—‘˜¤2§:¡:Ô.ˆAØˆAÜ˜1˜a !™e QÖ'�Ø�Q�q‘T‘	‘ð (àˆHrX   rã   Tr  r  rû  s     rV   Útest_prange05zTestPrangeBasic.test_prange05³  ó#   € ò	ð 	×Ñ˜9°ZØ*.ð 	õ 	0rX   c                 ó2   — d„ }| j                  |dd¬«       y )Nc                  óŒ   — d} t        j                  | t         j                  ¬«      }d}t        ddd«      D ]
  }|||   z  }Œ |S r;  r<  r=  s       rV   rí  z0TestPrangeBasic.test_prange06.<locals>.test_impl¿  sD   € ØˆAÜ—‘˜¤2§:¡:Ô.ˆAØˆAÜ˜1˜a –^�Ø�Q�q‘T‘	‘ð $àˆHrX   rã   Tr  r  rû  s     rV   Útest_prange06zTestPrangeBasic.test_prange06¾  r?  rX   c                 ó2   — d„ }| j                  |dd¬«       y )Nc                  óŠ   — d} t        j                  | t         j                  ¬«      }d}t        | d«      D ]
  }|||   z  }Œ |S r;  r<  r=  s       rV   rí  z0TestPrangeBasic.test_prange07.<locals>.test_implÊ  sB   € ØˆAÜ—‘˜¤2§:¡:Ô.ˆAØˆAÜ˜1˜a–[�Ø�Q�q‘T‘	‘ð !àˆHrX   rã   Tr  r  rû  s     rV   Útest_prange07zTestPrangeBasic.test_prange07É  r?  rX   c                 ó2   — d„ }| j                  |dd¬«       y )Nc                  ó¬   — d} t        j                  | «      }d}t        t        |«      «      D ]#  }t        t        |«      «      D ]
  }|||   z  }Œ Œ% |S rŠ  ©r°   rì  ró   rÂ   ©rñ   ri  r™  r÷   rq  s        rV   rí  z0TestPrangeBasic.test_prange08.<locals>.test_implÕ  sQ   € ØˆAÜ—‘˜“ˆAØˆCÜœ3˜q›6–]�Üœs 1›vž�AØ˜1˜Q™4‘K‘Cñ 'ð #ð ˆJrX   rã   Tr  r  rû  s     rV   Útest_prange08zTestPrangeBasic.test_prange08Ô  ó#   € ò	ð 	×Ñ˜9°ZØ*.ð 	õ 	0rX   c                 ó2   — d„ }| j                  |dd¬«       y )Nc                  óˆ   — d} t        j                  | «      }d}t        d«      D ]  }t        d«      D ]
  }|||   z  }Œ Œ |S rŠ  ©r°   rì  ró   rI  s        rV   rí  z2TestPrangeBasic.test_prange08_1.<locals>.test_implá  sI   € ØˆAÜ—‘˜“ˆAØˆCÜ˜1–X�Ü˜qž�AØ˜1˜Q™4‘K‘Cñ "ð ð ˆJrX   rã   Tr  r  rû  s     rV   Útest_prange08_1zTestPrangeBasic.test_prange08_1à  rK  rX   c                 ó6   — d„ }| j                  |dgdd¬«       y )Nc                  óX   — d} d}t        | «      D ]  }t        | «      D ]  }|dz  }Œ	 Œ |S ©Nrÿ   r   rÜ   r…  )rñ   r™  r÷   rq  s       rV   rí  z0TestPrangeBasic.test_prange09.<locals>.test_implí  s8   € ØˆAØˆCÜ˜1–X�Ü˜qž�AØ˜1‘H‘Cñ "ð ð ˆJrX   rÜ   rã   T©r	  r¨   r©   r  rû  s     rV   Útest_prange09zTestPrangeBasic.test_prange09ì  s(   € ò	ð 	×Ñ˜9°a°SØ*4Ø*.ð 	õ 	0rX   c                 ó6   — d„ }| j                  |dgdd¬«       y )Nc                  óf   — d} d}t        | «      D ]  }d}t        | «      D ]  }|dz  }Œ	 ||z  }Œ  |S rR  r…  )rñ   Úacc2rq  Úacc1r÷   s        rV   rí  z0TestPrangeBasic.test_prange10.<locals>.test_implú  sF   € ØˆAØˆDÜ˜1–X�Ø�Ü˜qž�AØ˜A‘I‘Dð "à˜‘‘ð	 ð
 ˆKrX   r   rã   TrS  r  rû  s     rV   Útest_prange10zTestPrangeBasic.test_prange10ù  s(   € ò	ð 	×Ñ˜9°a°SØ*4Ø*.ð 	õ 	0rX   z1list append is not thread-safe yet (#2391, #2408)c                 ó2   — d„ }| j                  |dd¬«       y )Nc                  óh   — d} t        | «      D �cg c]  }t        j                  |«      ‘Œ c}S c c}w )Nrÿ   )ró   r°   rÚ  )rñ   rq  s     rV   rí  z0TestPrangeBasic.test_prange11.<locals>.test_impl
  s+   € ØˆAÜ',¨Q¤xÓ0¡x !”B—F‘F˜1•I xÑ0Ð0ùÒ0s   �/rã   Tr  r  rû  s     rV   Útest_prange11zTestPrangeBasic.test_prange11  s#   € ò	1ð 	×Ñ˜9°ZØ*.ð 	õ 	0rX   c                 ó2   — d„ }| j                  |dd¬«       y )Nc                  ó|   — d} d}t        j                  |«      }t        t        |«       «      D ]
  }| ||   z  } Œ | S r¿  rH  )r™  rñ   r^  r÷   s       rV   rí  z0TestPrangeBasic.test_prange12.<locals>.test_impl  s?   € ØˆCØˆAÜ—‘˜“
ˆAÜœC ›F˜7–^�Ø�q˜‘t‘‘ð $àˆJrX   rã   Tr  r  rû  s     rV   Útest_prange12zTestPrangeBasic.test_prange12  s#   € ò	ð 	×Ñ˜9°ZØ*.ð 	õ 	0rX   c                 óZ   — d„ }| j                  |t        j                  d«      dd¬«       y )Nc                 ó4   — d}t        | «      D ]  }|dz  }Œ	 |S r¦  r…  r×  s      rV   rí  z0TestPrangeBasic.test_prange13.<locals>.test_impl  s#   € ØˆCÜ˜1–X�Ø�q‘‘ð àˆJrX   rÿ   rã   Tr  )r  r°   r   rû  s     rV   Útest_prange13zTestPrangeBasic.test_prange13  s-   € ò	ð
 	×Ñ˜9¤b§h¡h¨q£kÀ*Ø*.ð 	õ 	0rX   c                 ón   — d„ }| j                  |t        j                  j                  d«      dd¬«       y )Nc                 óR   — d}t        t        | «      «      D ]  }|| |   dz  z  }Œ |S )Nrý   rí   ©ró   rÂ   )ri  r¥  r÷   s      rV   rí  z0TestPrangeBasic.test_prange14.<locals>.test_impl%  s/   € ØˆAÜœ3˜q›6–]�Ø�Q�q‘T˜!‘V‘‘ð #àˆHrX   rÿ   rã   Tr  )r  r°   rr  rs  rû  s     rV   Útest_prange14zTestPrangeBasic.test_prange14$  s3   € ò	ð 	×Ñ˜9¤b§i¡i§n¡n°QÓ&7Ø*4Ø*.ð 	õ 	0rX   c                 ó4   — d„ }| j                  |ddd¬«       y )Nc                 ód   — d}t        | «      D ]  }t        j                  d«      }||d   z  }Œ! |S )Nr   r  r  )ró   r°   rì  )rn  r™  r÷   r£   s       rV   rí  z0TestPrangeBasic.test_prange15.<locals>.test_impl4  s6   € ØˆCÜ˜1–X�Ü—G‘G˜F“O�Ø�q˜‘w‘‘ð ð ˆJrX   r‚  rã   Tr  r  rû  s     rV   Útest_prange15zTestPrangeBasic.test_prange151  s%   € ò	ð 	×Ñ˜9 d¸:Ø*.ð 	õ 	0rX   c                 ó4   — d„ }| j                  |ddd¬«       y )Nc                 ó8   — d}t        |  | «      D ]  }|dz  }Œ	 |S r´  r…  ©rn  r™  r÷   s      rV   rí  z0TestPrangeBasic.test_prange16.<locals>.test_impl?  s'   € ØˆCÜ˜A˜2˜q–\�Ø�q‘‘ð "àˆJrX   r‚  râ   Tr  r  rû  s     rV   Útest_prange16zTestPrangeBasic.test_prange16>  s%   € ò	ð
 	×Ñ˜9 d¸8Ø*.ð 	õ 	0rX   c                 ó4   — d„ }| j                  |ddd¬«       y )Nc                 óh   — d}t        j                  | «      }t        |  | «      D ]
  }|||   z  }Œ |S r²  rN  ©rn  r™  r^  r÷   s       rV   rí  z0TestPrangeBasic.test_prange17.<locals>.test_implH  s8   € ØˆCÜ—‘˜“
ˆAÜ˜A˜2˜q–\�Ø�q˜‘t‘‘ð "àˆJrX   ry  râ   Tr  r  rû  s     rV   Útest_prange17zTestPrangeBasic.test_prange17G  ó%   € ò	ð 	×Ñ˜9 a¸Ø*.ð 	õ 	0rX   c                 ó4   — d„ }| j                  |ddd¬«       y )Nc                 óš   — d}t        j                  | «      }t        |  d«      D ]#  }|||   z  }t        d| «      D ]
  }|||   z  }Œ Œ% |S )Nr   r€   éüÿÿÿrN  )rn  r™  r^  r÷   rq  s        rV   rí  z0TestPrangeBasic.test_prange18.<locals>.test_implR  sW   € ØˆCÜ—‘˜“
ˆAÜ˜A˜2˜q–\�Ø�q˜‘t‘�Ü˜r 1ž�AØ˜1˜Q™4‘K‘Cñ &ð "ð ˆJrX   ry  râ   Tr  r  rû  s     rV   Útest_prange18zTestPrangeBasic.test_prange18Q  ó%   € ò	ð 	×Ñ˜9 a¸Ø*.ð 	õ 	0rX   c                 ó4   — d„ }| j                  |ddd¬«       y )Nc                 óž   — d}| dz   }t        j                  | |f«      }t        |  | «      D ]  }t        | |«      D ]  }||||f   z  }Œ Œ  |S r¿  rN  )rn  r™  ÚMr^  r÷   rq  s         rV   rí  z0TestPrangeBasic.test_prange19.<locals>.test_impl^  s]   € ØˆCØ�A‘ˆAÜ—‘˜˜A˜“ˆAÜ˜A˜2˜q–\�Ü ˜r 1ž�AØ˜1˜Q ˜T™7‘N‘Cñ &ð "ð ˆJrX   ry  râ   Tr  r  rû  s     rV   Útest_prange19zTestPrangeBasic.test_prange19]  rw  rX   c                 ó4   — d„ }| j                  |ddd¬«       y )Nc                 óf   — d}t        j                  | «      }t        d| «      D ]
  }|||   z  }Œ |S )Nr   rI   rN  rp  s       rV   rí  z0TestPrangeBasic.test_prange20.<locals>.test_implj  s6   € ØˆCÜ—‘˜“
ˆAÜ˜2˜q–\�Ø�q˜‘t‘‘ð "àˆJrX   ry  râ   Tr  r  rû  s     rV   Útest_prange20zTestPrangeBasic.test_prange20i  rr  rX   c                 ó4   — d„ }| j                  |ddd¬«       y )Nc                 ó6   — d}t        dd«      D ]  }|dz  }Œ	 |S )Nr   rO  rI   rý   r…  rl  s      rV   rí  z0TestPrangeBasic.test_prange21.<locals>.test_implt  s%   € ØˆCÜ˜2˜r–]�Ø�q‘‘ð #àˆJrX   ry  râ   Tr  r  rû  s     rV   Útest_prange21zTestPrangeBasic.test_prange21s  s%   € ò	ð
 	×Ñ˜9 a¸Ø*.ð 	õ 	0rX   c                 ó4   — d„ }| j                  |ddd¬«       y )Nc                  ó�   — d} d}t        j                  d«      }t        dd«      D ]  }|| k(  r|||<   Œ|dk  rd||<   Œd||<   Œ |S )	Nr   rý   rÿ   rG  rí   rÜ   rI   rH  r6  r7  s       rV   rí  z0TestPrangeBasic.test_prange22.<locals>.test_impl}  sY   € ØˆAØˆAÜ—‘˜“ˆAÜ˜2˜q–\�Ø˜’6Ø�A�a’DØ˜’UØ�A�a’Dà�A�a’Dð "ð ˆHrX   râ   T©r¨   r©   r  r  rû  s     rV   Útest_prange22zTestPrangeBasic.test_prange22|  s&   € ò	ð 	×Ñ˜9°XØ*.Àdð 	õ 	LrX   c                 ól   — d„ }t        j                  d«      d d d…   }| j                  ||ddd¬«       y )Nc                 óB   — t        t        | «      «      D ]  }|| |<   Œ	 | S rZ   re  ©ri  r÷   s     rV   rí  z0TestPrangeBasic.test_prange23.<locals>.test_implŽ  s"   € Üœ3˜q›6–]�Ø��!’ð #àˆHrX   é    rí   rã   Tr„  ©r°   r$  r  ©rS   rí  ri  s      rV   Útest_prange23zTestPrangeBasic.test_prange23Œ  s>   € ò	ô �H‰H�R‹L™˜1˜ÑˆØ×Ñ˜9 a¸
Ø*.Àdð 	õ 	LrX   c                 ól   — d„ }t        j                  d«      d d d…   }| j                  ||ddd¬«       y )Nc                 óF   — t        t        | «       d«      D ]  }|| |<   Œ	 | S r²  re  rˆ  s     rV   rí  z0TestPrangeBasic.test_prange24.<locals>.test_impl˜  s'   € ÜœC ›F˜7 AÖ&�Ø��!’ð 'àˆHrX   r‰  rí   râ   Tr„  rŠ  r‹  s      rV   Útest_prange24zTestPrangeBasic.test_prange24–  s>   € ò	ô �H‰H�R‹L™˜1˜ÑˆØ×Ñ˜9 a¸Ø*.Àdð 	õ 	LrX   c                 ó$  — d„ }t        j                  d«      }| j                  ||dgddd¬«       | j                  |t	        j
                  |«      f«      }|j                  d   }|j                  «       }| j                  t        |«      d«       y )	Nc                 ó¬   — t        | «      }t        |«      D �cg c]  }t        j                  | «      ‘Œ }}t        |«      D ]
  }| |z   ||<   Œ |S c c}w rZ   )rÂ   ró   r°   Ú
zeros_like)ri  rñ   rJ   r�  r÷   s        rV   rí  z0TestPrangeBasic.test_prange25.<locals>.test_impl¡  sQ   € Ü�A“ˆAÜ-2°1¬XÓ6©X¨”2—=‘= Õ#¨XˆCÐ6Ü˜1–X�Ø˜Q™��A’ð àˆJùò 7s   ™Ary  rÜ   rã   T)r	  r¨   r©   r  rÏ  r   )
r°   rì  r  r—   rŸ   r   r—  rÄ  rÀ   rÂ   )rS   rí  ri  r¤   r  rÉ  s         rV   Útest_prange25zTestPrangeBasic.test_prange25   sŠ   € ò	ô �G‰G�E‹NˆØ×Ñ˜9 a¸!¸Ø*4ÀTØ15ð 	ô 	7ð ×&Ñ& y´5·<±<À³?Ð2DÓEˆØ—o‘oÐ&:Ñ;ˆØ$×8Ñ8Ó:ˆØ×Ñœ˜^Ó,¨aÕ0rX   c                 ól   — d„ }t        j                  d«      d d d…   }| j                  ||ddd¬«       y )Nc                 óR   — | d d d…   }t        t        |«      «      D ]  }|||<   Œ	 | S r^  re  )ri  r“  r÷   s      rV   rí  z0TestPrangeBasic.test_prange26.<locals>.test_impl²  s/   € Ø‘#�A�#‘ˆAÜœ3˜q›6–]�Ø��!’ð #àˆHrX   r‰  rí   rã   Tr„  rŠ  r‹  s      rV   Útest_prange26zTestPrangeBasic.test_prange26±  s>   € ò	ô
 �H‰H�R‹L™˜1˜ÑˆØ×Ñ˜9 a¸
Ø*.Àdð 	õ 	LrX   c           	      óŒ   — d„ }| j                  |t        j                  d«      t        j                  g d¢«      ddgdd¬«       y )	Nc                 óŒ   — t        |d   dz
  «      D ]0  }t        d«      D ]   }t        j                  | |dz
  |dz    «      }Œ" Œ2 yrì   )ró   r°   Úabs)r‡   rˆ   rÒ  rq  r®   r2  s         rV   rí  z0TestPrangeBasic.test_prange27.<locals>.test_impl½  sG   € Ü˜1˜Q™4 ™6–]�Ü˜qž�AÜŸ™˜q  1¡ Q q¡S˜zÓ*‘Añ "ð #ð rX   r'  )
rÿ   rÿ   rÿ   rÿ   rÿ   rÿ   rÿ   rÿ   rÿ   rÿ   r   rÜ   rã   TrS  )r  r°   ræ  Úasarrayrû  s     rV   Útest_prange27zTestPrangeBasic.test_prange27»  sD   € ò	ð 	×Ñ˜9ÜŸ9™9 R›=ÜŸ:™:Ò&;Ó<ØØ+,¨#Ø*4Ø*.ð 	õ 	0rX   c           	      óÎ   — d„ }t        j                  ddgddgddgddgddgddgg«      }t        j                  ddgddgddgdd	gd	d
gg«      }| j                  |||ddd¬«       y )Nc                 óÐ   — t        j                  t        |«      «      }t        dt        |«      «      D ]/  }||df   }||df   }| |   }| |   }||z
  }|d   |d   z   }	|	||<   Œ1 |S r¦  )r°   r$  rÂ   ró   )
r£   rQ  rÆ  r-  Úi0rÖ  ÚPt1ÚPt2rÕ  Úvl2s
             rV   rí  z0TestPrangeBasic.test_prange28.<locals>.test_implÎ  s   € Ü—(‘(œ3˜q›6Ó"ˆCÜ˜Q¤ A£Ö'�Ø�s˜A�v‘Y�Ø�s˜A�v‘Y�Ø˜‘e�Ø˜‘e�Ø˜#‘I�Ø˜‘d˜Q˜q™T‘k�Ø��C’ð (ð ˆJrX   ç      ð¿rF  ræ  r   rÜ   rí   rý   rÿ   r€   rã   Tr„  )r°   re  r  r:  s       rV   Útest_prange28zTestPrangeBasic.test_prange28Ì  sŸ   € ò
	ô �H‰H�s˜C�jØ˜R�jØ˜R�jØ˜C�jØ˜R�jØ˜R�jð"ó #ˆô �H‰H�q˜!�fØ˜!�fØ˜!�fØ˜!�fØ˜!�fð	ó ˆð 	×Ñ˜9 a¨¸:Ø*.Àdð 	õ 	LrX   c                 óR   — d„ }| j                  |d«       | j                  |d«       y )Nc                 óf   — d}| rt        d«      D ]  }|dz  }Œ	 |S t        d«      D ]  }|dz  }Œ	 |S )Nr   rÜ   rý   r…  )rÆ  rò  r÷   s      rV   rí  z0TestPrangeBasic.test_prange29.<locals>.test_implì  sF   € ØˆFÙÜ˜qž�AØ˜a‘K‘Fð "ð
 ˆMô ˜qž�AØ˜a‘K‘Fð "àˆMrX   TFr  rû  s     rV   Útest_prange29zTestPrangeBasic.test_prange29ê  s)   € ò	ð 	×Ñ˜9 dÔ+Ø×Ñ˜9 eÕ,rX   c                 ó´   — d„ }t        j                  t        j                  ddd«      «      }t        j                  g d¢«      }| j                  |||d«       y )Nc                 ó  — |j                   d   }t        | «      }t        j                  ||ft        j                  ¬«      }t        | «      |z   dz
  |z  }t        |«      D ]#  }||z  }|dz   |z  }	| ||	 |d d  z  |d d …||	…f<   Œ% |S r6  )rd  rÂ   r°   r$  r{  ró   )
r£   ÚparÚ
numthreadsÚn_parÚn_xrò  Úchunklenr÷   r½  r¾  s
             rV   rí  z0TestPrangeBasic.test_prange30.<locals>.test_implû  s–   € Ø—I‘I˜a‘LˆEÜ�a“&ˆCÜ—X‘X˜u c˜l´"·*±*Ô=ˆFÜ˜A› Ñ+¨aÑ/°JÑ>ˆHä˜:Ö&�Ø˜H™�Ø˜A™ Ñ)�Ø()¨%°¨¸¹A¸Ñ(>�’q˜% ˜*�}Ò%ð 'ð
 ˆMrX   r   rû   rF  r#  rí   )r°   re  ræ  r  )rS   rí  r£   r©  s       rV   Útest_prange30zTestPrangeBasic.test_prange30ù  sF   € ò	ô �H‰H”R—Y‘Y˜q ! SÓ)Ó*ˆÜ�h‰h’Ó'ˆà×Ñ˜9 a¨¨aÕ0rX   N)(rw   rN   rx   rC  r  r#  r)  r-  r0  r3  r8  r>  rB  rE  rJ  rO  rT  rY  rW  Úskipr\  r_  rb  rf  ri  rm  rq  rv  r{  r~  r�  r…  rŒ  r�  r“  r–  r›  r£  r¦  r®  r|   rX   rV   r  r  i  sÐ   „ áò0ò0ò0ò0ò0ò0ò0ò	0ò	0ò	0ò
0ò
0ò0ò0ð €X‡]�]ÐFÓGñ0ó Hð0ò	0ò0ò0ò
0ò0ò0ò
0ò
0ò0ò0òLò LòLò1ò"Lò0ò"Lò<-ó1rX   r  c                 ó
   — | |fS rZ   r|   r†   s     rV   Útest_call_hoisting_outcallr±    s   € àˆqˆ6€MrX   c                   óð   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zed„ «       Z	d„ Z
d„ Z ej                  d	«      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d„ Zd„ Zd„ Zd„ Zd„ Zd„ Z e!d„ «       Z"y)ÚTestPrangeSpecificz4 Tests specific features/problems found under prangec                 ó.   — d„ }| j                  |d«       y )Nc                 óJ   — d}t        | «      D ]  }|dz  }|dkD  sŒ|dz  }Œ |S ©Nr   rÜ   rú   r…  ©rñ   rÒ  r÷   s      rV   rí  zRTestPrangeSpecific.test_prange_two_instances_same_reduction_var.<locals>.test_impl  ó5   € ØˆAÜ˜1–X�Ø�Q‘�Ø�r“6Ø˜‘F‘Að ð ˆHrX   ry  r  rû  s     rV   Ú,test_prange_two_instances_same_reduction_varz?TestPrangeSpecific.test_prange_two_instances_same_reduction_var  s   € ò	ð 	×Ñ˜9 aÕ(rX   c                 óä   — d„ }| j                  t        j                  «      5 }| j                  |d«       d d d «       d}| j	                  |t        j                  «      «       y # 1 sw Y   Œ1xY w)Nc                 óJ   — d}t        | «      D ]  }|dz  }|dkD  sŒ|dz  }Œ |S r¶  r…  r·  s      rV   rí  zKTestPrangeSpecific.test_prange_conflicting_reduction_ops.<locals>.test_impl#  r¸  rX   ry  zBReduction variable c has multiple conflicting reduction operators.)rð  r   ÚUnsupportedErrorr  rä   r  rò  ©rS   rí  rô  ré   s       rV   Ú%test_prange_conflicting_reduction_opsz8TestPrangeSpecific.test_prange_conflicting_reduction_ops"  s]   € ò	ð ×Ñœv×6Ñ6Ô7¸6Ø×Ñ˜y¨!Ô,÷ 8ðˆà�‰�cœ3˜v×/Ñ/Ó0Õ1÷	 8Ð7úó   £A&Á&A/c                 ó,   — d„ }| j                  |«       y )Nc                  óˆ   — dx} }t        d«      D ]-  }|dk(  r| dz  } Œt        j                  d«      }|d   sŒ)|dz  }Œ/ | |fS )Nr   rÜ   rí   r  r  rÛ  )ri  r“  r®   r£   s       rV   rí  zLTestPrangeSpecific.test_prange_two_conditional_reductions.<locals>.test_impl3  sR   € ØˆIˆA�Ü˜1–X�Ø˜’6Ø˜‘F‘AäŸ™ Ó(�AØ˜“wØ˜Q™™ð ð �a�4ˆKrX   r  rû  s     rV   Ú&test_prange_two_conditional_reductionsz9TestPrangeSpecific.test_prange_two_conditional_reductions1  s   € ò		ð 	×Ñ˜9Õ%rX   c                 ó,   — d„ }| j                  |«       y )Nc                  ó`   — d} t        d«      D ]  }t        d«      D ]  }|dk(  sŒ	| dz  } Œ Œ | S r¦  r…  )ri  r®   r÷   s      rV   rí  zCTestPrangeSpecific.test_prange_nested_reduction1.<locals>.test_impl@  s:   € ØˆAÜ˜1–X�Ü˜qž�AØ˜A“vØ˜Q™™ñ "ð ð ˆHrX   r  rû  s     rV   Útest_prange_nested_reduction1z0TestPrangeSpecific.test_prange_nested_reduction1?  s   € ò	ð 	×Ñ˜9Õ%rX   c                 ó²  — d„ }| j                  t        «      5 } |«        d d d «       | j                  |d «      }| j                  |d«      }| j	                  |d«      }| j                  t        «      5 }|j                  «        d d d «       |j                  «       }| j                  |d   t        j                  «       y # 1 sw Y   Œ¡xY w# 1 sw Y   ŒIxY w)Nc                  ód   — d} t        j                  | «      }t        | «      D ]
  }d|z  ||<   Œ |S )Nr‰  rÜ   r  rÓ  s      rV   rí  z<TestPrangeSpecific.test_check_error_model.<locals>.test_implK  s4   € ØˆAÜ—‘˜“ˆAÜ˜1–X�Ø˜1‘u��!’ð àˆHrX   r|   r   )	rð  ÚZeroDivisionErrorr  r—   rš   r½   rÀ   r°   r  )rS   rí  rô  r  ÚpcresÚpfcresrò  s          rV   Útest_check_error_modelz)TestPrangeSpecific.test_check_error_modelI  sº   € ò	ð ×ÑÔ0Ô1°VÙŒK÷ 2ð ×)Ñ)¨)°TÓ:ˆØ×%Ñ% e¨RÓ0ˆØ×/Ñ/°°rÓ:ˆð ×ÑÔ0Ô1°VØ×ÑÔ÷ 2ð ×#Ñ#Ó%ˆØ×Ñ˜ ™¤B§F¡FÕ+÷ 2Ð1ú÷ 2Ð1ús   ™CÁ4CÃC
ÃCc                 óÚ  — d„ }t        j                  d«      j                  dd«      }| j                  ||ddd¬«       | j	                  |d «      }t        t        j                  |«      g«      }| j                  ||«      }| j                  |«      }|j                  «       D ]F  \  }}|j                  «       D ].  }	d|	v sŒ||	v sŒ| j                  |	j                  d	«      d
«        ŒF ŒH y )Nc                 óL   — t        t        | «      «      D ]  }| |   }d|d d  Œ | S r  re  )ri  r÷   r“  s      rV   rí  z?TestPrangeSpecific.test_check_alias_analysis.<locals>.test_impld  s-   € Üœ3˜q›6–]�Ø�a‘D�Ø�‘!‘ð #ð ˆHrX   r‰  rÿ   rW  rã   Tr„  ÚdefineÚnoaliasrí   )r°   r$  r   r  r  rž   rŸ   r   rš   r  r?  r(  rÀ   r;  )
rS   rí  ri  r  r�   rç   r@  r®   rÕ  rÊ  s
             rV   Útest_check_alias_analysisz,TestPrangeSpecific.test_check_alias_analysisb  sÛ   € ò	ô
 �H‰H�R‹L× Ñ   AÓ&ˆØ×Ñ˜9 a¸
Ø*.Àdð 	ô 	Là×)Ñ)¨)°TÓ:ˆÜ”U—\‘\ !“_Ð%Ó&ˆØ×-Ñ-¨e°SÓ9ˆØ×!Ñ! $Ó'ˆØ—I‘I–K‰DˆAˆqØŸ™ž�à˜tÒ#¨¨Tª	ð ×$Ñ$ T§Z¡Z°	Ó%:¸AÔ>Ùñ 'ñ  rX   c                 óä   — d„ }| j                  t        j                  «      5 }| j                  |d«       d d d «       d}| j	                  |t        j                  «      «       y # 1 sw Y   Œ1xY w)Nc                 ó8   — d}t        d| d«      D ]  }|dz  }Œ	 |S r´  r…  rl  s      rV   rí  zJTestPrangeSpecific.test_prange_raises_invalid_step_size.<locals>.test_impl{  s'   € ØˆCÜ˜1˜a –^�Ø�q‘‘ð $àˆJrX   r‚  z4Only constant step size of 1 is supported for prange)rð  r   rB  r  rä   r  rò  r½  s       rV   Ú$test_prange_raises_invalid_step_sizez7TestPrangeSpecific.test_prange_raises_invalid_step_sizez  s[   € ò	ð ×Ñœv×=Ñ=Ô>À&Ø×Ñ˜y¨$Ô/÷ ?àDˆØ�‰�cœ3˜v×/Ñ/Ó0Õ1÷ ?Ð>úr¿  zEskip due to issue #10203: https://github.com/numba/numba/issues/10203c           	      ód  — d„ }| j                  |dd¬«       | j                  |d «      }| j                  |d«      }| j                  |«      }d}d}t	        j
                  |||fz  «      }t	        j
                  d|›d	|›d
|›�«      }d}	 |j                  «       D ]€  \  }
}|
|j                  j                  «       v sŒ#|j                  «       }t        |«      D ]@  \  }}|j                  |«      sŒ| j                  |j                  ||dz      «      «       d}	 Œ€ Œ‚ | j                  |	d«       y )Nc                  ó>   — d} d}t        | «      D ]
  }||dz  z  }Œ |S )Nr¬  r   r  r…  rÓ  s      rV   rí  zFTestPrangeSpecific.test_prange_fastmath_check_works.<locals>.test_impl‹  s,   € ØˆAØˆAÜ˜1–X�Ø�Q˜‘W‘‘ð àˆHrX   rã   Tr  r|   z%[A-Z_0-9]?(.[0-9]+)+[.]?[i]?z)\s+%s = fmul fast double %s, 5.000000e-01z\s+z = fadd fast double z, FrÜ   z'fast instruction pattern was not found.)r  r  rš   r  r)  r¤  r?  rå   ræ   r(  r§  r=  r7  )rS   rí  r  rç   r   Ú_idÚ
recipr_strÚreciprocal_instÚ	fadd_instÚfoundr  Úkernelr+  r÷   r£   s                  rV   Ú test_prange_fastmath_check_worksz3TestPrangeSpecific.test_prange_fastmath_check_works†  s)  € ò
	ð 	×Ñ˜9°ZØ*.ð 	ô 	0à×)Ñ)¨)°TÓ:ˆØ×-Ñ-¨e°RÓ8ˆØ× Ñ  Ó&ˆØ-ˆØAˆ
ÜŸ*™* Z°3¸°*Ñ%<Ó=ˆÜ—J’JÚ"%¢s©Cð 1ó 2ˆ	ð
 ˆØ$˜BŸH™HžJ‰LˆD�&à�t—|‘|×0Ñ0Ó2Ò2Ø!×,Ñ,Ó.�Ü% hÖ/‘D�A�qØ&×,Ñ,¨QÕ/ØŸ™¨	¯©¸ÀÀQÁ¹Ó(HÔIØ $˜Ùñ	 0ð	 'ð 	�‰˜ÐHÕIrX   c                 ó.   — d„ }| j                  |d«       y )Nc                 óŠ   — t        j                  | | f«      }|d   }t        | «      D ]
  }|dz   ||<   Œ |j                  «       S r¦  ©r°   r$  ró   rg  )rñ   rˆ   r‡   rq  s       rV   rí  z8TestPrangeSpecific.test_parfor_alias1.<locals>.test_impl¬  sC   € Ü—‘˜!˜Q˜Ó ˆAØ�!‘ˆAÜ˜1–X�Ø˜1‘u��!’ð à—5‘5“7ˆNrX   rÿ   r  rû  s     rV   Útest_parfor_alias1z%TestPrangeSpecific.test_parfor_alias1«  s   € ò	ð 	×Ñ˜9 aÕ(rX   c                 ó.   — d„ }| j                  |d«       y )Nc                 óª   — t        j                  | | f«      }t        | «      D ]  }||   }t        | «      D ]
  }||z   ||<   Œ Œ! |j                  «       S rZ   rß  )rñ   rˆ   r÷   r‡   rq  s        rV   rí  z8TestPrangeSpecific.test_parfor_alias2.<locals>.test_implµ  sS   € Ü—‘˜!˜Q˜Ó ˆAÜ˜1–X�Ø�A‘$ˆaÜ˜Q–x�!Ø˜1‘u��!’ñ  ð ð —5‘5“7ˆNrX   rÿ   r  rû  s     rV   Útest_parfor_alias2z%TestPrangeSpecific.test_parfor_alias2´  s   € ò	ð 	×Ñ˜9 aÕ(rX   c                 ó.   — d„ }| j                  |d«       y )Nc                 óÜ   — t        j                  | | | f«      }t        | «      D ]7  }||   }t        | «      D ]"  }||   }t        | «      D ]  }||z   |z   ||<   Œ Œ$ Œ9 |j                  «       S rZ   rß  )rñ   rˆ   r÷   r‡   rq  rÒ  r®   s          rV   rí  z8TestPrangeSpecific.test_parfor_alias3.<locals>.test_impl¿  sp   € Ü—‘˜!˜Q ˜Ó#ˆAÜ˜1–X�Ø�A‘$ˆaÜ˜Q–x�!Ø�a‘D�Ü˜qž�AØ˜Q™ ™�!�A’$ñ "ñ  ð ð —5‘5“7ˆNrX   rÿ   r  rû  s     rV   Útest_parfor_alias3z%TestPrangeSpecific.test_parfor_alias3¾  s   € ò	ð 	×Ñ˜9 aÕ(rX   c                 óˆ   — d„ }| j                  |dd«      }|d   }d}| j                  |t        |j                  «      «       y )Nc                 ó*   — t        |«      D ]  }| }Œ S rZ   r…  )r£   rQ  rq  r®   s       rV   rí  z8TestPrangeSpecific.test_parfor_race_1.<locals>.test_implË  s   € Ü˜1–X�Ø‘ð àˆHrX   rú   r'  r   z�Variable k used in parallel loop may be written to simultaneously by multiple workers and may result in non-deterministic or unintended results.)r  rä   r  r»  )rS   rí  rÃ  Úwarning_objÚexpected_msgs        rV   Útest_parfor_race_1z%TestPrangeSpecific.test_parfor_race_1Ê  sJ   € ò	ð ×,Ñ,¨Y¸¸BÓ?ˆØ% aÑ(ˆðFˆð 	�‰�l¤C¨×(;Ñ(;Ó$<Õ=rX   c                 ó,   — d„ }| j                  |«       y)až   issue 3686: if a prange has something inside it that causes
            a nested parfor to be generated and both the inner and outer
            parfor use the same call variable defined outside the parfors
            then ensure that when that call variable is pushed into the
            parfor that the call variable isn't duplicated with the same
            name resulting in a redundant type lock.
        c                  ó  — d} t         j                  }t        d«      D ]+  } |d«      }|  |t        j                  d«      «      d   z  } Œ- t        d«      D ]+  } |d«      }|  |t        j                  d«      «      d   z  } Œ- | S )Nr   rÜ   rF  rí   )r°   Únegativeró   r$  )r“  r  r÷   Úthis_matterss       rV   rí  zGTestPrangeSpecific.test_nested_parfor_push_call_vars.<locals>.test_implÞ  s}   € ØˆAÜ—‘ˆAÜ˜1–X�Ù  ›u�Ø‘Q”r—x‘x “|“_ QÑ'Ñ'‘ð ô ˜1–X�Ù  ›u�Ø‘Q”r—x‘x “|“_ QÑ'Ñ'‘ð ð ˆHrX   Nr  rû  s     rV   Ú!test_nested_parfor_push_call_varsz4TestPrangeSpecific.test_nested_parfor_push_call_varsÖ  s   € ò
	ð 	×Ñ˜9Õ%rX   c                 ó´   — d„ }d}t        j                  |||f«      }t        j                  |t         j                  ¬«      }| j                  |||dg¬«       y)a+   issue4903: a global is copied next to a parfor so that
            it can be inlined into the parfor and thus not have to be
            passed to the parfor (i.e., an unsupported function type).
            This global needs to be renamed in the block into which
            it is copied.
        c                 ó`  — t        j                  t        |«      «      }t        j                  t        |«      «      }t        d«      D ]a  }||   }t        |«      D ]  }|t        j                  | ||f   «      z  }Œ! t        |«      D ]  }|t        j                  | ||f   «      z  }Œ! Œc ||fS r  )r°   r$  rÂ   ró   rI  )ÚzzÚtcÚlhÚlcr÷   Úntr©  s          rV   rí  zATestPrangeSpecific.test_copy_global_for_parfor.<locals>.test_implò  sš   € Ü—‘œ#˜b›'Ó"ˆBÜ—‘œ#˜b›'Ó"ˆBÜ˜1–X�Ø˜‘U�Ü˜rž�AØœ"Ÿ&™&  A q D¡Ó*Ñ*‘Bð #ä˜rž�AØœ"Ÿ&™&  A q D¡Ó*Ñ*‘Bñ #ð	 ð �r�6ˆMrX   rí   r
  r   ©r	  N)r°   rì  rê  r  )rS   rí  r-  ró  rô  s        rV   Útest_copy_global_for_parforz.TestPrangeSpecific.test_copy_global_for_parforë  sO   € ò		ð ˆÜ�W‰W�a˜˜A�YÓˆÜ�W‰W�QœbŸg™gÔ&ˆØ×Ñ˜9 b¨"¸a¸SÐÕArX   c                 ó.   — d„ }| j                  |d«       y )Nc                 óp   — d}t         j                  }t        d«      D ]  } |d«      }| || «      z  }Œ |S )Nr   rÜ   rF  )r°   rî  ró   )rñ   r“  r  r÷   rï  s        rV   rí  zGTestPrangeSpecific.test_multiple_call_getattr_object.<locals>.test_impl  s;   € ØˆAÜ—‘ˆAÜ˜1–X�Ù  ›v�Ø‘Q�q“T‘	‘ð ð ˆHrX   rF  r  rû  s     rV   Ú!test_multiple_call_getattr_objectz4TestPrangeSpecific.test_multiple_call_getattr_object  s   € ò	ð 	×Ñ˜9 cÕ*rX   c                 ó|  — d„ }t        j                  ddt        fdt        fg¬«      }t        j                  ddt        fdt        fg¬«      }t        j                  ddt        fdt        fg¬«      }|j	                  t         j
                  «      }|j	                  t         j
                  «      }|j	                  t         j
                  «      }t         ||«      «      }t         t        |«      |«      «      }	t        |d¬«      }
t         |
|«      «      }| j                  ||	«       | j                  ||«       y )Nc                 óV   — t        t        | «      «      D ]  }d| j                  |<   Œ | S r  )ró   rÂ   r£   )rñ   r÷   s     rV   rí  zHTestPrangeSpecific.test_argument_alias_recarray_field.<locals>.test_impl  s&   € Üœ3˜q›6–]�Ø�—‘�A’ð #àˆHrX   rú   r£   rQ  r
  Tr“   )	r°   r$  r  rÞ  ÚviewÚrecarrayr¸   r   rÀ   )rS   rí  ÚX1ÚX2ÚX3r,  r-  Úv3Ú
python_resÚnjit_resÚpa_funcÚpa_ress               rV   Ú"test_argument_alias_recarray_fieldz5TestPrangeSpecific.test_argument_alias_recarray_field  sõ   € ò	ô �X‰X�b #¤u °´S¨zÐ <Ô=ˆÜ�X‰X�b #¤u °´S¨zÐ <Ô=ˆÜ�X‰X�b #¤u °´S¨zÐ <Ô=ˆØ�W‰W”R—[‘[Ó!ˆØ�W‰W”R—[‘[Ó!ˆØ�W‰W”R—[‘[Ó!ˆô ™) B›-Ó(ˆ
Ü˜œ˜Y›¨Ó+Ó,ˆÜ�y¨4Ô0ˆÜ‘g˜b“kÓ"ˆØ×Ñ˜ XÔ.Ø×Ñ˜ VÕ,rX   c                 óÌ   ‡— t         d„ «       Šˆfd„} |d«      } t        |«      d«      }t        |d¬«      } |d«      }| j                  ||«       | j                  ||«       y)zº issue3699: test that mutable variable to call in loop
            is not hoisted.  The call in test_impl forces a manual
            check here rather than using prange_tester.
        c                 óB   — | d   }| d   dz   }| j                  |«       |S )z£ If the variable X is hoisted in the test_impl prange
                then subsequent list_check calls would return increasing
                values.
            rI   rÜ   )r²   )r^  r  r‡   s      rV   Ú
list_checkz>TestPrangeSpecific.test_mutable_list_param.<locals>.list_check(  s*   € ð �B‘%ˆCØ�"‘˜‘	ˆAØ�H‰H�QŒKØˆJrX   c                 ó>   •— t        | «      D ]  }dg} ‰|«      }Œ S rÜ  r¢  )rñ   r÷   r^  r‡   r  s       €rV   rí  z=TestPrangeSpecific.test_mutable_list_param.<locals>.test_impl2  s(   ø€ Ü˜A–Y�Ø�E�Ù˜q“M‘ð ð ˆHrX   rú   Tr“   N©r   rÀ   )rS   rí  r  r  r  r  r  s         @rV   Útest_mutable_list_paramz*TestPrangeSpecific.test_mutable_list_param#  sl   ø€ ô
 
ñ	ó 
ð	ô	ñ
 ˜r“]ˆ
Ø"”4˜	“? 2Ó&ˆÜ�y¨4Ô0ˆÙ˜“ˆØ×Ñ˜ XÔ.Ø×Ñ˜ VÕ,rX   c                 ó¢   — d„ }t        j                  g d¢t        ¬«      t        j                  ddgt        ¬«      g}| j                  ||«       y )Nc           	      óŽ   — t        j                  t        t        | «      «      D �cg c]  }t        | |   «      ‘Œ c}«      S c c}w rZ   )r°   re  ró   rÂ   )r£   r÷   s     rV   rí  zDTestPrangeSpecific.test_list_comprehension_prange.<locals>.test_impl@  s3   € Ü—8‘8´´c¸!³f´Ó>±¨1œS  1¡�Y°Ñ>Ó?Ð?ùÒ>s   ¦A)rÜ   rí   rý   r
  rÜ   rí   )r°   re  rÞ  r  r  s      rV   Útest_list_comprehension_prangez1TestPrangeSpecific.test_list_comprehension_prange>  s<   € ò	@ä�X‰X’g¤SÔ)¬"¯(©(°A°a°5ÄÔ*DÐEˆØ×Ñ˜9 aÕ(rX   c                 ó|   — d„ }t        j                  dt         j                  ¬«      }| j                  ||dd«       y )Nc                 óÀ   — t        j                  | j                  «      }t        | j                  d   «      D ]#  }| |   d   dz  }|dk(  rd}|dk(  rd}||g||<   Œ% |S )Nr   g     ào@)r°   r$  rd  ró   )Úimager‡   rˆ   rÃ  r÷   rÑ  Úhs          rV   rí  z>TestPrangeSpecific.test_ssa_false_reduction.<locals>.test_implK  sk   € Ü—H‘H˜UŸ[™[Ó)ˆEÜ˜5Ÿ;™; q™>Ö*�Ø˜!‘H˜Q‘K %Ñ'�Ø˜’6Ø�AØ˜’6Ø�AØ˜q !˜9��a’ð +ð ˆLrX   rL  r
  r   )r°   r$  r   r  )rS   rí  r  s      rV   Útest_ssa_false_reductionz+TestPrangeSpecific.test_ssa_false_reductionE  s1   € ò		ô —‘˜¤r§x¡xÔ0ˆØ×Ñ˜9 e¨Q°Õ2rX   c                 ó,   — d„ }| j                  |«       y )Nc                  ó”   — d} t        j                  | t         j                  ¬«      }t        d«      D ]  }dg}d|d<   |d   ||<   Œ |S )Nr€   r
  r   rÜ   )r°   rÃ  rv  ró   )rñ   r‡   r®   r^  s       rV   rí  z@TestPrangeSpecific.test_list_setitem_hoisting.<locals>.test_impl\  sM   € ØˆAÜ—‘˜¤"§(¡(Ô+ˆAÜ˜1–X�Ø�C�Ø��!‘Ø˜‘t��!’ð ð ˆHrX   r  rû  s     rV   Útest_list_setitem_hoistingz-TestPrangeSpecific.test_list_setitem_hoistingY  s   € ò	ð 	×Ñ˜9Õ%rX   c           
      óô   — d„ }t         j                  dz   }| j                  |t        |«      D �cg c]5  }t	        j
                  t        j                  t        j                  ¬«      ‘Œ7 c}dg¬«       y c c}w )Nc                 ót  — t        t        | «      «      D �cg c]J  }t        j                  t        j
                  t        j                  ¬«      t        j                  d«      f‘ŒL }}t        t        | «      «      D ]+  }| |   }t        j                  d«      }||d<   | |   |f||<   Œ- |d   d   d   S c c}w ©N©Úkey_typeÚ
value_typerÜ   r   )	ró   rÂ   r   rÃ  r   rv  r{  r°   r$  ©ÚinputsrJ   Úoutputsr÷   rQ  rÆ  s         rV   rí  z9TestPrangeSpecific.test_tuple_hoisting.<locals>.test_impli  s©   € ÜjoÔpsÐtzÓp{Ôj|Ó}Ñj|ÐefœŸ
™
¬E¯K©KÄEÇMÁMÔRÔTV×T\ÑT\Ð]^ÓT_Ò`Ðj|ˆGÐ}Üœ3˜v›;Ö'�Ø˜1‘I�Ü—h‘h˜q“k�Ø��A‘Ø$ Q™i¨Ð-�˜’
ð	 (ð
 ˜1‘:˜a‘= Ñ#Ð#ùò ~s   —AB5rÜ   r  rø  ©	r   rõ  r  ró   r   rÃ  r   rv  r{  ©rS   rí  rn  r÷   s       rV   Útest_tuple_hoistingz&TestPrangeSpecific.test_tuple_hoistingg  óo   € ò	$ô ×$Ñ$ qÑ(ˆØ×Ñ˜9ÔkpÐqrÔksÓ&tÑksÐfg¤t§z¡z¼5¿;¹;ÔSX×S`ÑS`Ö'aÐksÑ&tð  GHð  FIÐõ  	JùÒ&tó   °:A5
c           
      óô   — d„ }t         j                  dz   }| j                  |t        |«      D �cg c]5  }t	        j
                  t        j                  t        j                  ¬«      ‘Œ7 c}dg¬«       y c c}w )Nc                 ó„  — t        t        | «      «      D �cg c]J  }t        j                  t        j
                  t        j                  ¬«      t        j                  d«      f‘ŒL }}t        t        | «      «      D ]3  }| |   }t        j                  d«      }||d<   t        | |   |«      ||<   Œ5 |d   d   d   S c c}w r  )
ró   rÂ   r   rÃ  r   rv  r{  r°   r$  r±  r!  s         rV   rí  z8TestPrangeSpecific.test_call_hoisting.<locals>.test_implw  s«   € ÜjoÔpsÐtzÓp{Ôj|Ó}Ñj|ÐefœŸ
™
¬E¯K©KÄEÇMÁMÔRÔTV×T\ÑT\Ð]^ÓT_Ò`Ðj|ˆGÐ}Üœ3˜v›;Ö'�Ø˜1‘I�Ü—h‘h˜q“k�Ø��A‘Ü7¸¸q¹	À3ÓG�˜’
ð	 (ð
 ˜1‘:˜a‘= Ñ#Ð#ùò ~s   —AB=rÜ   r  rø  r$  r%  s       rV   Útest_call_hoistingz%TestPrangeSpecific.test_call_hoistingu  r'  r(  c                 ó°   — t        j                  dt         j                  fg«      }d„ }d„ }| j                  |t        j                  d|¬«      |g¬«       y )NrÕ  c                 ó4   — t        d«      D ]
  }d| |   d<   Œ y )NrÜ   rÕ  r…  )Ústatesr÷   s     rV   rí  z?TestPrangeSpecific.test_record_array_setitem.<locals>.test_impl‡  s   € Ü˜1–X�Ø#$��q‘	˜%Ò ñ rX   c                 ó*   — | d   d   |d   d   k(  sJ ‚y )Nr   rÕ  r|   r†   s     rV   ri  z>TestPrangeSpecific.test_record_array_setitem.<locals>.comparer‹  s    € Ø�Q‘4˜‘; ! A¡$ u¡+Ò-Ð.Ñ-rX   rÜ   )rd  r  rk  )r°   r  r   r  r$  )rS   Ústate_dtyperí  ri  s       rV   Útest_record_array_setitemz,TestPrangeSpecific.test_record_array_setitemƒ  sP   € ä—h‘h ¬¯©Ð 1Ð2Ó3ˆò	%ò	/ð 	×Ñ˜9ÜŸ8™8¨!°;Ô?Ø/7¨jð 	õ 	:rX   c                 ó´   — t        j                  dt         j                  fg«      }d„ }t        j                  d|¬«      }d„ }| j	                  |||g¬«       y )Nr£   c                 óh   — | j                   }t        | j                   «      D ]  }d|z   | d   |<   Œ | S )NrH  r£   )rÊ  ró   )r.  rñ   r÷   s      rV   rí  zKTestPrangeSpecific.test_record_array_setitem_yield_array.<locals>.test_impl•  s4   € Ø—‘ˆAÜ˜6Ÿ;™;Ö'�Ø!" Q¡��s‘˜A’ð (àˆMrX   rú   r
  c                 óD   — t         j                  j                  | |«       y rZ   rg  r†   s     rV   ri  zJTestPrangeSpecific.test_record_array_setitem_yield_array.<locals>.comparer�  rj  rX   rk  )r°   r  rw  r$  r  )rS   r0  rí  r.  ri  s        rV   Ú%test_record_array_setitem_yield_arrayz8TestPrangeSpecific.test_record_array_setitem_yield_array’  sV   € Ü—h‘h ¤b§g¡g Ð/Ó0ˆò	ô —‘˜" KÔ0ˆò	*ð 	×Ñ˜9Ø!Ø/7¨jð 	õ 	:rX   c                 ó0   — d„ }| j                  |dd«       y )Nc                 óÀ   — t        j                  | f«      }|dk(  r"t        | «      D ]  }||xx   dz  cc<   Œ |d   S t        | «      D ]  }||xx   dz  cc<   Œ |d   S )NrÜ   rí   r   r  )rÊ  Úcaserò  r÷   s       rV   rí  z4TestPrangeSpecific.test_issue7501.<locals>.test_impl¥  sg   € Ü—X‘X˜t˜gÓ&ˆFØ�qŠyÜ˜tž�AØ˜1“I ‘N”Ið %ð
 ˜!‘9Ðô ˜tž�AØ˜1“I ‘N”Ið %à˜!‘9ÐrX   rý   rÜ   r  rû  s     rV   Útest_issue7501z!TestPrangeSpecific.test_issue7501¤  s   € ò	ð 	×Ñ˜9 a¨Õ+rX   c                 óp   — d„ }d}t         j                  j                  |«      }| j                  ||«       y )Nc                 óª  — d}t        j                  g d¢«      }|j                  d   }| j                  d   }d}t        |«      D ]‹  }| |   }||z
  dz   d|dz  z  z  }t        j                  |«      }	||	t        j
                  ||z  «      z
  t        j
                  t        j                  t        j                  ||	z
  «      «      «      z   z  }Œ� |S )NrE  )r¢  r  r5  r   rí   )r°   re  rd  ró   r–  rG  rg  rI  )
r^  rˆ   Úpointsrn  rñ   Úexpsr÷   r®  r¸  r-  s
             rV   rí  z6TestPrangeSpecific.test_kde_example.<locals>.test_impl²  s»   € àˆAÜ—X‘XÒ.Ó/ˆFØ—‘˜Q‘ˆAØ—‘˜‘
ˆAØˆDÜ˜1–X�Ø�a‘D�Ø˜6‘z A‘oÐ%¨!¨a°©d©(Ñ3�Ü—F‘F˜1“I�Ø˜œBŸF™F 1 q¡5›MÑ)¬B¯F©F´2·6±6¼"¿&¹&ÀÀQÁ»-Ó3HÓ,IÑIÑI‘ð	 ð
 ˆKrX   r¬  )r°   rr  rs  r  )rS   rí  rñ   r^  s       rV   Útest_kde_examplez#TestPrangeSpecific.test_kde_example±  s0   € ò	ð ˆÜ�I‰I�N‰N˜1ÓˆØ×Ñ˜9 aÕ(rX   c                 óX   — d„ }t        j                  d«      }| j                  ||«       y )Nc                 ó²   — t        j                  | «      }t        j                  | «      }t        t	        | «      «      D ]  }|j                  «       ||<   Œ |S rZ   )r°   r’  rÛ  ró   rÂ   rg  )r£   ri  rî  r÷   s       rV   rí  z4TestPrangeSpecific.test_issue7578.<locals>.test_implÆ  sE   € Ü—‘˜aÓ ˆAÜ—&‘&˜“)ˆCäœ3˜q›6–]�Ø—w‘w“y��!’ð #ð ˆHrX   r7  )r°   ræ  r  r  s      rV   Útest_issue7578z!TestPrangeSpecific.test_issue7578Ä  s&   € ò	ô �I‰I�c‹NˆØ×Ñ˜9 aÕ(rX   N)#rw   rN   rx   rC  r¹  r¾  rÂ  rÅ  r=   rË  rÐ  rÓ  rW  r¯  rÜ  rà  rã  ræ  rë  rð  rù  rü  r	  r  r  r  r  r&  r+  r1  r5  r9  r>  r9   rA  r|   rX   rV   r³  r³    sÌ   „ á>ò	)ò2ò&ò&ð ñ,ó ð,ò0ò0
2ð €X‡]�]ÐZÓ[ñ"Jó \ð"JòH)ò)ò
)ò
>ò&ò*Bò.	+ò-ò,-ò6)ò3ò(&òJòJò:ò:ò$,ò)ð& ñ)ó ñ)rX   r³  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d„ Zy)ÚTestParforChunksizingz:
    Tests chunksize handling in ParallelAccelerator.
    Fc                 ó   — t        d«       y r²  ©r   r\   s    rV   ÚsetUpzTestParforChunksizing.setUpÙ  ó
   € Ü˜qÕ!rX   c                 ó   — t        d«       y r²  rE  r\   s    rV   ÚtearDownzTestParforChunksizing.tearDownÜ  rG  rX   c                 óÌ   — | j                  t        «       d«       t        d«       | j                  t        «       d«       t        d«       | j                  t        «       d«       y ©Nr   rW  )rÀ   r   r   r\   s    rV   Ú$test_python_parallel_chunksize_basicz:TestParforChunksizing.test_python_parallel_chunksize_basicß  sN   € à×ÑÔ/Ó1°1Ô5Ü˜qÔ!Ø×ÑÔ/Ó1°1Ô5Ü˜qÔ!Ø×ÑÔ/Ó1°1Õ5rX   c                 óà   — | j                  t        «       d«       t        d«      5  | j                  t        «       d«       d d d «       | j                  t        «       d«       y # 1 sw Y   Œ$xY wrK  )rÀ   r   r   r\   s    rV   Útest_python_with_chunksizez0TestParforChunksizing.test_python_with_chunksizeç  sT   € à×ÑÔ/Ó1°1Ô5Ü Õ"Ø×ÑÔ3Ó5°qÔ9÷ #à×ÑÔ/Ó1°1Õ5÷ #Ð"ús   ¦A$Á$A-c                 óÞ   — t         d„ «       }t         d„ «       }| j                   |«       d«        |d«       | j                   |«       d«        |d«       | j                   |«       d«       y )Nc                  ó   — t        «       S rZ   )r   r|   rX   rV   Úget_cszHTestParforChunksizing.test_njit_parallel_chunksize_basic.<locals>.get_csð  s   € ä)Ó+Ð+rX   c                 ó   — t        | «      S rZ   rE  r!  s    rV   Úset_cszHTestParforChunksizing.test_njit_parallel_chunksize_basic.<locals>.set_csô  s   € ä)¨!Ó,Ð,rX   r   rW  r  )rS   rQ  rS  s      rV   Ú"test_njit_parallel_chunksize_basicz8TestParforChunksizing.test_njit_parallel_chunksize_basicî  sn   € ä	ñ	,ó 
ð	,ô 
ñ	-ó 
ð	-ð 	×Ñ™› 1Ô%ÙˆqŒ	Ø×Ñ™› 1Ô%ÙˆqŒ	Ø×Ñ™› 1Õ%rX   c                 ó    — t         d„ «       } |d«      \  }}}| j                  |d«       | j                  |d«       | j                  |d«       y )Nc                 óˆ   — t        «       }t        d«      5  t        «       }d d d «       t        «       }||fS # 1 sw Y   ŒxY w)NrW  )r   r   )r£   Úcs1Úcs2Úcs3s       rV   rí  zATestParforChunksizing.test_njit_with_chunksize.<locals>.test_impl   s<   € ä(Ó*ˆCÜ# AÕ&Ü,Ó.�÷ 'ä(Ó*ˆCØ˜˜S�=Ð ÷ 'Ð&ús	   –8¸ArW  r   r  )rS   rí  rW  rX  rY  s        rV   Útest_njit_with_chunksizez.TestParforChunksizing.test_njit_with_chunksizeþ  sU   € ä	ñ	!ó 
ð	!ñ " !›‰ˆˆS�#à×Ñ˜˜aÔ Ø×Ñ˜˜aÔ Ø×Ñ˜˜aÕ rX   c                 ó  — t        d¬«      d„ «       }dD ]o  }t        d«      D ]_  } ||dz   |«      \  }}| j                  t        j                  |dk(  «      «       | j                  t        j                  |dk(  «      «       Œa Œq y	)
z© Test that all the iterations get run if you set the
            chunksize.  Also check that the chunksize that each
            worker thread sees has been reset to 0. Tr“   c                 ó(  — t        j                  |«      }t        j                  |d«      }t        j                  | «      5  t        j
                  |«      D ]  }t        j                  «       ||<   d||<   Œ  	 d d d «       ||fS # 1 sw Y   ||fS xY w)Nióÿÿÿrè  )r°   r$  r7  rŸ   r   r   r   )Úcsrñ   rÖ  Úinner_csr÷   s        rV   rí  zLTestParforChunksizing.test_all_iterations_reset_chunksize.<locals>.test_impl  s|   € ä—(‘(˜1“+ˆCÜ—w‘w˜q #“ˆHÜ×)Ñ)¨"Õ-ÜŸ™ až�AÜ"'×">Ñ">Ó"@�H˜Q‘KØ�C˜’Fñ )÷ .ð ˜�=Ð ÷	 .ð ˜�=Ð ús   Á7BÂB)iè  iå  i¯  iÁ  rP  rÜ   rè  r   N)r   ró   r7  r°   Úall)rS   rí  rq  r÷   rÖ  r^  s         rV   Ú#test_all_iterations_reset_chunksizez9TestParforChunksizing.test_all_iterations_reset_chunksize  s{   € ô
 
�tÔ	ñ	!ó 
ð	!ó 'ˆAÜ˜2–Y�Ù )¨!¨A©#¨qÓ 1‘��XØ—‘¤§¡ s¨b¡yÓ 1Ô2Ø—‘¤§¡ x°1¡}Ó 5Õ6ñ ñ 'rX   c                 óÌ   — | j                  t        «      5 }t        d„ «       } |«        d d d «       d}| j                  |t	        j
                  «      «       y # 1 sw Y   Œ1xY w)Nc                  ó   — t        d«       y )NrI   rE  r|   rX   rV   Úneg_testzMTestParforChunksizing.test_njit_parallel_chunksize_negative.<locals>.neg_test)  s
   € ä& rÕ*rX   ú/chunksize must be greater than or equal to zero)rð  r¹   r   rä   r  rò  )rS   rC  rc  ré   s       rV   Ú%test_njit_parallel_chunksize_negativez;TestParforChunksizing.test_njit_parallel_chunksize_negative&  sZ   € à×ÑœzÔ*¨fÜñ+ó ð+ñ ŒJ÷ +ð @ˆØ�‰�cœ3˜v×/Ñ/Ó0Õ1÷ +Ð*ús   –AÁA#c                 ó¼   — | j                  t        «      5 }t        d«       d d d «       d}| j                  |t	        j
                  «      «       y # 1 sw Y   Œ1xY w)NrI   rd  )rð  r¹   r   rä   r  rò  ©rS   rC  ré   s      rV   Ú'test_python_parallel_chunksize_negativez=TestParforChunksizing.test_python_parallel_chunksize_negative2  sI   € à×ÑœzÔ*¨fÜ" 2Ô&÷ +ð @ˆØ�‰�cœ3˜v×/Ñ/Ó0Õ1÷	 +Ð*úó   –AÁAc                 óà   — | j                  t        j                  «      5 }t        d„ «       } |«        d d d «       d}| j	                  |t        j                  «      «       y # 1 sw Y   Œ1xY w)Nc                  ó   — t        d«       y )NÚinvalid_typerE  r|   rX   rV   rØ   zMTestParforChunksizing.test_njit_parallel_chunksize_invalid_type.<locals>.impl<  s
   € ä& ~Õ6rX   ú)The parallel chunksize must be an integer)rð  r   ÚTypingErrorr   rä   r  rò  )rS   rC  rØ   ré   s       rV   Ú)test_njit_parallel_chunksize_invalid_typez?TestParforChunksizing.test_njit_parallel_chunksize_invalid_type:  s_   € Ø×Ñœv×1Ñ1Ô2°fÜñ7ó ð7ñ ŒF÷ 3ð :ˆØ�‰�cœ3˜v×/Ñ/Ó0Õ1÷ 3Ð2ús    A$Á$A-c                 ó¼   — | j                  t        «      5 }t        d«       d d d «       d}| j                  |t	        j
                  «      «       y # 1 sw Y   Œ1xY w)Nrl  rm  )rð  Ú	TypeErrorr   rä   r  rò  rg  s      rV   Ú+test_python_parallel_chunksize_invalid_typezATestParforChunksizing.test_python_parallel_chunksize_invalid_typeE  sH   € Ø×ÑœyÔ)¨VÜ" >Ô2÷ *ð :ˆØ�‰�cœ3˜v×/Ñ/Ó0Õ1÷	 *Ð)úri  N)rw   rN   rx   rC  ry   rF  rI  rL  rN  rT  rZ  r`  re  rh  ro  rr  r|   rX   rV   rC  rC  Ò  sF   „ ñð "Ðò"ò"ò6ò6ò&ò !ò 7ò0
2ò2ò	2ó2rX   rC  c                   óÄ   — e Zd ZdZd„ Zeej                  d„ «       «       Ze ej                  ddi¬«      d„ «       «       Z	e ej                  ddi¬«      d„ «       «       Z
y	)
ÚTestParforsVectorizerFc           
      óˆ  — |j                  dd«      }|j                  dd«      }|j                  dd«      }|j                  dd«      }||d	œ}	g }
|	j                  «       D ]   \  }}|
j                  t        ||«      «       Œ" |
d
   5  |
d   5  t	        |D �cg c]  }t        j                  |«      ‘Œ c}«      }| j                  |d «      }|dk(  r| j                  ||«      }n| j                  ||«      }| j                  |«      }|r€t        j                  d«      }|j                  |j                  j                  «       «      }| j!                  t#        |«      d«       | j%                  |d
   |«       | j'                  |i «       |cd d d «       cd d d «       S c c}w # 1 sw Y   nxY wd d d «       y # 1 sw Y   y xY w)Nr™   FÚcpu_namezskylake-avx512Ú
assertionsTÚcpu_featuresz-prefer-256-bit)ÚNUMBA_CPU_NAMEÚNUMBA_CPU_FEATURESr   rÜ   z%call\s+\w+\*\s+@do_scheduling_(\w+)\()r¼   r?  r²   r6   rž   rŸ   r   r  rš   r—   r%  r)  r¤  Úfindallrå   ræ   rÝ   rÂ   rÀ   ÚassertNotEqual)rS   rŽ   Úschedule_typer¡   r¢   r™   rv  rw  rx  Úenv_optsÚ	overridesr®   rÕ  r£   r�   Úpfunc_vectorizablerç   ÚasmÚschedtyÚmatchess                       rV   Úget_gufunc_asmz$TestParforsVectorizer.get_gufunc_asmT  s�  € à—:‘:˜j¨%Ó0ˆØ—:‘:˜jÐ*:Ó;ˆØ—Z‘Z ¨dÓ3ˆ
ð —z‘z .Ð2CÓDˆà&.Ø*6ñˆð ˆ	Ø—N‘NÖ$‰DˆAˆqØ×ÑÔ0°°AÓ6Õ7ð %ð �q‹\˜9 Q›<Ü±$Ó7±$¨QœŸ™ a�°$Ñ7Ó8ˆCØ!%×!:Ñ!:¸4ÀÓ!FÐØ˜4ÒØ×5Ñ5Ð6HÈ#ÓN‘à×,Ñ,Ð-?ÀÓE�ð ×&Ñ& tÓ,ˆCáÜŸ*™*Ð%MÓN�Ø!Ÿ/™/¨$¯,©,×*CÑ*CÓ*EÓF�Ø×'Ñ'¬¨G«°aÔ8Ø× Ñ  ¨¡¨]Ô;Ø×#Ñ# C¨Ô,à÷% (˜<�\‰\ùÚ7÷ (˜<ú�\�\‰\ús7   ÂF8Â
F#ÂFÂ4CF#Æ	F8ÆF#Æ#F,	Æ(F8Æ8Gc                 ó$  — d„ }t        j                  d«      }| j                  |d|d¬«      }| j                  |d|d¬«      }|j                  «       D ]A  }| j	                  d|v «       | j	                  d|v xs d	|v «       | j	                  d
|v «       ŒC |j                  «       D ]g  }| j	                  d|v«       | j	                  d|v«       | j	                  d|v xr d	|v«       | j	                  d|v «       | j	                  d
|v«       Œi y)úÐ This checks that if fastmath is set and the underlying hardware
        is suitable, and the function supplied is amenable to fastmath based
        vectorization, that the vectorizer actually runs.
        c                 óp   — t        | «      }d}t        |«      D ]  }|t        j                  |«      z  }Œ |S r²  ©rÂ   ró   r°   rH  )ri  rñ   r™  r÷   s       rV   Úwill_vectorizezJTestParforsVectorizer.test_vectorizer_fastmath_asm.<locals>.will_vectorize„  s5   € Ü�A“ˆAØˆCÜ˜1–X�Ø”r—w‘w˜q“zÑ!‘ð àˆJrX   rú   rã   T©r™   FÚvaddpdÚvsqrtpdÚ__svml_sqrtÚzmmÚvsqrtsdÚvaddsdN)r°   r$  r„  r¿  r7  )rS   r‰  r±  Úfast_asmÚslow_asmrÕ  s         rV   Útest_vectorizer_fastmath_asmz2TestParforsVectorizer.test_vectorizer_fastmath_asmy  s  € ò	ô �h‰h�r‹lˆà×&Ñ& ~°zÀ3Ø04ð 'ó 6ˆà×&Ñ& ~°zÀ3Ø05ð 'ó 7ˆà—‘Ö"ˆAð �O‰O˜H¨˜MÔ*Ø�O‰O˜I¨˜NÒ@¨m¸qÐ.@ÔAØ�O‰O˜E Q˜JÕ'ð #ð —‘Ö"ˆAà�O‰O˜H¨AÐ-Ô.Ø�O‰O˜I¨QÐ.Ô/à�O‰O˜I¨˜NÒE¨}ÀAÐ/EÔFØ�O‰O˜H¨˜MÔ*à�O‰O˜E¨˜NÕ+ñ #rX   ÚNUMBA_BOUNDSCHECKÚ0)Úenvvarsc                 ó  — d„ }d„ }t        j                  d«      }| j                  t        j                  «       | j                  |d|d¬«      }| j                  |d|d¬«      }|j                  «       D ];  }| j                  d|v«       | j                  d	|v «       | j                  d
|v«       Œ= |j                  «       D ]A  }| j                  d|v xs d|v «       | j                  d|v «       | j                  d
|v «       ŒC y)r†  c                 óv   — t        | «      }t        | d«      D ]  }t        j                  | |   «      | |<   Œ | S r²  rˆ  ©ri  rñ   r÷   s      rV   Úwill_not_vectorizezTTestParforsVectorizer.test_unsigned_refusal_to_vectorize.<locals>.will_not_vectorizeª  s7   € Ü�A“ˆAÜ˜A˜2˜q–\�Ü—w‘w˜q ™t“}��!’ð "àˆHrX   c                 ór   — t        | «      }t        |«      D ]  }t        j                  | |   «      | |<   Œ | S rZ   rˆ  r™  s      rV   r‰  zPTestParforsVectorizer.test_unsigned_refusal_to_vectorize.<locals>.will_vectorize°  s3   € Ü�A“ˆAÜ˜1–X�Ü—w‘w˜q ™t“}��!’ð àˆHrX   rú   râ   TrŠ  rã   rŒ  r�  rŽ  r�  ÚvmovupdN)r°   r$  rÿ  r   ÚBOUNDSCHECKr„  r¿  r7  )rS   rš  r‰  r±  Ú	novec_asmÚvec_asmrÕ  s          rV   Ú"test_unsigned_refusal_to_vectorizez8TestParforsVectorizer.test_unsigned_refusal_to_vectorize¢  s  € ò	ò	ô �h‰h�r‹lˆð 	×Ñœ×+Ñ+Ô,Ø×'Ñ'Ð(:¸HÀcØ15ð (ó 7ˆ	ð ×%Ñ% n°jÀ#Ø15ð &ó 7ˆð ×!Ñ!Ö#ˆAà�O‰O˜I¨QÐ.Ô/à�O‰O˜I¨˜NÔ+à�O‰O˜E¨˜NÕ+ð $ð —‘Ö!ˆAð �O‰O˜I¨˜NÒ@¨m¸qÐ.@ÔAØ�O‰O˜I¨˜NÔ+Ø�O‰O˜E Q˜JÕ'ñ "rX   c                 ó<  — d„ }d„ }| j                  t        j                  «       | j                  |dd¬«      }| j                  |dd¬«      }d„ }|j	                  «       D ]  \  }} ||«      } n |j	                  «       D ]  \  }} ||«      }	 n dd	lm}
 | j                  t        «      t        	«      «       t        ||	«      D ]Q  \  }}||k(  rŒ |
d
„ ||«      }|j                  «       }|D ]&  }|d   dk(  sŒ| j                  ||d   |d    d«       Œ( ŒS y)zï This checks vectorization for signed vs unsigned variants of a
        trivial accumulator, the only meaningful difference should be the
        presence of signed vs. unsigned unpack instructions (for the
        induction var).
        c                  ó<   — d} d}t        |  d«      D ]  }||z  }Œ	 |S )Né   ræ  r   r…  rÓ  s      rV   Úsigned_variantzMTestParforsVectorizer.test_signed_vs_unsigned_vec_asm.<locals>.signed_variantÙ  s,   € ØˆAØˆAÜ˜A˜2˜q–\�Ø�Q‘‘ð "àˆHrX   c                  ó8   — d} d}t        | «      D ]  }||z  }Œ	 |S )Nr£  ræ  r…  rÓ  s      rV   Úunsigned_variantzOTestParforsVectorizer.test_signed_vs_unsigned_vec_asm.<locals>.unsigned_variantà  s(   € ØˆAØˆAÜ˜1–X�Ø�Q‘‘ð àˆHrX   râ   TrŠ  rã   c                 ó"  — g }| j                  «       D ]y  }|j                  «       }|dk7  sŒ|j                  d«      rŒ+|j                  d«      rŒ=|j                  d«      rŒOd|v rŒT|j                  t	        j
                  dd|«      «       Œ{ |S )NÚ rH   rJ   Ú"r  z[	])r(  ÚstripÚ
startswithr²   r)  Úsub)r�  r™  r£   Úspds       rV   Ústrip_instrszKTestParforsVectorizer.test_signed_vs_unsigned_vec_asm.<locals>.strip_instrsî  sw   € ØˆCØ—^‘^Ö%�Ø—g‘g“i�ð ˜"“9 c§n¡n°SÕ&9Ø(+¯©°sÕ(;Ø(+¯©°sÕ(;Ø(?À3Ò(FØŸ
™
¤2§6¡6¨&°"°cÓ#:Õ;ð &ð ˆJrX   r   )ÚSequenceMatcherc                 ó   — | dk(  S )NÚ	r|   r!  s    rV   rÍ  zGTestParforsVectorizer.test_signed_vs_unsigned_vec_asm.<locals>.<lambda>  s   €   d¢rX   ÚinsertrG  rI   r†  N)rÿ  r   r�  r„  r?  Údifflibr¯  rÀ   rÂ   rÃ   Úget_opcodes)rS   r¤  r¦  Ú
signed_asmÚunsigned_asmr®  r®   rÕ  Úsigned_instrÚunsigned_instrÚsmr‡   rˆ   r¥  r9  r<  s                   rV   Útest_signed_vs_unsigned_vec_asmz5TestParforsVectorizer.test_signed_vs_unsigned_vec_asmÏ  s9  € ò	ò	ð 	×Ñœ×+Ñ+Ô,Ø×(Ñ(¨¸Ø59ð )ó ;ˆ
à×*Ñ*Ð+;¸ZØ59ð +ó ;ˆò	ð ×$Ñ$Ö&‰DˆAˆqÙ'¨›?ˆLÙð 'ð !×&Ñ&Ö(‰DˆAˆqÙ)¨!›_ˆNÙð )õ 	2ð 	×Ñœ˜\Ó*¬C°Ó,?Ô@Ü˜ nÖ5‰DˆAˆqØ�AŠvØáÑ*¨A¨qÓ1�Ø—m‘m“o�Û�BØ˜!‘u Ó(Ø×(Ñ(¨¨2¨b©6°"°R±&Ð)9¸3Õ?ñ ñ 6rX   N)rw   rN   rx   ry   r„  r7   r3   Úrun_test_in_subprocessr“  r   rº  r|   rX   rV   rt  rt  M  s˜   „ ð
 "Ðò#ðJ Ø×$Ñ$ñ%,ó %ó ð%,ðN Ø$€X×$Ñ$Ð.AÀ3Ð-GÔHñ)(ó Ió ð)(ðV ð %€X×$Ñ$Ð.AÀ3Ð-GÔHñ=@ó Ió ñ=@rX   rt  c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)Ú TestParforReductionSetNumThreadszCTest execution correctness on reductions with set_num_threads.
    c                 ó¼   ‡‡— t         j                  }d|z  Š|dz
  Št        d¬«      ˆˆfd„«       }|j                  ‰«      } |‰«      }| j	                  ||«       y )Nrí   rÜ   Tr“   c                 ó†   •— d}t        | «       t        ‰«      D ]$  }d|‰z  z   }t        |«       t        «       }||z  }Œ& |S r¦  ©r   r   r   ©Únthreadsr™  r÷   Ú
local_maskÚgntrz  Úmasks        €€rV   Úudtz6TestParforReductionSetNumThreads.test_add.<locals>.udt  óK   ø€ àˆCÜ˜HÔ%Ü˜A–Y�Ø  T¡™\�
Ü 
Ô+Ü%Ó'�Ø�s‘
‘ð	 ð
 ˆJrX   ©r   rõ  r   rå  rn  ©rS   rn  rÆ  Úexpectrr  rz  rÅ  s        @@rV   Útest_addz)TestParforReductionSetNumThreads.test_add  ó`   ù€ Ü×$Ñ$ˆØ�‰EˆØ�1‰uˆä	�tÔ	ô	ó 
ð	ð —‘˜TÓ"ˆÙ�$‹iˆØ×Ñ ¨Õ,rX   c                 óÐ   ‡‡— t        dt        j                  «      }d|z  Š|dz
  Št        d¬«      ˆˆfd„«       }|j	                  ‰«      } |‰«      }| j                  ||«       y )Nrÿ   rí   rÜ   Tr“   c                 ó†   •— d}t        | «       t        ‰«      D ]$  }d|‰z  z   }t        |«       t        «       }||z  }Œ& |S r  rÀ  rÁ  s        €€rV   rÆ  z6TestParforReductionSetNumThreads.test_mul.<locals>.udt2  rÇ  rX   )r–  r   rõ  r   rå  rn  rÉ  s        @@rV   Útest_mulz)TestParforReductionSetNumThreads.test_mul+  si   ù€ ô �”6×+Ñ+Ó,ˆØ�‰EˆØ�1‰uˆä	�tÔ	ô	ó 
ð	ð —‘˜TÓ"ˆÙ�$‹iˆØ×Ñ ¨Õ,rX   c                 ó¼   ‡‡— t         j                  }d|z  Š|dz
  Št        d¬«      ˆˆfd„«       }|j                  ‰«      } |‰«      }| j	                  ||«       y )Nrí   rÜ   Tr“   c                 ó”   •— d}t        | «       t        ‰«      D ]+  }d|‰z  z   }t        |«       t        «       }t        ||«      }Œ- |S r  )r   r   r   r—  rÁ  s        €€rV   rÆ  z6TestParforReductionSetNumThreads.test_max.<locals>.udtF  sM   ø€ àˆCÜ˜HÔ%Ü˜A–Y�Ø  T¡™\�
Ü 
Ô+Ü%Ó'�Ü˜#˜s“m‘ð	 ð
 ˆJrX   rÈ  rÉ  s        @@rV   r
  z)TestParforReductionSetNumThreads.test_maxA  rÌ  rX   N)rw   rN   rx   rC  rË  rÏ  r
  r|   rX   rV   r½  r½    s   „ ñò-ò(-ó,-rX   r½  c                   ó:   — e Zd Z ej                  «       d„ «       Zy)ÚTestDiagnosticEnvVarc                 óÞ   — dt         j                  d<   t        «       5 }t        d¬«      d„ «       } |«        d d d «       j	                  «       }| j                  d|«       y # 1 sw Y   Œ,xY w)NÚ4ÚNUMBA_PARALLEL_DIAGNOSTICSTr“   c                  ó~   — d} t        j                  | t         j                  ¬«      }t        | «      D ]  }d||<   Œ	 |S )NrÈ  r
  rÜ   )r°   r$  r{  r   )rñ   rˆ   r÷   s      rV   rØ   z<TestDiagnosticEnvVar.test_diagnostics_env_var1.<locals>.impl\  s7   € à�Ü—H‘H˜a¬¯
©
Ô3�Ü ž�AØ�A�a’Dð #à�rX   zParallel Accelerator Optimizing)rû  rü  r4   r   rÈ  rä   )rS   rÉ  rØ   Ú
the_outputs       rV   Útest_diagnostics_env_var1z.TestDiagnosticEnvVar.test_diagnostics_env_var1X  sb   € à14Œ�
‰
Ð/Ñ0ÜÔ &Ü˜4Ô ñó !ðñ ŒF÷ ð —_‘_Ó&ˆ
Ø�‰Ð7¸ÕD÷ Ðús   žA#Á#A,N)rw   rN   rx   r3   r»  rÙ  r|   rX   rV   rÓ  rÓ  V  s!   „ à$€X×$Ñ$Ó&ñEó 'ñErX   rÓ  Ú__main__rZ   )‘rf  rû  r)  rþ  rµ   rz   rù  Ú
subprocessr   r  r½  Ú	functoolsr   rÄ  r°   Únumpy.randomr   rY  Úcollectionsr   r   r³   Ú	itertoolsr	   r
   rý  Únumba.parfors.parforrŸ   r   r   r   r   r   r   r   r   Ú
numba.corer   r   r   r   r   r   r   r   Únumba.typedr   r   Únumba.extendingr   r   r    r!   r"   r#   Únumba.core.registryr$   Únumba.core.annotationsr%   Únumba.core.ir_utilsr&   r'   r(   r)   r*   r+   r,   Únumba.np.unsafe.ndarrayr-   rÒ  Únumba.core.compilerr.   r/   Únumba.core.compiler_machineryr0   r1   Únumba.core.typed_passesr2   Únumba.tests.supportr3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   Únumba.core.extendingrA   Únumba.core.bytecoderB   rC   r—  rW  rE   rX  r{   Úx86_onlyr‹  rŒ  r�   r‰   r‹   rY  ra  rt  r¤  rÞ   r°  r´  r®  rÁ  rÀ  rÉ  rÈ  rÌ  r'  r„  rà  ro  rŠ  rQ  rZ  r  r  r�  rš  r°  rµ  rö  r  r±  r³  rC  rt  r½  rÓ  rw   Úmainr|   rX   rV   Ú<module>rð     sÒ  ðó Û 	Û 	Û 
Û Û Û 
Û Û Û Ý Û Ý Û ß /Û ß "Û ã ÷=÷ =ó =÷Q÷ Qõ Qç "÷F÷ Få *Ý 3÷;÷ ;ñ ;õ Cß Bß EÝ 2÷@÷ @÷ @÷ @õ 2Ý 4Ý ã Û ð ô:˜ó :ó ð:ðz ˆ8�?‰?Ð+˜8×+Ñ+Ó-Ð5GÐGÈÓY€àÐ ØÐ áÐ,Ð.@ÓA€ò	ð ô^�hó ^ó ð^òB	ò òò?òB	òAòòò$òò"Dó
 òD	ô
!�6ô 
!ð ôh@�oó h@ó ðh@ðV ô'K˜oó 'Kó ð'KðT ôVO�oó VOó ðVOôr2˜Xô 2ð, ôx�/ó xó ðxðv! ô#�¨ó #ó ð#ð4 ôf%�ó f%ó ðf%ðR	 ô";˜ó ";ó ð";ðJ ô:M˜ó :Mó ð:Mðz ôB9�oó B9ó ðB9ðJ ôzD˜_ó zDó ðzDôzT�_ô Tðn ôa1�nó a1ó ða1ðH ñó ðð ô|)˜ó |)ó ð|)ð| ôw2˜Hó w2ó ðw2ðt Ø	ôA@˜Nó A@ó 
ó ðA@ðH ô?- xó ?-ó ð?-ðD ôE˜8ó Eó ðEð$ ˆzÒØ€H‡M‚M…Oð rX   