
    J/PhE                        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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mZ ddiZdd	d
ZddiZd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d  Z3d! Z4d" Z5d# Z6d$ Z7d% Z8d& Z9d' Z:d( Z;d) Z<d* Z=d+ Z>d, Z?d- Z@d. ZAd/ ZBd0 ZCd1 ZDd2 ZEd3 ZFd4 ZGd5 ZHd6 ZId7 ZJd8 Z@dQd9ZKd: ZLd; ZMd< ZNd= ZOd> ZPd? ZQd@ ZRdA ZSdB ZTdC ZU G dD dEe          ZV G dF dGe          ZW G dH dIe          ZX G dJ dKee          ZY G dL dMee          ZZ G dN dOee          Z[e\dPk    r ej]                     dS dS )R    N
namedtuple)jittypeofnjittyped)errorstypesconfig)TestCasetagignore_internal_warningsMemoryLeakMixin)overload_methodboxregister_jitableforceobjTF)nopython_nrtr   c                      t          |           S N)absxs    Y/var/www/html/test/jupyter/venv/lib/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*   1   s    77Nr   c                 "    t          | |          S r   complexr!   s     r   complex_usecaser.   4   s    1a==r   c                 "    t          | |          S r   )divmodr!   s     r   divmod_usecaser1   7   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   r3   *   r7   r9   s      r   enumerate_start_usecaser@   @   s8    F-,,  1!a%Mr   c                  F    d} t          dd          D ]\  }}| ||z  z  } | S )Nr   r3   gn!	@r7   r9   s      r   enumerate_invalid_start_usecaserB   F   s8    F-11  1!a%Mr   c                 "    t          ||           S r   )filter)r   filter_funcs     r   filter_usecaserF   L   s    +q!!!r   c                      t          |           S r   )floatr   s    r   float_usecaserI   O       88Or   c           
         t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          d	}|                    |           S )
NinfINF-inf-INFz
INF       z       
	-INFz1234.45z
-123.4)r                        )rH   get)r   ds     r   float_inf_usecaserY   R   sq    <<<<====#$$$%%		 		A 5588Or   c                 ,    |                      |          S r   )formatr!   s     r   format_usecaser\   _   s    88A;;r   c                      t                      S r   )globals r   r   globals_usecaser`   b   s    99r   c                      t          |           S r   )hexr   s    r   hex_usecaserc   g   r   r   c                      t          |           S r   strr   s    r   str_usecaserg   j   r   r   c                 $    t          | |          S N)base)intr   rj   s     r   int_usecaserm   m   s    qtr   c                 \    t          |           }t          |          t          |          fS r   )iternext)r   its     r   iter_next_usecaserr   p   s$    	aB88T"XXr   c                 .    d}t                      d         S )NrT   r"   )localsr!   s     r   locals_usecaseru   t   s    	A88C=r   c                 $    t          | |          S ri   )longrl   s     r   long_usecaserx   x   s    r   c                 "    t          ||           S r   )map)r   map_funcs     r   map_usecaser|   {   s    xr   c                 "    t          | |          S r   maxr!   s     r   max_usecase1r          q!99r   c                 $    t          | |g          S r   r~   r!   s     r   max_usecase2r          1v;;r   c                      t          |           S r   r~   r   s    r   max_usecase3r      r   r   c                       t          d          S Nr_   r~   r_   r   r   max_usecase4r          r77Nr   c                 "    t          | |          S r   minr!   s     r   min_usecase1r      r   r   c                 $    t          | |g          S r   r   r!   s     r   min_usecase2r      r   r   c                      t          |           S r   r   r   s    r   min_usecase3r      r   r   c                       t          d          S r   r   r_   r   r   min_usecase4r      r   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      rJ   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   rP   rQ   rR   )g      @@zipr9   s      r   zip_usecaser      s8    FIz**  1!a%Mr   c                  6    d} t                      D ]}| dz  } | S Nr   rP   r   r:   r;   s     r   zip_0_usecaser      s*    FUU  !Mr   c                  <    d} t          d          D ]	\  }| |z  } 
| S )Nr   rP   rQ   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   )rR   rS   rT   )r   g!@r   )r:   r;   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 )NrV   rR   )rangero   listr   )iterabler   rq   frontbacks        r   zip_first_exhaustedr      sO    QxxH	A	hBU1XXr""##E88D$;r   c                     | |z  S r   r_   r!   s     r   pow_op_usecaser      s    6Mr   c                 "    t          | |          S r   )powr!   s     r   pow_usecaser      r   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 )NrP   rk          @rH   z, world!rf   r-   tupler   setbytesno match)

isinstancerk   rH   rf   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 )	NrQ   rS   )rP   rR   
   rR   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   hellorP   rQ   rR   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   rH   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 )NrS   r   r   TFr   rk   r   zs     r   *invalid_isinstance_usecase_phi_nopropagater  4  s3    1uu!S tur   c                     d}t          | t                    r| | f} t          t          |                     D ]}||z  }|S )Nr   )r   rk   r   len)r   r   r;   s      r   +invalid_isinstance_usecase_phi_nopropagate2r  ?  sM    	A!S F3q66]]  	QHr   c                 J    | dk    rd}nd }t          |t                    rdS dS )NrS   r   TFr   r   s     r   #invalid_isinstance_optional_usecaser  J  s3    1uu!S tur   c                  R    t          dddg           dd          fd} | S )Nntplr   r   rP   rQ   c                 $    t                    S r   r   )r   instr  s    r   implz9invalid_isinstance_unsupported_type_usecase.<locals>.implW  s    $%%%r   r   )r  r
  r  s    @@r   +invalid_isinstance_unsupported_type_usecaser  T  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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(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d0Z3efd1Z4d2 Z5d3 Z6d4 Z7efd5Z8efd6Z9d7 Z:d8 Z;d9 Z<efd:Z=efd;Z>d< Z?d= Z@efd>ZAd? ZBd@ ZCdA ZDdB ZEdC ZFefdDZGefdEZHefdFZIdG ZJdH ZKdI ZLdJ ZMdK ZNdL ZOdM ZPefdNZQdO ZRefdPZSdQ ZTefdRZUdS ZVefdTZWdU ZXefdVZYdW ZZdX Z[dY Z\dZ Z]efd[Z^d\ Z_efd]Z`d^ Zaefd_Zbd` ZcefdaZddb ZeefdcZfdd Zgde Zhdf Zidg Zjdh ZkdiS )jTestBuiltinsc                      t          di ||          } |            }|                      |            |           d S Nr_   r_   )r   assertPreciseEqual)selfpyfuncflagscfuncexpecteds        r   run_nullary_funczTestBuiltins.run_nullary_func]  sL       %  ((68822222r   c           	         t           } t          t          j        ffi ||          }dD ]*}|                      ||           ||                     + t          t          j        ffi ||          }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fi ||          }|D ],}|                      ||           ||          d           - t          t          j        ffi ||          }|D ]*}|                      ||           ||                     +t          j	        D ]W}dddd|j
        z  dz
  g} t          |ffi ||          }|D ]*}|                      ||           ||                     +Xd S )Nr   rP   g        皙?singleprecy      ?y                y?      @rL                 ?nanr   r   rQ   rP   )r   r   r
   r   r  r   rH   	complex64
complex128unsigned_domainbitwidth)r  r  r  r  r   complex_valuesunsigned_typeunsigned_valuess           r   test_abszTestBuiltins.test_absb  s]   ,U[N,,e,,V44 	9 	9A##EE!HHffQii8888.U]$....v66! 	H 	HA##EE!HHffQiih#GGGG%x,,eEll)::,,eEll)::< 1U_&00%0088 	H 	HA##EE!HHffQiih#GGGG1U%'11511&99 	9 	9A##EE!HHffQii8888"2 	= 	=M "am.D)Dq)HIO2C(22E226::E$ = =''a&&))<<<<=	= 	=r   c                 <    |                      t                     d S N)r  )r+  no_pyobj_flagsr  s    r   test_abs_npmzTestBuiltins.test_abs_npm}      N+++++r   c                    t           } t          t          j        t          j        ffi ||          }g d}g d}t	          j        ||          D ]/\  }}|                      |||           |||                     0d S N)r  r   rP   N)r#   r   r
   r   	itertoolsproductr  r  r  r  r  
x_operands
y_operandsr   r"   s           r   test_allzTestBuiltins.test_all      7U[-7777??%%%
%%%
%j*== 	? 	?DAq##EE!QKK1>>>>	? 	?r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r-  )assertTypingErrorr9  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fi ||          }g d}g d}t	          j        ||          D ]/\  }}|                      |||           |||                     0d S r3  )r'   r   r
   r   r4  r5  r  r6  s           r   test_anyzTestBuiltins.test_any  r:  r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r-  )r<  rA  r.  r/  s    r   test_any_npmzTestBuiltins.test_any_npm  r>  r?  c                    t           } t          t          j        ffi ||          }dD ]*}|                      ||           ||                     + t          t          j        ffi ||          }dddt          d          t          d          fD ]*}|                      ||           ||                     + t          t          j        ffi ||          }t          dt          d                    t          dt          d                    fD ]*}|                      ||           ||                     +d S )Nr  r               ?rL   r#  r   )	r*   r   r
   r   r  r   rH   r%  r-   r  r  r  r  r   s        r   	test_boolzTestBuiltins.test_bool  sa   ,U[N,,e,,V44 	9 	9A##EE!HHffQii8888.U]$....v66tS%,,e= 	9 	9A##EE!HHffQii88881U%'11511&99!U5\\**GAuU||,D,DE 	9 	9A##EE!HHffQii8888	9 	9r   c                 <    |                      t                     d S r-  )rH  r.  r/  s    r   test_bool_npmzTestBuiltins.test_bool_npm  s    ^,,,,,r   c                 b   t           } t          t          j        ffi ||          }dD ]*}|                      ||           ||                     + t          t          j        d          ffi ||          }dgg fD ]*}|                      ||           ||                     +d S )N)r    r   rP   )r*   r   r
   stringr  DummyrG  s        r   test_bool_nonnumberz TestBuiltins.test_bool_nonnumber  s    -U\O--u--f55 	9 	9A##EE!HHffQii88884U[((*44e44V<<#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-  )r<  rO  r.  r/  s    r   test_bool_nonnumber_npmz$TestBuiltins.test_bool_nonnumber_npm  s    ##%% 	; 	;$$>$:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;r?  c                    t           } t          t          j        t          j        ffi ||          }g d}g d}t	          j        ||          D ]/\  }}|                      |||           |||                     0d S Nr  )r.   r   r
   r   r4  r5  r  r6  s           r   test_complexzTestBuiltins.test_complex  s     8U[%+.88%88@@ZZ
ZZ
%j*== 	? 	?DAq##EE!QKK1>>>>	? 	?r   c                 <    |                      t                     d S r-  )rT  r.  r/  s    r   test_complex_npmzTestBuiltins.test_complex_npm  s    /////r   c                     t           } t          t          j        t          j        ffi ||          }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 )N@   c                 .    | dk    r| d|dz
  z  dz
  z  } | S r   r_   )r   bitss     r   truncate_resultz6TestBuiltins.test_divmod_ints.<locals>.truncate_result  s)     AvvaD1Ho**Hr   )
rP   rR   rV      r  il    l         r   )rX  )	r1   r   r
   r   r4  r5  r  assertRaisesZeroDivisionError)r  r  r  r  r[  denominators
numeratorsr   r"   expected_quotexpected_remquotremfs                 r   test_divmod_intszTestBuiltins.test_divmod_ints  s   8U[%+.88%88@@	 	 	 	 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   C22C6	9C6	c                 <    |                      t                     d S r-  )rh  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fi ||          }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 )	Nr4   g      @g}Ô%ITg       g      g\nrE  r  )r1   r   r
   r   r   rL   r#  r4  r5  r  r_  r`  )r  r  r  r  ra  rb  r   r"   rc  rd  re  rf  s               r   test_divmod_floatszTestBuiltins.test_divmod_floats  s^   <U]EM2<<e<<VD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   C//C3	6C3	c                 <    |                      t                     d S r-  )rl  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-  )rq  r.  r/  s    r   test_enumerate_npmzTestBuiltins.test_enumerate_npm      .11111r   c                 <    |                      t          |           d S r   )r  r@   rp  s     r   test_enumerate_startz!TestBuiltins.test_enumerate_start  s    5u=====r   c                 <    |                      t                     d S r-  )rv  r.  r/  s    r   test_enumerate_start_npmz%TestBuiltins.test_enumerate_start_npm  s    !!!77777r   c                    t           } t          di t          |          }|                     t                    5 } |             d d d            n# 1 swxY w Y   d}|                     |t          |j                             d S )Nr_   z2'float' object cannot be interpreted as an integerr  )rB   r   forceobj_flagsr_  	TypeErrorassertInrf   	exception)r  r  r  raisesmsgs        r   'test_enumerate_start_invalid_start_typez4TestBuiltins.test_enumerate_start_invalid_start_type  s    0))).))&11y)) 	VEGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 Cc3v/0011111s   AAAc                 
   t           }|                     t          j                  5 } t	          di t
          |           d d d            n# 1 swxY w Y   d}|                     |t          |j                             d S )Nr_   z3Only integers supported as start value in enumerater  )	rB   r_  r	   TypingErrorr   r.  r|  rf   r}  )r  r  r~  r  s       r   +test_enumerate_start_invalid_start_type_npmz8TestBuiltins.test_enumerate_start_invalid_start_type_npm  s    0v122 	.f%C%%n%%f---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.Cc3v/0011111s   AAAc           	      &   t           }t          j        d          t          j        d          f} t          |fi ||          }d }g d}|                     t           |||                    t           |||                               d S )Nr   function_ptrc                     | dz  S NrQ   r_   r   s    r   <lambda>z*TestBuiltins.test_filter.<locals>.<lambda>  s
    A r   r   rP   rQ   rR   rS   )rF   r
   rN  r   assertSequenceEqualr   )r  r  r  argtysr  rE   r   s          r   test_filterzTestBuiltins.test_filter  s    +f%%u{>'B'BC$F$$e$$V,,%oOO  eeA{&;&;!<!<!%ffQ&<&<!=!=	? 	? 	? 	? 	?r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r-  )r<  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 	3r?  c                    t           } t          t          j        ffi ||          }dD ]*}|                      ||           ||                     + t          t          j        ffi ||          }dD ],}|                      ||           ||          d           - t          t          j        ffi ||          }dD ]*}|                      ||           ||                     +d S )Nr  r  r  r   )z-1.1z0.0z1.1rL   rN   rM   rO   )rI   r   r
   r   r  r   rM  rG  s        r   
test_floatzTestBuiltins.test_float"  s*   ,U[N,,e,,V44 	9 	9A##EE!HHffQii8888.U]$....v66! 	H 	HA##EE!HHffQiih#GGGG-U\O--u--f55E 	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-  )r<  r  r.  r/  s    r   test_float_npmzTestBuiltins.test_float_npm1      ##%% 	2 	2OO.O111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2r?  c                     t           }t          |          }t          d          D ]*}|                      ||           ||                     +d S )N   )rY   r   r   r  )r  r  r  r   s       r   test_float_string_literalz&TestBuiltins.test_float_string_literal5  sZ    "Vq 	9 	9A##EE!HHffQii8888	9 	9r   c                 B   t           } t          t          j        t          j        ffi ||          }d}dD ],}|                      |||           |||                     - t          t          j        t          j        ffi ||          }d}dD ],}|                      |||           |||                     - t          t          j        t          j        ffi ||          }d}dD ],}|                      |||           |||                     -d S )Nz{0}r  r  r   )r\   r   r
   rM  r   r  r   )r  r  r  r  r   r"   s         r   test_formatzTestBuiltins.test_format;  sL   :U\5;0::E::6BB 	? 	?A##EE!QKK1>>>><U\5=2<<e<<VDD! 	? 	?A##EE!QKK1>>>>;U\5<1;;U;;FCC  	? 	?A##EE!QKK1>>>>	? 	?r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r-  )r<  r  r.  r/  s    r   test_format_npmzTestBuiltins.test_format_npmM  r  r?  c                     t           } t          di ||          } |            }|                     |t                                 d S r  r`   r   assertIsr^   )r  r  r  r  gs        r   test_globalszTestBuiltins.test_globalsQ  sM        %  ((EGGa#####r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r-  )r<  r  r.  r/  s    r   test_globals_npmzTestBuiltins.test_globals_npmW  s    ##%% 	4 	4N333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4r?  c                     t           } t          di ||          }|                      |            t                                 |                      |            t                                 d S r   r  )r  r  r  jitteds       r   test_globals_jitzTestBuiltins.test_globals_jit[  sd     !uf%%ffhh		***ffhh		*****r   c                     |                                  5  |                     d           d d d            d S # 1 swxY w Y   d S NTr   )r<  r  r/  s    r   test_globals_jit_npmz!TestBuiltins.test_globals_jit_npmc  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fi ||          }dD ]*}|                      ||           ||                     +d S rS  )rc   r   r
   r   r  rG  s        r   test_hexzTestBuiltins.test_hexg  sl    ,U[N,,e,,V44 	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-  )r<  r  r.  r/  s    r   test_hex_npmzTestBuiltins.test_hex_npmn  r>  r?  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fi t          |          }|D ]}t          j        |j                  }	|	j        |cxk    r|	j        k    sn 5|                      | ||                     | ||                               |j        r<|                      | ||                      | ||                                d S )N)i  rP   r   r   i  )i[i! i@B r  )rg   r
   int8int16r   r   uintuint8uint16uint32uint64r   nrt_no_pyobj_flagsr   iinfokeyr   r   r  signed)
r  r  small_inputslarge_inputsargstypstypr  vtp_infos
             r   test_int_strzTestBuiltins.test_int_strr  s{   
 
 

 
 
 .-- JKKKJKLLL

  		M 		MC5C55"455f==E M M(37++q7777GK7777''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fi ||          }g d}g d}t          j        ||          D ]/\  }}|                      |||           |||                     0d S )N)z-10110)rQ   r  r      )rm   r   r
   rM  r   r4  r5  r  r6  s           r   test_intzTestBuiltins.test_int  s    :U\5;0::E::6BB+++
#^^
%j*== 	? 	?DAq##EE!QKK1>>>>	? 	?r   c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r-  )r<  r  r.  r/  s    r   test_int_npmzTestBuiltins.test_int_npm  r>  r?  c                    t           } t          t          j        t          j        d          ffi ||          }|                      |d          d            t          t          j        t          j        d          ffi ||          }|                     t                    5   |d           d d d            d S # 1 swxY w Y   d S )NrR   )rP   r?   rT   )rP   r?   rP   rP   )rr   r   r
   UniTupler   r  r_  StopIteration)r  r  r  r  s       r   test_iter_nextzTestBuiltins.test_iter_next  s   "?U^EK335????GGj 1 17;;;?U^EK335????G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  rt  r   c                     t           }|                     t          j                  5   t	          t
          j        ffi ||           d d d            d S # 1 swxY w Y   d S r   )ru   r_  r	   ForbiddenConstructr   r
   r   )r  r  r  s      r   test_localszTestBuiltins.test_locals  s    v899 	1 	1(C((%((000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   "AAAc                 <    |                      t                     d S r-  )r  rz  r/  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-  )r<  r  r.  r/  s    r   test_locals_npmzTestBuiltins.test_locals_npm  r  r?  c           	      &   t           }t          j        d          t          j        d          f} t          |fi ||          }d }g d}|                     t           |||                    t           |||                               d S )Nr   r  c                     | dz  S r  r_   r   s    r   r  z'TestBuiltins.test_map.<locals>.<lambda>  s
    QU r   r  )r|   r
   rN  r   r  r   )r  r  r  r  r  r{   r   s          r   test_mapzTestBuiltins.test_map  s    +f%%u{>'B'BC$F$$e$$V,,"?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-  )r<  r  r.  r/  s    r   test_map_npmzTestBuiltins.test_map_npm  r>  r?  c                      t          t          j        t          j        ffi ||          }g d}g d}t          j        ||          D ]/\  }}|                      |||           |||                     0d S rS  r   r
   r   r4  r5  r  r  r  r  r  r7  r8  r   r"   s           r   check_minmax_1zTestBuiltins.check_minmax_1      8U[%+.88%88@@ZZ
ZZ
%j*== 	? 	?DAq##EE!QKK1>>>>	? 	?r   c                 <    |                      t          |           dS )z
        max(*args)
        N)r  r   rp  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   rp  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fi ||          }g d}g d}t          j        ||          D ]/\  }}|                      |||           |||                     0d S rS  r  r  s           r   check_minmax_2zTestBuiltins.check_minmax_2  r  r   c                 <    |                      t          |           dS )z
        max(list)
        N)r  r   rp  s     r   
test_max_2zTestBuiltins.test_max_2  r  r   c                 <    |                      t          |           dS )z
        min(list)
        N)r  r   rp  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-  )r<  r  r.  r/  s    r   test_max_npm_2zTestBuiltins.test_max_npm_2  r  r?  c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r-  )r<  r  r.  r/  s    r   test_min_npm_2zTestBuiltins.test_min_npm_2  r  r?  c                       fd} |t          j        t           j        d                      |t          j        t           j        t           j        t           j        f                     d S )Nc                      t          | ffi           }dt          d          df}||d d d         fD ]*}                     ||           |                     +d S )NrF  r#  r5   r  )r   rH   r  )argtyr  tupvalr  r  r  s       r   checkz*TestBuiltins.check_minmax_3.<locals>.check  s    *C**E**622Eec*CS2Y' A A''c

FF3KK@@@@A Ar   rR   )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  r   rp  s     r   
test_max_3zTestBuiltins.test_max_3  r  r   c                 <    |                      t          |           dS )z
        min(tuple)
        N)r  r   rp  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_3%  r  r   c                      t          t          j        t          j        d          ffi ||          } |ddg           d S )Nr   rP   )r   r
   r   rN  r  r  r  r  s       r   check_min_max_invalid_typesz(TestBuiltins.check_min_max_invalid_types(  sG    AU[%+f"5"57AA5AA&IIa!r   c                     |                      t                    5  |                     t                     d d d            d S # 1 swxY w Y   d S r   )r_  r{  r	  r   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-  )r<  r	  r   r.  r/  s    r   test_max_1_invalid_types_npmz)TestBuiltins.test_max_1_invalid_types_npm0      ##%% 	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   )r_  r{  r	  r   r/  s    r   test_min_1_invalid_typesz%TestBuiltins.test_min_1_invalid_types4  r  r  c                     |                                  5  |                     t          t                     d d d            d S # 1 swxY w Y   d S r-  )r<  r	  r   r.  r/  s    r   test_min_1_invalid_types_npmz)TestBuiltins.test_min_1_invalid_types_npm8  r  r  c                      t          t          j        t          j        ffi ||          }d}t          j        ||          D ]/\  }}|                      |||           |||                     0d S )N)FT)r   r
   bool_r4  r5  r  )r  r  r  r  operandsr   r"   s          r   check_minmax_bool1zTestBuiltins.check_minmax_bool1<  s    8U[%+.88%88@@ %h99 	? 	?DAq##EE!QKK1>>>>	? 	?r   c                 <    |                      t          |           d S r   )r  r   rp  s     r   test_max_bool1zTestBuiltins.test_max_bool1C      e44444r   c                 <    |                      t          |           d S r   )r  r   rp  s     r   test_min_bool1zTestBuiltins.test_min_bool1G  r  r   c                 ^     t          t          j        ffi ||          } |d           d S NrP   )r   r
   r   r  s       r    check_min_max_unary_non_iterablez-TestBuiltins.check_min_max_unary_non_iterableM  s6    ,U[N,,e,,V44ar   c                     |                      t                    5  |                     t                     d d d            d S # 1 swxY w Y   d S r   )r_  r{  r!  r   r/  s    r   test_max_unary_non_iterablez(TestBuiltins.test_max_unary_non_iterableQ      y)) 	@ 	@11,???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@r  c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r   )r<  r!  r   r/  s    r   test_max_unary_non_iterable_npmz,TestBuiltins.test_max_unary_non_iterable_npmU      ##%% 	@ 	@11,???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@   =AAc                     |                      t                    5  |                     t                     d d d            d S # 1 swxY w Y   d S r   )r_  r{  r!  r   r/  s    r   test_min_unary_non_iterablez(TestBuiltins.test_min_unary_non_iterableY  r$  r  c                     |                                  5  |                     t                     d d d            d S # 1 swxY w Y   d S r   )r<  r!  r   r/  s    r   test_min_unary_non_iterable_npmz,TestBuiltins.test_min_unary_non_iterable_npm]  r'  r(  c                     |                                  5 } t          di t          |           d d d            n# 1 swxY w Y   |                     d|z  t	          |j                             d S )Nr_   z%s() argument is an empty tupler  )r<  r   r.  r|  rf   r}  )r  r  	func_namer~  s       r   check_min_max_empty_tuplez&TestBuiltins.check_min_max_empty_tuplec  s    ##%% 	.%C%%n%%f---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.7)C&*++	- 	- 	- 	- 	-s   <A A c                 <    |                      t          d           d S )Nr   )r/  r   r/  s    r   test_max_empty_tuplez!TestBuiltins.test_max_empty_tuplei      &&|U;;;;;r   c                 <    |                      t          d           d S )Nr   )r/  r   r/  s    r   test_min_empty_tuplez!TestBuiltins.test_min_empty_tuplel  r2  r   c                     t           } t          t          j        ffi ||          }dD ]*}|                      ||           ||                     +d S )N)ir  r   rP   r  )r   r   r
   r   r  rG  s        r   test_octzTestBuiltins.test_octp  sl    ,U[N,,e,,V44" 	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-  )r<  r6  r.  r/  s    r   test_oct_npmzTestBuiltins.test_oct_npmw  r>  r?  c                    t           }t          j        d          t          j        d          f} t          |fi ||          }d }t	          d          }|                      |||           |||                     d t	          d          D             }|                      |||           |||                     d t	          d          D             }|                      |||           |||                     d S )Nr  r   c                     | |z   S r   r_   r!   s     r   r  z*TestBuiltins.test_reduce.<locals>.<lambda>  s
    1q5 r   r   c                     g | ]
}||d z  z   S g      $@r_   .0r   s     r   
<listcomp>z,TestBuiltins.test_reduce.<locals>.<listcomp>       +++AQ4Z+++r   c                 .    g | ]}t          ||          S r_   r,   r=  s     r   r?  z,TestBuiltins.test_reduce.<locals>.<listcomp>       ...qWQ]]...r   )r   r
   rN  r   r   r  )r  r  r  r  r  r   r   s          r   test_reducezTestBuiltins.test_reduce{  s   +n--u{6/B/BC$F$$e$$V,,(("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-  )r<  rC  r.  r/  s    r   test_reduce_npmzTestBuiltins.test_reduce_npm  r  r?  c                     t           }t          j        t          j        fD ]Q} t	          |ffi ||          }g d}|ddgz  }|D ]*}|                      ||           ||                     +Rd S )N)gg      gffffffg      r  皙?      ?g333333?gffffff?rF        @grE  )r   r
   r   r   r   r  )r  r  r  tpr  valuesr   s          r   test_round1zTestBuiltins.test_round1  s    =%-0 	= 	=B'C''''//EPPPFtTl"F = =''a&&))<<<<=		= 	=r   c                 <    |                      t                     d S r-  )rL  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fi ||          }dD ]n}dD ]i}|                      |||           |||          |            || |          }|                      || |           || |          |           jod S )Nr  exact)r  rG  g      ?g      ?rH  g      ?g      ?rF  g      ?g      @r5   g      @g      )@g      .@g     6@)r  r   rP   rQ   r   )r   r
   r   r   r   r   r  )	r  r  r  rJ  r!  r  r   r   r  s	            r   test_round2zTestBuiltins.test_round2  s   =%-0 
	7 
	7B!U]2288D3CU[)33U33F;;E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-  )rQ  r.  r/  s    r   test_round2_npmzTestBuiltins.test_round2_npm  r  r   c                    t           } t          t          j        d          ffi ||          }t	          d          }|                      ||           ||                     d t	          d          D             }|                      ||           ||                     d t	          d          D             }|                      ||           ||                     d S )Nr   r   c                     g | ]
}||d z  z   S r<  r_   r=  s     r   r?  z1TestBuiltins.test_sum_objmode.<locals>.<listcomp>  r@  r   c                 .    g | ]}t          ||          S r_   r,   r=  s     r   r?  z1TestBuiltins.test_sum_objmode.<locals>.<listcomp>  rB  r   )r   r   r
   rN  r   r  rG  s        r   test_sum_objmodezTestBuiltins.test_sum_objmode  s    4U[((*44e44V<<"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<  r_   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"  r_   r=  s     r   r?  z7TestBuiltins.test_sum.<locals>.args.<locals>.<listcomp>      ---a1r6---r   r   rP   rQ                 @    rQ   rR   rT   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   re  rQ   rR   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<  r_   r=  s     r   r?  z;TestBuiltins.test_sum.<locals>.args_kws.<locals>.<listcomp>  r_  r   y              3@c                     g | ]}|d z  S ra  r_   r=  s     r   r?  z;TestBuiltins.test_sum.<locals>.args_kws.<locals>.<listcomp>  rb  r   )r   	   )rc  r   re  rQ   rR   rV   rT   rf  )rT   rT   )rT   rg  irh  rq  )	r   r   r   r   r  r  r   r   ri  rj  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   r]  rS   r   )r   r   r   r   r  py_funcr   r  r  r  assertEqualr   )
r  sum_default	sum_kwargr\  r  r   rr  r   rZ  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   r_  r	   r  r|  r[   rf   r}  r{  )r  rv  rw  r  r~  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   ru  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   rF  rQ   rP   r5   y              ?y              @F)r   r   )r  r  r  r  s   ` @@r   test_type_unaryzTestBuiltins.test_type_unary  s    #"T"""6**	< 	< 	< 	< 	< 	< 	< 	c1adAdAdEr   c                 <    |                      t          |           d S r   )r  r   rp  s     r   test_zipzTestBuiltins.test_zip.  s    k511111r   c                 <    |                      t                     d S r-  )r  r.  r/  s    r   test_zip_npmzTestBuiltins.test_zip_npm1  r1  r   c                 <    |                      t          |           d S r   )r  r   rp  s     r   
test_zip_1zTestBuiltins.test_zip_14      mU33333r   c                 <    |                      t                     d S r-  )r  r.  r/  s    r   test_zip_1_npmzTestBuiltins.test_zip_1_npm7  r  r   c                 <    |                      t          |           d S r   )r  r   rp  s     r   
test_zip_3zTestBuiltins.test_zip_3:  r  r   c                 <    |                      t                     d S r-  )r  r.  r/  s    r   test_zip_3_npmzTestBuiltins.test_zip_3_npm=  r  r   c                 <    |                      t          |           d S r   )r  r   rp  s     r   
test_zip_0zTestBuiltins.test_zip_0@  r  r   c                 <    |                      t                     d S r-  )r  r.  r/  s    r   test_zip_0_npmzTestBuiltins.test_zip_0_npmC  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   rp  s     r   test_zip_first_exhaustedz%TestBuiltins.test_zip_first_exhaustedF  s!    
 	1599999r   c                 <    |                      t                     d S r-  )r  r  r/  s    r   test_zip_first_exhausted_npmz)TestBuiltins.test_zip_first_exhausted_npmM  s     %%,>%?????r   c                     g d}|D ]s\  }}t          |          t          |          f} t          |fi t          t                    } |||          }|                     |t          ||                     td S N))rQ   rR   )r   rR   )rQ   r6   )y               @rd  )r   r   r.  r   r  r  r  r   r"   r  r  rs          r   test_pow_op_usecasez TestBuiltins.test_pow_op_usecaseP  s    
 
 
  	= 	=DAqQii+F1C11.11.AAEaA##A~a';';<<<<		= 	=r   c                     g d}|D ]s\  }}t          |          t          |          f} t          |fi t          t                    } |||          }|                     |t          ||                     td S r  )r   r   r.  r   r  r  s          r   test_pow_usecasezTestBuiltins.test_pow_usecase^  s    
 
 
  	: 	:DAqQii+F1C11.11+>>E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_maxl  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   r_   )r   stopstepr;   s       r   frangez8TestBuiltins.test_min_max_iterable_input.<locals>.franget  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 )NrS   rm  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 )Nr^  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@r_   r  s   r   r  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>  s    ""___-- r   c                        ddg          S )N)rR   rS   r   r_   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
@rG  r_   )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#  rL   r  s   r   r  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>  s$    ""bfrvgrvrv>?? r   c                        g d          S )N))rR   r  )rQ   r_   r  s   r   r  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>  s    ""///00 r   r_   )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  r   )r  r  fnr  s      @r   test_min_max_iterable_inputz(TestBuiltins.test_min_max_iterable_inputr  s    		 	 
		1 	1 	1 	1 	1 #"c*** 	$ 	$B####""c*** 	$ 	$B####	$ 	$r   N)l__name__
__module____qualname__r  rz  r+  r0  r9  r=  rA  rC  rH  rJ  rO  rQ  rT  rV  rh  rj  rl  rn  rq  rs  rv  rx  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/  r1  r4  r6  r8  rC  rE  rL  rN  rQ  rS  rW  rx  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r_   r   r   r  r  [  s       3 3 3
 , = = = =6, , , , ? ? ? ?0 0 0 , ? ? ? ?0 0 0 - 9 9 9 9- - - )7 	9 	9 	9 	9; ; ; "0 ? ? ? ?0 0 0 &4    24 4 4 (6    "6 6 6 $2 8 8 8 82 2 2 *8 > > > >8 8 8	2 	2 	22 2 2 !/ ? ? ? ?3 3 3  . 9 9 9 92 2 29 9 9 !/ ? ? ? ?$3 3 3 "0 $ $ $ $4 4 4 &4 + + + +1 1 1 , 9 9 9 90 0 0)M )M )MV , ? ? ? ?0 0 0 $2    2 2 2 !/ 1 1 1 1
/ / /3 3 3 , < < < <0 0 0? ? ?  . 1 1 1 1  . 1 1 1 1. . .. . .? ? ?  . 1 1 1 1  . 1 1 1 12 2 22 2 2	J 	J 	J  . 1 1 1 1  . 1 1 1 1. . .. . . 9G    ; ; ;Q Q Q; ; ;Q Q Q? ? ? $2 5 5 5 5 $2 5 5 5 5 >L    @ @ @@ @ @@ @ @@ @ @- - -< < << < < , 9 9 9 90 0 0 !/ O O O O 3 3 3 !/ = = = =/ / / !/ 7 7 7 7/ / / &4 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   r_   r   r   r  s     r   funcz/TestOperatorMixedTypes.test_eq_ne.<locals>.func      r!Qxxr   )rP   r   TFr4   r   r  r"  NrL  r  )getattrr   r   r4  r5  r  rt  )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   r_   r  s     r   r  z-TestOperatorMixedTypes.test_cmp.<locals>.func  r  r   )rP   r   TFr4   r  r   z( does not match between Python and Numba)r  r   r   r4  r5  rt  ru  )
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  r_   r   r   r  r    s5        H H H9 9 9 9 9r   r  c                   b    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S )TestIsinstanceBuiltinc                     t           } t          d          |          }dddddg dd	t          d
dg          dd f
}|D ].} ||          } ||          }|                     ||           /d S )NTr  rR   rI  Hellos   worldr"  r   )rP   rR   rR   rR   rP   rQ   )rP   nbarQ   )r   r   r   ru  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   ru  r  s      r   test_isinstance_dictz*TestIsinstanceBuiltin.test_isinstance_dict  sI     "T"""6**5577+++++r   c                     t           } t          d          |          }|                      |d           |d                     d S )NTr  rR   )r  r   ru  r  s      r   test_isinstance_issue9125z/TestIsinstanceBuiltin.test_isinstance_issue9125  sM    <"T"""6**EE!HH-----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  rP   r   rQ   r   r6   r   g      @r   y              @r   r   r   )r   r   r
   r   r   r   r   r$  r   r   r   emptyru  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   ru  r  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 typerf  )	r   r   
assertTruer_  r	   r  r|  rf   r}  )r  r  r  r  r~  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(rf  )r   r  r  r  r   r_  r	   r  r|  rf   r}  )r  fnsr  r  r~  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   r_   r  r  s   ` r   	gen_w_argz:TestIsinstanceBuiltin.test_combinations.<locals>.gen_w_arg  !    1 1 1 1 1Kr   rP   gffffff@              @5rU   )rV      8rq  )r      rm  )   r   y              ,@)r\  r           rS   )rk   rH   r-   rf   r   r   r   r   r   r   r  r   arrayr   r   r  r
   unicode_typer   r   
empty_listr%  ri  r   rt  ru  )	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 r   r   )r  s   r   r  zGTestIsinstanceBuiltin.test_numba_types.<locals>.gen_w_arg.<locals>.impl(  r  r   r_   r  s   ` r   r  z9TestIsinstanceBuiltin.test_numba_types.<locals>.gen_w_arg'  r  r   z%Numba type classes.*are not supported)r
   IntegerFloatArrayr   r_  r	   r  assertRegexrf   r}  )r  r  r  r  r   r  r~  s          r   test_numba_typesz&TestIsinstanceBuiltin.test_numba_types$  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   intprk   r_   r   r   r   zITestIsinstanceBuiltin.test_python_numpy_scalar_alias_problem.<locals>.foo:  s    bgbkk3///r   TFc                  6    t          dt          j                  S r   )r   r   r  r_   r   r   barzITestIsinstanceBuiltin.test_python_numpy_scalar_alias_problem.<locals>.barA  s    a)))r   r   ru  rt  )r  r   r  s      r   &test_python_numpy_scalar_alias_problemz<TestIsinstanceBuiltin.test_python_numpy_scalar_alias_problem5  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   rf   r-   r   r   r   r  r   s    r   r   z4TestIsinstanceBuiltin.test_branch_prune.<locals>.fooL  sa    !S!! =((Aw'' wqzz!Au%% 1vvr   )rM  y      ?       @)r   rR   r  )r   rt  ru  )r  r   r   r  r  s        r   test_branch_prunez'TestIsinstanceBuiltin.test_branch_pruneH  sm     
	 	 
	 2 	, 	,A{{1~~H#a&&CS(++++	, 	,r   c                    t           d             t          fd            }d}|                      ||          |                    |                     |                     t
          j                  5 } |d           d d d            n# 1 swxY w Y   t          |j                  }| 	                    d|           | 	                    d|           d S )Nc                     | |z   S r   r_   r!   s     r   rg  zBTestIsinstanceBuiltin.test_branch_prune_and_bind_to_sig.<locals>.f^      q5Lr   c                 N    t          | t                    r |  S  |           S r   r   r   )r   rg  s    r   call_fzGTestIsinstanceBuiltin.test_branch_prune_and_bind_to_sig.<locals>.call_fb  -    !U## q!uqttr   r   rP   zCannot bindz+TypeError: missing a required argument: 'y')
r   r   ru  rt  r_  r	   r  rf   r}  r|  )r  r  r   r~  r  rg  s        @r   !test_branch_prune_and_bind_to_sigz7TestIsinstanceBuiltin.test_branch_prune_and_bind_to_sig\  s,   		 	 
		 
	 	 	 	 
	 FNN1$5$5666 v122 	fF1III	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 &"##mS)))CSIIIIIs   7BBBc                     t           d             t           d             t          fd            }d}|                      ||          |                    |                     d S )Nc                     | |z   S r   r_   r!   s     r   rg  zITestIsinstanceBuiltin.test_branch_prune_non_tuples_as_star_arg.<locals>.f~  r  r   c                     | S r   r_   r   s    r   r  zITestIsinstanceBuiltin.test_branch_prune_non_tuples_as_star_arg.<locals>.g      Hr   c                 N    t          | t                    r |  S  |           S r   r  )r   rg  r  s    r   r  zNTestIsinstanceBuiltin.test_branch_prune_non_tuples_as_star_arg.<locals>.call_f  r  r   rP   r   r   ru  rt  )r  r  r   rg  r  s      @@r   (test_branch_prune_non_tuples_as_star_argz>TestIsinstanceBuiltin.test_branch_prune_non_tuples_as_star_arg{  s     
	 	 
		 
	 	 
		 
	 	 	 	 	 
	 FNN1$5$566666r   c                     t           d             t           d             dt          fd            }|                      |            |                                           d S )Nc                     | |z   S r   r_   r!   s     r   rg  zFTestIsinstanceBuiltin.test_branch_prune_literal_as_star_arg.<locals>.f  r  r   c                     | S r   r_   r   s    r   r  zFTestIsinstanceBuiltin.test_branch_prune_literal_as_star_arg.<locals>.g  r   r   rP   c                  R    } t          | t                    r |  S  |           S r   r  )r   rg  r  ones    r   r  zKTestIsinstanceBuiltin.test_branch_prune_literal_as_star_arg.<locals>.call_f  s2    A!U## q!uqttr   r"  )r  r  rg  r  r(  s     @@@r   %test_branch_prune_literal_as_star_argz;TestIsinstanceBuiltin.test_branch_prune_literal_as_star_arg  s     
	 	 
		 
	 	 
		 		 	 	 	 	 	 
	 	6>>#3#344444r   N)r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r#  r)  r_   r   r   r  r    s        , , ,., , ,. . .
, , ,(, , ,
2 2 26 6 6,0 0 0,9 9 9"/ / /&, , ,(J J J>7 7 725 5 5 5 5r   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   rP   Q@rT   rU   rV   r   r  rt  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   rR   r  )r   r   r   r  r  rt  )r  r   r   r[  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   r_   r   r   r   z7TestGetattrBuiltin.test_getattr_module_obj.<locals>.foo  s    2t$$$r   r4  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cosrP   r>  r_   r   r   r   zGTestGetattrBuiltin.test_getattr_module_obj_not_implemented.<locals>.foo  s    %72u%%a(((r   z-Returning function objects is not implementedr   r_  r	   r  r|  rf   r}  r  r   r~  r  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   r_  AttributeErrorr|  rf   r}  )r  r   r~  rJ  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 )NrH  r/  )r   defaults     r   r   z9TestGetattrBuiltin.test_getattr_with_default.<locals>.foo  s    14g>>>r   r1  )N   r  )r   r   r  rt  )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   rP   r.  z(argument 'name' must be a literal stringrD  rE  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  r_   r_   r   r   default_hashzPTestGetattrBuiltin.test_getattr_no_optional_type_generated.<locals>.default_hash  s    5r   c                  ^    t          t          j        d          d          }  |             S )NrP   rH  )r  r   ri  )	hash_funcrZ  s    r   r   zGTestGetattrBuiltin.test_getattr_no_optional_type_generated.<locals>.foo  s.    

,B ,. .I9;;r   r4  )r  r   rZ  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  r6  r:  r@  rF  rM  rS  rW  r]  r_   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.  rH  hasattrr   s    r   r   z,TestHasattrBuiltin.test_hasattr.<locals>.foo  s"    1j))716L+M+MMMr   rP   r2  r3  rS   ABC)r   r
   r   r   r   r  r   r  r   ri  r  rt  )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 )NrR   r.  __str__rP   rb  )predr0  s     r   r   z;TestHasattrBuiltin.test_hasattr_non_const_attr.<locals>.foo"  s-    axx! Atr   rU   zGhasattr() cannot determine the type of variable "attr" due to a branch.)r   r_  r	   NumbaTypeErrorr|  rf   r}  rE  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1rN  N)r  r  r  rf  rl  r_   r   r   r_  r_    s2        	< 	< 	<2 2 2 2 2r   r_  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   re   r_   r   r   r   z3TestStrAndReprBuiltin.test_str_default.<locals>.foo7  s    55Lr   r  r?  s     r   test_str_defaultz&TestStrAndReprBuiltin.test_str_default5  sG    		 	 
	 	.....r   c                     t           d             }d}|                      ||          |                    |                     d S )Nc                 "    t          |           S )N)objectre   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   re   r   s    r   r   z<TestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.fooH      q66Mr   zthis is the dummy object strc                     S r   r_   r
  string_reprs    r   r  zATestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.<lambda>O  s    K r   ri  c                     fd}|S )Nc                     S r   r_   dummyr|  s    r   r  zVTestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.ol_dummy_string.<locals>.implS  	    ""r   r_   r  r  r|  s     r   ol_dummy_stringzHTestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.ol_dummy_stringQ  !    # # # # #Kr   __repr__c                     d }|S )Nc                     dS )NzSHOULD NOT BE CALLEDr_   )r  s    r   r  zTTestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.ol_dummy_repr.<locals>.implY  s    --r   r_   )r  r  s     r   ol_dummy_reprzFTestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.ol_dummy_reprW  s    . . .Kr   )r   make_dummy_typeri  r   ru  rt  )r  r   rN  	DummyTyper  r  r  r|  s          @r   test_str_calls_dunder_strz/TestStrAndReprBuiltin.test_str_calls_dunder_strF  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   re   r   s    r   r   z>TestStrAndReprBuiltin.test_str_falls_back_to_repr.<locals>.fooa  ry  r   zthis is the dummy object reprc                     S r   r_   r{  s    r   r  zCTestStrAndReprBuiltin.test_str_falls_back_to_repr.<locals>.<lambda>h      [ r   r  c                     fd}|S )Nc                     S r   r_   r  s    r   r  zVTestStrAndReprBuiltin.test_str_falls_back_to_repr.<locals>.ol_dummy_repr.<locals>.impll  r  r   r_   r  s     r   r  zHTestStrAndReprBuiltin.test_str_falls_back_to_repr.<locals>.ol_dummy_reprj  r  r   )r   r  r  r   ru  rt  )r  r   rN  r  r  r  r|  s         @r   test_str_falls_back_to_reprz1TestStrAndReprBuiltin.test_str_falls_back_to_repr_  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>.foos  s    77A:r   )abcF{   r  r5  s      r   	test_reprzTestStrAndReprBuiltin.test_reprr  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   r_   r{  s    r   r  z:TestStrAndReprBuiltin.test_repr_fallback.<locals>.<lambda>  r  r   c                     |j                             |j                                                 }|j                             |d          S r   )pyapiunserializeserialize_objectcall_function_objargs)r  objr   clazobjrN  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   re   r   s    r   r   z5TestStrAndReprBuiltin.test_repr_fallback.<locals>.foo  ry  r   )r  r   r  r   r   ru  rt  )r  r  r  r  r   rN  r|  s        @@r   test_repr_fallbackz(TestStrAndReprBuiltin.test_repr_fallbackz  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  rq  rv  r  r  r  r  r_   r   r   rn  rn  3  sn        / / /9 9 99 9 929 9 9&5 5 59 9 9 9 9r   rn  __main__rs  )^r4  r   sysr   collectionsr   numpyr   unittestwarningsnumbar   r   r   r   
numba.corer	   r
   r   numba.tests.supportr   r   r   r   numba.core.extendingr   r   r   rz  r.  r  r   r#   r'   r*   r.   r1   r=   r@   rB   rF   rI   rY   r\   r`   rc   rg   rm   rr   ru   rx   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_  rn  r  mainr_   r   r   <module>r     s           



  " " " " " "       * * * * * * * * * * * * , , , , , , , , , ,2 2 2 2 2 2 2 2 2 2 2 2 G G G G G G G G G G d#"E22 $'                   " " "        
                                , , ,                            $ $ $ $
  ,    &
 
 
            n$ n$ n$ n$ n$8 n$ n$ n$b9 9 9 9 9X 9 9 9B5 5 5 5 5H 5 5 5D]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   