
    ܙd&                     J   d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlZd dl	Z	d dl
mZmZ d dlmZmZmZmZ d dlmZmZmZ d dlmZmZmZmZ d dlmZmZ  e            Zde_         e            Z de _!         e            Z" e            Z#de#_$        d	 Z%d
 Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;d  Z<d! Z=d" Z>d# Z?d$ Z@d% ZAd& ZBd' ZCd( ZDd) ZEd* ZFd+ ZGd, ZHd- ZId. ZJd/ ZKd0 ZLd1 ZMd2 ZNd3 ZOd4 ZEdLd5ZPd6 ZQd7 ZRd8 ZSd9 ZTd: ZUd; ZVd< ZWd= ZXd> ZY G d? d@e          ZZ G dA dBe          Z[ G dC dDe          Z\ G dE dFee          Z] G dG dHee          Z^ G dI dJee          Z_e`dKk    r eja                     dS dS )M    N
namedtuple)compile_isolatedFlags)jittypeofnjittyped)errorstypesconfig)TestCasetagignore_internal_warningsMemoryLeakMixin)overload_methodboxTc                      t          |           S N)absxs    9lib/python3.11/site-packages/numba/tests/test_builtins.pyabs_usecaser           q66M    c                     | d k    r|d k    rt          g           S | d k    rt          |g          S |d k    rt          | g          S t          | |g          S r   )allr   ys     r   all_usecaser!   #   Z    DyyQ$YY2ww	
dA3xx	
dA3xxAq6{{r   c                     | d k    r|d k    rt          g           S | d k    rt          |g          S |d k    rt          | g          S t          | |g          S r   )anyr   s     r   any_usecaser%   -   r"   r   c                      t          |           S r   )boolr   s    r   bool_usecaser(   7   s    77Nr   c                 "    t          | |          S r   complexr   s     r   complex_usecaser,   :   s    1a==r   c                 "    t          | |          S r   )divmodr   s     r   divmod_usecaser/   =   s    !Q<<r   c                  D    d} t          d          D ]\  }}| ||z  z  } | S )Nr         ?      @      @	enumerateresultijs      r   enumerate_usecaser;   @   s6    F-((  1!a%Mr   c                  F    d} t          dd          D ]\  }}| ||z  z  } | S )Nr   r1   *   r5   r7   s      r   enumerate_start_usecaser>   F   s8    F-,,  1!a%Mr   c                  F    d} t          dd          D ]\  }}| ||z  z  } | S )Nr   r1   gn!	@r5   r7   s      r   enumerate_invalid_start_usecaser@   L   s8    F-11  1!a%Mr   c                 "    t          ||           S r   )filter)r   filter_funcs     r   filter_usecaserD   R   s    +q!!!r   c                      t          |           S r   )floatr   s    r   float_usecaserG   U       88Or   c                 ,    |                      |          S r   )formatr   s     r   format_usecaserK   X   s    88A;;r   c                      t                      S r   )globals r   r   globals_usecaserO   [   s    99r   c                      t          |           S r   )hexr   s    r   hex_usecaserR   `   r   r   c                      t          |           S r   strr   s    r   str_usecaserV   c   r   r   c                 $    t          | |          S N)base)intr   rY   s     r   int_usecaser\   f   s    qtr   c                 \    t          |           }t          |          t          |          fS r   )iternext)r   its     r   iter_next_usecasera   i   s$    	aB88T"XXr   c                 .    d}t                      d         S )N   r    )localsr   s     r   locals_usecasere   m   s    	A88C=r   c                 $    t          | |          S rX   )longr[   s     r   long_usecaserh   q   s    r   c                 "    t          ||           S r   )map)r   map_funcs     r   map_usecaserl   t   s    xr   c                 "    t          | |          S r   maxr   s     r   max_usecase1rp   x       q!99r   c                 $    t          | |g          S r   rn   r   s     r   max_usecase2rs   {       1v;;r   c                      t          |           S r   rn   r   s    r   max_usecase3rv   ~   r   r   c                       t          d          S NrN   rn   rN   r   r   max_usecase4ry          r77Nr   c                 "    t          | |          S r   minr   s     r   min_usecase1r~      rq   r   c                 $    t          | |g          S r   r|   r   s     r   min_usecase2r      rt   r   c                      t          |           S r   r|   r   s    r   min_usecase3r      r   r   c                       t          d          S rx   r|   rN   r   r   min_usecase4r      rz   r   c                      t          |           S r   )octr   s    r   oct_usecaser      r   r   c                 ,    t          j        | |          S r   )	functoolsreduce)reduce_funcr   s     r   reduce_usecaser      s    K+++r   c                      t          |           S r   roundr   s    r   round_usecase1r      rH   r   c                 "    t          | |          S r   r   )r   ns     r   round_usecase2r      s    A;;r   c                      t          |           S r   sumr   s    r   sum_usecaser      r   r   c                 2     t          |           |          S r   )typeabs     r   type_unary_usecaser      s    4771::r   c                 *    t          j        |           S r   )operatortruth)ps    r   truth_usecaser      s    >!r   c                      t          |           S r   )unichrr   s    r   unichr_usecaser      s    !99r   c                  F    d} t          dd          D ]\  }}| ||z  z  } | S )Nr            )g      @@zipr7   s      r   zip_usecaser      s8    FIz**  1!a%Mr   c                  6    d} t                      D ]}| dz  } | S Nr   r   r   r8   r9   s     r   zip_0_usecaser      s*    FUU  !Mr   c                  <    d} t          d          D ]	\  }| |z  } 
| S )Nr   r   r   r   r   s     r   zip_1_usecaser      s.    F&kk  !Mr   c                  P    d} t          ddd          D ]\  }}}| ||z  |z  z  } | S )Nr   r   )r      rc   )r   g!@r   )r8   r9   r:   ks       r   zip_3_usecaser      sA    Fvy*55  1a!a%!)Mr   c                      t          d          } d}t          |           }t          t          t          |          |                    }t          |          }||fS )N   r   )ranger^   listr   )iterabler   r`   frontbacks        r   zip_first_exhaustedr      sO    QxxH	A	hBU1XXr""##E88D$;r   c                     | |z  S r   rN   r   s     r   pow_op_usecaser      s    6Mr   c                 "    t          | |          S r   )powr   s     r   pow_usecaser      rq   r   c                      t          |           S r   r   r   s    r   r   r      r   r   c                 H    t          | |          }t          | |          |fS Nstartr   )r   r   rets      r   sum_kwarg_usecaser      s'    
a--Cq##r   c                    t          | t          t          f          r9t          | t                    r| dz   dfS t          | t                    r| dz   dfS nt          | t                    r| dz   dfS t          | t                    r	| j        dfS t          | t          t          f          rt          | t                    rdS d	S t          | t                    rd
S t          | t                    rdS dS )Nr   rZ          @rF   z, world!rU   r+   tupler   setbytesno match)

isinstancerZ   rF   rU   r+   imagr   r   r   r   r   s    r   isinstance_usecaser      s   !c5\"" a 	 q5%<a 	$s7G##	$	As		 :~u$$	Aw		 
vy  	At}	%	% a 	76	As		 u	Au		 w:r   c                      ddd} dt          j        d          d}t          | t                    rt          |t                    rdS dS )	Nr   r   )r   r   
   r   r   dictznot dict)npzerosr   r   r   s     r   isinstance_dictr      sO    !Arx{{##A!T z!T22 vzr   c                    t          | t          j                  rdS t          | t          j        t          j        f          rt          | t          j                  rdS dS t          | t          j        t          j        f          r:t          | t          j                  rdS t          | t          j                  rdS d S t          | t          j                  rdS dS )N
typed listint32int64float32float64
typed dictr   )	r   r
   Listr   r   r   r   r   Dictr   s    r   isinstance_usecase_numba_typesr      s    !UZ   |	AU[1	2	2 a%% 	77	Au}5	6	6 a'' 	95=)) 	9	 		Auz	"	" |zr   c                      d} t          dd          }t                      }d|d<   t          | t                    r,t          |t                     rt          |t                    rdS dS )Ns   hellor   r   r   TF)r   r   r   r   r   r   cs      r    isinstance_usecase_numba_types_2r     sh    AaAAAaD!U q%  q$ t5r   c                 *    t          | d          rdS dS )N)fooztrue branchzfalse branchr   r   s    r   invalid_isinstance_usecaser     s    !X }~r   c                 8    t          | t          df          rdS dS )Nz
not a typeTFr   rF   r   s    r   isinstance_usecase_invalid_typer   %  s#    !e\*++ tur   c                 J    | dk    rd}nd}t          |t                    rdS dS )Nr   r   r   TFr   rZ   r   zs     r   *invalid_isinstance_usecase_phi_nopropagater   -  s3    1uu!S tur   c                 J    | dk    rd}nd }t          |t                    rdS dS )Nr   r   TFr   r   s     r   #invalid_isinstance_optional_usecaser   8  s3    1uu!S tur   c                  R    t          dddg           dd          fd} | S )Nntplr   r   r   r   c                 $    t                    S r   r   )r   instr   s    r   implz9invalid_isinstance_unsupported_type_usecase.<locals>.implE  s    $%%%r   r   )r   r   r   s    @@r   +invalid_isinstance_unsupported_type_usecaser   B  sI    fsCj))D41::D& & & & & &Kr   c                      e Zd Zd ZefdZd ZefdZd ZefdZ	d Z
efdZd	 Zefd
Zd ZefdZd ZefdZd ZefdZd ZefdZd ZefdZd Zd Zd ZefdZd ZefdZd ZefdZd Z efdZ!d Z"d  Z#d! Z$efd"Z%d# Z&e'fd$Z(efd%Z)d& Z*efd'Z+d( Z,efd)Z-d* Z.d+ Z/efd,Z0d- Z1d. Z2efd/Z3efd0Z4d1 Z5d2 Z6d3 Z7efd4Z8efd5Z9d6 Z:d7 Z;d8 Z<efd9Z=efd:Z>d; Z?d< Z@efd=ZAd> ZBd? ZCd@ ZDdA ZEdB ZFefdCZGefdDZHefdEZIdF ZJdG ZKdH ZLdI ZMdJ ZNdK ZOdL ZPefdMZQdN ZRefdOZSdP ZTefdQZUdR ZVefdSZWdT ZXefdUZYdV ZZdW Z[dX Z\dY Z]e^fdZZ_d[ Z`e^fd\Zad] Zbe^fd^Zcd_ Zde^fd`Zeda Zfe^fdbZgdc Zhdd Zide Zjdf Zkdg ZldhS )iTestBuiltinsc                     t          |d|          }|j        } |            }|                      |            |           d S NrN   flags)r   entry_pointassertPreciseEqual)selfpyfuncr  crcfuncexpecteds         r   run_nullary_funczTestBuiltins.run_nullary_funcK  sJ    fb66668822222r   c           	          t           }t          |t          j        f|          }|j        }dD ]*}|                      ||           ||                     +t          |t          j        f|          }|j        }dD ],}|                      ||           ||          d           -dddt          d	          d
t          d          z  z   t          d          d
t          d	          z  z
  g}t          |t          j        f|          }|j        }|D ],}|                      ||           ||          d           -t          |t          j	        f|          }|j        }|D ]*}|                      ||           ||                     +t          j
        D ]Z}dddd|j        z  dz
  g}t          ||f|          }|j        }|D ]*}|                      ||           ||                     +[d S )Nr  r   r   g        皙?singleprecy      ?y                y?      @inf              ?nanr   r   r   r   )r   r   r   r   r  r  r   rF   	complex64
complex128unsigned_domainbitwidth)	r  r  r	  r
  r  r   complex_valuesunsigned_typeunsigned_valuess	            r   test_abszTestBuiltins.test_absQ  sI   fu{nEBBB 	9 	9A##EE!HHffQii8888fu}&6eDDD! 	H 	HA##EE!HHffQiih#GGGG%x,,eEll)::,,eEll)::< fu&8FFF 	H 	HA##EE!HHffQiih#GGGGfu'7&9GGG 	9 	9A##EE!HHffQii8888"2 	= 	=M "am.D)Dq)HIO!&=*:%HHHBNE$ = =''a&&))<<<<=		= 	=r   c                 <    |                      t                     d S Nr  )r!  no_pyobj_flagsr  s    r   test_abs_npmzTestBuiltins.test_abs_npmq      N+++++r   c                    t           }t          |t          j        t          j        f|          }|j        }g d}g d}t          j        ||          D ]/\  }}|                      |||           |||                     0d S Nr  )r  r   r   N)r!   r   r   r   r  	itertoolsproductr  	r  r  r	  r
  r  
x_operands
y_operandsr   r    s	            r   test_allzTestBuiltins.test_allt      fu{5;&?uMMM%%%
%%%
%j*== 	? 	?DAq##EE!QKK1>>>>	? 	?r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r#  )assertTypingErrorr/  r$  r%  s    r   test_all_npmzTestBuiltins.test_all_npm~      ##%% 	0 	0MMM///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0   >AAc                    t           }t          |t          j        t          j        f|          }|j        }g d}g d}t          j        ||          D ]/\  }}|                      |||           |||                     0d S r)  )r%   r   r   r   r  r*  r+  r  r,  s	            r   test_anyzTestBuiltins.test_any  r0  r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r#  )r2  r7  r$  r%  s    r   test_any_npmzTestBuiltins.test_any_npm  r4  r5  c                    t           }t          |t          j        f|          }|j        }dD ]*}|                      ||           ||                     +t          |t          j        f|          }|j        }dddt          d          t          d          fD ]*}|                      ||           ||                     +t          |t          j        f|          }|j        }t          dt          d                    t          dt          d                    fD ]*}|                      ||           ||                     +d S )	Nr  r  r               ?r  r  r   )
r(   r   r   r   r  r  r   rF   r  r+   r  r  r	  r
  r  r   s         r   	test_boolzTestBuiltins.test_bool  sU   fu{nEBBB 	9 	9A##EE!HHffQii8888fu}&6eDDDtS%,,e= 	9 	9A##EE!HHffQii8888fu'7&9GGG!U5\\**GAuU||,D,DE 	9 	9A##EE!HHffQii8888	9 	9r   c                 <    |                      t                     d S r#  )r>  r$  r%  s    r   test_bool_npmzTestBuiltins.test_bool_npm  s    ^,,,,,r   c                 n   t           }t          |t          j        f|          }|j        }dD ]*}|                      ||           ||                     +t          |t          j        d          f|          }|j        }dgg fD ]*}|                      ||           ||                     +d S )Nr  )r    r   r   )r(   r   r   stringr  r  Dummyr=  s         r   test_bool_nonnumberz TestBuiltins.test_bool_nonnumber  s    fu|oUCCC 	9 	9A##EE!HHffQii8888fu{6':':&<EJJJ#r 	9 	9A##EE!HHffQii8888	9 	9r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r#  )r2  rE  r$  r%  s    r   test_bool_nonnumber_npmz$TestBuiltins.test_bool_nonnumber_npm  s    ##%% 	; 	;$$>$:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;r5  c                    t           }t          |t          j        t          j        f|          }|j        }g d}g d}t          j        ||          D ]/\  }}|                      |||           |||                     0d S Nr  r  )r,   r   r   r   r  r*  r+  r  r,  s	            r   test_complexzTestBuiltins.test_complex  s     fu{EK&@NNNZZ
ZZ
%j*== 	? 	?DAq##EE!QKK1>>>>	? 	?r   c                 <    |                      t                     d S r#  )rJ  r$  r%  s    r   test_complex_npmzTestBuiltins.test_complex_npm  s    /////r   c                    t           }t          |t          j        t          j        f|          }|j        }dd}g d}|dgz   }t          j        ||          D ]c\  }}	 |||	          \  }
} |||	          \  }}|}|                      ||           ||          f ||
           ||          f           d|D ]@}|                     t                    5   ||d           d d d            n# 1 swxY w Y   Ad S )Nr  @   c                 .    | dk    r| d|dz
  z  dz
  z  } | S r   rN   )r   bitss     r   truncate_resultz6TestBuiltins.test_divmod_ints.<locals>.truncate_result  s)     AvvaD1Ho**Hr   )
r   r   r      r  il    l         r   )rN  )
r/   r   r   r   r  r*  r+  r  assertRaisesZeroDivisionError)r  r  r	  r
  r  rQ  denominators
numeratorsr   r    expected_quotexpected_remquotremfs                  r   test_divmod_intszTestBuiltins.test_divmod_ints  s   fu{EK&@$)+ + +	 	 	 	 IHH!QC'
&z<@@ 	I 	IEAq*0&A,,'M<aID#A##QQtWWaaff$5%&Q}%5%5qq$GI I I I  	 	A""#455  a              	 	s   C55C9	<C9	c                 <    |                      t                     d S r#  )r^  r$  r%  s    r   test_divmod_ints_npmz!TestBuiltins.test_divmod_ints_npm  s    N33333r   c           	          t           }t          |t          j        t          j        f|          }|j        }ddddddt
          j        t
          j         t
          j        g	}|dd	gz   }t          j	        ||          D ]=\  }} |||          \  }	}
 |||          \  }}| 
                    ||f|	|
f           >|D ]@}|                     t                    5   ||d	           d d d            n# 1 swxY w Y   Ad S )
Nr  r2   g      @g}Ô%ITg       g      g\nr;  r  )r/   r   r   r   r  r   r  r  r*  r+  r  rU  rV  )r  r  r	  r
  r  rW  rX  r   r    rY  rZ  r[  r\  s                r   test_divmod_floatszTestBuiltins.test_divmod_floats  sa   fu}em&D$)+ + +CT61!T3K/
&z<@@ 	P 	PEAq*0&A,,'M<aID###T3K-1NOOOO 	 	A""#455  a              	 	s   C22C6	9C6	c                 <    |                      t                     d S r#  )rb  r$  r%  s    r   test_divmod_floats_npmz#TestBuiltins.test_divmod_floats_npm  s    n55555r   c                 <    |                      t          |           d S r   )r  r;   r  r  s     r   test_enumeratezTestBuiltins.test_enumerate  s    /77777r   c                 <    |                      t                     d S r#  )rg  r$  r%  s    r   test_enumerate_npmzTestBuiltins.test_enumerate_npm      .11111r   c                 <    |                      t          |           d S r   )r  r>   rf  s     r   test_enumerate_startz!TestBuiltins.test_enumerate_start  s    5u=====r   c                 <    |                      t                     d S r#  )rl  r$  r%  s    r   test_enumerate_start_npmz%TestBuiltins.test_enumerate_start_npm  s    !!!77777r   c                 "   t           }t          |dt                    }|                     t                    5 }|                                 d d d            n# 1 swxY w Y   d}|                     |t          |j                             d S )NrN   r  z2'float' object cannot be interpreted as an integer)	r@   r   enable_pyobj_flagsrU  	TypeErrorr  assertInrU   	exception)r  r	  r
  raisesmsgs        r   'test_enumerate_start_invalid_start_typez4TestBuiltins.test_enumerate_start_invalid_start_type  s    0fb0BCCCy)) 	VNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 Cc3v/0011111s   AA!Ac                    t           }|                     t          j                  5 }t	          |dt
                    }d d d            n# 1 swxY w Y   d}|                     |t          |j                             d S )NrN   r  z3Only integers supported as start value in enumerate)	r@   rU  r   TypingErrorr   r$  rr  rU   rs  )r  r	  rt  r
  ru  s        r   +test_enumerate_start_invalid_start_type_npmz8TestBuiltins.test_enumerate_start_invalid_start_type_npm  s    0v122 	Df!&"NCCCB	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	DCc3v/0011111s   AAAc           	      (   t           }t          |t          j        d          t          j        d          f|          }|j        }d }g d}|                     t           |||                    t           |||                               d S )Nr   function_ptrr  c                     | dz  S Nr   rN   r   s    r   <lambda>z*TestBuiltins.test_filter.<locals>.<lambda>  s
    A r   r   r   r   r   r   )rD   r   r   rD  r  assertSequenceEqualr   )r  r  r	  r
  r  rC   r   s          r   test_filterzTestBuiltins.test_filter  s    fu{6':':',{>'B'B'D-24 4 4 %oOO  eeA{&;&;!<!<!%ffQ&<&<!=!=	? 	? 	? 	? 	?r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r#  )r2  r  r$  r%  s    r   test_filter_npmzTestBuiltins.test_filter_npm      ##%% 	3 	3>222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3r5  c                    t           }t          |t          j        f|          }|j        }dD ]*}|                      ||           ||                     +t          |t          j        f|          }|j        }dD ],}|                      ||           ||          d           -t          |t          j        f|          }|j        }dD ]*}|                      ||           ||                     +d S )Nr  r  r  r  r  )z-1.1z0.0z1.1)rG   r   r   r   r  r  r   rC  r=  s         r   
test_floatzTestBuiltins.test_float"  s   fu{nEBBB 	9 	9A##EE!HHffQii8888fu}&6eDDD! 	H 	HA##EE!HHffQiih#GGGGfu|oUCCC' 	9 	9A##EE!HHffQii8888	9 	9r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r#  )r2  r  r$  r%  s    r   test_float_npmzTestBuiltins.test_float_npm4      ##%% 	2 	2OO.O111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2r5  c                 T   t           }t          |t          j        t          j        f|          }|j        }d}dD ],}|                      |||           |||                     -t          |t          j        t          j        f|          }|j        }d}dD ],}|                      |||           |||                     -t          |t          j        t          j        f|          }|j        }d}dD ],}|                      |||           |||                     -d S )Nr  z{0}r  r  r   )rK   r   r   rC  r   r  r  r   )r  r  r	  r
  r  r   r    s          r   test_formatzTestBuiltins.test_format8  sZ   fu|U[&B%PPP 	? 	?A##EE!QKK1>>>>fu|',}'7>CE E E! 	? 	?A##EE!QKK1>>>>fu|',|'6=BD D D  	? 	?A##EE!QKK1>>>>	? 	?r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r#  )r2  r  r$  r%  s    r   test_format_npmzTestBuiltins.test_format_npmO  r  r5  c                     t           }t          |d|          }|j        } |            }|                     |t	                                 d S r  )rO   r   r  assertIsrM   )r  r  r	  r
  r  gs         r   test_globalszTestBuiltins.test_globalsS  sK     fb666EGGa#####r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r#  )r2  r  r$  r%  s    r   test_globals_npmzTestBuiltins.test_globals_npmZ  s    ##%% 	4 	4N333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4r5  c                     t           } t          di ||          }|                      |            t                                 |                      |            t                                 d S rx   )rO   r   r  rM   )r  	jit_flagsr	  jitteds       r   test_globals_jitzTestBuiltins.test_globals_jit^  sh     !!!!y!!&))ffhh		***ffhh		*****r   c                     |                                  5  |                     d           d d d            d S # 1 swxY w Y   d S NTnopython)r2  r  r%  s    r   test_globals_jit_npmz!TestBuiltins.test_globals_jit_npmf  s    ##%% 	1 	1!!4!000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   9= =c                     t           }t          |t          j        f|          }|j        }dD ]*}|                      ||           ||                     +d S rI  )rR   r   r   r   r  r  r=  s         r   test_hexzTestBuiltins.test_hexj  sh    fu{nEBBB 	9 	9A##EE!HHffQii8888	9 	9r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r#  )r2  r  r$  r%  s    r   test_hex_npmzTestBuiltins.test_hex_npmr  r4  r5  c           
      <   t           }g d}g d}g ||}t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        t          j
        g	}|D ]}t          ||f|          }|j        }	|D ]}
|                      |	 ||
                     | ||
                               |j        r<|                      |	 ||
                      | ||
                                d S )N)i  r   r   r   i  )i[i! i@B r  r  )rV   r   int8int16r   r   uintuint8uint16uint32uint64r   r  r  signed)r  r  r	  small_inputslarge_inputsargstypstypr
  r  vs              r   test_int_strzTestBuiltins.test_int_strv  s?   
 
 

 
 
 .-- JKKKJKLLL

  	M 	MC!&3&>>>BNE M M''cc!ffvvcc!ff~~FFF: M++EE##qb''NNFF33r77OOLLL	M	M 	Mr   c                    t           }t          |t          j        t          j        f|          }|j        }g d}g d}t          j        ||          D ]/\  }}|                      |||           |||                     0d S )Nr  )z-10110)r      r      )	r\   r   r   rC  r   r  r*  r+  r  r,  s	            r   test_intzTestBuiltins.test_int  s    fu|U[&AOOO+++
#^^
%j*== 	? 	?DAq##EE!QKK1>>>>	? 	?r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r#  )r2  r  r$  r%  s    r   test_int_npmzTestBuiltins.test_int_npm  r4  r5  c                    t           }t          |t          j        t          j        d          f|          }|j        }|                      |d          d           t          |t          j        t          j        d          f|          }|j        }|                     t                    5   |d           d d d            d S # 1 swxY w Y   d S )Nr   r  )r   r=   rc   )r   r=   r   r   )	ra   r   r   UniTupler   r  r  rU  StopIteration)r  r  r	  r
  r  s        r   test_iter_nextzTestBuiltins.test_iter_next  s   "fu~ek1'E'E&G$)+ + +j 1 17;;;fu~ek1'E'E&G$)+ + +}-- 	 	E$KKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   /CCCc                 <    |                      t                     d S r#  )r  r$  r%  s    r   test_iter_next_npmzTestBuiltins.test_iter_next_npm  rj  r   c                     t           }|                     t          j                  5  t	          |t
          j        f|          }d d d            d S # 1 swxY w Y   d S r#  )re   rU  r   ForbiddenConstructr   r   r   )r  r  r	  r
  s       r   test_localszTestBuiltins.test_locals  s    v899 	G 	G!&5;.FFFB	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	Gs   AAAc                 <    |                      t                     d S r#  )r  forceobj_flagsr%  s    r   test_locals_forceobjz!TestBuiltins.test_locals_forceobj      ~.....r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r#  )r2  r  r$  r%  s    r   test_locals_npmzTestBuiltins.test_locals_npm  r  r5  c           	      (   t           }t          |t          j        d          t          j        d          f|          }|j        }d }g d}|                     t           |||                    t           |||                               d S )Nr   r{  r  c                     | dz  S r}  rN   r   s    r   r~  z'TestBuiltins.test_map.<locals>.<lambda>  s
    QU r   r  )rl   r   r   rD  r  r  r   )r  r  r	  r
  r  rk   r   s          r   test_mapzTestBuiltins.test_map  s    fu{6':':',{>'B'B'D-24 4 4 "?OO  eeAx&8&8!9!9!%ffQ&9&9!:!:	< 	< 	< 	< 	<r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r#  )r2  r  r$  r%  s    r   test_map_npmzTestBuiltins.test_map_npm  r4  r5  c                     t          |t          j        t          j        f|          }|j        }g d}g d}t	          j        ||          D ]/\  }}|                      |||           |||                     0d S rI  r   r   r   r  r*  r+  r  	r  r	  r  r
  r  r-  r.  r   r    s	            r   check_minmax_1zTestBuiltins.check_minmax_1      fu{EK&@NNNZZ
ZZ
%j*== 	? 	?DAq##EE!QKK1>>>>	? 	?r   c                 <    |                      t          |           dS )z
        max(*args)
        N)r  rp   rf  s     r   
test_max_1zTestBuiltins.test_max_1        	L%00000r   c                 <    |                      t          |           dS )z
        min(*args)
        N)r  r~   rf  s     r   
test_min_1zTestBuiltins.test_min_1  r  r   c                 <    |                      t                     d S r#  )r  r$  r%  s    r   test_max_npm_1zTestBuiltins.test_max_npm_1      n-----r   c                 <    |                      t                     d S r#  )r  r$  r%  s    r   test_min_npm_1zTestBuiltins.test_min_npm_1  r  r   c                     t          |t          j        t          j        f|          }|j        }g d}g d}t	          j        ||          D ]/\  }}|                      |||           |||                     0d S rI  r  r  s	            r   check_minmax_2zTestBuiltins.check_minmax_2  r  r   c                 <    |                      t          |           dS )z
        max(list)
        N)r  rs   rf  s     r   
test_max_2zTestBuiltins.test_max_2  r  r   c                 <    |                      t          |           dS )z
        min(list)
        N)r  r   rf  s     r   
test_min_2zTestBuiltins.test_min_2  r  r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r#  )r2  r  r$  r%  s    r   test_max_npm_2zTestBuiltins.test_max_npm_2  r  r5  c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r#  )r2  r  r$  r%  s    r   test_min_npm_2zTestBuiltins.test_min_npm_2  r  r5  c                       fd} |t          j        t           j        d                      |t          j        t           j        t           j        t           j        f                     d S )Nc                     t          | f          }|j        }dt          d          df}||d d d         fD ]*}                     ||           |                     +d S )Nr  r<  r  r3   r  )r   r  rF   r  )argtyr
  r  tupvalr  r	  r  s        r   checkz*TestBuiltins.check_minmax_3.<locals>.check  s    !&5(%@@@BNEec*CS2Y' A A''c

FF3KK@@@@A Ar   r   )r   r  r   Tupler   )r  r	  r  r  s   ``` r   check_minmax_3zTestBuiltins.check_minmax_3  s|    	A 	A 	A 	A 	A 	A 	A 	enU]A..///ek5=%-GHHIIIIIr   c                 <    |                      t          |           dS )z
        max(tuple)
        N)r  rv   rf  s     r   
test_max_3zTestBuiltins.test_max_3"  r  r   c                 <    |                      t          |           dS )z
        min(tuple)
        N)r  r   rf  s     r   
test_min_3zTestBuiltins.test_min_3(  r  r   c                 <    |                      t                     d S r#  )r  r$  r%  s    r   test_max_npm_3zTestBuiltins.test_max_npm_3.  r  r   c                 <    |                      t                     d S r#  )r  r$  r%  s    r   test_min_npm_3zTestBuiltins.test_min_npm_31  r  r   c                     t          |t          j        t          j        d          f|          }|j        } |ddg           d S )Nr   r  r   )r   r   r   rD  r  r  r	  r  r
  r  s        r   check_min_max_invalid_typesz(TestBuiltins.check_min_max_invalid_types4  sJ    fu{EK4G4G&H$)+ + +a!r   c                     |                      t                    5  |                     t                     d d d            d S # 1 swxY w Y   d S r   )rU  rq  r  rp   r%  s    r   test_max_1_invalid_typesz%TestBuiltins.test_max_1_invalid_types:      y)) 	; 	;,,\:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;   AA
Ac                     |                                  5  |                     t          t                     d d d            d S # 1 swxY w Y   d S r#  )r2  r  rp   r$  r%  s    r   test_max_1_invalid_types_npmz)TestBuiltins.test_max_1_invalid_types_npm>      ##%% 	Q 	Q,,\,PPP	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q   "AAAc                     |                      t                    5  |                     t                     d d d            d S # 1 swxY w Y   d S r   )rU  rq  r  r~   r%  s    r   test_min_1_invalid_typesz%TestBuiltins.test_min_1_invalid_typesB  r  r  c                     |                                  5  |                     t          t                     d d d            d S # 1 swxY w Y   d S r#  )r2  r  r~   r$  r%  s    r   test_min_1_invalid_types_npmz)TestBuiltins.test_min_1_invalid_types_npmF  r  r  c                     t          |t          j        t          j        f|          }|j        }d}t	          j        ||          D ]/\  }}|                      |||           |||                     0d S )Nr  )FT)r   r   bool_r  r*  r+  r  )r  r	  r  r
  r  operandsr   r    s           r   check_minmax_bool1zTestBuiltins.check_minmax_bool1J  s    fu{EK&@NNN %h99 	? 	?DAq##EE!QKK1>>>>	? 	?r   c                 <    |                      t          |           d S r   )r
  rp   rf  s     r   test_max_bool1zTestBuiltins.test_max_bool1R      e44444r   c                 <    |                      t          |           d S r   )r
  r~   rf  s     r   test_min_bool1zTestBuiltins.test_min_bool1V  r  r   c                 d    t          |t          j        f|          }|j        } |d           d S )Nr  r   )r   r   r   r  r  s        r    check_min_max_unary_non_iterablez-TestBuiltins.check_min_max_unary_non_iterable\  s2    fu{nEBBBar   c                     |                      t                    5  |                     t                     d d d            d S # 1 swxY w Y   d S r   )rU  rq  r  rv   r%  s    r   test_max_unary_non_iterablez(TestBuiltins.test_max_unary_non_iterablea      y)) 	@ 	@11,???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@r  c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r   )r2  r  rv   r%  s    r   test_max_unary_non_iterable_npmz,TestBuiltins.test_max_unary_non_iterable_npme      ##%% 	@ 	@11,???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@   =AAc                     |                      t                    5  |                     t                     d d d            d S # 1 swxY w Y   d S r   )rU  rq  r  r   r%  s    r   test_min_unary_non_iterablez(TestBuiltins.test_min_unary_non_iterablei  r  r  c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r   )r2  r  r   r%  s    r   test_min_unary_non_iterable_npmz,TestBuiltins.test_min_unary_non_iterable_npmm  r  r  c                     |                                  5 }t          |dt                     d d d            n# 1 swxY w Y   |                     d|z  t	          |j                             d S )NrN   r  z%s() argument is an empty tuple)r2  r   r$  rr  rU   rs  )r  r	  	func_namert  s       r   check_min_max_empty_tuplez&TestBuiltins.check_min_max_empty_tuples  s    ##%% 	?VR~>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?7)C&*++	- 	- 	- 	- 	-s   9= =c                 <    |                      t          d           d S )Nro   )r  ry   r%  s    r   test_max_empty_tuplez!TestBuiltins.test_max_empty_tupley      &&|U;;;;;r   c                 <    |                      t          d           d S )Nr}   )r  r   r%  s    r   test_min_empty_tuplez!TestBuiltins.test_min_empty_tuple|  r"  r   c                     t           }t          |t          j        f|          }|j        }dD ]*}|                      ||           ||                     +d S )Nr  )ir  r   r   r  )r   r   r   r   r  r  r=  s         r   test_octzTestBuiltins.test_oct  sh    fu{nEBBB" 	9 	9A##EE!HHffQii8888	9 	9r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r#  )r2  r&  r$  r%  s    r   test_oct_npmzTestBuiltins.test_oct_npm  r4  r5  c                    t           }t          |t          j        d          t          j        d          f|          }|j        }d }t          d          }|                      |||           |||                     d t          d          D             }|                      |||           |||                     d t          d          D             }|                      |||           |||                     d S )Nr{  r   r  c                     | |z   S r   rN   r   s     r   r~  z*TestBuiltins.test_reduce.<locals>.<lambda>  s
    1q5 r   r   c                     g | ]
}||d z  z   S g      $@rN   .0r   s     r   
<listcomp>z,TestBuiltins.test_reduce.<locals>.<listcomp>       +++AQ4Z+++r   c                 .    g | ]}t          ||          S rN   r*   r-  s     r   r/  z,TestBuiltins.test_reduce.<locals>.<listcomp>       ...qWQ]]...r   )r   r   r   rD  r  r   r  )r  r  r	  r
  r  r   r   s          r   test_reducezTestBuiltins.test_reduce  s   fu{>'B'B',{6':':'<-24 4 4 (("IIk1 5 5vvk17M7MNNN++r+++k1 5 5vvk17M7MNNN..E"II...k1 5 5vvk17M7MNNNNNr   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r#  )r2  r3  r$  r%  s    r   test_reduce_npmzTestBuiltins.test_reduce_npm  r  r5  c                     t           }t          j        t          j        fD ]T}t	          ||f|          }|j        }g d}|ddgz  }|D ]*}|                      ||           ||                     +Ud S )Nr  )gg      gffffffg      r  皙?      ?g333333?gffffff?r<        @gr;  )r   r   r   r   r   r  r  )r  r  r	  tpr
  r  valuesr   s           r   test_round1zTestBuiltins.test_round1  s    =%-0 	= 	=B!&2%u===BNEPPPFtTl"F = =''a&&))<<<<=	= 	=r   c                 <    |                      t                     d S r#  )r<  r$  r%  s    r   test_round1_npmzTestBuiltins.test_round1_npm  r  r   c           
         t           }t          j        t          j        fD ]}|t          j        u rdnd}t	          ||t          j        f|          }|j        }dD ]n}dD ]i}|                      |||           |||          |            || |          }	|                      || |           || |          |           jod S )Nr  exactr  )r  r7  g      ?g      ?r8  g      ?g      ?r<  g      ?g      @r3   g      @g      )@g      .@g     6@)r  r   r   r   r  )r   r   r   r   r   r   r  r  )
r  r  r	  r:  r  r
  r  r   r   r  s
             r   test_round2zTestBuiltins.test_round2  s   =%-0 	7 	7B!U]2288D!&2u{*;5IIIBNED 7 7& 7 7A++EE!QKK115 , 7 7 7%vqb!}}H++EE1"aLL&&!Q--15 , 7 7 7 7	77		7 	7r   c                 <    |                      t                     d S r#  )rA  r$  r%  s    r   test_round2_npmzTestBuiltins.test_round2_npm  r  r   c                    t           }t          |t          j        d          f|          }|j        }t          d          }|                      ||           ||                     d t          d          D             }|                      ||           ||                     d t          d          D             }|                      ||           ||                     d S )Nr   r  r   c                     g | ]
}||d z  z   S r,  rN   r-  s     r   r/  z1TestBuiltins.test_sum_objmode.<locals>.<listcomp>  r0  r   c                 .    g | ]}t          ||          S rN   r*   r-  s     r   r/  z1TestBuiltins.test_sum_objmode.<locals>.<listcomp>  r2  r   )r   r   r   rD  r  r   r  r=  s         r   test_sum_objmodezTestBuiltins.test_sum_objmode  s    fu{6':':&<EJJJ"IIa&&))444++r+++a&&))444..E"II...a&&))44444r   c           	      N  	 t          t                    }t          t                    }t           dd            }t          dddg          		fd} |            D ]4}|                      ||          |                    |                     5t          j        d          t          j        d          t          j	        d	          f}| 
                     ||          |                    |                     	fd
} |            D ];\  }}|                      |||          |                    ||                     <t          dd          D ]K}t          dd          D ]8}|                      |||          |                    ||                     9Ld S )Nr   c                 f    t          |           }t          ||          }t          ||          |fS r   )r   r   )szr   tmpr   s       r   	sum_rangez(TestBuiltins.test_sum.<locals>.sum_range  s2    ))Cc5//Cs%(((#--r   r   r   r   c               3     K   g t          d          V  d t          d          D             V  d t          d          D             V  dV  dV  t          j        d          t          j        d          t          j        d          fV  t          j        t          d	                    } | V  t          j        d	          V   d
d          V   d
d          V  d S )Nr   c                     g | ]
}||d z  z   S r,  rN   r-  s     r   r/  z7TestBuiltins.test_sum.<locals>.args.<locals>.<listcomp>       111!1qv:111r   c                     g | ]}|d z  S r  rN   r-  s     r   r/  z7TestBuiltins.test_sum.<locals>.args.<locals>.<listcomp>      ---a1r6---r   r   r   r                 @    r   r   rc   d                    i@)r   r   r   r   r  r
   r   onestlr   s    r   r  z#TestBuiltins.test_sum.<locals>.args  s     E"II,11uRyy111111--599------OOO 8B<<!bgajj9999E!HH%%BHHH'!**$sC..   $sD//!!!!!r   rU  r   r   c               3   D  K   g t          d          dfV  d t          d          D             dfV  d t          d          D             dfV  dV  dV  t          j        d	          t          j        d
          t          j        d          ft          j        d          fV  t          j        t          d                    } | dfV  t          j        d          dt          j        d          z  fV   dd          dfV   dd          dfV  d S )Nr      c                     g | ]
}||d z  z   S r,  rN   r-  s     r   r/  z;TestBuiltins.test_sum.<locals>.args_kws.<locals>.<listcomp>  rO  r   y              3@c                     g | ]}|d z  S rQ  rN   r-  s     r   r/  z;TestBuiltins.test_sum.<locals>.args_kws.<locals>.<listcomp>  rR  r   )r   	   )rS  r   rU  r   r   r   rc   rV  )rc   rc   )rc   rW  irX  ra  )	r   r   r   r   r  r  r
   r   rY  rZ  s    r   args_kwsz'TestBuiltins.test_sum.<locals>.args_kws  sB     E"II,""""11uRyy11136666--599---r1111     8B<<!bgajj929Q<<GGGGE!HH%%Bc'MMM'&//2#55555$sC..#%%%%$sD//1$$$$$$r   r   rS  r   r   )r	   r   r   r   r  py_funcr   r  r  r  assertEqualr   )
r  sum_default	sum_kwargrL  r  r   rb  r   rJ  r   s
            @r   test_sumzTestBuiltins.test_sum  s   ;''*++			. 	. 	. 
	.
 &3*--	" 	" 	" 	" 	"  	L 	LA##KKNNK4G4G4J4JKKKK
 Yr]]BIaLL"(1++6Q)<)<Q)?)?@@@	% 	% 	% 	% 	% !

 	G 	GHAu##IIau$=$=$=$-$5$5au$5$E$EG G G G 2q\\ 	L 	LEBll L L''		"E(B(B(B(1(9(9"E(9(J(JL L L LL	L 	Lr   c                 <   t          t                    }t          t                    }d}|                     t          j                  5 } |dd           d d d            n# 1 swxY w Y   |                     |                    d          t          |j	                             |                     t          j                  5 } |dd           d d d            n# 1 swxY w Y   |                     |                    d          t          |j	                             |                     t          j                  5 } |dt          d                     d d d            n# 1 swxY w Y   |                     |                    d          t          |j	                             |                     t          j                  5 } |d           d d d            n# 1 swxY w Y   |                     d	t          |j	                             d S )
Nzsum() can't sum {}r   r   stringss   123r   	bytearrayabcdzNo implementation)r	   r   r   rU  r   rx  rr  rJ   rU   rs  rk  )r  rf  rg  ru  rt  s        r   test_sum_exceptionsz TestBuiltins.test_sum_exceptions  s   ;''*++	 #v122 	&fIi%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	cjj++S1A-B-BCCCv122 	)fIi(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	cjj))3v/?+@+@AAAv122 	4fIi6!2!2333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	cjj--s63C/D/DEEE v122 	 fK	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	)3v/?+@+@AAAAAsH   
A##A'*A'C!!C%(C%E,,E03E0G))G-0G-c                     t           } t          d          |          }|                      |d           |d                     |                      |d           |d                     d S )NTr  F)r   r   re  r  r	  r  s      r   
test_truthzTestBuiltins.test_truth.  ss    "T"""6**uuT{{333e55555r   c                      t            t          d                     fd} |dd            |dd            |dd            |dd            |d	d
           d S )NTr  c                  D     |  }                      |  |           d S r   )r  )r  r  r  r	  r  s     r   r  z+TestBuiltins.test_type_unary.<locals>.check:  s0    vt}H##EE4L(;;;;;r   r<  r   r   r3   y              ?y              @F)r   r   )r  r  r  r	  s   ` @@r   test_type_unaryzTestBuiltins.test_type_unary5  s    #"T"""6**	< 	< 	< 	< 	< 	< 	< 	c1adAdAdEr   c                 <    |                      t          |           d S r   )r  r   rf  s     r   test_zipzTestBuiltins.test_zipD  s    k511111r   c                 <    |                      t                     d S r#  )ru  r$  r%  s    r   test_zip_npmzTestBuiltins.test_zip_npmG  r'  r   c                 <    |                      t          |           d S r   )r  r   rf  s     r   
test_zip_1zTestBuiltins.test_zip_1J      mU33333r   c                 <    |                      t                     d S r#  )ry  r$  r%  s    r   test_zip_1_npmzTestBuiltins.test_zip_1_npmM  r  r   c                 <    |                      t          |           d S r   )r  r   rf  s     r   
test_zip_3zTestBuiltins.test_zip_3P  rz  r   c                 <    |                      t                     d S r#  )r~  r$  r%  s    r   test_zip_3_npmzTestBuiltins.test_zip_3_npmS  r  r   c                 <    |                      t          |           d S r   )r  r   rf  s     r   
test_zip_0zTestBuiltins.test_zip_0V  rz  r   c                 <    |                      t                     d S r#  )r  r$  r%  s    r   test_zip_0_npmzTestBuiltins.test_zip_0_npmY  r  r   c                 <    |                      t          |           dS )z
        Test side effect to the input iterators when a left iterator has been
        exhausted before the ones on the right.
        N)r  r   rf  s     r   test_zip_first_exhaustedz%TestBuiltins.test_zip_first_exhausted\  s!    
 	1599999r   c                 <    |                      t                     d S r#  )r  nrt_no_pyobj_flagsr%  s    r   test_zip_first_exhausted_npmz)TestBuiltins.test_zip_first_exhausted_npmc  s     %%,>%?????r   c                    g d}|D ]w\  }}t          t          t          |          t          |          ft                    }|                    ||          }|                     |t          ||                     xd S N))r   r   )r   r   )r   r4   )y               @rT  r  )r   r   r   r$  r  r  r  r  r   r    cresrs         r   test_pow_op_usecasez TestBuiltins.test_pow_op_usecasef  s    
 
 
  	= 	=DAq#NVAYYq		4J*8: : :D  A&&A##A~a';';<<<<		= 	=r   c                    g d}|D ]w\  }}t          t          t          |          t          |          ft                    }|                    ||          }|                     |t          ||                     xd S r  )r   r   r   r$  r  r  r  s         r   test_pow_usecasezTestBuiltins.test_pow_usecaset  s    
 
 
  	: 	:DAq#K&))VAYY1G*8: : :D  A&&A##A{1a'8'89999		: 	:r   c                      t                      |          } |            } |            }|                     ||           d S r   )r	   r  )r  r	  r  r  gots        r   _check_min_maxzTestBuiltins._check_min_max  sE    v688egg#.....r   c                     t           d             fd} |t                    D ]}|                     |            |t                    D ]}|                     |           d S )Nc              3   <   K   | }||k     r|V  ||z  }||k     d S d S r   rN   )r   stopstepr9   s       r   frangez8TestBuiltins.test_min_max_iterable_input.<locals>.frange  s9      Ad((T	 d((((((r   c              3       K    fdV   fdV   fdV   fdV   fdV   fdV   fdV   fdV  d S )	Nc                  4      t          d                    S Nr   r   ops   r   r~  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>  s    ""U2YY-- r   c                  6      t          dd                    S )Nr   r]  r  r  s   r   r~  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>  s    ""U1b\\** r   c                  8      t          ddd                    S )NrT  r  r  r  s   r   r~  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>  s    ""U2sB//00 r   c                        g d          S )N)gffffff@g      @g@rN   r  s   r   r~  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>  s    ""___-- r   c                        ddg          S )N)r   r   r   rN   r  s   r   r~  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>  s    ""ff-.. r   c                  0       ddd                    S )Nr  gffffff
@r7  rN   )r  r  s   r   r~  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>  s    ""VVCc2233 r   c                  t      t           j        t           j         t           j        t           j        g          S r   )r   r  r  r  s   r   r~  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>  s$    ""bfrvgrvrv>?? r   c                        g d          S )N))r   r  )r   rN   r  s   r   r~  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>  s    ""///00 r   rN   )r  r  s   `r   sample_functionszBTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions  s      '''''''*******0000000-------.......33333333???????000000000r   r  )r	   r}   r  ro   )r  r  fnr  s      @r   test_min_max_iterable_inputz(TestBuiltins.test_min_max_iterable_input  s    		 	 
		1 	1 	1 	1 	1 #"c*** 	$ 	$B####""c*** 	$ 	$B####	$ 	$r   N)m__name__
__module____qualname__r  rp  r!  r&  r/  r3  r7  r9  r>  r@  rE  rG  rJ  rL  r^  r`  rb  rd  rg  ri  rl  rn  rv  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r
  r  r  r  r  r  r  r  r  r!  r$  r&  r(  r3  r5  r<  r>  rA  rC  rG  rh  rm  rp  rs  r  ru  rw  ry  r|  r~  r  r  r  r  r  r  r  r  r  rN   r   r   r  r  I  s       3 3 3 0 = = = =@, , , 0 ? ? ? ?0 0 0 0 ? ? ? ?0 0 0 1 9 9 9 9 - - - ); 9 9 9 9; ; ; "4 	? 	? 	? 	?0 0 0 &8    64 4 4 (:    &6 6 6 $6 8 8 8 82 2 2 *< > > > >8 8 82 2 22 2 2 !3 
? 
? 
? 
?3 3 3  2 9 9 9 9$2 2 2 !3 ? ? ? ?.3 3 3 "4 $ $ $ $4 4 4+ + +1 1 1 0 9 9 9 90 0 0 "4 'M 'M 'M 'MR 0 	? 	? 	? 	?0 0 0 $6    2 2 2 !3 G G G G
/ / /3 3 3 0 
< 
< 
< 
<0 0 0? ? ?  2 1 1 1 1  2 1 1 1 1. . .. . .? ? ?  2 1 1 1 1  2 1 1 1 12 2 22 2 2
J 
J 
J  2 1 1 1 1  2 1 1 1 1. . .. . . 9K    ; ; ;Q Q Q; ; ;Q Q Q? ? ? $6 5 5 5 5 $6 5 5 5 5 >P    
@ @ @@ @ @@ @ @@ @ @- - -< < << < < 0 9 9 9 90 0 0 !3 O O O O$3 3 3 !3 	= 	= 	= 	=/ / / !3 7 7 7 7 / / / &8 5 5 5 5>L >L >L@B B B86 6 6   , 2 2 2 2, , ,  . 4 4 4 4. . .  . 4 4 4 4. . .  . 4 4 4 4. . . .< : : : :@ @ @= = =: : :/ / /$ $ $ $ $r   r  c                       e Zd Zd Zd ZdS )TestOperatorMixedTypesc           	         dD ]z}t          t          |          t          fd            }d}t          j        ||          D ]9\  }}|                     |                    ||           |||                     :{d S )N)eqnec                      | |          S r   rN   r   r   r  s     r   funcz/TestOperatorMixedTypes.test_eq_ne.<locals>.func      r!Qxxr   )r   r   TFr2   r   r  r  NrB  r  )getattrr   r	   r*  r+  r  rd  )r  opstrr  thingsr   r    r  s         @r   
test_eq_nez!TestOperatorMixedTypes.test_eq_ne  s    ! 	H 	HE5))B        T 
 KF!)&&99 H H1''Q(:(:DDAJJGGGGH	H 	Hr   c                 "  	 dD ]}t          t          |          	t          	fd            }d}t          j        ||          D ]I\  }}|                    ||          } |||          }|d|d|d}|                     |||           Jd S )N)gtltgeler  r  c                      | |          S r   rN   r  s     r   r  z-TestOperatorMixedTypes.test_cmp.<locals>.func  r  r   )r   r   TFr2   r  r   z( does not match between Python and Numba)r  r   r	   r*  r+  rd  re  )
r  r  r  r  r   r    r  r  messager  s
            @r   test_cmpzTestOperatorMixedTypes.test_cmp  s    9 	9 	9E5))B        T  8F!)&&99 9 91<<1--d1ajjaa+  388889	9 	9r   N)r  r  r  r  r  rN   r   r   r  r    s5        H H H9 9 9 9 9r   r  c                   j    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zej        d             ZdS )TestIsinstanceBuiltinc                     t           } t          d          |          }dddddg dd	t          d
dg          dd f
}|D ].} ||          } ||          }|                     ||           /d S )NTr  r   r9  Hellos   worldr  r   )r   r   r   r   r   r   )r   nbar   )r   r   r   re  r  r	  r  inputsinptr  r  s          r   test_isinstancez%TestIsinstanceBuiltin.test_isinstance  s    #"T"""6** IIAKK
  	, 	,Dvd||H%++CXs++++	, 	,r   c                     t           } t          d          |          }|                      |             |                       d S r  )r   r   re  ro  s      r   test_isinstance_dictz*TestIsinstanceBuiltin.test_isinstance_dict  sI     "T"""6**5577+++++r   c           
         t           } t          d          |          }t          j        d          dft          j        d          dft          j        d          dft          j        d	          d
ft          j        d          dft          j	        ddg          dft          j
                            t          j        t          j                  dff}|D ]&\  }} ||          }|                     ||           'd S )NTr  r   r   r   r   r4   r   g      @r   y              @r   r   r   )r   r   r   r   r   r   r   r  r
   r   r   emptyre  r  s          r   test_isinstance_numba_typesz1TestIsinstanceBuiltin.test_isinstance_numba_types  s     0"T"""6** [^^W%[^^W%]3+]3+_R  *-ZA.Zek5;77F
 % 	, 	,ND(%++CXs++++	, 	,r   c                     t           } t          d          |          }|                      |             |                       d S r  )r   r   re  ro  s      r   test_isinstance_numba_types_2z3TestIsinstanceBuiltin.test_isinstance_numba_types_2  sI    1"T"""6**5577+++++r   c                 Z   t           } t          d          |          }|                      |d                     d}|                     t          j                  5 } |d           d d d            n# 1 swxY w Y   |                     |t          |j                             d S )NTr  g333333@&Cannot infer numba type of python typerV  )	r   r   
assertTruerU  r   rx  rr  rU   rs  )r  r	  r  ru  rt  s        r   test_isinstance_invalid_typez2TestIsinstanceBuiltin.test_isinstance_invalid_type  s    0"T"""6** 	c

### 7v122 	fE#JJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	c3v/0011111s    A88A<?A<c                 Z   t           dft          dft          dft                      dfg}|D ]~\  }}t	          |          }|                     t          j                  5 } |d           d d d            n# 1 swxY w Y   |                     |t          |j
                             d S )Nr  zGisinstance() cannot determine the type of variable "z" due to a branch.z6isinstance() does not support variables of type "ntpl(rV  )r   r   r   r   r	   rU  r   rx  rr  rU   rs  )r  fnsr  ru  rt  s        r   test_isinstance_exceptionsz0TestIsinstanceBuiltin.test_isinstance_exceptions	  s   '577 1 9::FI
  	6 	6GBbB""6#566 &3               MM#s6#3445555	6 	6s   A77A;	>A;	c                    d }t           t          t          t          t          t
          t          t          t          t          j
        t          j        f}dddddgddd	hd d
dt          j        g d          t          j
        d          t          j        d          t          j                            t           j        t           j                  t          j                            t           j                  t          j        d          f}|D ]U}t/           ||                    }|D ]8}|                    |          } ||          }|                     ||           9Vd S )Nc                       fd}|S )Nc                 $    t          |           S r   r   )r   
clazz_types    r   r   zHTestIsinstanceBuiltin.test_combinations.<locals>.gen_w_arg.<locals>.impl"      !!Z000r   rN   r  r   s   ` r   	gen_w_argz:TestIsinstanceBuiltin.test_combinations.<locals>.gen_w_arg!  !    1 1 1 1 1Kr   r   gffffff@              @5   )r      8ra  )r      r]  )   r   y              ,@)rR  r           r   )rZ   rF   r+   rU   r   r   r   r   r   r   r  r   arrayr
   r   r  r   unicode_typer   r   
empty_listr  rY  r	   rd  re  )	r  r  clazz_types	instancesctr  r   r  r  s	            r   test_combinationsz'TestIsinstanceBuiltin.test_combinations  s2   	 	 	
 E7CueS%w
-RqdD$d!>28LLL3I3IWR[["*R..Z%%e&8%-HHZ**5+;<<bgajj	J	  	0 	0Biimm$$B 0 0::a==bee  h////0	0 	0r   c                 b   d }t           j        t           j        t           j        f}d}|D ]}t	           ||                    }|                     t          j                  5 } |             d d d            n# 1 swxY w Y   |                     t          |j
                  |           d S )Nc                       fd}|S )Nc                  $    t          d           S Nr   r   )r  s   r   r   zGTestIsinstanceBuiltin.test_numba_types.<locals>.gen_w_arg.<locals>.impl9  r  r   rN   r  s   ` r   r  z9TestIsinstanceBuiltin.test_numba_types.<locals>.gen_w_arg8  r  r   z%Numba type classes.*are not supported)r   IntegerFloatArrayr	   rU  r   rx  assertRegexrU   rs  )r  r  r  ru  r  r  rt  s          r   test_numba_typesz&TestIsinstanceBuiltin.test_numba_types5  s    	 	 	
 }ek5;@5 	9 	9Biimm$$B""6#566 &              S!122C8888		9 	9s   $A;;A?	A?	c                 ^   t           d             }|                      |            d           |                     |                                d           t           d             }|                      |            d           |                     |                                d           d S )Nc                  P    t          t          j        d          t                    S r  )r   r   intprZ   rN   r   r   r   zITestIsinstanceBuiltin.test_python_numpy_scalar_alias_problem.<locals>.fooK  s    bgbkk3///r   TFc                  6    t          dt          j                  S r  )r   r   r  rN   r   r   barzITestIsinstanceBuiltin.test_python_numpy_scalar_alias_problem.<locals>.barR  s    a)))r   r	   re  rd  )r  r   r   s      r   &test_python_numpy_scalar_alias_problemz<TestIsinstanceBuiltin.test_python_numpy_scalar_alias_problemF  s    
 
	0 	0 
	0 	%%%...		* 	* 
	* 	%%%.....r   c                     t           d             }dD ]8}|                    |          } ||          }|                     ||           9d S )Nc                     t          | t                    r| dz   S t          | t                    rt          j        |           S t          | t
                    rt          |           S J )Nsome_string)r   rU   r+   r   r   r   lenr   s    r   r   z4TestIsinstanceBuiltin.test_branch_prune.<locals>.foo]  sa    !S!! =((Aw'' wqzz!Au%% 1vvr   )rC  y      ?       @)r   r   r  )r	   rd  re  )r  r   r   r  r  s        r   test_branch_prunez'TestIsinstanceBuiltin.test_branch_pruneY  sm     
	 	 
	 2 	, 	,A{{1~~H#a&&CS(++++	, 	,r   c                    t          j        d          5 }t          j        dt          j                   t                       t          d             } |d           |                     t          |          d           |                     |d         j	        t          j
                   d}|                     |t          |d         j                             d d d            d S # 1 swxY w Y   d S )	NT)recordalwaysc                 ,    t          | t                    S r   r   r   s    r   r   z<TestIsinstanceBuiltin.test_experimental_warning.<locals>.foow  s    !!U+++r   gX9v?r   r   z>Use of isinstance() detected. This is an experimental feature.)warningscatch_warningssimplefilterr   NumbaWarningr   r	   re  r  categoryNumbaExperimentalFeatureWarningrr  rU   r  )r  wr   ru  s       r   test_experimental_warningz/TestIsinstanceBuiltin.test_experimental_warningm  s1    $D111 	2Q!(F,?@@@$&&&, , T, CJJJSVVQ'''QqT]#CE E ECMM#s1Q4<00111!	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   CC**C.1C.N)r  r  r  r  r  r  r  r  r  r  r  r  r  r   run_test_in_subprocessr  rN   r   r   r  r    s        , , ,., , ,, , ,(, , ,
2 2 26 6 6,0 0 0,9 9 9"/ / /&, , ,( $2 2 %$2 2 2r   r  c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestGetattrBuiltinc                     t           d             }dD ]4}|                      ||          |                    |                     5d S )Nc                 6    t          | d          } |            S )N__hash__r  )r   attrs     r   r   z7TestGetattrBuiltin.test_getattr_func_retty.<locals>.foo  s    1j))D466Mr   r   Q@rc   r  r   r	   r  rd  r  r   r   s      r   test_getattr_func_rettyz*TestGetattrBuiltin.test_getattr_func_retty  sa    		 	 
	 & 	< 	<A##CCFFCKKNN;;;;	< 	<r   c                     t           d             }t          d          D ]K}t          j        d|z            }|                      ||          |                    |                     Ld S )Nc                 "    t          | d          S )Nndimr  r   s    r   r   z8TestGetattrBuiltin.test_getattr_value_retty.<locals>.foo  s    1f%%%r   r   r  )r	   r   r   r  r  rd  )r  r   r   rK  s       r   test_getattr_value_rettyz+TestGetattrBuiltin.test_getattr_value_retty  s    		& 	& 
	& q 	@ 	@A(519%%C##CCHHckk#.>.>????	@ 	@r   c                     t           d             }|                      |            |                                           d S )Nc                  ,    t          t          d          S )Npir  r   rN   r   r   r   z7TestGetattrBuiltin.test_getattr_module_obj.<locals>.foo  s    2t$$$r   r  r  r   s     r   test_getattr_module_objz*TestGetattrBuiltin.test_getattr_module_obj  sI     
	% 	% 
	% 	s{{}}55555r   c                     t           d             }|                     t          j                  5 } |             d d d            n# 1 swxY w Y   d}|                     |t          |j                             d S )Nc                  >     t          t          d          d          S )Ncosr   r)  rN   r   r   r   zGTestGetattrBuiltin.test_getattr_module_obj_not_implemented.<locals>.foo  s    %72u%%a(((r   z-Returning function objects is not implementedr	   rU  r   rx  rr  rU   rs  r  r   rt  ru  s       r   'test_getattr_module_obj_not_implementedz:TestGetattrBuiltin.test_getattr_module_obj_not_implemented  s     
	) 	) 
	) v122 	fCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 >c3v/0011111s   AAAc                    dt           fd            }|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     d dt	          |j                             d S )N__not_a_valid_attr__c                 $    t          |           S r   r  )r   invalid_attrs    r   r   zCTestGetattrBuiltin.test_getattr_raises_attribute_error.<locals>.foo  s    1l+++r   gGz?z'float64' has no attribute '')r	   rU  AttributeErrorrr  rU   rs  )r  r   rt  r5  s      @r   #test_getattr_raises_attribute_errorz6TestGetattrBuiltin.test_getattr_raises_attribute_error  s    -		, 	, 	, 	, 
	, ~.. 	&CIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	D\DDD&*++	- 	- 	- 	- 	-   AAAc                     t           d             }t          dd          D ]9\  }}|                      |||          |                    ||                     :d S )Nc                 $    t          | d|          S )Nr3  r  )r   defaults     r   r   z9TestGetattrBuiltin.test_getattr_with_default.<locals>.foo  s    14g>>>r   r  )N   r  )r	   r   r  rd  )r  r   r   r    s       r   test_getattr_with_defaultz,TestGetattrBuiltin.test_getattr_with_default  s}     
	? 	? 
	? -/HII 	B 	BDAq##CC1IIs{{1a/@/@AAAA	B 	Br   c                     t           d             }|                     t          j                  5 } |dd           d d d            n# 1 swxY w Y   d}|                     |t          |j                             d S )Nc                 "    t          | |          S r   r  )r   nonliteral_strs     r   r   z<TestGetattrBuiltin.test_getattr_non_literal_str.<locals>.foo  s    1n---r   r   r  z(argument 'name' must be a literal stringr/  r0  s       r   test_getattr_non_literal_strz/TestGetattrBuiltin.test_getattr_non_literal_str  s    		. 	. 
	. v122 	fC:	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 9c3v/0011111s   A		AAc                     t           d             t           fd            }|                      |            |                                           d S )Nc                      dS )Ni90  rN   rN   r   r   default_hashzPTestGetattrBuiltin.test_getattr_no_optional_type_generated.<locals>.default_hash  s    5r   c                  ^    t          t          j        d          d          }  |             S )Nr   r3  )r  r   rY  )	hash_funcrE  s    r   r   zGTestGetattrBuiltin.test_getattr_no_optional_type_generated.<locals>.foo  s.    

,B ,. .I9;;r   r  )r  r   rE  s     @r   'test_getattr_no_optional_type_generatedz:TestGetattrBuiltin.test_getattr_no_optional_type_generated  sm    		 	 
	 
	 	 	 	 
	
 	s{{}}55555r   N)r  r  r  r!  r%  r+  r1  r8  r>  rB  rH  rN   r   r   r  r    s        < < <@ @ @6 6 62 2 2- - -B B B
2 
2 
26 6 6 6 6r   r  c                       e Zd Zd Zd ZdS )TestHasattrBuiltinc                 T   t           d             }t          j        }dddt          j                            ||          t          j                            |          t          j	        d          dfD ]4}| 
                     ||          |                    |                     5d S )Nc                 B    t          | d          t          | d          fS )Nr  r3  hasattrr   s    r   r   z,TestHasattrBuiltin.test_hasattr.<locals>.foo  s"    1j))716L+M+MMMr   r   r  r  r   ABC)r	   r   r   r
   r   r  r   r  r   rY  r  rd  )r  r   tyr   s       r   test_hasattrzTestHasattrBuiltin.test_hasattr  s    		N 	N 
	N [T9ej&6&6r2&>&>*''++RWQZZ@ 	< 	<A##CCFFCKKNN;;;;	< 	<r   c                     t           d             }|                     t          j                  5 } |d           d d d            n# 1 swxY w Y   d}|                     |t          |j                             d S )Nc                 <    | dk    rd}nd}t          d|           d S )Nr   r  __str__r   rM  )predr  s     r   r   z;TestHasattrBuiltin.test_hasattr_non_const_attr.<locals>.foo  s-    axx! Atr   r  zGhasattr() cannot determine the type of variable "attr" due to a branch.)r	   rU  r   NumbaTypeErrorrr  rU   rs  r0  s       r   test_hasattr_non_const_attrz.TestHasattrBuiltin.test_hasattr_non_const_attr  s    
 
	 	 
	 v455 	CFFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	)c3v/0011111r9  N)r  r  r  rQ  rW  rN   r   r   rJ  rJ    s2        	< 	< 	<2 2 2 2 2r   rJ  c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestStrAndReprBuiltinc                     t           d             }|                      |            |                                           d S )Nc                      t                      S r   rT   rN   r   r   r   z3TestStrAndReprBuiltin.test_str_default.<locals>.foo  s    55Lr   r  r*  s     r   test_str_defaultz&TestStrAndReprBuiltin.test_str_default  sG    		 	 
	 	.....r   c                     t           d             }d}|                      ||          |                    |                     d S )Nc                 "    t          |           S )N)objectrT   r   s    r   r   z8TestStrAndReprBuiltin.test_str_object_kwarg.<locals>.foo  s    a=== r   za stringr  )r  r   values      r   test_str_object_kwargz+TestStrAndReprBuiltin.test_str_object_kwarg  sR    		! 	! 
	! US[[%7%788888r   c                 N   t           d             }|                                 \  }} |            }dfd|_        t          |d          fd            }t          |d          d             }|                      ||          |                    |                     d S )Nc                      t          |           S r   rT   r   s    r   r   z<TestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.foo      q66Mr   zthis is the dummy object strc                     S r   rN   r   string_reprs    r   r~  zATestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.<lambda>&  s    K r   rT  c                     fd}|S )Nc                     S r   rN   dummyrg  s    r   r   zVTestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.ol_dummy_string.<locals>.impl*  	    ""r   rN   rk  r   rg  s     r   ol_dummy_stringzHTestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.ol_dummy_string(  !    # # # # #Kr   __repr__c                     d }|S )Nc                     dS )NzSHOULD NOT BE CALLEDrN   )rk  s    r   r   zTTestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.ol_dummy_repr.<locals>.impl0  s    --r   rN   )rk  r   s     r   ol_dummy_reprzFTestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.ol_dummy_repr.  s    . . .Kr   )r	   make_dummy_typerT  r   re  rd  )r  r   rD  	DummyTyperk  rn  rs  rg  s          @r   test_str_calls_dunder_strz/TestStrAndReprBuiltin.test_str_calls_dunder_str  s    		 	 
	  //11y4////	I	.	.	 	 	 	 
/	.	
 
J	/	/	 	 
0	/	
 	US[[%7%788888r   c                    t           d             }|                                 \  }} |            }dfd|_        t          |d          fd            }|                      ||          |                    |                     d S )Nc                      t          |           S r   rT   r   s    r   r   z>TestStrAndReprBuiltin.test_str_falls_back_to_repr.<locals>.foo8  rd  r   zthis is the dummy object reprc                     S r   rN   rf  s    r   r~  zCTestStrAndReprBuiltin.test_str_falls_back_to_repr.<locals>.<lambda>?      [ r   rp  c                     fd}|S )Nc                     S r   rN   rj  s    r   r   zVTestStrAndReprBuiltin.test_str_falls_back_to_repr.<locals>.ol_dummy_repr.<locals>.implC  rl  r   rN   rm  s     r   rs  zHTestStrAndReprBuiltin.test_str_falls_back_to_repr.<locals>.ol_dummy_reprA  ro  r   )r	   rt  rp  r   re  rd  )r  r   rD  ru  rk  rs  rg  s         @r   test_str_falls_back_to_reprz1TestStrAndReprBuiltin.test_str_falls_back_to_repr6  s    		 	 
	  //11y50000	J	/	/	 	 	 	 
0	/	
 	US[[%7%788888r   c                     t           d             }dD ]4}|                      ||          |                    |                     5d S )Nc                 $    t          |           | fS r   )reprr   s    r   r   z,TestStrAndReprBuiltin.test_repr.<locals>.fooJ  s    77A:r   )abcF{   r  r   s      r   	test_reprzTestStrAndReprBuiltin.test_reprI  sa    		 	 
	 % 	5 	5ASSVVS[[^^4444	5 	5r   c                 >   |                                  \  }             }dt          |           dfd_        t          |          fd            }t          d             }|                      ||          |                    |                     d S )Nz<object type:>c                     S r   rN   rf  s    r   r~  z:TestStrAndReprBuiltin.test_repr_fallback.<locals>.<lambda>Y  rz  r   c                     |j                             |j                                                 }|j                             |d          S rx   )pyapiunserializeserialize_objectcall_function_objargs)r  objr   clazobjrD  s       r   	box_dummyz;TestStrAndReprBuiltin.test_repr_fallback.<locals>.box_dummy[  s@    g))!'*B*B5*I*IJJG700"===r   c                      t          |           S r   rT   r   s    r   r   z5TestStrAndReprBuiltin.test_repr_fallback.<locals>.foo`  rd  r   )rt  r   rp  r   r	   re  rd  )r  ru  rk  r  r   rD  rg  s        @@r   test_repr_fallbackz(TestStrAndReprBuiltin.test_repr_fallbackQ  s    
  //11y6fUmm6660000	Y	> 	> 	> 	> 
	> 
	 	 
	 	US[[%7%788888r   N)	r  r  r  r\  ra  rv  r}  r  r  rN   r   r   rY  rY  
  sn        / / /9 9 99 9 929 9 9&5 5 59 9 9 9 9r   rY  __main__rc  )br*  r   sysr   collectionsr   numpyr   unittestr  numba.core.compilerr   r   numbar   r   r	   r
   
numba.corer   r   r   numba.tests.supportr   r   r   r   numba.core.extendingr   r   rp  enable_pyobjectr  force_pyobjectr$  r  nrtr   r!   r%   r(   r,   r/   r;   r>   r@   rD   rG   rK   rO   rR   rV   r\   ra   re   rh   rl   rp   rs   rv   ry   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  rJ  rY  r  mainrN   r   r   <module>r     s           



  " " " " " "       7 7 7 7 7 7 7 7 * * * * * * * * * * * * , , , , , , , , , ,2 2 2 2 2 2 2 2 2 2 2 2 5 5 5 5 5 5 5 5 UWW %)  " $ UWW                     " " "      
                                , , ,                            $ $ $ $
  ,    &
 
 
          V$ V$ V$ V$ V$8 V$ V$ V$r9 9 9 9 9X 9 9 9B@2 @2 @2 @2 @2H @2 @2 @2F]6 ]6 ]6 ]6 ]6( ]6 ]6 ]6@!2 !2 !2 !2 !2( !2 !2 !2HZ9 Z9 Z9 Z9 Z9OX Z9 Z9 Z9| zHMOOOOO r   