Ë
    èÿæi4E  ã                   ó  — d dl Z d dlmZ d dlZd dlZd dlZd dlZd dlmZm	Z	m
Z
 d dlmZmZ d dlmZmZ d dlmZ d dlmZ d dlmZmZmZ e Zd	„ Z G d
„ de«      Z G d„ de j                  «      Zedk(  r e j:                  «        yy)é    N)ÚTestCase)ÚjitÚnjitÚtyped)ÚtypesÚutils)ÚTypingErrorÚLoweringError)Ú_header_lead)Únumpy_version)ÚtagÚ_32bitÚcaptured_stdoutc                 ó\   — t        | «      D �cg c]  }|‘Œ }}d}|D ]  }||z  }Œ	 |S c c}w ©Nr   )Úrange)ÚnÚiÚlÚss       ús/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_comprehension.pyÚ	comp_listr      s<   € Ü˜!”HÓ‘HˆqŠ�H€AÐØ	€AÛˆØ	ˆQ‰‰ð à€Hùò	 	s   Ž	)c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestListComprehensionc                 ó  — t         } t        t        j                  f«      |«      }| j	                   |d«       |d«      «       | j	                   |d«       |d«      «       | j	                   |d«       |d«      «       y )Né   r   éÿÿÿÿ)r   r   r   ÚintpÚassertEqual)ÚselfÚpyfuncÚcfuncs      r   Útest_comp_listz$TestListComprehension.test_comp_list    sf   € ÜˆØ#””e—j‘j�]Ó# FÓ+ˆØ×Ñ™˜q›¡6¨!£9Ô-Ø×Ñ™˜q›¡6¨!£9Ô-Ø×Ñ™˜r›¡F¨2£JÕ/ó    c                 óÔ  ‡ ‡!— t        d¬«      ˆ!fd„«       Š!d„ }d„ }d„ }d„ }d„ }d	„ }d
„ }d„ }d„ }	d„ }
d„ }d„ }d„ }d„ }d„ }d„ }d„ }dŠ ˆ fd„}dŠ ˆ fd„}d„ }ˆ!fd„}d„ }d„ }d„ }d„ }||||||||	|
|||||||||||||||g}g d¢}|D ]3  }	  t        d¬«      |«      }| j                   ||«       ||«      «       Œ5 | j                  t        «      5 } t        d¬«      |«      } ||«       ddd«       t        j                  d kD  rd!}yd"}y# t        $ r? 	 t        j                  j                   |«       ||«      «       n# t        $ r ‚ w xY wY ŒÎw xY w# 1 sw Y   ŒmxY w)#z3 Tests the large number of use cases defined below T©Únopythonc                 ó@   •— | dk  r| S  ‰| dz
  «       ‰| dz
  «      z   S ©Né   é   © )r   Úfib3s    €r   r-   z7TestListComprehension.test_bulk_use_cases.<locals>.fib3+   s*   ø€ à�1ŠuØ�Ù˜˜A™“;¡ a¨!¡e£Ñ,Ð,r$   c                 óX   — t        dt        | «      dz
  «      D �cg c]  }|‘Œ c}S c c}w )z Test basic list comprehension r+   )r   Úlen©Úxr   s     r   Úlist1z8TestListComprehension.test_bulk_use_cases.<locals>.list11   s+   € ä$ Q¬¨A«°©
Ô3Ó4Ñ3˜!’AÐ3Ñ4Ð4ùÒ4s   ›	'c                 ó8   — | D �cg c]
  }|dk  sŒ	|‘Œ c}S c c}w )z% Test conditional list comprehension r*   r,   ©r1   Úys     r   Úlist2z8TestListComprehension.test_bulk_use_cases.<locals>.list25   s    € á Ó*™q˜! A¨£E’A˜qÑ*Ð*ùÒ*ó   …
�c                 ó:   — | D �cg c]  }|dk  r|nd‘Œ c}S c c}w )z! Test ternary list comprehension r*   r   r,   r4   s     r   Úlist3z8TestListComprehension.test_bulk_use_cases.<locals>.list39   s%   € á01Ó2±¨1˜˜Qš‘A BÑ&°Ñ2Ð2ùÒ2s   …c                 ó0   — t        j                  g d¢«      S )z* Test list comprehension to np.array ctor ©r+   r*   é   ©ÚnpÚarray©r1   s    r   Úlist4z8TestListComprehension.test_bulk_use_cases.<locals>.list4=   s   € ä—8‘8šIÓ&Ð&r$   c                 ó¤   — t        j                  | D ��cg c]%  }t        j                  | D �cg c]  }|‘Œ c}«      ‘Œ' c}}«      S c c}w c c}}w )z1 Test nested list comprehension to np.array ctor r=   ©r1   r5   Úzs      r   Úlist5z8TestListComprehension.test_bulk_use_cases.<locals>.list5B   s;   € ä—8‘8¹qÔA¹q¸!œRŸX™X±!£n±!¨Q¢q°!¡nÕ5¸qÒAÓBÐBù¢nùÓAs   •A
­	A¶	A
ÁA
c                 ó>   — d„ }| D �cg c]
  } ||«      ‘Œ c}S c c}w )z2 Test use of inner function in list comprehension c                 ó   — | dz   S ©Nr+   r,   r@   s    r   ÚinnerzGTestListComprehension.test_bulk_use_cases.<locals>.list6.<locals>.innerH   s   € Ø˜1‘u�r$   r,   )r1   rI   rD   s      r   Úlist6z8TestListComprehension.test_bulk_use_cases.<locals>.list6F   s#   € òá&'Ó(¡a ‘E˜!•H aÑ(Ð(ùÒ(s   ˆc                 óH   ‡— dŠˆfd„}| D �cg c]
  } ||«      ‘Œ c}S c c}w )z+ Test use of closure in list comprehension r<   c                 ó   •— | ‰z   S ©Nr,   r4   s    €r   rI   zGTestListComprehension.test_bulk_use_cases.<locals>.list7.<locals>.innerP   s   ø€ Ø˜1‘u�r$   r,   )r1   rI   rD   r5   s      @r   Úlist7z8TestListComprehension.test_bulk_use_cases.<locals>.list7L   s)   ø€ àˆAôá&'Ó(¡a ‘E˜!•H aÑ(Ð(ùÒ(s   �c                 óJ   — | D �cg c]  }|dz   ‘Œ	 }}d„ } ||«      }|S c c}w )z9 Test use of list comprehension as arg to inner function r+   c                 ó   — | d   dz   S ©Nr   r+   r,   r@   s    r   rI   zGTestListComprehension.test_bulk_use_cases.<locals>.list8.<locals>.innerX   s   € Ø˜‘t˜a‘x�r$   r,   )r1   rD   r   rI   Úqs        r   Úlist8z8TestListComprehension.test_bulk_use_cases.<locals>.list8T   s2   € á !Ó"¡˜1��Q“ ˆAÐ"ò á�a“ˆAØˆHùò #s   … c                 óN   ‡— | D �cg c]  }|dz   ‘Œ	 c}Šˆfd„} || «      S c c}w )z2 Test use of list comprehension access in closure r+   c                 ó   •— | d   ‰d   z   S rQ   r,   )r1   r   s    €r   rI   zGTestListComprehension.test_bulk_use_cases.<locals>.list9.<locals>.innera   s   ø€ Ø˜‘t˜a ™d‘{Ð"r$   r,   ©r1   rD   rI   r   s      @r   Úlist9z8TestListComprehension.test_bulk_use_cases.<locals>.list9]   s.   ø€ á !Ó"¡˜1��Q“ Ñ"ˆAô#á˜“8ˆOùò	 #ó   †"c                 óN   ‡— | D �cg c]  }|dz   ‘Œ	 c}Šˆfd„} |‰«      S c c}w )z= Test use of list comprehension access in closure and as arg r+   c                 ó:   •— | D �cg c]
  }|‰d   z   ‘Œ c}S c c}w r   r,   )r1   r5   r   s     €r   rI   zHTestListComprehension.test_bulk_use_cases.<locals>.list10.<locals>.inneri   s#   ø€ Ù*+Ó,©! Q˜˜A˜a™D›¨!Ñ,Ð,ùÒ,ó   †r,   rV   s      @r   Úlist10z9TestListComprehension.test_bulk_use_cases.<locals>.list10e   s.   ø€ á !Ó"¡˜1��Q“ Ñ"ˆAô-á˜“8ˆOùò	 #rX   c                 óT   — | D �cg c]  }t        j                  |«      ‘Œ }}|S c c}w )z6 Test scalar array construction in list comprehension r=   ©r1   rD   r   s      r   Úlist11z9TestListComprehension.test_bulk_use_cases.<locals>.list11m   s(   € á&'Ó(¡a ”—‘˜!• aˆAÐ(ØˆHùò )ó   …%c                 óT   — | D �cg c]  }t        j                  |«      ‘Œ }}|S c c}w )z@ Test scalar type conversion construction in list comprehension )r>   Úfloat64r^   s      r   Úlist12z9TestListComprehension.test_bulk_use_cases.<locals>.list12r   s(   € á()Ó*© 1”—‘˜A•¨ˆAÐ*ØˆHùò +r`   c                 óT   — | D �cg c]  }t        j                  |«      ‘Œ }}|S c c}w )zH Test use of explicit numpy scalar ctor reference in list comprehension )Únumpyrb   r^   s      r   Úlist13z9TestListComprehension.test_bulk_use_cases.<locals>.list13w   s)   € á+,Ó-©1 a”—‘˜qÕ!¨1ˆAÐ-ØˆHùò .r`   c                 ó@   — | D �cg c]  }t        |«      ‘Œ }}|S c c}w )z@ Test use of python scalar ctor reference in list comprehension ©Úfloatr^   s      r   Úlist14z9TestListComprehension.test_bulk_use_cases.<locals>.list14|   s$   € á#$Ó%¡1˜a”�q• 1ˆAÐ%ØˆHùò &s   …c                 óf   — | D �cg c]  }t        |«      ‘Œ }}t        j                  |«      S c c}w )zo Test use of python scalar ctor reference in list comprehension followed by np array construction from the list©ri   r>   r?   r^   s      r   Úlist15z9TestListComprehension.test_bulk_use_cases.<locals>.list15�   s-   € á#$Ó%¡1˜a”�q• 1ˆAÐ%Ü—8‘8˜A“;Ðùò &s   ….c                 óÂ   — | D �cg c]  }t        |«      ‘Œ }}| D �cg c]  }|‘Œ }}t        j                  |«      }t        j                  |«      }||z   S c c}w c c}w )zH Test type unification from np array ctors consuming list comprehension rl   )r1   rD   Úl1Úl2ÚzeÚoes         r   Úlist16z9TestListComprehension.test_bulk_use_cases.<locals>.list16†   sW   € á$%Ó&¡A˜q”%˜•( AˆBÐ&Ù“™Q˜’!˜QˆB�Ü—‘˜"“ˆBÜ—‘˜"“ˆBØ˜‘7ˆNùò	 'ùÚs
   …A�	Ac                 óœ   — | D ���cg c]6  }| D ]/  }| D ](  }t        j                  |dz  |dz  z   «      |k(  r|||f‘Œ* Œ1 Œ8 c}}}S c c}}}w )z6 Test complex list comprehension including math calls r*   )r>   Úsqrt)r1   ÚaÚbÚcs       r   Úlist17z9TestListComprehension.test_bulk_use_cases.<locals>.list17Ž   sh   € ñ õSÙ˜« 1³1¨a¼¿¹ÀÀ1ÁÀqÈ!ÁtÁÓ8LÐPQÒ8Qð ˜˜1’IØ34ð Ø()ð ØóSð Sùô Ss   ‡;Aé	   c                 óH   •— g }| D ]  }|‰k  sŒ	|j                  |«       Œ |S )z3 Test loop list with outer scope var as conditional©Úappend)r1   rD   r   Ú_OUTER_SCOPE_VARs      €r   Úlist18z9TestListComprehension.test_bulk_use_cases.<locals>.list18•   s-   ø€ àˆAÛ�ØÐ'Ó'Ø—H‘H˜Q•Kð ð ˆHr$   c                 ó:   •— | D �cg c]
  }|‰k  sŒ	|‘Œ c}S c c}w )z8 Test list comprehension with outer scope as conditionalr,   )r1   r   r~   s     €r   Úlist19z9TestListComprehension.test_bulk_use_cases.<locals>.list19Ÿ   s#   ø€ á Ó9™q˜! AÐ(8Ó$8’A˜qÑ9Ð9ùÒ9s   †
‘c                 ó8   — | D �cg c]
  }|dk(  sŒ	|‘Œ c}S c c}w )z Test return empty list iüÿÿr,   r0   s     r   Úlist20z9TestListComprehension.test_bulk_use_cases.<locals>.list20£   s    € á Ó/™q˜! A¨£J’A˜qÑ/Ð/ùÒ/r7   c                 ó:   •— | D �cg c]
  } ‰|«      ‘Œ c}S c c}w )z5 Test call a jitted function in a list comprehension r,   )r1   r   r-   s     €r   Úlist21z9TestListComprehension.test_bulk_use_cases.<locals>.list21§   s   ø€ á%&Ó'¡Q ‘D˜•G QÑ'Ð'ùÒ'r[   c                 ó¨   — | D �cg c]  }|dz
  ‘Œ	 }}| D �cg c]  }|dz   ‘Œ	 }}|D � �cg c]  } |D ]
  }| |k(  sŒ	| ‘Œ Œ c}} S c c}w c c}w c c}} w )zH Test create two lists comprehensions and a third walking the first two r+   r,   )r1   r5   rv   rw   s       r   Úlist22z9TestListComprehension.test_bulk_use_cases.<locals>.list22«   s`   € á !Ó"¡˜1��Q“ ˆAÐ"Ù !Ó"¡˜1��Q“ ˆAÐ"Ù Ô6™q˜!«! Q¨q°A«v’A¨!�A˜qÒ6Ð6ùò #ùÚ"ùÛ6s   …A—A	ªAºAc                 óP   — | D �cg c]  }|‘Œ }}|j                  d«       |S c c}w )z0 Test operation on comprehension generated list r+   r|   rC   s      r   Úlist23z9TestListComprehension.test_bulk_use_cases.<locals>.list23±   s)   € á“™A�q’˜AˆA�Ø�H‰H�QŒKØˆHùò s   …	#c                 óN   — | D �cg c]  }|dkD  rt        |«      n|‘Œ }}|S c c}w )z Test type promotion r<   rh   rC   s      r   Úlist24z9TestListComprehension.test_bulk_use_cases.<locals>.list24·   s/   € á34Ó5±1¨a˜Q šU”�q”¨Ñ)°1ˆAÐ5ØˆHùò 6s   …"c                 óŠ   — t        j                  g d¢«      }t        d«      D �cg c]  }|t        |«      vsŒ|‘Œ }}|S c c}w )N)r+   r*   é   é   é
   )r>   r?   r   Úlist)r1   Úincludedr   Únot_includeds       r   Úlist25z9TestListComprehension.test_bulk_use_cases.<locals>.list25¼   sA   € ô
 —x‘x¢Ó-ˆHÜ',¨R¤yÓL¡y !°A¼TÀ(»^Ò4KšA yˆLÐLØÐùò Ms
   ¥A ¸A ©r+   r*   r<   é   r   Nl        é@   é    )r   r   Ú
ValueErrorr>   ÚtestingÚassert_allcloseÚ	ExceptionÚassertRaisesr	   ÚsysÚmaxsize)"r    r2   r6   r9   rA   rE   rJ   rN   rS   rW   r\   r_   rc   rf   rj   rm   rs   ry   r   r�   rƒ   r…   r‡   r‰   r‹   r“   ÚfÚvarÚrefr"   ÚraisesÚbitsr~   r-   s"                                   @@r   Útest_bulk_use_casesz)TestListComprehension.test_bulk_use_cases'   sÂ  ù€ ô 
�dÔ	ó	-ó 
ð	-ò
	5ò	+ò	3ò	'ò
	Cò	)ò	)ò	ò	ò	ò	ò
	ò
	ò
	ò
	ò
	ò	Sð
 Ðô	ð Ðô	:ò	0ô	(ò	7ò	ò	ò
	 ð �E˜5 %Ø�E˜5 %¨°Ø�V˜V VØ�V˜V V¨VØ�V˜V V¨Vð	5ˆò ˆÛˆCðØ*œ TÔ*¨3Ó/�Ø× Ñ ¡ s£©S°«XÕ6ð ð ×Ñœ{Ô+¨vØ&”C Ô& uÓ-ˆEÙ�#ŒJ÷ ,ô �;‰;˜Ò Ø‰Dà‰Døô! ò ðÜ—J‘J×.Ñ.©u°S«z¹3¸s»8ÕDøÜ ò Øðúñ Eðú÷ ,Ð+ús6   Â0DÃEÄ	EÄ,E
Å	EÅ
EÅEÅEÅE'c                 óz   — d„ } t        d¬«      |«      }g d¢} ||«      } ||«      }| j                  ||«       y )Nc                 óB   — t        «       }| D �cg c]  }|‘Œ }}|S c c}w rM   )Úobject)r5   rD   r1   Úinlineds       r   Úobjmode_funczATestListComprehension.test_objmode_inlining.<locals>.objmode_funcä   s%   € Ü“ˆAÙ"#“n¡!˜Q’q !ˆG�nØˆNùò %s   �	T)Úforceobjr;   )r   ÚassertPreciseEqual)r    r©   r"   ÚtÚexpectedÚgots         r   Útest_objmode_inliningz+TestListComprehension.test_objmode_inliningã   sA   € ò	ð
 #”˜TÔ" <Ó0ˆÚˆÙ “?ˆÙ�A‹hˆØ×Ñ ¨#Õ.r$   N)Ú__name__Ú
__module__Ú__qualname__r#   r¤   r¯   r,   r$   r   r   r      s   „ ò0òzóx
/r$   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j"                  edk  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 y)ÚTestArrayComprehensionFc                 óL  — |j                  dd«      }|j                  dd«      }|j                  dd«      } t        d|¬«      |«      } ||Ž } ||Ž }	t        j                  j	                  ||	«       |r| j                  |	d   j                  |«       |r/| j                  d|j                  |j                  d	   «      «       n.| j                  d|j                  |j                  d	   «      «       |r/| j                  d
|j                  |j                  d	   «      «       yy)z^A generic check function that run both pyfunc, and jitted pyfunc,
        and compare results.Úrun_parallelFÚassert_allocate_listÚassert_dtypeT)r'   Úparallelr+   zallocate listr   z@do_schedulingN)Úgetr   r>   r™   Úassert_array_equalr   ÚdtypeÚassertInÚinspect_llvmÚ
signaturesÚassertNotIn)
r    r!   ÚargsÚkwargsr¶   r·   r¸   r"   ÚpyresÚcress
             r   ÚcheckzTestArrayComprehension.checkô   s  € ð —z‘z .°%Ó8ˆØ%Ÿz™zÐ*@À%ÓHÐØ—z‘z .°%Ó8ˆØ8”˜T¨<Ô8¸Ó@ˆÙ˜�ˆÙ�dˆ|ˆÜ
�
‰
×%Ñ% e¨TÔ2ÙØ×Ñ˜T !™WŸ]™]¨LÔ9ÙØ�M‰M˜/¨5×+=Ñ+=¸e×>NÑ>NÈqÑ>QÓ+RÕSà×Ñ˜_¨e×.@Ñ.@À×AQÑAQÐRSÑATÓ.UÔVÙØ�M‰MÐ*¨E×,>Ñ,>¸u×?OÑ?OÐPQÑ?RÓ,SÕTð r$   c                 ód   — d„ }| j                  |d«       t        r| j                  |dd¬«       y y )Nc                 óx   — | dz  }t        j                  t        | «      D �cg c]  }||z   ‘Œ	 c}«      }|S c c}w ©Nr*   ©r>   r?   r   ©r   Úmr   r   s       r   Úcomp_with_array_1zHTestArrayComprehension.test_comp_with_array_1.<locals>.comp_with_array_1  ó:   € Ø�A‘ˆAÜ—‘¬¨q¬Ó2© A˜!˜a›%¨Ñ2Ó3ˆAØˆHùò 3ó   ¢7r   T©r¶   ©rÅ   ÚPARALLEL_SUPPORTED)r    rÌ   s     r   Útest_comp_with_array_1z-TestArrayComprehension.test_comp_with_array_1  s3   € ò	ð
 	�
‰
Ð$ aÔ(ÝØ�J‰JÐ(¨!¸$ˆJÕ?ð r$   c                 ó0   — d„ }| j                  |dd«       y )Nc                 óš   — t        j                  |  | «      }t        j                  |D �cg c]  }||k  r||z  n|dz  ‘Œ c}«      S c c}w rÈ   )r>   Úaranger?   )r   Ú	thresholdÚAr1   s       r   Úcomp_with_array_2zHTestArrayComprehension.test_comp_with_array_2.<locals>.comp_with_array_2  sH   € Ü—	‘	˜1˜"˜aÓ ˆAÜ—8‘8ÉÓLÉÀA q¨9¢}˜a !še¸!¸a¹%Ñ?ÈÑLÓMÐMùÒLs   «Ar   r   ©rÅ   )r    rØ   s     r   Útest_comp_with_array_2z-TestArrayComprehension.test_comp_with_array_2  s   € ò	Nð 	�
‰
Ð$ a¨Õ+r$   c                 óz   — d„ }dd l mc m} 	 d|_        | j	                  |dd¬«       d|_        y # d|_        w xY w)Nc                 óx   — | dz  }t        j                  t        | «      D �cg c]  }||z   ‘Œ	 c}«      }|S c c}w rÈ   rÉ   rÊ   s       r   Úcomp_with_array_noinlinezVTestArrayComprehension.test_comp_with_array_noinline.<locals>.comp_with_array_noinline  rÍ   rÎ   r   Fr   T©r·   ©Únumba.core.inline_closurecallÚcoreÚinline_closurecallÚenable_inline_arraycallrÅ   )r    rÝ   Úics      r   Útest_comp_with_array_noinlinez4TestArrayComprehension.test_comp_with_array_noinline  s@   € ò	÷
 	3Ð2ð	.Ø).ˆBÔ&Ø�J‰JÐ/°ÈˆJÔNà)-ˆBÕ&ø¨ˆBÕ&úó   Ž1 ±	:c                 ó2   — d„ }| j                  |dd¬«       y )Nc                 óx   — dg}t        | «      D ]  }|j                  |«       Œ t        j                  |«      }|S r   )r   r}   r>   r?   )r   Úlstr   r   s       r   rÝ   zaTestArrayComprehension.test_comp_with_array_noinline_issue_6053.<locals>.comp_with_array_noinline&  s4   € Ø�#ˆCÜ˜1–X�Ø—
‘
˜1•ð ä—‘˜“ˆAØˆHr$   r   TrÞ   rÙ   )r    rÝ   s     r   Ú(test_comp_with_array_noinline_issue_6053z?TestArrayComprehension.test_comp_with_array_noinline_issue_6053%  s   € ò	ð 	�
‰
Ð+¨QÀTˆ
ÕJr$   c                 ód   — d„ }| j                  |d«       t        r| j                  |dd¬«       y y )Nc                 ó¬   — t        j                  t        | «      D ��cg c]  }t        | «      D �cg c]  }||z  ‘Œ	 c}‘Œ  c}}«      }|S c c}w c c}}w rM   rÉ   ©r   r   Újr   s       r   Úcomp_nest_with_arrayzNTestArrayComprehension.test_comp_nest_with_array.<locals>.comp_nest_with_array0  óG   € Ü—‘¼UÀ1¼XÔF¹X¸¬%°¬(Ó3©( Q˜1˜q›5¨(Ó3¸XÒFÓGˆAØˆHùò 4ùÓFó   žA
°A¼A
ÁA
r   TrÏ   rÐ   )r    rï   s     r   Útest_comp_nest_with_arrayz0TestArrayComprehension.test_comp_nest_with_array/  s3   € ò	ð 	�
‰
Ð'¨Ô+ÝØ�J‰JÐ+¨Q¸TˆJÕBð r$   c                 ód   — d„ }| j                  |d«       t        r| j                  |dd¬«       y y )Nc                 óö   — t        j                  t        | «      D ���cg c]:  }t        | «      D ��cg c]!  }t        | «      D �cg c]
  }||z  |z  ‘Œ c}‘Œ# c}}‘Œ< c}}}«      }|S c c}w c c}}w c c}}}w rM   rÉ   )r   r   rî   Úkr   s        r   Úcomp_nest_with_array_3zRTestArrayComprehension.test_comp_nest_with_array_3.<locals>.comp_nest_with_array_39  sg   € Ü—‘ÔUZÐ[\ÔU]Õ^ÑU]ÐPQÄ%ÈÄ(ÔKÁ(¸Q¬u°Q¬xÓ8©x¨!˜A ™E A›I¨xÓ8À(ÔKÐU]Ó^Ó_ˆAØˆHùò 9ùÓKùÔ^s(   ŸA4²A.ÁA)ÁA.ÁA4Á)A.Á.A4r   TrÏ   rÐ   )r    rö   s     r   Útest_comp_nest_with_array_3z2TestArrayComprehension.test_comp_nest_with_array_38  s3   € ò	ð 	�
‰
Ð)¨1Ô-ÝØ�J‰JÐ-¨q¸tˆJÕDð r$   c                 óz   — d„ }dd l mc m} 	 d|_        | j	                  |dd¬«       d|_        y # d|_        w xY w)Nc                 ó¬   — t        j                  t        | «      D ��cg c]  }t        | «      D �cg c]  }||z  ‘Œ	 c}‘Œ  c}}«      }|S c c}w c c}}w rM   rÉ   rí   s       r   Úcomp_nest_with_array_noinlinez`TestArrayComprehension.test_comp_nest_with_array_noinline.<locals>.comp_nest_with_array_noinlineB  rð   rñ   r   Fr   TrÞ   rß   )r    rú   rä   s      r   Ú"test_comp_nest_with_array_noinlinez9TestArrayComprehension.test_comp_nest_with_array_noinlineA  sH   € ò	÷ 	3Ð2ð	.Ø).ˆBÔ&Ø�J‰JÐ4°aØ,0ð ô 2ð *.ˆBÕ&ø¨ˆBÕ&úræ   c                 ó0   — d„ }| j                  |dd«       y )Nc                 ój   — t        j                  t        | |«      D �cg c]  }|‘Œ c}«      }|S c c}w rM   rÉ   ©rË   r   r   r   s       r   Úcomp_with_array_rangezPTestArrayComprehension.test_comp_with_array_range.<locals>.comp_with_array_rangeO  s/   € Ü—‘¤U¨1¨a¤[Ó1¡[ š! [Ñ1Ó2ˆAØˆHùò 2s   ž	0r   r�   rÙ   )r    rÿ   s     r   Útest_comp_with_array_rangez1TestArrayComprehension.test_comp_with_array_rangeN  s   € ò	ð 	�
‰
Ð(¨!¨RÕ0r$   c                 ó0   — d„ }| j                  |dd«       y )Nc                 ól   — t        j                  t        | |d«      D �cg c]  }|‘Œ c}«      }|S c c}w rÈ   rÉ   rþ   s       r   Úcomp_with_array_range_and_stepzbTestArrayComprehension.test_comp_with_array_range_and_step.<locals>.comp_with_array_range_and_stepV  s1   € Ü—‘¤U¨1¨a°¤^Ó4¡^ š! ^Ñ4Ó5ˆAØˆHùò 5s   Ÿ	1r   r�   rÙ   )r    r  s     r   Ú#test_comp_with_array_range_and_stepz:TestArrayComprehension.test_comp_with_array_range_and_stepU  s   € ò	ð 	�
‰
Ð1°1°bÕ9r$   c                 ó2   — d„ }| j                  |dd¬«       y )Nc                 óz   — t        j                  t        | «      D �cg c]  }|dz  dk(  sŒ|‘Œ c}«      }|S c c}w r)   rÉ   ©r   r   r   s      r   Úcomp_with_array_conditionalz\TestArrayComprehension.test_comp_with_array_conditional.<locals>.comp_with_array_conditional]  s7   € Ü—‘¤U¨1¤XÓ<¡X °°Q±¸!³š! XÑ<Ó=ˆAØˆHùò =s   �8«8r�   TrÞ   rÙ   )r    r  s     r   Ú test_comp_with_array_conditionalz7TestArrayComprehension.test_comp_with_array_conditional\  s   € ò	ð 	�
‰
Ð.°Èˆ
ÕNr$   c                 ó2   — d„ }| j                  |dd¬«       y )Nc                 ó¾   — t        j                  t        | «      D ��cg c]'  }|dz  dk(  sŒt        | «      D �cg c]  }||z  ‘Œ	 c}‘Œ) c}}«      }|S c c}w c c}}w r)   rÉ   rí   s       r   Ú comp_nest_with_array_conditionalzfTestArrayComprehension.test_comp_nest_with_array_conditional.<locals>.comp_nest_with_array_conditionald  sR   € Ü—‘¼UÀ1¼XÔT¹X¸ÈÈQÉÐRSË¬%°¬(Ó3©( Q˜1˜q›5¨(Ó3¸XÒTÓUˆAØˆHùò 4ùÓTs   žA
¬A
¹AÁA
ÁA
r   TrÞ   rÙ   )r    r  s     r   Ú%test_comp_nest_with_array_conditionalz<TestArrayComprehension.test_comp_nest_with_array_conditionalc  s"   € ò	ð 	�
‰
Ð3°QØ(,ð 	õ 	.r$   )r+   é   zASetting an array element with a sequence is removed in NumPy 1.24c                 ó  — d„ }| j                  t        «      5 }| j                  |d«       d d d «       | j                  t        t        j                  «      «       | j                  dt        |j                  «      «       y # 1 sw Y   ŒXxY w)Nc                 ó²   — t        j                  t        | «      D ��cg c]!  }t        |dz   «      D �cg c]  }||z  ‘Œ	 c}‘Œ# c}}«      }|S c c}w c c}}w rH   rÉ   rí   s       r   Úcomp_nest_with_dependencyzXTestArrayComprehension.test_comp_nest_with_dependency.<locals>.comp_nest_with_dependencyn  sK   € Ü—‘¼uÀQ¼xÔH¹x¸!¬%°°!±¬*Ó5©* Q˜1˜q›5¨*Ó5¸xÒHÓIˆAØˆHùò 6ùÓHs   žA
³A¿A
ÁA
r   zarray(undefined,©rœ   r	   rÅ   r½   r   ÚstrÚ	exception)r    r  r¢   s      r   Útest_comp_nest_with_dependencyz5TestArrayComprehension.test_comp_nest_with_dependencyj  si   € ò	ð ×Ñœ{Ô+¨vØ�J‰JÐ0°!Ô4÷ ,à�‰”l¤C¨×(8Ñ(8Ó$9Ô:Ø�‰Ð(¬#¨f×.>Ñ.>Ó*?Õ@÷ ,Ð+ús   ™BÂBc                 ó  — d„ }| j                  t        «      5 }| j                  |«       d d d «       | j                  t        t        j                  «      «       | j                  dt        |j                  «      «       y # 1 sw Y   ŒXxY w)Nc                  ó~   — t        g d¢g d¢«      } t        j                  | D ��cg c]  \  }}|‘Œ	 c}}«      S c c}}w )Nr;   )r•   r   r�   )Úzipr>   r?   )Úvalrv   rw   s      r   Úcomp_unsupported_iterzPTestArrayComprehension.test_comp_unsupported_iter.<locals>.comp_unsupported_iterx  s3   € Ü’i¢Ó+ˆCÜ—8‘8©3Ô/©3¡4 1 ašQ¨3Ò/Ó0Ð0ùÓ/s   ¥9
z1Unsupported iterator found in array comprehensionr  )r    r  r¢   s      r   Útest_comp_unsupported_iterz1TestArrayComprehension.test_comp_unsupported_iterw  sj   € ò	1ð ×Ñœ{Ô+¨vØ�J‰JÐ,Ô-÷ ,à�‰”l¤C¨×(8Ñ(8Ó$9Ô:Ø�‰ÐIÜ˜&×*Ñ*Ó+õ	-÷ ,Ð+ús   ™BÂBc                 ó`   — d„ }| j                  |dd¬«       d„ }| j                  |dd¬«       y )Nc                 ó8   — g d¢}t        j                  |«      }|S )N©r+   r*   r<   r•   r=   ©r   r   rv   s      r   Úno_array_comp1zATestArrayComprehension.test_no_array_comp.<locals>.no_array_comp1‚  s   € ÚˆAÜ—‘˜“ˆAØˆHr$   r�   FrÞ   c                 óZ   — g d¢}t        j                  |«      }|j                  d«       |S )Nr  r   )r>   r?   r}   r  s      r   Úno_array_comp2zATestArrayComprehension.test_no_array_comp.<locals>.no_array_comp2ˆ  s$   € ÚˆAÜ—‘˜“ˆAØ�H‰H�QŒKØˆHr$   TrÙ   )r    r   r"  s      r   Útest_no_array_compz)TestArrayComprehension.test_no_array_comp�  s4   € ò	ð
 	�
‰
�> 2¸Eˆ
ÔBò	ð
 	�
‰
�> 2¸Dˆ
ÕAr$   c                 ó.   — d„ }| j                  |d«       y )Nc                 óÌ   — t        j                  t        | «      D ��cg c].  }t        j                  t        | «      D �cg c]  }|‘Œ c}«      ‘Œ0 c}}«      }|S c c}w c c}}w rM   rÉ   ©r   r5   r1   r   s       r   Únested_arrayz>TestArrayComprehension.test_nested_array.<locals>.nested_array�  óL   € Ü—‘ÄEÈ!ÄHÔMÁH¸qœ2Ÿ8™8´°a´Ó$9±¨1¢Q°Ñ$9Õ:ÀHÒMÓNˆAØˆHùò %:ùÓMó   ž!A 
¿	AÁ	A 
ÁA 
r�   rÙ   ©r    r'  s     r   Útest_nested_arrayz(TestArrayComprehension.test_nested_array�  s   € ò	ð 	�
‰
�< Õ$r$   c                 ó.   — d„ }| j                  |d«       y )Nc                 óÌ   — t        j                  t        d«      D ��cg c].  }t        j                  t        d«      D �cg c]  }|‘Œ c}«      ‘Œ0 c}}«      }|S c c}w c c}}w )Nr•   r<   rÉ   r&  s       r   r'  zITestArrayComprehension.test_nested_array_with_const.<locals>.nested_array—  r(  r)  r   rÙ   r*  s     r   Útest_nested_array_with_constz3TestArrayComprehension.test_nested_array_with_const–  s   € ò	ð 	�
‰
�< Õ#r$   c                 ó   — d„ }g d¢}| j                  ||«       | j                  |t        j                  |«      «       | j                  |t        |«      «       | j                  |t	        j
                  |«      «       y )Nc                 ó\   — t        j                  | D �cg c]  }||z  ‘Œ	 c}«      }|S c c}w rM   r=   )rv   r1   r   s      r   Ú
array_compzDTestArrayComprehension.test_array_comp_with_iter.<locals>.array_compž  s-   € Ü—‘©!Ó-©! Q˜1˜q›5¨!Ñ-Ó.ˆAØˆHùò .s   ”)r”   )rÅ   r>   r?   Útupler   ÚList)r    r1  r   s      r   Útest_array_comp_with_iterz0TestArrayComprehension.test_array_comp_with_iter�  sZ   € ò	ò ˆØ�
‰
�:˜qÔ!à�
‰
�:œrŸx™x¨›{Ô+à�
‰
�:œu Q›xÔ(à�
‰
�:œuŸz™z¨!›}Õ-r$   c                 óN   — d„ }| j                  |dt        j                  ¬«       y )Nc                 óˆ   — t        j                  t        | «      D �cg c]  }|‘Œ c}t         j                  ¬«      }|S c c}w )N)r¼   )r>   r?   r   Ú	complex64r  s      r   r1  zETestArrayComprehension.test_array_comp_with_dtype.<locals>.array_comp¬  s3   € Ü—‘¤U¨1¤XÓ.¡X š! XÑ.´b·l±lÔCˆAØˆHùò /s   �	?r�   ©r¸   )rÅ   r>   r7  ©r    r1  s     r   Útest_array_comp_with_dtypez1TestArrayComprehension.test_array_comp_with_dtype«  s   € ò	ð 	�
‰
�:˜r´·±ˆ
Õ=r$   c                 ó.   — d„ }| j                  |d«       y )Nc                 ón   — t        j                  t        | «      D �cg c]  }|dz  ‘Œ	 c}«      }|S c c}w )Ny              ð?rÉ   r  s      r   r1  zITestArrayComprehension.test_array_comp_inferred_dtype.<locals>.array_comp³  s1   € Ü—‘¬%°¬(Ó3©( Q˜!˜b›&¨(Ñ3Ó4ˆAØˆHùò 4s   �2r�   rÙ   r9  s     r   Útest_array_comp_inferred_dtypez5TestArrayComprehension.test_array_comp_inferred_dtype²  ó   € ò	ð 	�
‰
�:˜rÕ"r$   c                 ó.   — d„ }| j                  |d«       y )Nc                 ó¬   — t        j                  t        | «      D ��cg c]  }t        | «      D �cg c]  }||z  ‘Œ	 c}‘Œ  c}}«      }|S c c}w c c}}w rM   rÉ   rí   s       r   r1  zPTestArrayComprehension.test_array_comp_inferred_dtype_nested.<locals>.array_compº  rð   rñ   r�   rÙ   r9  s     r   Ú%test_array_comp_inferred_dtype_nestedz<TestArrayComprehension.test_array_comp_inferred_dtype_nested¹  r>  r$   c                 ó.   — d„ }| j                  |d«       y )Nc                 ó¬   — t        j                  t        | «      D ��cg c]  }t        | «      D �cg c]  }||z  ‘Œ	 c}‘Œ  c}}«      }|S c c}w c c}}w rM   rÉ   rí   s       r   r1  zTTestArrayComprehension.test_array_comp_inferred_dtype_nested_sum.<locals>.array_compÁ  sG   € Ü—‘¼UÀ1¼XÔF¹X¸¬%°¬(Ó3©( Q˜1˜q›5¨(Ó3¸XÒFÓGˆAàˆHùò 4ùÓFrñ   r�   rÙ   r9  s     r   Ú)test_array_comp_inferred_dtype_nested_sumz@TestArrayComprehension.test_array_comp_inferred_dtype_nested_sumÀ  s   € ò	ð
 	�
‰
�:˜rÕ"r$   c                 óô  — d„ }d}| j                  |d|t        j                  ¬«       | j                  t        «      5 } t        d¬«      |«      } |dd«       d d d «       | j                  t        dj                  t        j                  «      z   t        j                  «      «       | j                  d	j                  t        j                  «      t        |j                  «      «       y # 1 sw Y   Œ•xY w)
Nc                 ór   — t        j                  t        | «      D �cg c]  }|‘Œ c}«      }||d<   |S c c}w r   rÉ   )r   Úvr   Úarrs       r   r1  zYTestArrayComprehension.test_array_comp_inferred_dtype_outside_setitem.<locals>.array_compÉ  s6   € Ü—(‘(¤u¨Q¤xÓ0¡x !šA xÑ0Ó1ˆCàˆC�‰FØˆJùò 1s   �	4g333333ó?r�   r8  Tr&   y        ffffff@z Function({})z/(array({}, 1d, C), Literal[int](0), complex128))rÅ   r>   r   rœ   r	   r   r½   r   ÚformatÚoperatorÚsetitemr  r  r   )r    r1  rG  r¢   r"   s        r   Ú.test_array_comp_inferred_dtype_outside_setitemzETestArrayComprehension.test_array_comp_inferred_dtype_outside_setitemÈ  sÁ   € ò	ð ˆØ�
‰
�:˜r 1´2·7±7ˆ
Ô;à×Ñœ{Ô+¨vØ&”C Ô& zÓ2ˆEÙ�"�dŒO÷ ,ð 	�‰Ü˜?×1Ñ1´(×2BÑ2BÓCÑCÜ�× Ñ Ó!ô	
ð 	�‰Ø=×DÑDÄUÇZÁZÓPÜ�× Ñ Ó!õ	
÷ ,Ð+ús   ¾C.Ã.C7c           	      óð  ‡— dŠt        d¬«      ˆfd„«       }t        «       5 } |«        d d d «       j                  «       j                  «       }t        «       5 }t	        t        j                  t        ‰«      D �cg c]  }|‘Œ c}«      «       d d d «       j                  «       j                  «       }| j                  ||«       | j                  |d«       y # 1 sw Y   Œ²xY wc c}w # 1 sw Y   Œ]xY w)Néd   Tr&   c                  ó¼   •— t        j                  t        ‰«      D � cg c]  } | ‘Œ c} «      }t         j                  j	                  |«       t        |«       y c c} w rM   )r>   r?   r   ÚrandomÚshuffleÚprint)r   ÚnumbersÚnelems     €r   ÚfoozFTestArrayComprehension.test_array_comp_shuffle_sideeffect.<locals>.fooâ  sB   ø€ ä—h‘h¬5°¬<Ó8©< a¢¨<Ñ8Ó9ˆGÜ�I‰I×Ñ˜gÔ&Ü�'�Nùò  9s   ž	Az\[(\s*\d+)+\])
r   r   ÚgetvalueÚstriprR  r>   r?   r   ÚassertNotEqualÚassertRegex)r    rU  Úgotbufr®   Ú	expectbufr   ÚexpectrT  s          @r   Ú"test_array_comp_shuffle_sideeffectz9TestArrayComprehension.test_array_comp_shuffle_sideeffectß  sÉ   ø€ Øˆä	�dÔ	ó	ó 
ð	ô
 Ô &ÙŒE÷ à�o‰oÓ×%Ñ%Ó'ˆäÔ )Ü”"—(‘(¤u¨U¤|Ó4¡| !šA |Ñ4Ó5Ô6÷ à×#Ñ#Ó%×+Ñ+Ó-ˆð 	×Ñ˜C Ô(Ø×Ñ˜Ð.Õ/÷ Ðüò
 5÷ Ðús)   ¢CÁ"C,Á<	C'ÂC,ÃC$Ã'C,Ã,C5c                 ó2   — d„ }| j                  |dd¬«       y )Nc                 óž   — g }t        j                  dg«      }t         j                  j                  |d«      }|j	                  | |z   «       |S rH   )r>   r?   rP  Úchoicer}   )r1   r¬   ÚmyListrv   s       r   rŸ   z=TestArrayComprehension.test_empty_list_not_removed.<locals>.f÷  s@   € ØˆAÜ—X‘X˜q˜c“]ˆFÜ—	‘	× Ñ  ¨Ó+ˆAØ�H‰H�Q˜‘UŒOØˆHr$   r   TrÞ   rÙ   )r    rŸ   s     r   Útest_empty_list_not_removedz2TestArrayComprehension.test_empty_list_not_removedõ  s   € ò	ð 	�
‰
�1�a¨dˆ
Õ3r$   c                 ó2   — d„ }| j                  |dd¬«       y)z Test issue 3742 c                 óÀ   — t        d«      D �cg c]  }|‘Œ c} t        j                  | «      }t        | «      D ]  }t        j                  | «      }|||<   Œ |S c c}w rH   )r   r>   ÚemptyÚzeros)r   r   rD   s      r   rU  z;TestArrayComprehension.test_reuse_of_array_var.<locals>.foo  sW   € ô ˜aœÓ!™�1ŠQ˜Ò!Ü—‘˜“ˆAÜ˜1–X�Ü—H‘H˜Q“K�Ø��!’ð ð ˆHùò "s   Ž	Ar�   TrÞ   NrÙ   )r    rU  s     r   Útest_reuse_of_array_varz.TestArrayComprehension.test_reuse_of_array_varÿ  s   € ò		ð 	�
‰
�3˜°ˆ
Õ6r$   N)!r°   r±   r²   Ú_numba_parallel_test_rÅ   rÒ   rÚ   rå   rê   rò   r÷   rû   r   r  r	  r  ÚunittestÚ
skipUnlessr   r  r  r#  r+  r.  r4  r:  r=  rA  rD  rL  r]  rb  rg  r,   r$   r   r´   r´   ð   s»   „ à!ÐòUò&@ò,ò.òKòCòEò.ò1ò:òOò.ð €X×Ñ˜¨Ñ0ð)ó*ñAó*ðAò-òBò%ò$ò.ò>ò#ò#ò#ò
ò.0ò,4ó7r$   r´   Ú__main__)ri  Únumba.tests.supportr   r�   rJ  re   r>   Únumbar   r   r   Ú
numba.corer   r   Únumba.core.errorsr	   r
   Únumba.core.types.functionsr   Únumba.np.numpy_supportr   r   r   r   rÑ   r   r   r´   r°   Úmainr,   r$   r   Ú<module>rs     s|   ðÛ Ý (ã 
Û Û Û ç "Ñ "ß #ß 8Ý 3Ý 0ß <Ñ <ð  �ZÐ òôO/˜Hô O/ôd]7˜X×.Ñ.ô ]7ð@	 ˆzÒØ€H‡M�M…Oð r$   