§
    2@ÄjEG  ã                   ó  — 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        ¦   «          dS dS )é    N)ÚTestCase)ÚjitÚnjitÚtyped)ÚtypesÚutils)ÚTypingErrorÚLoweringError)Ú_header_lead)Únumpy_version)ÚtagÚ_32bitÚcaptured_stdoutc                 óP   — d„ t          | ¦  «        D ¦   «         }d}|D ]}||z  }Œ|S )Nc                 ó   — g | ]}|‘ŒS © r   ©Ú.0Úis     úOC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_comprehension.pyú
<listcomp>zcomp_list.<locals>.<listcomp>   s   € ÐÐÐˆqˆÐÐÐó    r   ©Úrange)ÚnÚlÚsr   s       r   Ú	comp_listr      s?   € ØÐ•E˜!‘H”HÐÑÔ€AØ	€AØð ð ˆØ	ˆQ‰ˆˆØ€Hr   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestListComprehensionc                 óJ  — t           } t          t          j        f¦  «        |¦  «        }|                       |d¦  «         |d¦  «        ¦  «         |                       |d¦  «         |d¦  «        ¦  «         |                       |d¦  «         |d¦  «        ¦  «         d S )Né   r   éÿÿÿÿ)r   r   r   ÚintpÚassertEqual)ÚselfÚpyfuncÚcfuncs      r   Útest_comp_listz$TestListComprehension.test_comp_list    sš   € ÝˆØ#••e”j�]Ñ#Ô# FÑ+Ô+ˆØ×Ò˜˜˜q™œ 6 6¨!¡9¤9Ñ-Ô-Ð-Ø×Ò˜˜˜q™œ 6 6¨!¡9¤9Ñ-Ô-Ð-Ø×Ò˜˜˜r™œ F F¨2¡J¤JÑ/Ô/Ð/Ð/Ð/r   c                 ó2  ‡ ‡!— 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 ]—}	  t          d¬¦  «        |¦  «        }|                       ||¦  «         ||¦  «        ¦  «         ŒE# t          $ rF 	 t          j                              ||¦  «         ||¦  «        ¦  «         n# t          $ r ‚ w xY wY Œ”w xY w|                      t          ¦  «        5 } t          d¬¦  «        |¦  «        } ||¦  «         ddd¦  «         n# 1 swxY w Y   t          j
        d k    rd!}dS d"}dS )#z3 Tests the large number of use cases defined below T©Únopythonc                 óN   •— | dk     r| S  ‰| dz
  ¦  «         ‰| dz
  ¦  «        z   S )Né   é   r   )r   Úfib3s    €r   r0   z7TestListComprehension.test_bulk_use_cases.<locals>.fib3+   s4   ø€ à�1ŠuˆuØ�Ø�4˜˜A™‘;”;   a¨!¡e¡¤Ñ,Ð,r   c                 óV   — d„ t          dt          | ¦  «        dz
  ¦  «        D ¦   «         S )z Test basic list comprehension c                 ó   — g | ]}|‘ŒS r   r   r   s     r   r   zLTestListComprehension.test_bulk_use_cases.<locals>.list1.<locals>.<listcomp>3   s   € Ð4Ð4Ð4˜!�AÐ4Ð4Ð4r   r/   )r   Úlen©Úxs    r   Úlist1z8TestListComprehension.test_bulk_use_cases.<locals>.list11   s*   € à4Ð4�u Q­¨A©¬°©
Ñ3Ô3Ð4Ñ4Ô4Ð4r   c                 ó   — d„ | D ¦   «         S )z% Test conditional list comprehension c                 ó   — g | ]
}|d k     ¯|‘ŒS ©r.   r   ©r   Úys     r   r   zLTestListComprehension.test_bulk_use_cases.<locals>.list2.<locals>.<listcomp>7   s   € Ð*Ð*Ð*˜! A¨¢E E�A E E Er   r   r4   s    r   Úlist2z8TestListComprehension.test_bulk_use_cases.<locals>.list25   s   € à*Ð*˜qÐ*Ñ*Ô*Ð*r   c                 ó   — d„ | D ¦   «         S )z! Test ternary list comprehension c                 ó"   — g | ]}|d k     r|nd‘ŒS )r.   r#   r   r:   s     r   r   zLTestListComprehension.test_bulk_use_cases.<locals>.list3.<locals>.<listcomp>;   s$   € Ð2Ð2Ð2¨1˜˜Qš˜�A�A BÐ2Ð2Ð2r   r   r4   s    r   Úlist3z8TestListComprehension.test_bulk_use_cases.<locals>.list39   s   € à2Ð2°Ð2Ñ2Ô2Ð2r   c                 ó.   — t          j        g d¢¦  «        S )z* Test list comprehension to np.array ctor ©r/   r.   é   ©ÚnpÚarrayr4   s    r   Úlist4z8TestListComprehension.test_bulk_use_cases.<locals>.list4=   s   € å”8˜I˜I˜IÑ&Ô&Ð&r   c                 óD   ‡ — t          j        ˆ fd„‰ D ¦   «         ¦  «        S )z1 Test nested list comprehension to np.array ctor c                 óL   •— g | ] }t          j        d „ ‰D ¦   «         ¦  «        ‘Œ!S )c                 ó   — g | ]}|‘ŒS r   r   ©r   Úzs     r   r   zWTestListComprehension.test_bulk_use_cases.<locals>.list5.<locals>.<listcomp>.<listcomp>D   s   €  n n n¨Q q n n nr   rC   )r   r;   r5   s     €r   r   zLTestListComprehension.test_bulk_use_cases.<locals>.list5.<locals>.<listcomp>D   s-   ø€ ÐAÐAÐA¸!�RœX n n°! n¡n¤nÑ5Ô5ÐAÐAÐAr   rC   r4   s   `r   Úlist5z8TestListComprehension.test_bulk_use_cases.<locals>.list5B   s(   ø€ å”8ÐAÐAÐAÐA¸qÐAÑAÔAÑBÔBÐBr   c                 ó&   ‡— d„ Šˆfd„| D ¦   «         S )z2 Test use of inner function in list comprehension c                 ó   — | dz   S ©Nr/   r   r4   s    r   ÚinnerzGTestListComprehension.test_bulk_use_cases.<locals>.list6.<locals>.innerH   s   € Ø˜1‘u�r   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r   r   ©r   rK   rP   s     €r   r   zLTestListComprehension.test_bulk_use_cases.<locals>.list6.<locals>.<listcomp>J   ó!   ø€ Ð(Ð(Ð( �E�E˜!‘H”HÐ(Ð(Ð(r   r   )r5   rP   s    @r   Úlist6z8TestListComprehension.test_bulk_use_cases.<locals>.list6F   s,   ø€ ðð ð à(Ð(Ð(Ð( aÐ(Ñ(Ô(Ð(r   c                 ó0   ‡‡— dŠˆfd„Šˆfd„| D ¦   «         S )z+ Test use of closure in list comprehension rB   c                 ó   •— | ‰z   S )Nr   )r5   r;   s    €r   rP   zGTestListComprehension.test_bulk_use_cases.<locals>.list7.<locals>.innerP   s   ø€ Ø˜1‘u�r   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r   r   rR   s     €r   r   zLTestListComprehension.test_bulk_use_cases.<locals>.list7.<locals>.<listcomp>R   rS   r   r   )r5   rP   r;   s    @@r   Úlist7z8TestListComprehension.test_bulk_use_cases.<locals>.list7L   s<   øø€ àˆAðð ð ð ð à(Ð(Ð(Ð( aÐ(Ñ(Ô(Ð(r   c                 ó:   — d„ | D ¦   «         }d„ } ||¦  «        }|S )z9 Test use of list comprehension as arg to inner function c                 ó   — g | ]}|d z   ‘ŒS ©r/   r   rJ   s     r   r   zLTestListComprehension.test_bulk_use_cases.<locals>.list8.<locals>.<listcomp>V   ó   € Ð"Ð"Ð"˜1��Q‘Ð"Ð"Ð"r   c                 ó   — | d         dz   S ©Nr   r/   r   r4   s    r   rP   zGTestListComprehension.test_bulk_use_cases.<locals>.list8.<locals>.innerX   s   € Ø˜”t˜a‘x�r   r   )r5   r   rP   Úqs       r   Úlist8z8TestListComprehension.test_bulk_use_cases.<locals>.list8T   s6   € à"Ð" Ð"Ñ"Ô"ˆAð ð  ð  à��a‘”ˆAØˆHr   c                 ó<   ‡— d„ | D ¦   «         Šˆfd„} || ¦  «        S )z2 Test use of list comprehension access in closure c                 ó   — g | ]}|d z   ‘ŒS r[   r   rJ   s     r   r   zLTestListComprehension.test_bulk_use_cases.<locals>.list9.<locals>.<listcomp>_   r\   r   c                 ó&   •— | d         ‰d         z   S r^   r   ©r5   r   s    €r   rP   zGTestListComprehension.test_bulk_use_cases.<locals>.list9.<locals>.innera   s   ø€ Ø˜”t˜a œd‘{Ð"r   r   ©r5   rP   r   s     @r   Úlist9z8TestListComprehension.test_bulk_use_cases.<locals>.list9]   s<   ø€ à"Ð" Ð"Ñ"Ô"ˆAð#ð #ð #ð #ð #à�5˜‘8”8ˆOr   c                 ó<   ‡— d„ | D ¦   «         Šˆfd„} |‰¦  «        S )z= Test use of list comprehension access in closure and as arg c                 ó   — g | ]}|d z   ‘ŒS r[   r   rJ   s     r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list10.<locals>.<listcomp>g   r\   r   c                 ó    •— ˆfd„| D ¦   «         S )Nc                 ó&   •— g | ]}|‰d          z   ‘ŒS )r   r   )r   r;   r   s     €r   r   z\TestListComprehension.test_bulk_use_cases.<locals>.list10.<locals>.inner.<locals>.<listcomp>j   s!   ø€ Ð,Ð,Ð, Q˜˜A˜aœD™Ð,Ð,Ð,r   r   rd   s    €r   rP   zHTestListComprehension.test_bulk_use_cases.<locals>.list10.<locals>.inneri   s   ø€ Ø,Ð,Ð,Ð,¨!Ð,Ñ,Ô,Ð,r   r   re   s     @r   Úlist10z9TestListComprehension.test_bulk_use_cases.<locals>.list10e   s<   ø€ à"Ð" Ð"Ñ"Ô"ˆAð-ð -ð -ð -ð -à�5˜‘8”8ˆOr   c                 ó   — d„ | D ¦   «         }|S )z6 Test scalar array construction in list comprehension c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r   rC   rJ   s     r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list11.<locals>.<listcomp>o   s    € Ð(Ð(Ð( •”˜!‘”Ð(Ð(Ð(r   r   rd   s     r   Úlist11z9TestListComprehension.test_bulk_use_cases.<locals>.list11m   s   € à(Ð( aÐ(Ñ(Ô(ˆAØˆHr   c                 ó   — d„ | D ¦   «         }|S )z@ Test scalar type conversion construction in list comprehension c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r   )rD   Úfloat64rJ   s     r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list12.<locals>.<listcomp>t   s    € Ð*Ð*Ð* 1•”˜A‘”Ð*Ð*Ð*r   r   rd   s     r   Úlist12z9TestListComprehension.test_bulk_use_cases.<locals>.list12r   s   € à*Ð*¨Ð*Ñ*Ô*ˆAØˆHr   c                 ó   — d„ | D ¦   «         }|S )zH Test use of explicit numpy scalar ctor reference in list comprehension c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r   )Únumpyrq   rJ   s     r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list13.<locals>.<listcomp>y   s"   € Ð-Ð-Ð- a•”˜qÑ!Ô!Ð-Ð-Ð-r   r   rd   s     r   Úlist13z9TestListComprehension.test_bulk_use_cases.<locals>.list13w   s   € à-Ð-¨1Ð-Ñ-Ô-ˆAØˆHr   c                 ó   — d„ | D ¦   «         }|S )z@ Test use of python scalar ctor reference in list comprehension c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   ©ÚfloatrJ   s     r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list14.<locals>.<listcomp>~   ó   € Ð%Ð%Ð%˜a•�q‘”Ð%Ð%Ð%r   r   rd   s     r   Úlist14z9TestListComprehension.test_bulk_use_cases.<locals>.list14|   s   € à%Ð% 1Ð%Ñ%Ô%ˆAØˆHr   c                 óB   — d„ | D ¦   «         }t          j        |¦  «        S )zo Test use of python scalar ctor reference in list comprehension followed by np array construction from the listc                 ó,   — g | ]}t          |¦  «        ‘ŒS r   ry   rJ   s     r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list15.<locals>.<listcomp>ƒ   r{   r   rC   rd   s     r   Úlist15z9TestListComprehension.test_bulk_use_cases.<locals>.list15�   s#   € à%Ð% 1Ð%Ñ%Ô%ˆAÝ”8˜A‘;”;Ðr   c                 óŒ   — d„ | D ¦   «         }d„ | D ¦   «         }t          j        |¦  «        }t          j        |¦  «        }||z   S )zH Test type unification from np array ctors consuming list comprehension c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   ry   rJ   s     r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list16.<locals>.<listcomp>ˆ   s   € Ð&Ð&Ð&˜q•%˜‘(”(Ð&Ð&Ð&r   c                 ó   — g | ]}|‘ŒS r   r   rJ   s     r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list16.<locals>.<listcomp>‰   s   € ���˜�!���r   rC   )r5   Úl1Úl2ÚzeÚoes        r   Úlist16z9TestListComprehension.test_bulk_use_cases.<locals>.list16†   sG   € à&Ð& AÐ&Ñ&Ô&ˆBØ�˜Q�‘”ˆBÝ”˜"‘”ˆBÝ”˜"‘”ˆBØ˜‘7ˆNr   c                 ó    ‡ — ˆ fd„‰ D ¦   «         S )z6 Test complex list comprehension including math calls c           	      óp   •— g | ]2}‰D ]-}‰D ](}t          j        |d z  |d z  z   ¦  «        |k    ¯#|||f‘Œ)Œ.Œ3S r9   )rD   Úsqrt)r   ÚaÚbÚcr5   s       €r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list17.<locals>.<listcomp>�   su   ø€ ð Sð Sð SØ¨ðSð SØ#$°1ðSð SØ./½¼ÀÀ1ÁÀqÈ!ÁtÁÑ8LÔ8LÐPQÒ8QÐ8Qð ˜˜1�IØ8QÐ8QÐ8QÐ8QÐ8Qr   r   r4   s   `r   Úlist17z9TestListComprehension.test_bulk_use_cases.<locals>.list17Ž   s6   ø€ ðSð Sð Sð SØðSñ Sô Sð Sr   é	   c                 óL   •— g }| D ]}|‰k     r|                      |¦  «         Œ|S )z3 Test loop list with outer scope var as conditional©Úappend)r5   rK   r   Ú_OUTER_SCOPE_VARs      €r   Úlist18z9TestListComprehension.test_bulk_use_cases.<locals>.list18•   s8   ø€ àˆAØð  ð  �ØÐ'Ò'Ð'Ø—H’H˜Q‘K”K�KøØˆHr   c                 ó    •— ˆfd„| D ¦   «         S )z8 Test list comprehension with outer scope as conditionalc                 ó    •— g | ]
}|‰k     ¯|‘ŒS r   r   )r   r   r“   s     €r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list19.<locals>.<listcomp>¡   s$   ø€ Ð9Ð9Ð9˜! AÐ(8Ò$8Ð$8�AÐ$8Ð$8Ð$8r   r   )r5   r“   s    €r   Úlist19z9TestListComprehension.test_bulk_use_cases.<locals>.list19Ÿ   s   ø€ à9Ð9Ð9Ð9˜qÐ9Ñ9Ô9Ð9r   c                 ó   — d„ | D ¦   «         S )z Test return empty list c                 ó   — g | ]
}|d k    ¯|‘ŒS )iüÿÿr   r   s     r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list20.<locals>.<listcomp>¥   s   € Ð/Ð/Ð/˜! A¨¢J J�A J J Jr   r   r4   s    r   Úlist20z9TestListComprehension.test_bulk_use_cases.<locals>.list20£   s   € à/Ð/˜qÐ/Ñ/Ô/Ð/r   c                 ó    •— ˆfd„| D ¦   «         S )z5 Test call a jitted function in a list comprehension c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r   r   )r   r   r0   s     €r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list21.<locals>.<listcomp>©   s!   ø€ Ð'Ð'Ð' �D�D˜‘G”GÐ'Ð'Ð'r   r   )r5   r0   s    €r   Úlist21z9TestListComprehension.test_bulk_use_cases.<locals>.list21§   s   ø€ à'Ð'Ð'Ð' QÐ'Ñ'Ô'Ð'r   c                 óP   ‡— d„ | D ¦   «         }d„ | D ¦   «         Šˆfd„|D ¦   «         S )zH Test create two lists comprehensions and a third walking the first two c                 ó   — g | ]}|d z
  ‘ŒS r[   r   r:   s     r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list22.<locals>.<listcomp>­   r\   r   c                 ó   — g | ]}|d z   ‘ŒS r[   r   r:   s     r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list22.<locals>.<listcomp>®   r\   r   c                 ó*   •— g | ]}‰D ]
}||k    ¯|‘ŒŒS r   r   )r   r5   r;   rŒ   s      €r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list22.<locals>.<listcomp>¯   s*   ø€ Ð6Ð6Ð6˜!¨!Ð6Ð6 Q¨q°Aªv¨v�A¨v¨v¨v¨vr   r   )r5   r‹   rŒ   s     @r   Úlist22z9TestListComprehension.test_bulk_use_cases.<locals>.list22«   sC   ø€ à"Ð" Ð"Ñ"Ô"ˆAØ"Ð" Ð"Ñ"Ô"ˆAØ6Ð6Ð6Ð6˜qÐ6Ñ6Ô6Ð6r   c                 óH   — d„ | D ¦   «         }|                      d¦  «         |S )z0 Test operation on comprehension generated list c                 ó   — g | ]}|‘ŒS r   r   r:   s     r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list23.<locals>.<listcomp>³   s   € ����q����r   r/   r‘   ©r5   rK   s     r   Úlist23z9TestListComprehension.test_bulk_use_cases.<locals>.list23±   s%   € à�˜A�‘”ˆAØ�HŠH�Q‰KŒKˆKØˆHr   c                 ó   — d„ | D ¦   «         }|S )z Test type promotion c                 ó<   — g | ]}|d k    rt          |¦  «        n|‘ŒS )rB   ry   r:   s     r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list24.<locals>.<listcomp>¹   s*   € Ð5Ð5Ð5¨a˜Q šU˜U•�q‘”�¨Ð5Ð5Ð5r   r   r¥   s     r   Úlist24z9TestListComprehension.test_bulk_use_cases.<locals>.list24·   s   € à5Ð5°1Ð5Ñ5Ô5ˆAØˆHr   c                 ój   ‡— t          j        g d¢¦  «        Šˆfd„t          d¦  «        D ¦   «         }|S )N)r/   r.   é   é   c                 ó6   •— g | ]}|t          ‰¦  «        v¯|‘ŒS r   )Úlist)r   r   Úincludeds     €r   r   zMTestListComprehension.test_bulk_use_cases.<locals>.list25.<locals>.<listcomp>Â   s)   ø€ ÐLÐLÐL !°A½TÀ(¹^¼^Ð4KÐ4K˜AÐ4KÐ4KÐ4Kr   é
   ©rD   rE   r   )r5   Únot_includedr¯   s     @r   Úlist25z9TestListComprehension.test_bulk_use_cases.<locals>.list25¼   s=   ø€ õ
 ”x   Ñ-Ô-ˆHØLÐLÐLÐL¥u¨R¡y¤yÐLÑLÔLˆLØÐr   ©r/   r.   rB   é   r"   Nl        é@   é    )r   r%   Ú
ValueErrorrD   ÚtestingÚassert_allcloseÚ	ExceptionÚassertRaisesr	   ÚsysÚmaxsize)"r&   r6   r<   r?   rF   rL   rT   rX   r`   rf   rk   rn   rr   rv   r|   r   r‡   rŽ   r”   r—   rš   r�   r¢   r¦   r©   r³   ÚfÚvarÚrefr(   ÚraisesÚbitsr“   r0   s"                                   @@r   Útest_bulk_use_casesz)TestListComprehension.test_bulk_use_cases'   s¢  øø€ õ 
�dÐ	Ñ	Ô	ð	-ð 	-ð 	-ð 	-ñ 
Ô	ð	-ð
	5ð 	5ð 	5ð	+ð 	+ð 	+ð	3ð 	3ð 	3ð	'ð 	'ð 	'ð
	Cð 	Cð 	Cð	)ð 	)ð 	)ð	)ð 	)ð 	)ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð
	ð 	ð 	ð
	ð 	ð 	ð
	ð 	ð 	ð
	ð 	ð 	ð
	ð 	ð 	ð	Sð 	Sð 	Sð
 Ðð	ð 	ð 	ð 	ð 	ð Ðð	:ð 	:ð 	:ð 	:ð 	:ð	0ð 	0ð 	0ð	(ð 	(ð 	(ð 	(ð 	(ð	7ð 	7ð 	7ð	ð 	ð 	ð	ð 	ð 	ð
	 ð 	 ð 	 ð �E˜5 %Ø�E˜5 %¨°Ø�V˜V VØ�V˜V V¨VØ�V˜V V¨Vð	5ˆð ˆoˆoˆØð 	ð 	ˆCðØ*� TÐ*Ñ*Ô*¨3Ñ/Ô/�Ø× Ò    s¡¤¨S¨S°©X¬XÑ6Ô6Ð6Ð6øÝð ð ð ðÝ”J×.Ò.¨u¨u°S©z¬z¸3¸3¸s¹8¼8ÑDÔDÐDÐDøÝ ð ð ð Øðøøøð EÐDðøøøð ×Ò�{Ñ+Ô+ð 	¨vØ&•C Ð&Ñ&Ô& uÑ-Ô-ˆEØˆE�#‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ;˜Ò Ð ØˆDˆDˆDàˆDˆDˆDs=   ÂACÃ
D(Ã#2DÄD(ÄD"Ä"D(Ä'D(Å%E6Å6E:Å=E:c                 óž   — d„ } t          d¬¦  «        |¦  «        }g d¢} ||¦  «        } ||¦  «        }|                      ||¦  «         d S )Nc                 ó:   — t          ¦   «         }d„ | D ¦   «         }|S )Nc                 ó   — g | ]}|‘ŒS r   r   ©r   r5   s     r   r   zUTestListComprehension.test_objmode_inlining.<locals>.objmode_func.<locals>.<listcomp>æ   s   € �n�n�n˜Q�q�n�n�nr   )Úobject)r;   rK   Úinlineds      r   Úobjmode_funczATestListComprehension.test_objmode_inlining.<locals>.objmode_funcä   s   € Ý‘”ˆAØ$�n !�n‘n”nˆGØˆNr   T)ÚforceobjrA   )r   ÚassertPreciseEqual)r&   rË   r(   ÚtÚexpectedÚgots         r   Útest_objmode_inliningz+TestListComprehension.test_objmode_inliningã   sl   € ð	ð 	ð 	ð
 #•˜TÐ"Ñ"Ô" <Ñ0Ô0ˆØˆIˆIˆØ�< ‘?”?ˆØˆe�A‰hŒhˆØ×Ò ¨#Ñ.Ô.Ð.Ð.Ð.r   N)Ú__name__Ú
__module__Ú__qualname__r)   rÄ   rÑ   r   r   r   r    r       sE   € € € € € ð0ð 0ð 0ðzð zð 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 dS )ÚTestArrayComprehensionFc                 óž  — |                      dd¦  «        }|                      dd¦  «        }|                      dd¦  «        } t          d|¬¦  «        |¦  «        } ||Ž } ||Ž }	t          j                             ||	¦  «         |r!|                      |	d         j        |¦  «         |r5|                      d|                     |j	        d	         ¦  «        ¦  «         n4|  
                    d|                     |j	        d	         ¦  «        ¦  «         |r6|                      d
|                     |j	        d	         ¦  «        ¦  «         dS dS )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   rD   r¹   Úassert_array_equalr%   ÚdtypeÚassertInÚinspect_llvmÚ
signaturesÚassertNotIn)
r&   r'   ÚargsÚkwargsrØ   rÙ   rÚ   r(   ÚpyresÚcress
             r   ÚcheckzTestArrayComprehension.checkô   sW  € ð —z’z .°%Ñ8Ô8ˆØ%ŸzšzÐ*@À%ÑHÔHÐØ—z’z .°%Ñ8Ô8ˆØ8•˜T¨<Ð8Ñ8Ô8¸Ñ@Ô@ˆØ�˜�ˆØˆu�dˆ|ˆÝ
Œ
×%Ò% e¨TÑ2Ô2Ð2Øð 	:Ø×Ò˜T !œWœ]¨LÑ9Ô9Ð9Øð 	WØ�MŠM˜/¨5×+=Ò+=¸eÔ>NÈqÔ>QÑ+RÔ+RÑSÔSÐSÐSà×Ò˜_¨e×.@Ò.@ÀÔAQÐRSÔATÑ.UÔ.UÑVÔVÐVØð 	UØ�MŠMÐ*¨E×,>Ò,>¸uÔ?OÐPQÔ?RÑ,SÔ,SÑTÔTÐTÐTÐTð	Uð 	Ur   c                 óz   — d„ }|                       |d¦  «         t          r|                       |dd¬¦  «         d S d S )Nc                 ól   ‡— | dz  Št          j        ˆfd„t          | ¦  «        D ¦   «         ¦  «        }|S )Nr.   c                 ó   •— g | ]}|‰z   ‘ŒS r   r   ©r   r   Úms     €r   r   z\TestArrayComprehension.test_comp_with_array_1.<locals>.comp_with_array_1.<locals>.<listcomp>
  ó   ø€ Ð2Ð2Ð2 A˜!˜a™%Ð2Ð2Ð2r   r±   ©r   r   rì   s     @r   Úcomp_with_array_1zHTestArrayComprehension.test_comp_with_array_1.<locals>.comp_with_array_1  ó;   ø€ Ø�A‘ˆAÝ”Ð2Ð2Ð2Ð2­¨q©¬Ð2Ñ2Ô2Ñ3Ô3ˆAØˆHr   r"   T©rØ   ©rç   ÚPARALLEL_SUPPORTED)r&   rï   s     r   Útest_comp_with_array_1z-TestArrayComprehension.test_comp_with_array_1  s\   € ð	ð 	ð 	ð
 	�
Š
Ð$ aÑ(Ô(Ð(Ýð 	@Ø�JŠJÐ(¨!¸$ˆJÑ?Ô?Ð?Ð?Ð?ð	@ð 	@r   c                 ó:   — d„ }|                       |dd¦  «         d S )Nc                 óp   ‡— t          j        |  | ¦  «        }t          j        ˆfd„|D ¦   «         ¦  «        S )Nc                 ó0   •— g | ]}|‰k     r||z  n|d z  ‘ŒS r9   r   )r   r5   Ú	thresholds     €r   r   z\TestArrayComprehension.test_comp_with_array_2.<locals>.comp_with_array_2.<locals>.<listcomp>  s-   ø€ ÐLÐLÐLÀA q¨9¢} }˜a !™e˜e¸!¸a¹%ÐLÐLÐLr   )rD   ÚarangerE   )r   rø   ÚAs    ` r   Úcomp_with_array_2zHTestArrayComprehension.test_comp_with_array_2.<locals>.comp_with_array_2  s;   ø€ Ý”	˜1˜"˜aÑ Ô ˆAÝ”8ÐLÐLÐLÐLÈÐLÑLÔLÑMÔMÐMr   r"   r   ©rç   )r&   rû   s     r   Útest_comp_with_array_2z-TestArrayComprehension.test_comp_with_array_2  s3   € ð	Nð 	Nð 	Nð 	�
Š
Ð$ a¨Ñ+Ô+Ð+Ð+Ð+r   c                 ó„   — d„ }dd l mc m} 	 d|_        |                      |dd¬¦  «         d|_        d S # d|_        w xY w)Nc                 ól   ‡— | dz  Št          j        ˆfd„t          | ¦  «        D ¦   «         ¦  «        }|S )Nr.   c                 ó   •— g | ]}|‰z   ‘ŒS r   r   rë   s     €r   r   zjTestArrayComprehension.test_comp_with_array_noinline.<locals>.comp_with_array_noinline.<locals>.<listcomp>  rí   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  sv   € ð	ð 	ð 	ð
 	3Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ð	.Ø).ˆBÔ&Ø�JŠJÐ/°ÈˆJÑNÔNÐNà)-ˆBÔ&Ð&Ð&ø¨ˆBÔ&Ð-Ð-Ð-Ð-ó   Ž6 ¶	?c                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                 ó‚   — dg}t          | ¦  «        D ]}|                     |¦  «         Œt          j        |¦  «        }|S )Nr   )r   r’   rD   rE   )r   Úlstr   r   s       r   r  zaTestArrayComprehension.test_comp_with_array_noinline_issue_6053.<locals>.comp_with_array_noinline&  sA   € Ø�#ˆCÝ˜1‘X”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%  s2   € ð	ð 	ð 	ð 	�
Š
Ð+¨QÀTˆ
ÑJÔJÐJÐJÐJr   c                 óz   — d„ }|                       |d¦  «         t          r|                       |dd¬¦  «         d S d S )Nc                 ób   ‡ — t          j        ˆ fd„t          ‰ ¦  «        D ¦   «         ¦  «        }|S )Nc                 óH   •‡— g | ]Šˆfd „t          ‰¦  «        D ¦   «         ‘ŒS )c                 ó   •— g | ]}‰|z  ‘ŒS r   r   ©r   Újr   s     €r   r   zmTestArrayComprehension.test_comp_nest_with_array.<locals>.comp_nest_with_array.<locals>.<listcomp>.<listcomp>1  ó   ø€ Ð3Ð3Ð3 Q˜1˜q™5Ð3Ð3Ð3r   r   ©r   r   r   s    @€r   r   zbTestArrayComprehension.test_comp_nest_with_array.<locals>.comp_nest_with_array.<locals>.<listcomp>1  ó5   øø€ ÐFÐFÐF¸Ð3Ð3Ð3Ð3­%°©(¬(Ð3Ñ3Ô3ÐFÐFÐFr   r±   ©r   r   s   ` r   Úcomp_nest_with_arrayzNTestArrayComprehension.test_comp_nest_with_array.<locals>.comp_nest_with_array0  ó2   ø€ Ý”ÐFÐFÐFÐF½UÀ1¹X¼XÐFÑFÔFÑGÔGˆAØˆHr   r"   Trñ   rò   )r&   r  s     r   Útest_comp_nest_with_arrayz0TestArrayComprehension.test_comp_nest_with_array/  s\   € ð	ð 	ð 	ð 	�
Š
Ð'¨Ñ+Ô+Ð+Ýð 	CØ�JŠJÐ+¨Q¸TˆJÑBÔBÐBÐBÐBð	Cð 	Cr   c                 óz   — d„ }|                       |d¦  «         t          r|                       |dd¬¦  «         d S d S )Nc                 ób   ‡ — t          j        ˆ fd„t          ‰ ¦  «        D ¦   «         ¦  «        }|S )Nc                 óJ   •‡— g | ]Šˆˆfd „t          ‰¦  «        D ¦   «         ‘ŒS )c                 óJ   •‡— g | ]Šˆˆfd „t          ‰¦  «        D ¦   «         ‘ŒS )c                 ó    •— g | ]
}‰‰z  |z  ‘ŒS r   r   )r   Úkr   r  s     €€r   r   z|TestArrayComprehension.test_comp_nest_with_array_3.<locals>.comp_nest_with_array_3.<locals>.<listcomp>.<listcomp>.<listcomp>:  s!   ø€ Ð8Ð8Ð8¨!˜A ™E A™IÐ8Ð8Ð8r   r   )r   r  r   r   s    @€€r   r   zqTestArrayComprehension.test_comp_nest_with_array_3.<locals>.comp_nest_with_array_3.<locals>.<listcomp>.<listcomp>:  s8   øø€ ÐKÐKÐK¸QÐ8Ð8Ð8Ð8Ð8­u°Q©x¬xÐ8Ñ8Ô8ÐKÐKÐKr   r   r  s    @€r   r   zfTestArrayComprehension.test_comp_nest_with_array_3.<locals>.comp_nest_with_array_3.<locals>.<listcomp>:  s9   øø€ Ð^Ð^Ð^ÐPQÐKÐKÐKÐKÐKÅ%ÈÁ(Ä(ÐKÑKÔKÐ^Ð^Ð^r   r±   r  s   ` r   Úcomp_nest_with_array_3zRTestArrayComprehension.test_comp_nest_with_array_3.<locals>.comp_nest_with_array_39  s6   ø€ Ý”Ð^Ð^Ð^Ð^ÕUZÐ[\ÑU]ÔU]Ð^Ñ^Ô^Ñ_Ô_ˆAØˆHr   r"   Trñ   rò   )r&   r"  s     r   Útest_comp_nest_with_array_3z2TestArrayComprehension.test_comp_nest_with_array_38  s\   € ð	ð 	ð 	ð 	�
Š
Ð)¨1Ñ-Ô-Ð-Ýð 	EØ�JŠJÐ-¨q¸tˆJÑDÔDÐDÐDÐDð	Eð 	Er   c                 ó„   — d„ }dd l mc m} 	 d|_        |                      |dd¬¦  «         d|_        d S # d|_        w xY w)Nc                 ób   ‡ — t          j        ˆ fd„t          ‰ ¦  «        D ¦   «         ¦  «        }|S )Nc                 óH   •‡— g | ]Šˆfd „t          ‰¦  «        D ¦   «         ‘ŒS )c                 ó   •— g | ]}‰|z  ‘ŒS r   r   r  s     €r   r   zTestArrayComprehension.test_comp_nest_with_array_noinline.<locals>.comp_nest_with_array_noinline.<locals>.<listcomp>.<listcomp>C  r  r   r   r  s    @€r   r   ztTestArrayComprehension.test_comp_nest_with_array_noinline.<locals>.comp_nest_with_array_noinline.<locals>.<listcomp>C  r  r   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  s‚   € ð	ð 	ð 	ð 	3Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ð	.Ø).ˆBÔ&Ø�JŠJÐ4°aØ,0ð ñ 2ô 2ð 2ð *.ˆBÔ&Ð&Ð&ø¨ˆBÔ&Ð-Ð-Ð-Ð-r
  c                 ó:   — d„ }|                       |dd¦  «         d S )Nc                 ó^   — t          j        d„ t          | |¦  «        D ¦   «         ¦  «        }|S )Nc                 ó   — g | ]}|‘ŒS r   r   r   s     r   r   zdTestArrayComprehension.test_comp_with_array_range.<locals>.comp_with_array_range.<locals>.<listcomp>P  s   € Ð1Ð1Ð1 ˜!Ð1Ð1Ð1r   r±   ©rì   r   r   s      r   Úcomp_with_array_rangezPTestArrayComprehension.test_comp_with_array_range.<locals>.comp_with_array_rangeO  s-   € Ý”Ð1Ð1¥U¨1¨a¡[¤[Ð1Ñ1Ô1Ñ2Ô2ˆAØˆHr   r"   r°   rü   )r&   r.  s     r   Útest_comp_with_array_rangez1TestArrayComprehension.test_comp_with_array_rangeN  s0   € ð	ð 	ð 	ð 	�
Š
Ð(¨!¨RÑ0Ô0Ð0Ð0Ð0r   c                 ó:   — d„ }|                       |dd¦  «         d S )Nc                 ó`   — t          j        d„ t          | |d¦  «        D ¦   «         ¦  «        }|S )Nc                 ó   — g | ]}|‘ŒS r   r   r   s     r   r   zvTestArrayComprehension.test_comp_with_array_range_and_step.<locals>.comp_with_array_range_and_step.<locals>.<listcomp>W  s   € Ð4Ð4Ð4 ˜!Ð4Ð4Ð4r   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  s/   € Ý”Ð4Ð4¥U¨1¨a°¡^¤^Ð4Ñ4Ô4Ñ5Ô5ˆAØˆHr   r"   r°   rü   )r&   r3  s     r   Ú#test_comp_with_array_range_and_stepz:TestArrayComprehension.test_comp_with_array_range_and_stepU  s0   € ð	ð 	ð 	ð 	�
Š
Ð1°1°bÑ9Ô9Ð9Ð9Ð9r   c                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                 ó\   — t          j        d„ t          | ¦  «        D ¦   «         ¦  «        }|S )Nc                 ó$   — g | ]}|d z  dk    ¯|‘ŒS )r.   r/   r   r   s     r   r   zpTestArrayComprehension.test_comp_with_array_conditional.<locals>.comp_with_array_conditional.<locals>.<listcomp>^  s!   € Ð<Ð<Ð< °°Q±¸!²°˜!°°°r   r±   r  s     r   Úcomp_with_array_conditionalz\TestArrayComprehension.test_comp_with_array_conditional.<locals>.comp_with_array_conditional]  s+   € Ý”Ð<Ð<¥U¨1¡X¤XÐ<Ñ<Ô<Ñ=Ô=ˆAØˆHr   r°   Tr  rü   )r&   r8  s     r   Ú test_comp_with_array_conditionalz7TestArrayComprehension.test_comp_with_array_conditional\  s2   € ð	ð 	ð 	ð 	�
Š
Ð.°Èˆ
ÑNÔNÐNÐNÐNr   c                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                 ób   ‡ — t          j        ˆ fd„t          ‰ ¦  «        D ¦   «         ¦  «        }|S )Nc                 óZ   •‡— g | ]&Š‰d z  dk    ¯ˆfd„t          ‰¦  «        D ¦   «         ‘Œ'S )r.   r/   c                 ó   •— g | ]}‰|z  ‘ŒS r   r   r  s     €r   r   z…TestArrayComprehension.test_comp_nest_with_array_conditional.<locals>.comp_nest_with_array_conditional.<locals>.<listcomp>.<listcomp>e  r  r   r   r  s    @€r   r   zzTestArrayComprehension.test_comp_nest_with_array_conditional.<locals>.comp_nest_with_array_conditional.<locals>.<listcomp>e  s?   øø€ ÐTÐTÐT¸ÈÈQÉÐRSÊÈÐ3Ð3Ð3Ð3­%°©(¬(Ð3Ñ3Ô3ÈÈÈr   r±   r  s   ` r   Ú comp_nest_with_array_conditionalzfTestArrayComprehension.test_comp_nest_with_array_conditional.<locals>.comp_nest_with_array_conditionald  s2   ø€ Ý”ÐTÐTÐTÐT½UÀ1¹X¼XÐTÑTÔTÑUÔUˆAØˆHr   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                 óF  — d„ }|                       t          ¦  «        5 }|                      |d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          t          |j        ¦  «        ¦  «         |                      dt          |j        ¦  «        ¦  «         d S )Nc                 ó\   — t          j        d„ t          | ¦  «        D ¦   «         ¦  «        }|S )Nc                 óL   ‡— g | ] Šˆfd „t          ‰dz   ¦  «        D ¦   «         ‘Œ!S )c                 ó   •— g | ]}‰|z  ‘ŒS r   r   r  s     €r   r   zwTestArrayComprehension.test_comp_nest_with_dependency.<locals>.comp_nest_with_dependency.<locals>.<listcomp>.<listcomp>o  s   ø€ Ð5Ð5Ð5 Q˜1˜q™5Ð5Ð5Ð5r   r/   r   r   s    @r   r   zlTestArrayComprehension.test_comp_nest_with_dependency.<locals>.comp_nest_with_dependency.<locals>.<listcomp>o  s8   ø€ ÐHÐHÐH¸!Ð5Ð5Ð5Ð5­%°°!±©*¬*Ð5Ñ5Ô5ÐHÐHÐHr   r±   r  s     r   Úcomp_nest_with_dependencyzXTestArrayComprehension.test_comp_nest_with_dependency.<locals>.comp_nest_with_dependencyn  s+   € Ý”ÐHÐH½uÀQ¹x¼xÐHÑHÔHÑIÔIˆAØˆHr   r"   zarray(undefined,©r¼   r	   rç   rß   r   ÚstrÚ	exception)r&   rE  rÂ   s      r   Útest_comp_nest_with_dependencyz5TestArrayComprehension.test_comp_nest_with_dependencyj  sÓ   € ð	ð 	ð 	ð ×Ò�{Ñ+Ô+ð 	5¨vØ�JŠJÐ0°!Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5à�Š•l¥C¨Ô(8Ñ$9Ô$9Ñ:Ô:Ð:Ø�ŠÐ(­#¨fÔ.>Ñ*?Ô*?Ñ@Ô@Ð@Ð@Ð@s   žAÁAÁAc                 óD  — d„ }|                       t          ¦  «        5 }|                      |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          t          |j        ¦  «        ¦  «         |                      dt          |j        ¦  «        ¦  «         d S )Nc                  óf   — t          g d¢g d¢¦  «        } t          j        d„ | D ¦   «         ¦  «        S )NrA   )rµ   r"   r«   c                 ó   — g | ]\  }}|‘ŒS r   r   )r   r‹   rŒ   s      r   r   zdTestArrayComprehension.test_comp_unsupported_iter.<locals>.comp_unsupported_iter.<locals>.<listcomp>z  s   € Ð/Ð/Ð/¡4 1 a˜QÐ/Ð/Ð/r   )ÚziprD   rE   )Úvals    r   Úcomp_unsupported_iterzPTestArrayComprehension.test_comp_unsupported_iter.<locals>.comp_unsupported_iterx  s8   € Ý�i�i�i   Ñ+Ô+ˆCÝ”8Ð/Ð/¨3Ð/Ñ/Ô/Ñ0Ô0Ð0r   z1Unsupported iterator found in array comprehensionrF  )r&   rO  rÂ   s      r   Útest_comp_unsupported_iterz1TestArrayComprehension.test_comp_unsupported_iterw  sÜ   € ð	1ð 	1ð 	1ð ×Ò�{Ñ+Ô+ð 	.¨vØ�JŠJÐ,Ñ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.à�Š•l¥C¨Ô(8Ñ$9Ô$9Ñ:Ô:Ð:Ø�ŠÐIÝ˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-s   žA Á AÁAc                 ór   — d„ }|                       |dd¬¦  «         d„ }|                       |dd¬¦  «         d S )Nc                 ó6   — g d¢}t          j        |¦  «        }|S )N©r/   r.   rB   rµ   rC   ©r   r   r‹   s      r   Úno_array_comp1zATestArrayComprehension.test_no_array_comp.<locals>.no_array_comp1‚  s   € Ø�	�	ˆAÝ”˜‘”ˆAØˆHr   r°   Fr  c                 ó`   — g d¢}t          j        |¦  «        }|                     d¦  «         |S )NrS  r"   )rD   rE   r’   rT  s      r   Úno_array_comp2zATestArrayComprehension.test_no_array_comp.<locals>.no_array_comp2ˆ  s,   € Ø�	�	ˆAÝ”˜‘”ˆAØ�HŠH�Q‰KŒKˆKØˆHr   Trü   )r&   rU  rW  s      r   Útest_no_array_compz)TestArrayComprehension.test_no_array_comp�  sZ   € ð	ð 	ð 	ð
 	�
Š
�> 2¸Eˆ
ÑBÔBÐBð	ð 	ð 	ð
 	�
Š
�> 2¸Dˆ
ÑAÔAÐAÐAÐAr   c                 ó8   — d„ }|                       |d¦  «         d S )Nc                 ób   ‡ — t          j        ˆ fd„t          ‰ ¦  «        D ¦   «         ¦  «        }|S )Nc                 óf   •— g | ]-}t          j        d „ t          ‰¦  «        D ¦   «         ¦  «        ‘Œ.S )c                 ó   — g | ]}|‘ŒS r   r   rÈ   s     r   r   z]TestArrayComprehension.test_nested_array.<locals>.nested_array.<locals>.<listcomp>.<listcomp>‘  ó   € Ð$9Ð$9Ð$9¨1 QÐ$9Ð$9Ð$9r   r±   )r   r;   r   s     €r   r   zRTestArrayComprehension.test_nested_array.<locals>.nested_array.<locals>.<listcomp>‘  s8   ø€ ÐMÐMÐM¸q�2œ8Ð$9Ð$9µ°a±´Ð$9Ñ$9Ô$9Ñ:Ô:ÐMÐMÐMr   r±   r  s   ` r   Únested_arrayz>TestArrayComprehension.test_nested_array.<locals>.nested_array�  s2   ø€ Ý”ÐMÐMÐMÐMÅEÈ!ÁHÄHÐMÑMÔMÑNÔNˆAØˆHr   r°   rü   ©r&   r^  s     r   Útest_nested_arrayz(TestArrayComprehension.test_nested_array�  s-   € ð	ð 	ð 	ð 	�
Š
�< Ñ$Ô$Ð$Ð$Ð$r   c                 ó8   — d„ }|                       |d¦  «         d S )Nc                 ó\   — t          j        d„ t          d¦  «        D ¦   «         ¦  «        }|S )Nc                 ód   — g | ]-}t          j        d „ t          d¦  «        D ¦   «         ¦  «        ‘Œ.S )c                 ó   — g | ]}|‘ŒS r   r   rÈ   s     r   r   zhTestArrayComprehension.test_nested_array_with_const.<locals>.nested_array.<locals>.<listcomp>.<listcomp>˜  r]  r   rB   r±   r:   s     r   r   z]TestArrayComprehension.test_nested_array_with_const.<locals>.nested_array.<locals>.<listcomp>˜  s7   € ÐMÐMÐM¸q�2œ8Ð$9Ð$9µ°a±´Ð$9Ñ$9Ô$9Ñ:Ô:ÐMÐMÐMr   rµ   r±   r  s     r   r^  zITestArrayComprehension.test_nested_array_with_const.<locals>.nested_array—  s+   € Ý”ÐMÐMÅEÈ!ÁHÄHÐMÑMÔMÑNÔNˆAØˆHr   r   rü   r_  s     r   Útest_nested_array_with_constz3TestArrayComprehension.test_nested_array_with_const–  s-   € ð	ð 	ð 	ð 	�
Š
�< Ñ#Ô#Ð#Ð#Ð#r   c                 ó&  — d„ }g d¢}|                       ||¦  «         |                       |t          j        |¦  «        ¦  «         |                       |t          |¦  «        ¦  «         |                       |t	          j        |¦  «        ¦  «         d S )Nc                 óB   — t          j        d„ | D ¦   «         ¦  «        }|S )Nc                 ó   — g | ]}||z  ‘ŒS r   r   rÈ   s     r   r   zXTestArrayComprehension.test_array_comp_with_iter.<locals>.array_comp.<locals>.<listcomp>Ÿ  s   € Ð-Ð-Ð- Q˜1˜q™5Ð-Ð-Ð-r   rC   )r‹   r   s     r   Ú
array_compzDTestArrayComprehension.test_array_comp_with_iter.<locals>.array_compž  s%   € Ý”Ð-Ð-¨!Ð-Ñ-Ô-Ñ.Ô.ˆAØˆHr   r´   )rç   rD   rE   Útupler   ÚList)r&   ri  r   s      r   Útest_array_comp_with_iterz0TestArrayComprehension.test_array_comp_with_iter�  sˆ   € ð	ð 	ð 	ð ˆKˆKˆØ�
Š
�:˜qÑ!Ô!Ð!à�
Š
�:�rœx¨™{œ{Ñ+Ô+Ð+à�
Š
�:�u Q™xœxÑ(Ô(Ð(à�
Š
�:�uœz¨!™}œ}Ñ-Ô-Ð-Ð-Ð-r   c                 óP   — d„ }|                       |dt          j        ¬¦  «         d S )Nc                 ót   — t          j        d„ t          | ¦  «        D ¦   «         t           j        ¬¦  «        }|S )Nc                 ó   — g | ]}|‘ŒS r   r   r   s     r   r   zYTestArrayComprehension.test_array_comp_with_dtype.<locals>.array_comp.<locals>.<listcomp>­  s   € Ð.Ð.Ð. ˜!Ð.Ð.Ð.r   )rÞ   )rD   rE   r   Ú	complex64r  s     r   ri  zETestArrayComprehension.test_array_comp_with_dtype.<locals>.array_comp¬  s2   € Ý”Ð.Ð.¥U¨1¡X¤XÐ.Ñ.Ô.µb´lÐCÑCÔCˆAØˆHr   r°   ©rÚ   )rç   rD   rp  ©r&   ri  s     r   Útest_array_comp_with_dtypez1TestArrayComprehension.test_array_comp_with_dtype«  s3   € ð	ð 	ð 	ð 	�
Š
�:˜rµ´ˆ
Ñ=Ô=Ð=Ð=Ð=r   c                 ó8   — d„ }|                       |d¦  «         d S )Nc                 ó\   — t          j        d„ t          | ¦  «        D ¦   «         ¦  «        }|S )Nc                 ó   — g | ]}|d z  ‘ŒS )y              ð?r   r   s     r   r   z]TestArrayComprehension.test_array_comp_inferred_dtype.<locals>.array_comp.<locals>.<listcomp>´  s   € Ð3Ð3Ð3 Q˜!˜b™&Ð3Ð3Ð3r   r±   r  s     r   ri  zITestArrayComprehension.test_array_comp_inferred_dtype.<locals>.array_comp³  s+   € Ý”Ð3Ð3­%°©(¬(Ð3Ñ3Ô3Ñ4Ô4ˆAØˆHr   r°   rü   rr  s     r   Útest_array_comp_inferred_dtypez5TestArrayComprehension.test_array_comp_inferred_dtype²  ó-   € ð	ð 	ð 	ð 	�
Š
�:˜rÑ"Ô"Ð"Ð"Ð"r   c                 ó8   — d„ }|                       |d¦  «         d S )Nc                 ób   ‡ — t          j        ˆ fd„t          ‰ ¦  «        D ¦   «         ¦  «        }|S )Nc                 óH   •‡— g | ]Šˆfd „t          ‰¦  «        D ¦   «         ‘ŒS )c                 ó   •— g | ]}‰|z  ‘ŒS r   r   r  s     €r   r   zoTestArrayComprehension.test_array_comp_inferred_dtype_nested.<locals>.array_comp.<locals>.<listcomp>.<listcomp>»  r  r   r   r  s    @€r   r   zdTestArrayComprehension.test_array_comp_inferred_dtype_nested.<locals>.array_comp.<locals>.<listcomp>»  r  r   r±   r  s   ` r   ri  zPTestArrayComprehension.test_array_comp_inferred_dtype_nested.<locals>.array_compº  r  r   r°   rü   rr  s     r   Ú%test_array_comp_inferred_dtype_nestedz<TestArrayComprehension.test_array_comp_inferred_dtype_nested¹  rx  r   c                 ó8   — d„ }|                       |d¦  «         d S )Nc                 ób   ‡ — t          j        ˆ fd„t          ‰ ¦  «        D ¦   «         ¦  «        }|S )Nc                 óH   •‡— g | ]Šˆfd „t          ‰¦  «        D ¦   «         ‘ŒS )c                 ó   •— g | ]}‰|z  ‘ŒS r   r   r  s     €r   r   zsTestArrayComprehension.test_array_comp_inferred_dtype_nested_sum.<locals>.array_comp.<locals>.<listcomp>.<listcomp>Â  r  r   r   r  s    @€r   r   zhTestArrayComprehension.test_array_comp_inferred_dtype_nested_sum.<locals>.array_comp.<locals>.<listcomp>Â  r  r   r±   r  s   ` r   ri  zTTestArrayComprehension.test_array_comp_inferred_dtype_nested_sum.<locals>.array_compÁ  s2   ø€ Ý”ÐFÐFÐFÐF½UÀ1¹X¼XÐFÑFÔFÑGÔGˆAàˆHr   r°   rü   rr  s     r   Ú)test_array_comp_inferred_dtype_nested_sumz@TestArrayComprehension.test_array_comp_inferred_dtype_nested_sumÀ  s-   € ð	ð 	ð 	ð
 	�
Š
�:˜rÑ"Ô"Ð"Ð"Ð"r   c                 ó(  — d„ }d}|                       |d|t          j        ¬¦  «         |                      t          ¦  «        5 } t          d¬¦  «        |¦  «        } |dd¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          d                     t          j
        ¦  «        z   t          |j        ¦  «        ¦  «         |                      d	                     t          j        ¦  «        t          |j        ¦  «        ¦  «         d S )
Nc                 óf   — t          j        d„ t          | ¦  «        D ¦   «         ¦  «        }||d<   |S )Nc                 ó   — g | ]}|‘ŒS r   r   r   s     r   r   zmTestArrayComprehension.test_array_comp_inferred_dtype_outside_setitem.<locals>.array_comp.<locals>.<listcomp>Ê  s   € Ð0Ð0Ð0 !˜AÐ0Ð0Ð0r   r   r±   )r   ÚvÚarrs      r   ri  zYTestArrayComprehension.test_array_comp_inferred_dtype_outside_setitem.<locals>.array_compÉ  s4   € Ý”(Ð0Ð0¥u¨Q¡x¤xÐ0Ñ0Ô0Ñ1Ô1ˆCàˆC�‰FØˆJr   g333333ó?r°   rq  Tr+   y        ffffff@z Function({})z/(array({}, 1d, C), Literal[int](0), complex128))rç   rD   r$   r¼   r	   r   rß   r   ÚformatÚoperatorÚsetitemrG  rH  r   )r&   ri  r†  rÂ   r(   s        r   Ú.test_array_comp_inferred_dtype_outside_setitemzETestArrayComprehension.test_array_comp_inferred_dtype_outside_setitemÈ  sE  € ð	ð 	ð 	ð ˆØ�
Š
�:˜r 1µ2´7ˆ
Ñ;Ô;Ð;à×Ò�{Ñ+Ô+ð 	¨vØ&•C Ð&Ñ&Ô& zÑ2Ô2ˆEØˆE�"�d‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�ŠÝ˜?×1Ò1µ(Ô2BÑCÔCÑCÝ�Ô Ñ!Ô!ñ	
ô 	
ð 	
ð 	�ŠØ=×DÒDÅUÄZÑPÔPÝ�Ô Ñ!Ô!ñ	
ô 	
ð 	
ð 	
ð 	
s   Á&A5Á5A9Á<A9c           	      óN  ‡— dŠt          d¬¦  «        ˆfd„¦   «         }t          ¦   «         5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                     ¦   «                              ¦   «         }t          ¦   «         5 }t	          t          j        d„ t          ‰¦  «        D ¦   «         ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «                              ¦   «         }|                      ||¦  «         |  	                    |d¦  «         d S )Néd   Tr+   c                  óº   •— t          j        d„ t          ‰¦  «        D ¦   «         ¦  «        } t           j                             | ¦  «         t          | ¦  «         d S )Nc                 ó   — g | ]}|‘ŒS r   r   r   s     r   r   zZTestArrayComprehension.test_array_comp_shuffle_sideeffect.<locals>.foo.<locals>.<listcomp>ä  s   € Ð8Ð8Ð8 a Ð8Ð8Ð8r   )rD   rE   r   ÚrandomÚshuffleÚprint)ÚnumbersÚnelems    €r   ÚfoozFTestArrayComprehension.test_array_comp_shuffle_sideeffect.<locals>.fooâ  sL   ø€ å”hÐ8Ð8­5°©<¬<Ð8Ñ8Ô8Ñ9Ô9ˆGÝŒI×Ò˜gÑ&Ô&Ð&Ý�'‰NŒNˆNˆNˆNr   c                 ó   — g | ]}|‘ŒS r   r   r   s     r   r   zMTestArrayComprehension.test_array_comp_shuffle_sideeffect.<locals>.<listcomp>í  s   € Ð4Ð4Ð4 !˜AÐ4Ð4Ð4r   z\[(\s*\d+)+\])
r   r   ÚgetvalueÚstripr’  rD   rE   r   ÚassertNotEqualÚassertRegex)r&   r•  ÚgotbufrÐ   Ú	expectbufÚexpectr”  s         @r   Ú"test_array_comp_shuffle_sideeffectz9TestArrayComprehension.test_array_comp_shuffle_sideeffectß  sš  ø€ Øˆå	�dÐ	Ñ	Ô	ð	ð 	ð 	ð 	ñ 
Ô	ð	õ
 ÑÔð 	 &ØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�oŠoÑÔ×%Ò%Ñ'Ô'ˆåÑÔð 	7 )Ý•"”(Ð4Ð4¥u¨U¡|¤|Ð4Ñ4Ô4Ñ5Ô5Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7à×#Ò#Ñ%Ô%×+Ò+Ñ-Ô-ˆð 	×Ò˜C Ñ(Ô(Ð(Ø×Ò˜Ð.Ñ/Ô/Ð/Ð/Ð/s#   ­AÁAÁAÂ9CÃCÃCc                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                 ó¤   — g }t          j        dg¦  «        }t           j                             |d¦  «        }|                     | |z   ¦  «         |S rO   )rD   rE   r�  Úchoicer’   )r5   rÎ   ÚmyListr‹   s       r   r¿   z=TestArrayComprehension.test_empty_list_not_removed.<locals>.f÷  sE   € ØˆAÝ”X˜q˜c‘]”]ˆFÝ”	× Ò  ¨Ñ+Ô+ˆAØ�HŠH�Q˜‘U‰OŒOˆOØˆHr   r"   Tr  rü   )r&   r¿   s     r   Útest_empty_list_not_removedz2TestArrayComprehension.test_empty_list_not_removedõ  s1   € ð	ð 	ð 	ð 	�
Š
�1�a¨dˆ
Ñ3Ô3Ð3Ð3Ð3r   c                 ó<   — d„ }|                       |dd¬¦  «         dS )z Test issue 3742 c                 ó¶   — d„ t          d¦  «        D ¦   «          t          j        | ¦  «        }t          | ¦  «        D ]}t          j        | ¦  «        }|||<   Œ|S )Nc                 ó   — g | ]}|‘ŒS r   r   r   s     r   r   zOTestArrayComprehension.test_reuse_of_array_var.<locals>.foo.<locals>.<listcomp>  s   € Ð!Ð!Ð!�1ˆQÐ!Ð!Ð!r   r/   )r   rD   ÚemptyÚzeros)r   rK   r   s      r   r•  z;TestArrayComprehension.test_reuse_of_array_var.<locals>.foo  s]   € ð "Ð!�˜a™œÐ!Ñ!Ô!Ð!Ý”˜‘”ˆAÝ˜1‘X”Xð ð �Ý”H˜Q‘K”K�Ø��!‘�àˆHr   r°   Tr  Nrü   )r&   r•  s     r   Útest_reuse_of_array_varz.TestArrayComprehension.test_reuse_of_array_varÿ  s1   € ð		ð 		ð 		ð 	�
Š
�3˜°ˆ
Ñ6Ô6Ð6Ð6Ð6r   N)!rÒ   rÓ   rÔ   Ú_numba_parallel_test_rç   rô   rý   r	  r  r  r#  r)  r/  r4  r9  r?  ÚunittestÚ
skipUnlessr   rI  rP  rX  r`  re  rl  rs  rw  r}  r‚  r‹  rž  r£  r©  r   r   r   rÖ   rÖ   ð   sâ  € € € € € à!ÐðUð Uð Uð&@ð @ð @ð,ð ,ð ,ð.ð .ð .ðKð Kð KðCð Cð CðEð Eð Eð.ð .ð .ð1ð 1ð 1ð:ð :ð :ðOð Oð Oð.ð .ð .ð €XÔ˜¨Ò0ð)ñ*ô *ðAð Añ*ô *ðAð-ð -ð -ðBð Bð Bð%ð %ð %ð$ð $ð $ð.ð .ð .ð>ð >ð >ð#ð #ð #ð#ð #ð #ð#ð #ð #ð
ð 
ð 
ð.0ð 0ð 0ð,4ð 4ð 4ð7ð 7ð 7ð 7ð 7r   rÖ   Ú__main__)r«  Únumba.tests.supportr   r½   r‰  ru   rD   Ú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>rµ     s  ðØ €€€Ø (Ð (Ð (Ð (Ð (Ð (à 
€
€
€
Ø €€€Ø Ð Ð Ð Ø €€€à "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <ð  �ZÐ ðð ð ðO/ð O/ð O/ð O/ð O/˜Hñ O/ô O/ð O/ðd]7ð ]7ð ]7ð ]7ð ]7˜XÔ.ñ ]7ô ]7ð ]7ð@	 ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   