
    J/PhB                        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     ^/var/www/html/test/jupyter/venv/lib/python3.11/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!HH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    #ej]##F++q66!99---q66!99---rFF2JJ/////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    1uu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4uQ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EEAEEEr   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21QAAB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    8III&&&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    nnnQqnnnr   rC   )r   r;   r5   s     r   r   zLTestListComprehension.test_bulk_use_cases.<locals>.list5.<locals>.<listcomp>D   s-    AAA!RXnn!nnn55AAAr   rC   r4   s   `r   list5z8TestListComprehension.test_bulk_use_cases.<locals>.list5B   s(    8AAAAq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    1ur   c                 &    g | ]} |          S r   r   r   rK   rP   s     r   r   zLTestListComprehension.test_bulk_use_cases.<locals>.list6.<locals>.<listcomp>J   !    (((EE!HH(((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    1u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    tax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    tad{"r   r   r5   rP   r   s     @r   list9z8TestListComprehension.test_bulk_use_cases.<locals>.list9]   s<    """""A# # # # #588Or   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AaD,,,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88Or   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8A;;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7Nr   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8L8LPQ8Q8Q 1I8Q8Q8Q8Q8Qr   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    '''HHQKKK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$8A$8$8$8r   r   )r5   r   s    r   list19z9TestListComprehension.test_bulk_use_cases.<locals>.list19   s    9999q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JJAJJJr   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!    '''DDGG'''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6QqAvvAvvvvr   r   )r5   r   r   s     @r   list22z9TestListComprehension.test_bulk_use_cases.<locals>.list22   sC    """""A"""""A6666q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HHQKKK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5aQUUq555r   r   r   s     r   list24z9TestListComprehension.test_bulk_use_cases.<locals>.list24   s    551555A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!AT(^^4K4KA4K4K4Kr   
   rD   rE   r   )r5   not_includedr   s     @r   list25z9TestListComprehension.test_bulk_use_cases.<locals>.list25   s=    
 x--HLLLLuRyyLLLL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	 	 		 	 	
	  	  	  E5%E5%VVVVVVVVVVV	5 oo 	 	C*T***3//  sSSXX6666   J..uuSzz33s88DDDD     ED {++ 	v&C&&&u--EE#JJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ;  DDDDDDs=   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    nnnQqnnnr   )object)r;   rK   inlineds      r   objmode_funczATestListComprehension.test_objmode_inlining.<locals>.objmode_func   s    A$n!nnnGNr   T)forceobjrA   )r   assertPreciseEqual)r&   r   r(   texpectedgots         r   test_objmode_inliningz+TestListComprehension.test_objmode_inlining   sl    	 	 	
 #T"""<00II<??eAhh#.....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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    zz.%88%zz*@%HHzz.%888T<888@@ud|

%%eT222 	:T!W]L999 	WMM/5+=+=e>Nq>Q+R+RSSSS_e.@.@AQRSAT.U.UVVV 	UMM*E,>,>u?OPQ?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2A!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3AHr   r"   Tr   r   PARALLEL_SUPPORTED)r&   r   s     r   test_comp_with_array_1z-TestArrayComprehension.test_comp_with_array_1  s\    	 	 	
 	

$a((( 	@JJ(!$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LAq9}}a!ee!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&JJ/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1XX  

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    	 	 	 	

+QT
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3Q1q5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FU1XXFFFGGAHr   r"   Tr   r   )r&   r  s     r   test_comp_nest_with_arrayz0TestArrayComprehension.test_comp_nest_with_array/  s\    	 	 	 	

'+++ 	CJJ+QTJ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EAI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KQ88888uQxx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JJ-qtJ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&JJ4a,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1U1a[[11122A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4U1a^^44455AHr   r"   r   r   )r&   r3  s     r   #test_comp_with_array_range_and_stepz:TestArrayComprehension.test_comp_with_array_range_and_stepU  s0    	 	 	 	

11b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+    <<U1XX<<<==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   zTestArrayComprehension.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TU1XXTTTUUAHr   r"   Tr  r   )r&   r>  s     r   %test_comp_nest_with_array_conditionalz<TestArrayComprehension.test_comp_nest_with_array_conditionalc  s@    	 	 	 	

3Q(, 	 	. 	. 	. 	. 	.r   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>m  s    ///41aQ///r   )ziprD   rE   )vals    r   comp_unsupported_iterzPTestArrayComprehension.test_comp_unsupported_iter.<locals>.comp_unsupported_iterk  s8    iii++C8//3///000r   z1Unsupported iterator found in array comprehension)r   r	   r   r   r   str	exception)r&   rE  r   s      r   test_comp_unsupported_iterz1TestArrayComprehension.test_comp_unsupported_iterj  s    	1 	1 	1 {++ 	.vJJ,---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.lC(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_comp1u  s    		AAHr   r   Fr  c                 `    g d}t          j        |          }|                    d           |S )NrK  r"   )rD   rE   r   rL  s      r   no_array_comp2zATestArrayComprehension.test_no_array_comp.<locals>.no_array_comp2{  s,    		AAHHQKKKHr   Tr   )r&   rM  rO  s      r   test_no_array_compz)TestArrayComprehension.test_no_array_compt  sZ    	 	 	
 	

>2E
BBB	 	 	
 	

>2D
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$91Q$9$9$9r   r   )r   r;   r   s     r   r   zRTestArrayComprehension.test_nested_array.<locals>.nested_array.<locals>.<listcomp>  s8    MMMq28$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ME!HHMMMNNAHr   r   r   r&   rV  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>  rU  r   rB   r   r:   s     r   r   z]TestArrayComprehension.test_nested_array_with_const.<locals>.nested_array.<locals>.<listcomp>  s7    MMMq28$9$9a$9$9$9::MMMr   r   r   r  s     r   rV  zITestArrayComprehension.test_nested_array_with_const.<locals>.nested_array  s+    MME!HHMMMNNAHr   r   r   rW  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    ---Q1q5---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&   ra  r   s      r   test_array_comp_with_iterz0TestArrayComprehension.test_array_comp_with_iter  s    	 	 	 KK

:q!!!

:rx{{+++

:uQxx(((

:uz!}}-----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   ra  zETestArrayComprehension.test_array_comp_with_dtype.<locals>.array_comp  s2    ..U1XX...blCCCAHr   r   r   )r   rD   rh  r&   ra  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3Q!b&333r   r   r  s     r   ra  zITestArrayComprehension.test_array_comp_inferred_dtype.<locals>.array_comp  s+    33%((33344AHr   r   r   rj  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   ra  zPTestArrayComprehension.test_array_comp_inferred_dtype_nested.<locals>.array_comp  r  r   r   r   rj  s     r   %test_array_comp_inferred_dtype_nestedz<TestArrayComprehension.test_array_comp_inferred_dtype_nested  rp  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   ra  zTTestArrayComprehension.test_array_comp_inferred_dtype_nested_sum.<locals>.array_comp  s2    FFFFU1XXFFFGGAHr   r   r   rj  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   ra  zYTestArrayComprehension.test_array_comp_inferred_dtype_outside_setitem.<locals>.array_comp  s4    (00uQxx00011CCFJr   g333333?r   ri  Tr+   y        ffffff@z Function({})z/(array({}, 1d, C), Literal[int](0), complex128))r   rD   r$   r   r	   r   r   r   formatoperatorsetitemrF  rG  r   )r&   ra  r~  r   r(   s        r   .test_array_comp_inferred_dtype_outside_setitemzETestArrayComprehension.test_array_comp_inferred_dtype_outside_setitem  sE   	 	 	 

:r127
;;;{++ 	v&C&&&z22EE"dOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	?11(2BCCC !!	
 	
 	
 	=DDUZ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 )Nd   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8a888r   )rD   rE   r   randomshuffleprint)numbersnelems    r   foozFTestArrayComprehension.test_array_comp_shuffle_sideeffect.<locals>.foo  sL    h885<<88899GIg&&&'NNNNNr   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				 	 	 	 
		
  	&CEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	oo%%'' 	7)"(44uU||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Xqc]]F	  ++AHHQUOOOHr   r"   Tr  r   )r&   r   s     r   test_empty_list_not_removedz2TestArrayComprehension.test_empty_list_not_removed  s1    	 	 	 	

1ad
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    !!!1Q!!!r   r/   )r   rD   emptyzeros)r   rK   r   s      r   r  z;TestArrayComprehension.test_reuse_of_array_var.<locals>.foo  s]     "!a!!!!A1XX  HQKK!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?  rH  rP  rX  r]  rd  rk  ro  ru  rz  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. . .- - -B B B% % %$ $ $. . .> > ># # ## # ## # #
 
 
.0 0 0,4 4 47 7 7 7 7r   r   __main__)unittest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P7 P7 P7 P7 P7X. P7 P7 P7f zHMOOOOO r   