
    .|hE                        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                          yy)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    X/var/www/html/test/engine/venv/lib/python3.12/site-packages/numba/tests/test_builtins.pyabs_usecaser          q6M    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#      J    DyQ$Y2w	
dA3x	
dA3x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    7Nr   c                     t        | |      S r   )complexr!   s     r   complex_usecaser-   4   s    1a=r   c                     t        | |      S r   )divmodr!   s     r   divmod_usecaser0   7   s    !Q<r   c                  @    d} t        d      D ]  \  }}| ||z  z  }  | S )Nr         ?      @      @	enumerateresultijs      r   enumerate_usecaser<   :   s1    F-( 1!a%Mr   c                  B    d} t        dd      D ]  \  }}| ||z  z  }  | S )Nr   r2   *   r6   r8   s      r   enumerate_start_usecaser?   @   s3    F-, 1!a%Mr   c                  B    d} t        dd      D ]  \  }}| ||z  z  }  | S )Nr   r2   gn!	@r6   r8   s      r   enumerate_invalid_start_usecaserA   F   s3    F-1 1!a%Mr   c                     t        ||       S r   )filter)r   filter_funcs     r   filter_usecaserE   L   s    +q!!r   c                     t        |       S r   )floatr   s    r   float_usecaserH   O       8Or   c           
          t        d      t        d      t        d      t        d      t        d      t        d      t        d      t        d      d	}|j                  |       S )
NinfINF-inf-INFz
INF       z       
	-INFz1234.45z
-123.4)r                        )rG   get)r   ds     r   float_inf_usecaserX   R   sV    <<==#$$%		A 558Or   c                 $    | j                  |      S r   )formatr!   s     r   format_usecaser[   _   s    88A;r   c                      t               S r   )globals r   r   globals_usecaser_   b   s
    9r   c                     t        |       S r   )hexr   s    r   hex_usecaserb   g   r   r   c                     t        |       S r   strr   s    r   str_usecaserf   j   r   r   c                     t        | |      S N)base)intr   ri   s     r   int_usecaserl   m   s    qtr   c                 D    t        |       }t        |      t        |      fS r   )iternext)r   its     r   iter_next_usecaserq   p   s    	aB8T"Xr   c                      d}t               d   S )NrS   r"   )localsr!   s     r   locals_usecasert   t   s    	A8C=r   c                     t        | |      S rh   )longrk   s     r   long_usecaserw   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!9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          r7Nr   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      rI   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                 $     t        |       |      S r   )typeabs     r   type_unary_usecaser      s    471:r   c                 ,    t        j                  |       S r   )operatortruth)ps    r   truth_usecaser      s    >>!r   c                     t        |       S r   )unichrr   s    r   unichr_usecaser      s    !9r   c                  B    d} t        dd      D ]  \  }}| ||z  z  }  | S )Nr   rO   rP   rQ   )g      @@zipr8   s      r   zip_usecaser      s3    FIz* 1!a%Mr   c                  2    d} t               D ]  }| dz  } 	 | S Nr   rO   r   r9   r:   s     r   zip_0_usecaser      s&    FU !Mr   c                  8    d} t        d      D ]	  \  }| |z  }  | S )Nr   rO   rP   r   r   s     r   zip_1_usecaser      s*    F&k !Mr   c                  L    d} t        ddd      D ]  \  }}}| ||z  |z  z  }  | S )Nr   r   )rQ   rR   rS   )r   g!@r   )r9   r:   r;   ks       r   zip_3_usecaser      s<    Fvy*5 1a!a%!)Mr   c                      t        d      } d}t        |       }t        t        t        |      |            }t        |      }||fS )NrU   rQ   )rangern   listr   )iterabler   rp   frontbacks        r   zip_first_exhaustedr      sA    QxH	A	hBU1Xr"#E8D$;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                 8    t        | |      }t        | |      |fS Nstartr   )r   r   rets      r   sum_kwarg_usecaser      s    
a-Cq##r   c                    t        | t        t        f      r/t        | t              r| dz   dfS t        | t              r| dz   dfS yt        | t              r| dz   dfS t        | t              r| j
                  dfS t        | t        t        f      rt        | t              ryy	t        | t              ry
t        | t              ryy)NrO   rj          @rG   z, world!re   r,   tupler   setbytesno match)

isinstancerj   rG   re   r,   imagr   r   r   r   r   s    r   isinstance_usecaser      s    !c5\"aq5%<as7G##  
As	:~u$$	Aw	vvy  	At}	%a	As		Au	r   c                      ddd} dt        j                  d      d}t        | t              rt        |t              ryy)	NrP   rR   )rO   rQ   
   rQ   r   dictznot dict)npzerosr   r   r   s     r   isinstance_dictr      s6    !Arxx{#A!Tz!T2r   c                    t        | t        j                        ryt        | t        j                  t        j
                  f      rt        | t        j                        ryyt        | t        j                  t        j                  f      r7t        | t        j                        ryt        | t        j                        ryy t        | t        j                        ryy)N
typed listint32int64float32float64
typed dictr   )	r   r   Listr
   r   r   r   r   Dictr   s    r   isinstance_usecase_numba_typesr     s    !UZZ 	AU[[1	2a%	Au}}5	6a'5==) *	Auzz	"r   c                      d} t        dd      }t               }d|d<   t        | t              r!t        |t               rt        |t              ryy)Ns   hellorO   rP   rQ   TF)r   r   r   r   r   r   cs      r    isinstance_usecase_numba_types_2r     sF    AaAAAaD!Uq% q$r   c                     t        | d      ryy)N)fooztrue branchzfalse branchr   r   s    r   invalid_isinstance_usecaser   %  s    !Xr   c                 *    t        | t        df      ryy)Nz
not a typeTF)r   rG   r   s    r   isinstance_usecase_invalid_typer   ,  s    !e\*+r   c                 :    | dkD  rd}nd}t        |t              ryy)NrR   r   r   TFr   rj   r   zs     r   *invalid_isinstance_usecase_phi_nopropagater   4  s#    1u!Sr   c                 n    d}t        | t              r| | f} t        t        |             D ]  }||z  }	 |S )Nr   )r   rj   r   len)r   r   r:   s      r   +invalid_isinstance_usecase_phi_nopropagate2r  ?  s?    	A!SF3q6] 	QHr   c                 :    | dkD  rd}nd }t        |t              ryy)NrR   r   TFr   r   s     r   #invalid_isinstance_optional_usecaser  J  s#    1u!Sr   c                  D    t        dddg       dd      fd} | S )Nntplr   r   rO   rP   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  s(    fsCj)D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 Zkyi)jTestBuiltinsc                 b     t        di ||      } |       }| j                   |       |       y Nr^   )r   assertPreciseEqual)selfpyfuncflagscfuncexpecteds        r   run_nullary_funczTestBuiltins.run_nullary_func]  s/      % (82r   c           	      |   t         } t        t        j                  ffi ||      }dD ]   }| j	                   ||       ||             "  t        t        j
                  ffi ||      }dD ]"  }| j	                   ||       ||      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 ]"  }| j	                   ||       ||      d       $  t        t        j                  ffi ||      }|D ]   }| j	                   ||       ||             " t        j                  D ]P  }dddd|j                  z  dz
  g} t        |ffi ||      }|D ]   }| j	                   ||       ||             " R y )Nr   rO   g        皙?singleprecy      ?y                y?      @rK                 ?nanr   r   rP   rO   )r   r   r
   r   r  r   rG   	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 	9A##E!HfQi8	9 /U]]$..v6! 	HA##E!HfQih#G	H &x,eEl)::,eEl)::< 1U__&0%08 	HA##E!HfQih#G	H1U%%'151&9 	9A##E!HfQi8	9 #22 	=M "am.D.D)Dq)HIO2C(2E26:E$ =''a&)<=	=r   c                 0    | j                  t               y 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 ]%  \  }}| j                   |||       |||             ' y N)r  r   rO   N)r#   r   r
   r   	itertoolsproductr  r  r  r  r  
x_operands
y_operandsr   r"   s           r   test_allzTestBuiltins.test_all  p    7U[[-77?%
%
%%j*= 	?DAq##E!QK1>	?r   c                 z    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY wr,  )assertTypingErrorr8  r-  r.  s    r   test_all_npmzTestBuiltins.test_all_npm  1    ##% 	0MMM/	0 	0 	0   1:c                     t         } t        t        j                  t        j                  ffi ||      }g d}g d}t	        j
                  ||      D ]%  \  }}| j                   |||       |||             ' y r2  )r'   r   r
   r   r3  r4  r  r5  s           r   test_anyzTestBuiltins.test_any  r9  r   c                 z    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY wr,  )r;  r@  r-  r.  s    r   test_any_npmzTestBuiltins.test_any_npm  r=  r>  c                 2   t         } t        t        j                  ffi ||      }dD ]   }| j	                   ||       ||             "  t        t        j
                  ffi ||      }dddt        d      t        d      fD ]   }| j	                   ||       ||             "  t        t        j                  ffi ||      }t        dt        d            t        dt        d            fD ]   }| j	                   ||       ||             " y )Nr  r               ?rK   r"  r   )	r*   r   r
   r   r  r   rG   r$  r,   r  r  r  r  r   s        r   	test_boolzTestBuiltins.test_bool  s   ,U[[N,e,V4 	9A##E!HfQi8	9.U]]$..v6tS%,e= 	9A##E!HfQi8	91U%%'151&9!U5\*GAuU|,DE 	9A##E!HfQi8	9r   c                 0    | j                  t               y r,  )rG  r-  r.  s    r   test_bool_npmzTestBuiltins.test_bool_npm  s    ^,r   c                 8   t         } t        t        j                  ffi ||      }dD ]   }| j	                   ||       ||             "  t        t        j
                  d      ffi ||      }dgg fD ]   }| j	                   ||       ||             " y )N)r    r   rO   )r*   r   r
   stringr  DummyrF  s        r   test_bool_nonnumberz TestBuiltins.test_bool_nonnumber  s    -U\\O-u-f5 	9A##E!HfQi8	9 5U[[(*4e4V<#r 	9A##E!HfQi8	9r   c                 z    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY wr,  )r;  rN  r-  r.  s    r   test_bool_nonnumber_npmz$TestBuiltins.test_bool_nonnumber_npm  s4    ##% 	;$$>$:	; 	; 	;r>  c                     t         } t        t        j                  t        j                  ffi ||      }g d}g d}t	        j
                  ||      D ]%  \  }}| j                   |||       |||             ' y Nr  )r-   r   r
   r   r3  r4  r  r5  s           r   test_complexzTestBuiltins.test_complex  sp     8U[[%++.8%8@

%%j*= 	?DAq##E!QK1>	?r   c                 0    | j                  t               y r,  )rS  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 ]M  \  }} |||      \  }	}
 |||      \  }}|}| j                   ||       ||      f ||	       ||
      f       O |D ])  }| j                  t              5   ||d       d d d        + y # 1 sw Y   6xY w)Nc                 ,    | 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'     AvaD1Ho**Hr   )
rO   rQ   rU      r  il    l         r   )@   )	r0   r   r
   r   r3  r4  r  assertRaisesZeroDivisionError)r  r  r  r  rY  denominators
numeratorsr   r"   expected_quotexpected_remquotremfs                 r   test_divmod_intszTestBuiltins.test_divmod_ints  s    8U[[%++.8%8@	 I!QC'
&&z<@ 	IEAq*0A,'M<aID#A##QtWaf$5%&}%5q$GI		I  	A""#45 a 	 s   
CC#	c                 0    | j                  t               y r,  )rg  r-  r.  s    r   test_divmod_ints_npmz!TestBuiltins.test_divmod_ints_npm  s    N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 ]3  \  }} |||      \  }}	 |||      \  }
}| j                  |
|f||	f       5 |D ])  }| j                  t              5   ||d       d d d        + y # 1 sw Y   6xY w)	Nr3   g      @g}Ô%ITg       g      g\nrD  r  )r0   r   r
   r   r   rK   r"  r3  r4  r  r^  r_  )r  r  r  r  r`  ra  r   r"   rb  rc  rd  re  s               r   test_divmod_floatszTestBuiltins.test_divmod_floats  s    <U]]EMM2<e<VDCT61!T3K/
&&z<@ 	PEAq*0A,'M<aID###T3K-1NO	P
  	A""#45 a 	 s   
C//C8	c                 0    | j                  t               y r,  )rk  r-  r.  s    r   test_divmod_floats_npmz#TestBuiltins.test_divmod_floats_npm  s    n5r   c                 0    | j                  t        |       y r   )r  r<   r  r  s     r   test_enumeratezTestBuiltins.test_enumerate  s    /7r   c                 0    | j                  t               y r,  )rp  r-  r.  s    r   test_enumerate_npmzTestBuiltins.test_enumerate_npm      .1r   c                 0    | j                  t        |       y r   )r  r?   ro  s     r   test_enumerate_startz!TestBuiltins.test_enumerate_start  s    5u=r   c                 0    | j                  t               y r,  )ru  r-  r.  s    r   test_enumerate_start_npmz%TestBuiltins.test_enumerate_start_npm  s    !!!7r   c                     t         } t        di t        |      }| j                  t              5 } |        d d d        d}| j                  |t        j                               y # 1 sw Y   1xY w)Nz2'float' object cannot be interpreted as an integerr  )rA   r   forceobj_flagsr^  	TypeErrorassertInre   	exception)r  r  r  raisesmsgs        r   'test_enumerate_start_invalid_start_typez4TestBuiltins.test_enumerate_start_invalid_start_type  sf    0)).)&1y) 	VG	 Cc3v//01		 	s   A))A2c                     t         }| j                  t        j                        5 } t	        di t
        |       d d d        d}| j                  |t        j                               y # 1 sw Y   1xY w)Nz3Only integers supported as start value in enumerater  )	rA   r^  r	   TypingErrorr   r-  r{  re   r|  )r  r  r}  r~  s       r   +test_enumerate_start_invalid_start_type_npmz8TestBuiltins.test_enumerate_start_invalid_start_type_npm  sb    0v112 	.f%C%n%f-	.Cc3v//01	. 	.s   A,,A5c           	          t         }t        j                  d      t        j                  d      f} t        |fi ||      }d }g d}| j	                  t         |||            t         |||                   y )Nr   function_ptrc                     | dz  S NrP   r^   r   s    r   <lambda>z*TestBuiltins.test_filter.<locals>.<lambda>  s
    A r   r   rO   rP   rQ   rR   )rE   r
   rM  r   assertSequenceEqualr   )r  r  r  argtysr  rD   r   s          r   test_filterzTestBuiltins.test_filter  sn    ++f%u{{>'BC$F$e$V,%  eA{&;!<!%fQ&<!=	?r   c                 z    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY wr,  )r;  r  r-  r.  s    r   test_filter_npmzTestBuiltins.test_filter_npm  4    ##% 	3>2	3 	3 	3r>  c                    t         } t        t        j                  ffi ||      }dD ]   }| j	                   ||       ||             "  t        t        j
                  ffi ||      }dD ]"  }| j	                   ||       ||      d       $  t        t        j                  ffi ||      }dD ]   }| j	                   ||       ||             " y )Nr  r  r  r  )z-1.1z0.0z1.1rK   rM   rL   rN   )rH   r   r
   r   r  r   rL  rF  s        r   
test_floatzTestBuiltins.test_float"  s    ,U[[N,e,V4 	9A##E!HfQi8	9 /U]]$..v6! 	HA##E!HfQih#G	H .U\\O-u-f5E 	9A##E!HfQi8	9r   c                 z    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY wr,  )r;  r  r-  r.  s    r   test_float_npmzTestBuiltins.test_float_npm1  1    ##% 	2OO.O1	2 	2 	2r>  c                     t         }t        |      }t        d      D ]   }| j                   ||       ||             " y )N   )rX   r   r   r  )r  r  r  r   s       r   test_float_string_literalz&TestBuiltins.test_float_string_literal5  s;    "Vq 	9A##E!HfQi8	9r   c                 &   t         } t        t        j                  t        j                  ffi ||      }d}dD ]"  }| j                   |||       |||             $  t        t        j                  t        j                  ffi ||      }d}dD ]"  }| j                   |||       |||             $  t        t        j                  t        j                  ffi ||      }d}dD ]"  }| j                   |||       |||             $ y )Nz{0}r  r  r   )r[   r   r
   rL  r   r  r   )r  r  r  r  r   r"   s         r   test_formatzTestBuiltins.test_format;  s   :U\\5;;0:E:6B 	?A##E!QK1>	? =U\\5==2<e<VD! 	?A##E!QK1>	? <U\\5<<1;U;FC  	?A##E!QK1>	?r   c                 z    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY wr,  )r;  r  r-  r.  s    r   test_format_npmzTestBuiltins.test_format_npmM  r  r>  c                 t    t         } t        di ||      } |       }| j                  |t                      y r  r_   r   assertIsr]   )r  r  r  r  gs        r   test_globalszTestBuiltins.test_globalsQ  s2       % (Ga#r   c                 z    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY wr,  )r;  r  r-  r.  s    r   test_globals_npmzTestBuiltins.test_globals_npmW  s4    ##% 	4N3	4 	4 	4r>  c                     t         } t        di ||      }| j                   |       t                      | j                   |       t                      y r   r  )r  r  r  jitteds       r   test_globals_jitzTestBuiltins.test_globals_jit[  s?     !uf%fh	*fh	*r   c                 r    | j                         5  | j                  d       d d d        y # 1 sw Y   y xY wNTr   )r;  r  r.  s    r   test_globals_jit_npmz!TestBuiltins.test_globals_jit_npmc  s4    ##% 	1!!4!0	1 	1 	1s   -6c                     t         } t        t        j                  ffi ||      }dD ]   }| j	                   ||       ||             " y rR  )rb   r   r
   r   r  rF  s        r   test_hexzTestBuiltins.test_hexg  sJ    ,U[[N,e,V4 	9A##E!HfQi8	9r   c                 z    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY w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 D| j%                   | ||             | ||                   |j&                  s{| j%                   | ||              | ||                      y )N)i  rO   r   r   i  )i[i! i@B r  )rf   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    

 .-- JJKKKKKKJJKKLLLLLL

  		MC5C5"45f=E M((377+q7GKK7''c!fvc!f~F::++E#qb'NF3r7OLM		Mr   c                     t         } t        t        j                  t        j                  ffi ||      }g d}g d}t        j                  ||      D ]%  \  }}| j                   |||       |||             ' y )N)z-10110)rP   r  r      )rl   r   r
   rL  r   r3  r4  r  r5  s           r   test_intzTestBuiltins.test_int  sp    :U\\5;;0:E:6B+
#
%%j*= 	?DAq##E!QK1>	?r   c                 z    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY wr,  )r;  r  r-  r.  s    r   test_int_npmzTestBuiltins.test_int_npm  r=  r>  c                 x   t         } t        t        j                  t        j                  d      ffi ||      }| j                   |d      d        t        t        j                  t        j                  d      ffi ||      }| j                  t              5   |d       d d d        y # 1 sw Y   y xY w)NrQ   )rO   r>   rS   )rO   r>   rO   rO   )rq   r   r
   UniTupler   r  r^  StopIteration)r  r  r  r  s       r   test_iter_nextzTestBuiltins.test_iter_next  s    "?U^^EKK35??Gj 17;?U^^EKK35??G}- 	$K	 	 	s   	B00B9c                 0    | j                  t               y r,  )r  r-  r.  s    r   test_iter_next_npmzTestBuiltins.test_iter_next_npm  rs  r   c                     t         }| j                  t        j                        5   t	        t
        j                  ffi ||       d d d        y # 1 sw Y   y xY wr   )rt   r^  r	   ForbiddenConstructr   r
   r   )r  r  r  s      r   test_localszTestBuiltins.test_locals  sJ    v889 	1(C(%(0	1 	1 	1s   "AAc                 0    | j                  t               y r,  )r  ry  r.  s    r   test_locals_forceobjz!TestBuiltins.test_locals_forceobj      ~.r   c                 z    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY w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}| j	                  t         |||            t         |||                   y )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
   rM  r   r  r   )r  r  r  r  r  rz   r   s          r   test_mapzTestBuiltins.test_map  sn    ++f%u{{>'BC$F$e$V,"  eAx&8!9!%fQ&9!:	<r   c                 z    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY w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 ]%  \  }}| j                   |||       |||             ' y rR  r   r
   r   r3  r4  r  r  r  r  r  r6  r7  r   r"   s           r   check_minmax_1zTestBuiltins.check_minmax_1  k    8U[[%++.8%8@

%%j*= 	?DAq##E!QK1>	?r   c                 0    | j                  t        |       y)z
        max(*args)
        N)r  r   ro  s     r   
test_max_1zTestBuiltins.test_max_1       	L%0r   c                 0    | j                  t        |       y)z
        min(*args)
        N)r  r   ro  s     r   
test_min_1zTestBuiltins.test_min_1  r  r   c                 0    | j                  t               y r,  )r  r-  r.  s    r   test_max_npm_1zTestBuiltins.test_max_npm_1      n-r   c                 0    | j                  t               y 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 ]%  \  }}| j                   |||       |||             ' y rR  r  r  s           r   check_minmax_2zTestBuiltins.check_minmax_2  r  r   c                 0    | j                  t        |       y)z
        max(list)
        N)r  r   ro  s     r   
test_max_2zTestBuiltins.test_max_2  r  r   c                 0    | j                  t        |       y)z
        min(list)
        N)r  r   ro  s     r   
test_min_2zTestBuiltins.test_min_2  r  r   c                 z    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY wr,  )r;  r  r-  r.  s    r   test_max_npm_2zTestBuiltins.test_max_npm_2  r  r>  c                 z    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY w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             y )Nc                      t        | ffi       }dt        d      df}||d d d   fD ]   }j                   ||       |             " y )NrE  r"  r4   r  )r   rG   r  )argtyr  tupvalr  r  r  s       r   checkz*TestBuiltins.check_minmax_3.<locals>.check  sa    *C*E*62Eec*CS2Y' A''c
F3K@Ar   rQ   )r
   r  r   Tupler   )r  r  r  r  s   ``` r   check_minmax_3zTestBuiltins.check_minmax_3  sF    	A 	ennU]]A./ekk5==%--GHIr   c                 0    | j                  t        |       y)z
        max(tuple)
        N)r  r   ro  s     r   
test_max_3zTestBuiltins.test_max_3  r  r   c                 0    | j                  t        |       y)z
        min(tuple)
        N)r  r   ro  s     r   
test_min_3zTestBuiltins.test_min_3  r  r   c                 0    | j                  t               y r,  )r  r-  r.  s    r   test_max_npm_3zTestBuiltins.test_max_npm_3"  r  r   c                 0    | j                  t               y 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       y )Nr   rO   )r   r
   r   rM  r  r  r  r  s       r   check_min_max_invalid_typesz(TestBuiltins.check_min_max_invalid_types(  s5    AU[[%++f"57A5A&Ia!r   c                     | j                  t              5  | j                  t               d d d        y # 1 sw Y   y xY wr   )r^  rz  r  r   r.  s    r   test_max_1_invalid_typesz%TestBuiltins.test_max_1_invalid_types,  3    y) 	;,,\:	; 	; 	;   5>c                     | j                         5  | j                  t        t               d d d        y # 1 sw Y   y xY wr,  )r;  r  r   r-  r.  s    r   test_max_1_invalid_types_npmz)TestBuiltins.test_max_1_invalid_types_npm0  :    ##% 	Q,,\,P	Q 	Q 	Q   6?c                     | j                  t              5  | j                  t               d d d        y # 1 sw Y   y xY wr   )r^  rz  r  r   r.  s    r   test_min_1_invalid_typesz%TestBuiltins.test_min_1_invalid_types4  r  r  c                     | j                         5  | j                  t        t               d d d        y # 1 sw Y   y xY w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 ]%  \  }}| j                   |||       |||             ' y )N)FT)r   r
   bool_r3  r4  r  )r  r  r  r  operandsr   r"   s          r   check_minmax_bool1zTestBuiltins.check_minmax_bool1<  sf    8U[[%++.8%8@ %%h9 	?DAq##E!QK1>	?r   c                 0    | j                  t        |       y r   )r  r   ro  s     r   test_max_bool1zTestBuiltins.test_max_bool1C      e4r   c                 0    | j                  t        |       y r   )r  r   ro  s     r   test_min_bool1zTestBuiltins.test_min_bool1G  r  r   c                 V     t        t        j                  ffi ||      } |d       y NrO   )r   r
   r   r  s       r    check_min_max_unary_non_iterablez-TestBuiltins.check_min_max_unary_non_iterableM  s%    ,U[[N,e,V4ar   c                     | j                  t              5  | j                  t               d d d        y # 1 sw Y   y xY wr   )r^  rz  r   r   r.  s    r   test_max_unary_non_iterablez(TestBuiltins.test_max_unary_non_iterableQ  7    y) 	@11,?	@ 	@ 	@r  c                 x    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY wr   )r;  r   r   r.  s    r   test_max_unary_non_iterable_npmz,TestBuiltins.test_max_unary_non_iterable_npmU  5    ##% 	@11,?	@ 	@ 	@   09c                     | j                  t              5  | j                  t               d d d        y # 1 sw Y   y xY wr   )r^  rz  r   r   r.  s    r   test_min_unary_non_iterablez(TestBuiltins.test_min_unary_non_iterableY  r#  r  c                 x    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY wr   )r;  r   r   r.  s    r   test_min_unary_non_iterable_npmz,TestBuiltins.test_min_unary_non_iterable_npm]  r&  r'  c                     | j                         5 } t        di t        |       d d d        | j                  d|z  t	        j
                               y # 1 sw Y   2xY w)Nz%s() argument is an empty tupler  )r;  r   r-  r{  re   r|  )r  r  	func_namer}  s       r   check_min_max_empty_tuplez&TestBuiltins.check_min_max_empty_tuplec  sY    ##% 	.%C%n%f-	.7)C&**+	-	. 	.s   AA!c                 0    | j                  t        d       y )Nr~   )r.  r   r.  s    r   test_max_empty_tuplez!TestBuiltins.test_max_empty_tuplei      &&|U;r   c                 0    | j                  t        d       y )Nr   )r.  r   r.  s    r   test_min_empty_tuplez!TestBuiltins.test_min_empty_tuplel  r1  r   c                     t         } t        t        j                  ffi ||      }dD ]   }| j	                   ||       ||             " y )N)ir  r   rO   r  )r   r   r
   r   r  rF  s        r   test_octzTestBuiltins.test_octp  sJ    ,U[[N,e,V4" 	9A##E!HfQi8	9r   c                 z    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY wr,  )r;  r5  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      }| j                   |||       |||             t	        d      D cg c]
  }||dz  z    c}}| j                   |||       |||             t	        d      D cg c]  }t        ||       c}}| j                   |||       |||             y c c}w c c}w )Nr  r   c                     | |z   S r   r^   r!   s     r   r  z*TestBuiltins.test_reduce.<locals>.<lambda>  s
    1q5 r   r         $@)r   r
   rM  r   r   r  r,   )r  r  r  r  r  r   r   s          r   test_reducezTestBuiltins.test_reduce{  s    ++n-u{{6/BC$F$e$V,("Ik1 5vk17MN!&r+AQ4Z+k1 5vk17MN$)"I.qWQ].k1 5vk17MN	 , /s   >C4=C9c                 z    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY wr,  )r;  r;  r-  r.  s    r   test_reduce_npmzTestBuiltins.test_reduce_npm  r  r>  c                     t         }t        j                  t        j                  fD ]E  } t	        |ffi ||      }g d}|ddgz  }|D ]   }| j                   ||       ||             " G y )N)gg      gffffffg      r  皙?      ?g333333?gffffff?rE        @grD  )r   r
   r   r   r   r  )r  r  r  tpr  valuesr   s          r   test_round1zTestBuiltins.test_round1  su    ==%--0 	=B'C''/EPFtTl"F =''a&)<=		=r   c                 0    | j                  t               y r,  )rD  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 ]Y  }dD ]R  }| j                   |||       |||      |        || |      }| j                   || |       || |      |       T [  y )Nr  exact)r  r?  g      ?g      ?r@  g      ?g      ?rE  g      ?g      @r4   g      @g      )@g      .@g     6@)r  r   rO   rP   r  )r   r
   r   r   r   r   r  )	r  r  r  rB  r   r  r   r   r  s	            r   test_round2zTestBuiltins.test_round2  s    ==%--0 
	7B!U]]28D3CU[[)3U3F;ED 7& 7A++E!QK115 , 7%qb!}H++E1"aL&!Q-15 , 7	77
	7r   c                 0    | j                  t               y r,  )rI  r-  r.  s    r   test_round2_npmzTestBuiltins.test_round2_npm  r  r   c                    t         } t        t        j                  d      ffi ||      }t	        d      }| j                   ||       ||             t	        d      D cg c]
  }||dz  z    c}}| j                   ||       ||             t	        d      D cg c]  }t        ||       c}}| j                   ||       ||             y c c}w c c}w )Nr   r   r:  )r   r   r
   rM  r   r  r,   rF  s        r   test_sum_objmodezTestBuiltins.test_sum_objmode  s    4U[[(*4e4V<"Ia&)4!&r+AQ4Z+a&)4$)"I.qWQ].a&)4	 , /s   #C Cc           	        	 t        t              }t        t              }t         dd       }t        dddg      		fd} |       D ])  }| j	                   ||      |j                  |             + t        j                  d      t        j                  d      t        j                  d      f}| j                   ||      |j                  |             	fd	} |       D ]0  \  }}| j	                   |||
      |j                  ||
             2 t        dd      D ]>  }t        dd      D ]-  }| j	                   |||
      |j                  ||
             / @ y )Nc                 N    t        |       }t        ||      }t        ||      |fS r   )r   r   )szr   tmpr   s       r   	sum_rangez(TestBuiltins.test_sum.<locals>.sum_range  s(    )Cc5/Cs%(#--r   r  r   r   c               3     K   g t        d       t        d      D  cg c]
  } | | dz  z    c}  t        d      D  cg c]  } | dz  	 c}  d d t        j                  d      t        j                  d      t        j                  d      f t        j                  t        d	            }| t        j                  d	        d
d        d
d       y c c} w c c} w w)Nr   r:  r!  r   rO   rP                 @    rP   rQ   rS   d                    i@)r   r   r   r   r  r   r   onesr   tlr  s     r   r  z#TestBuiltins.test_sum.<locals>.args  s     E"I,',Ry1!1qv:11#(9-a1r6--O 88B<!bggaj99E!H%BH''!*sC. sD/! 2-s   C4C*C4C/B'C4rV  rP   rQ   c               3   ^  K   g t        d      df t        d      D  cg c]
  } | | dz  z    c} df t        d      D  cg c]  } | dz  	 c} df d d t        j                  d	      t        j                  d
      t        j                  d      ft        j
                  d      f t        j                  t        d            }|df t        j                  d      dt        j                  d      z  f  dd      df  dd      df y c c} w c c} w w)Nr      r:  y              3@r!  )r   	   )rT  r   rV  rP   rQ   rU   rS   rW  )rS   rS   )rS   rX  irY  r`  )	r   r   r   r   r  r  r   r   rZ  r[  s     r   args_kwsz'TestBuiltins.test_sum.<locals>.args_kws  s     E"I,""',Ry1!1qv:1366#(9-a1r6-r11   88B<!bggaj9299Q<GGE!H%Bc'M''&/2#555sC.#%%sD/1$$ 2-s   D-D#D-D(CD-r   r[  rR   r   )r   r   r   r   r  py_funcr   r  r  r  assertEqualr   )
r  sum_default	sum_kwargrR  r  r   ra  r   rP  r  s
            @r   test_sumzTestBuiltins.test_sum  s^   ;'*+			. 
	.
 &3*-	"  	LA##KNK4G4G4JK	L YYr]BIIaL"((1+6Q)<)<Q)?@	% !
 	GHAu##Iau$=$-$5$5au$5$EG	G
 2q\ 	LEBl L''	"E(B(1(9(9"E(9(JLL	Lr   c                    t        t              }t        t              }d}| j                  t        j
                        5 } |dd       d d d        | j                  |j                  d      t        j                               | j                  t        j
                        5 } |dd       d d d        | j                  |j                  d      t        |j                               | j                  t        j
                        5 } |dt        d             d d d        | j                  |j                  d      t        |j                               | j                  t        j
                        5 } |d       d d d        | j                  d	t        |j                               y # 1 sw Y   gxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   UxY w)
Nzsum() can't sum {}r   r   stringss   123r   	bytearrayabcdzNo implementation)r   r   r   r^  r	   r  r{  rZ   re   r|  rj  )r  re  rf  r~  r}  s        r   test_sum_exceptionsz TestBuiltins.test_sum_exceptions  s   ;'*+	 #v112 	&fi%	& 	cjj+S1A1A-BCv112 	)fi(	) 	cjj)3v/?/?+@Av112 	4fi6!23	4 	cjj-s63C3C/DE v112 	 f	  	)3v/?/?+@A'	& 	&
	) 	)
	4 	4	  	 s0    
F/%
F<
G	8	G/F9<G	GGc                     t         } t        d      |      }| j                   |d       |d             | j                   |d       |d             y )NTr  F)r   r   rd  r  r  r  s      r   
test_truthzTestBuiltins.test_truth  sH    "T"6*uT{3e5r   c                      t          t        d             fd} |dd        |dd        |dd        |dd        |d	d
       y )NTr  c                  :     |  }j                   |  |       y r   )r  )r  r  r  r  r  s     r   r  z+TestBuiltins.test_type_unary.<locals>.check$  s     t}H##E4L(;r   rE  rP   rO   r4   y              ?y              @F)r   r   )r  r  r  r  s   ` @@r   test_type_unaryzTestBuiltins.test_type_unary  sN    #"T"6*	< 	c1adAdAdEr   c                 0    | j                  t        |       y r   )r  r   ro  s     r   test_zipzTestBuiltins.test_zip.  s    k51r   c                 0    | j                  t               y r,  )rt  r-  r.  s    r   test_zip_npmzTestBuiltins.test_zip_npm1  r0  r   c                 0    | j                  t        |       y r   )r  r   ro  s     r   
test_zip_1zTestBuiltins.test_zip_14      mU3r   c                 0    | j                  t               y r,  )rx  r-  r.  s    r   test_zip_1_npmzTestBuiltins.test_zip_1_npm7  r  r   c                 0    | j                  t        |       y r   )r  r   ro  s     r   
test_zip_3zTestBuiltins.test_zip_3:  ry  r   c                 0    | j                  t               y r,  )r}  r-  r.  s    r   test_zip_3_npmzTestBuiltins.test_zip_3_npm=  r  r   c                 0    | j                  t        |       y r   )r  r   ro  s     r   
test_zip_0zTestBuiltins.test_zip_0@  ry  r   c                 0    | j                  t               y r,  )r  r-  r.  s    r   test_zip_0_npmzTestBuiltins.test_zip_0_npmC  r  r   c                 0    | j                  t        |       y)z
        Test side effect to the input iterators when a left iterator has been
        exhausted before the ones on the right.
        N)r  r   ro  s     r   test_zip_first_exhaustedz%TestBuiltins.test_zip_first_exhaustedF  s    
 	159r   c                 0    | j                  t               y r,  )r  r  r.  s    r   test_zip_first_exhausted_npmz)TestBuiltins.test_zip_first_exhausted_npmM  s    %%,>%?r   c                     g d}|D ]Z  \  }}t        |      t        |      f} t        |fi t        t              } |||      }| j	                  |t        ||             \ y N))rP   rQ   )r   rQ   )rP   r5   )y               @rU  )r   r   r-  r   r  r  r  r   r"   r  r  rs          r   test_pow_op_usecasez TestBuiltins.test_pow_op_usecaseP  sh    
  	=DAqQi+F1C1.1.AEaA##A~a';<		=r   c                     g d}|D ]Z  \  }}t        |      t        |      f} t        |fi t        t              } |||      }| j	                  |t        ||             \ y r  )r   r   r-  r   r  r  s          r   test_pow_usecasezTestBuiltins.test_pow_usecase^  sh    
  	:DAqQi+F1C1.1+>EaA##A{1a'89		:r   c                 d     t               |      } |       } |       }| j                  ||       y r   )r   r  )r  r  r  r  gots        r   _check_min_maxzTestBuiltins._check_min_maxl  s-    v8g#.r   c                     t         d        fd} |t              D ]  }| j                  |         |t              D ]  }| j                  |        y )Nc              3   :   K   | }||k  r| ||z  }||k  ry y wr   r^   )r   stopstepr:   s       r   frangez8TestBuiltins.test_min_max_iterable_input.<locals>.franget  s)     Ad(T	 d(s   c              3       K    fd  fd  fd  fd  fd  fd  fd  fd y w)	Nc                  &      t        d            S Nr   r   ops   r   r  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>|  s    "U2Y- r   c                  (      t        dd            S )NrR   r^  r  r  s   r   r  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>}  s    "U1b\* r   c                  *      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 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)rQ   rR   r   r^   r  s   r   r  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>  s    "ff-. r   c                  $       ddd            S )Nr  gffffff
@r?  r^   )r  r  s   r   r  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>  s    "VCc23 r   c                        t         j                  t         j                   t         j                  t         j                  g      S r   )r   r"  rK   r  s   r   r  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>  s'    "bffrvvgrvvrvv>? r   c                        g d      S )N))rQ   r  )rP   r^   r  s   r   r  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>  s    "/0 r   r^   )r  r  s   `r   sample_functionszBTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions{  s7     ''**00--..33??00s   ;?r  )r   r   r  r~   )r  r  fnr  s      @r   test_min_max_iterable_inputz(TestBuiltins.test_min_max_iterable_inputr  sb    		 
		1 #c* 	$B#	$ #c* 	$B#	$r   N)l__name__
__module____qualname__r  ry  r*  r/  r8  r<  r@  rB  rG  rI  rN  rP  rS  rU  rg  ri  rk  rm  rp  rr  ru  rw  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.  r0  r3  r5  r7  r;  r=  rD  rF  rI  rK  rM  rg  rl  ro  rr  rt  rv  rx  r{  r}  r  r  r  r  r  r  r  r  r  r^   r   r   r  r  [  s   3
 , =6, , ?0 , ?0 - 9- )7 	9; "0 ?0 &4 24 (6 "6 $2 82 *8 >8	22 !/ ?3  . 929 !/ ?$3 "0 $4 &4 +1 , 90)MV , ?0 $2 2 !/ 1
/3 , <0?  . 1  . 1..?  . 1  . 122	J  . 1  . 1.. 9G ;Q;Q? $2 5 $2 5 >L @@@@-<< , 90 !/ O 3 !/ =/ !/ 7/ &4 5>L@B86 , 2,  . 4.  . 4.  . 4. .< :@=:/$r   r  c                       e Zd Zd Zd Zy)TestOperatorMixedTypesc           	          dD ]i  }t        t        |      t        fd       }d}t        j                  ||      D ].  \  }}| j                  |j                  ||       |||             0 k y )N)eqnec                      | |      S r   r^   r   r   r  s     r   funcz/TestOperatorMixedTypes.test_eq_ne.<locals>.func      !Qxr   )rO   r   TFr3   r   r  r!  NrK  r  )getattrr   r   r3  r4  r  rc  )r  opstrr  thingsr   r"   r  s         @r   
test_eq_nez!TestOperatorMixedTypes.test_eq_ne  s}    ! 	HE5)B   
 KF!))&&9 H1''Q(:DAJGH	Hr   c                   	 dD ]y  }t        t        |      	t        	fd       }d}t        j                  ||      D ]>  \  }}|j                  ||      } |||      }|d|d|d}| j                  |||       @ { y )N)gtltgeler  r  c                      | |      S r   r^   r  s     r   r  z-TestOperatorMixedTypes.test_cmp.<locals>.func  r  r   )rO   r   TFr3   r  r   z( does not match between Python and Numba)r  r   r   r3  r4  rc  rd  )
r  r  r  r  r   r"   r  r  messager  s
            @r   test_cmpzTestOperatorMixedTypes.test_cmp  s    9 	9E5)B    8F!))&&9 91<<1-1aj+  389	9r   N)r  r  r  r  r  r^   r   r   r  r    s    H9r   r  c                   `    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zy)TestIsinstanceBuiltinc                     t         } t        d      |      }dddddg dd	t        d
dg      dd f
}|D ]$  } ||      } ||      }| j                  ||       & y )NTr  rQ   rA  Hellos   worldr!  r   )rO   rQ   rQ   rQ   rO   rP   )rO   nbarP   )r   r   r   rd  r  r  r  inputsinptr  r  s          r   test_isinstancez%TestIsinstanceBuiltin.test_isinstance  sz    #"T"6* AK
  	,Dd|H+CXs+	,r   c                 l    t         } t        d      |      }| j                   |        |              y r  )r   r   rd  rn  s      r   test_isinstance_dictz*TestIsinstanceBuiltin.test_isinstance_dict  s,     "T"6*57+r   c                 p    t         } t        d      |      }| j                   |d       |d             y )NTr  rQ   )r  r   rd  rn  s      r   test_isinstance_issue9125z/TestIsinstanceBuiltin.test_isinstance_issue9125  s0    <"T"6*E!H-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                  j                  t        j                  t        j                        dff}|D ]  \  }} ||      }| j                  ||       ! y )NTr  rO   r   rP   r   r5   r   g      @r   y              @r   r   r   )r   r   r
   r   r   r   r   r#  r   r   r   emptyrd  r  s          r   test_isinstance_numba_typesz1TestIsinstanceBuiltin.test_isinstance_numba_types  s     0"T"6* [[^W%[[^W%]]3+]]3+__R *-ZZA.ZZekk5;;7F
 % 	,ND(+CXs+	,r   c                 l    t         } t        d      |      }| j                   |        |              y r  )r   r   rd  rn  s      r   test_isinstance_numba_types_2z3TestIsinstanceBuiltin.test_isinstance_numba_types_2  s,    1"T"6*57+r   c                 (   t         } t        d      |      }| j                   |d             d}| j                  t        j
                        5 } |d       d d d        | j                  |t        j                               y # 1 sw Y   /xY w)NTr  g333333@&Cannot infer numba type of python typerW  )	r   r   
assertTruer^  r	   r  r{  re   r|  )r  r  r  r~  r}  s        r   test_isinstance_invalid_typez2TestIsinstanceBuiltin.test_isinstance_invalid_type  s~    0"T"6* 	c
# 7v112 	f#J	 	c3v//01	 	s   	BBc                 4   t         dft        dft        dft               dfg}|D ]e  \  }}t	        |      }| j                  t        j                        5 } |d       d d d        | j                  |t        j                               g y # 1 sw Y   1xY w)Nr  zGisinstance() cannot determine the type of variable "z" due to a branch.z6isinstance() does not support variables of type "ntpl(rW  )r   r   r  r  r   r^  r	   r  r{  re   r|  )r  fnsr  r~  r}  s        r   test_isinstance_exceptionsz0TestIsinstanceBuiltin.test_isinstance_exceptions  s    '577 1 9:FI
  	6GBbB""6#5#56 &3 MM#s6#3#345	6 s   	BB	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                  j                  t         j"                  t         j$                        t        j&                  j)                  t         j*                        t        j,                  d      f}|D ]E  }t/         ||            }|D ]-  }|j1                  |      } ||      }| j3                  ||       / G y )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0r   r^   r  r
  s   ` r   	gen_w_argz:TestIsinstanceBuiltin.test_combinations.<locals>.gen_w_arg      1Kr   rO   gffffff@              @5rT   )rU      8r`  )r      r^  )   r   y              ,@)rZ  r           rR   )rj   rG   r,   re   r   r   r   r   r   r   r  r   arrayr   r   r  r
   unicode_typer   r   
empty_listr$  rZ  r   rc  rd  )	r  r  clazz_types	instancesctr  r   r  r  s	            r   test_combinationsz'TestIsinstanceBuiltin.test_combinations  s   	
 E7CueS%ww

-RqdD$d!>288L3IWWR["**R.ZZ%%e&8&8%--HZZ**5+;+;<bggaj	J	  	0Bim$B 0::a=e  h/0	0r   c                 \   d }t         j                  t         j                  t         j                  f}d}|D ]g  }t	         ||            }| j                  t        j                        5 } |        d d d        | j                  t        j                        |       i y # 1 sw Y   1xY w)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  assertRegexre   r|  )r  r  r  r~  r  r  r}  s          r   test_numba_typesz&TestIsinstanceBuiltin.test_numba_types$  s    	
 }}ekk5;;@5 	9Bim$B""6#5#56 &S!1!12C8		9 s   *B""B+	c                    t         d        }| j                   |       d       | j                  |j                         d       t         d        }| j                   |       d       | j                  |j                         d       y )Nc                  H    t        t        j                  d      t              S r  )r   r   intprj   r^   r   r   r   zITestIsinstanceBuiltin.test_python_numpy_scalar_alias_problem.<locals>.foo:  s    bggbk3//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   rd  rc  )r  r   r  s      r   &test_python_numpy_scalar_alias_problemz<TestIsinstanceBuiltin.test_python_numpy_scalar_alias_problem5  s|    
 
	0 
	0 	%.		* 
	* 	%.r   c                     t         d        }dD ]-  }|j                  |      } ||      }| j                  ||       / y )Nc                     t        | t              r| dz   S t        | t              rt        j                  |       S t        | t
              rt        |       S J )Nsome_string)r   re   r,   r   r   r   r  r   s    r   r   z4TestIsinstanceBuiltin.test_branch_prune.<locals>.fooL  sG    !S!=((Aw'wwqz!Au%1vqr   )rL  y      ?       @)r   rQ   r  )r   rc  rd  )r  r   r   r  r  s        r   test_branch_prunez'TestIsinstanceBuiltin.test_branch_pruneH  sM     
	 
	 2 	,A{{1~Ha&CS(+	,r   c                 v   t         d        t        fd       }d}| j                   ||      |j                  |             | j	                  t
        j                        5 } |d       d d d        t        j                        }| j                  d|       | j                  d|       y # 1 sw Y   CxY w)Nc                     | |z   S r   r^   r!   s     r   rf  zBTestIsinstanceBuiltin.test_branch_prune_and_bind_to_sig.<locals>.f^      q5Lr   c                 >    t        | t              r |  S  |       S r   r   r   )r   rf  s    r   call_fzGTestIsinstanceBuiltin.test_branch_prune_and_bind_to_sig.<locals>.call_fb      !U#!utr   r   rO   zCannot bindz+TypeError: missing a required argument: 'y')
r   r   rd  rc  r^  r	   r  re   r|  r{  )r  r	  r   r}  r~  rf  s        @r   !test_branch_prune_and_bind_to_sigz7TestIsinstanceBuiltin.test_branch_prune_and_bind_to_sig\  s    		 
	 
	 
	 FNN1$56 v112 	f1I	 &""#mS)CSI	 	s   $	B//B8c                     t         d        t         d        t        fd       }d}| j                   ||      |j                  |             y )Nc                     | |z   S r   r^   r!   s     r   rf  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                 >    t        | t              r |  S  |       S r   r  )r   rf  r  s    r   r	  zNTestIsinstanceBuiltin.test_branch_prune_non_tuples_as_star_arg.<locals>.call_f  r
  r   rO   r   r   rd  rc  )r  r	  r   rf  r  s      @@r   (test_branch_prune_non_tuples_as_star_argz>TestIsinstanceBuiltin.test_branch_prune_non_tuples_as_star_arg{  sc     
	 
	 
	 
	 
	 
	 FNN1$56r   c                     t         d        t         d        dt        fd       }| j                   |       |j                                y )Nc                     | |z   S r   r^   r!   s     r   rf  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   rO   c                  B    } t        | t              r |  S  |       S r   r  )r   rf  r  ones    r   r	  zKTestIsinstanceBuiltin.test_branch_prune_literal_as_star_arg.<locals>.call_f  s$    A!U#!utr   r  )r  r	  rf  r  r  s     @@@r   %test_branch_prune_literal_as_star_argz;TestIsinstanceBuiltin.test_branch_prune_literal_as_star_arg  s_     
	 
	 
	 
	 		 
	 	6>>#34r   N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r^   r   r   r  r    sI    ,.,.
,(,
26,0,9"/&,(J>725r   r  c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestGetattrBuiltinc                 x    t         d        }dD ])  }| j                   ||      |j                  |             + y )Nc                 (    t        | d      } |       S )N__hash__r  )r   attrs     r   r   z7TestGetattrBuiltin.test_getattr_func_retty.<locals>.foo  s    1j)D6Mr   rO   Q@rS   rT   rU   r   r  rc  r  r   r   s      r   test_getattr_func_rettyz*TestGetattrBuiltin.test_getattr_func_retty  sA    		 
	 & 	<A##CFCKKN;	<r   c                     t         d        }t        d      D ]A  }t        j                  d|z        }| j	                   ||      |j                  |             C y )Nc                     t        | d      S )Nndimr  r   s    r   r   z8TestGetattrBuiltin.test_getattr_value_retty.<locals>.foo  s    1f%%r   rQ   r  )r   r   r   r  r  rc  )r  r   r   rQ  s       r   test_getattr_value_rettyz+TestGetattrBuiltin.test_getattr_value_retty  sZ    		& 
	& q 	@A((519%C##CHckk#.>?	@r   c                 f    t         d        }| j                   |       |j                                y )Nc                  "    t        t        d      S )Npir  r   r^   r   r   r   z7TestGetattrBuiltin.test_getattr_module_obj.<locals>.foo  s    2t$$r   r#  r  r   s     r   test_getattr_module_objz*TestGetattrBuiltin.test_getattr_module_obj  s0     
	% 
	% 	s{{}5r   c                     t         d        }| j                  t        j                        5 } |        d d d        d}| j	                  |t        j                               y # 1 sw Y   1xY w)Nc                  .     t        t        d      d      S )NcosrO   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{  re   r|  r  r   r}  r~  s       r   'test_getattr_module_obj_not_implementedz:TestGetattrBuiltin.test_getattr_module_obj_not_implemented  sh     
	) 
	) v112 	fE	 >c3v//01		 	s   A$$A-c                     dt         fd       }| j                  t              5 } |d       d d d        | j                  d dt	        j
                               y # 1 sw Y   3xY w)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{  re   r|  )r  r   r}  r9  s      @r   #test_getattr_raises_attribute_errorz6TestGetattrBuiltin.test_getattr_raises_attribute_error  sp    -		, 
	, ~. 	&I	 	4\N!D&**+	-	 	s   	A""A+c                     t         d        }t        dd      D ].  \  }}| j                   |||      |j                  ||             0 y )Nc                     t        | d|      S )Nr7  r  )r   defaults     r   r   z9TestGetattrBuiltin.test_getattr_with_default.<locals>.foo  s    14g>>r   r   )N   r  )r   r   r  rc  )r  r   r   r"   s       r   test_getattr_with_defaultz,TestGetattrBuiltin.test_getattr_with_default  sW     
	? 
	? -/HI 	BDAq##C1Is{{1a/@A	Br   c                     t         d        }| j                  t        j                        5 } |dd       d d d        d}| j	                  |t        j                               y # 1 sw Y   1xY w)Nc                     t        | |      S r   r  )r   nonliteral_strs     r   r   z<TestGetattrBuiltin.test_getattr_non_literal_str.<locals>.foo  s    1n--r   rO   r  z(argument 'name' must be a literal stringr3  r4  s       r   test_getattr_non_literal_strz/TestGetattrBuiltin.test_getattr_non_literal_str  sk    		. 
	. v112 	f:	 9c3v//01		 	s   
A&&A/c                     t         d        t         fd       }| j                   |       |j                                y )Nc                       y)Ni90  r^   r^   r   r   default_hashzPTestGetattrBuiltin.test_getattr_no_optional_type_generated.<locals>.default_hash  s    r   c                  R    t        t        j                  d      d      }  |        S )NrO   r7  )r  r   rZ  )	hash_funcrH  s    r   r   zGTestGetattrBuiltin.test_getattr_no_optional_type_generated.<locals>.foo  s%    
,B ,.I;r   r#  )r  r   rH  s     @r   'test_getattr_no_optional_type_generatedz:TestGetattrBuiltin.test_getattr_no_optional_type_generated   sC    		 
	 
	 
	
 	s{{}5r   N)r  r  r  r%  r)  r/  r5  r<  rA  rE  rK  r^   r   r   r  r    s,    <@62-B
26r   r  c                       e Zd Zd Zd Zy)TestHasattrBuiltinc                 B   t         d        }t        j                  }dddt        j                  j                  ||      t        j                  j                  |      t        j                  d      dfD ])  }| j                   ||      |j                  |             + y )Nc                 2    t        | d      t        | d      fS )Nr  r7  hasattrr   s    r   r   z,TestHasattrBuiltin.test_hasattr.<locals>.foo  s    1j)716L+MMMr   rO   r!  r"  rR   ABC)r   r
   r   r   r   r  r   r  r   rZ  r  rc  )r  r   tyr   s       r   test_hasattrzTestHasattrBuiltin.test_hasattr  s    		N 
	N [[T9ejj&6&6r2&>**''+RWWQZ@ 	<A##CFCKKN;	<r   c                     t         d        }| j                  t        j                        5 } |d       d d d        d}| j	                  |t        j                               y # 1 sw Y   1xY w)Nc                 0    | dkD  rd}nd}t        d|       y )NrQ   r  __str__rO   rP  )predr  s     r   r   z;TestHasattrBuiltin.test_hasattr_non_const_attr.<locals>.foo"  s    ax! Atr   rT   zGhasattr() cannot determine the type of variable "attr" due to a branch.)r   r^  r	   NumbaTypeErrorr{  re   r|  r4  s       r   test_hasattr_non_const_attrz.TestHasattrBuiltin.test_hasattr_non_const_attr  sj    
 
	 
	 v445 	F	)c3v//01	 	s   	A%%A.N)r  r  r  rT  rZ  r^   r   r   rM  rM    s    	<2r   rM  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestStrAndReprBuiltinc                 f    t         d        }| j                   |       |j                                y )Nc                      t               S r   rd   r^   r   r   r   z3TestStrAndReprBuiltin.test_str_default.<locals>.foo7  s	    5Lr   r  r.  s     r   test_str_defaultz&TestStrAndReprBuiltin.test_str_default5  s.    		 
	 	.r   c                 n    t         d        }d}| j                   ||      |j                  |             y )Nc                     t        |       S )N)objectrd   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=  s8    		! 
	! US[[%78r   c                    t         d        }| j                         \  }} |       }dfd|_        t        |d      fd       }t        |d      d        }| j	                   ||      |j                  |             y )Nc                     t        |       S r   rd   r   s    r   r   z<TestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.fooH      q6Mr   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   rW  c                     fd}|S )Nc                     S r   r^   dummyrj  s    r   r
  zVTestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.ol_dummy_string.<locals>.implS  	    ""r   r^   rn  r
  rj  s     r   ol_dummy_stringzHTestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.ol_dummy_stringQ      #Kr   __repr__c                     d }|S )Nc                      y)NzSHOULD NOT BE CALLEDr^   )rn  s    r   r
  zTTestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.ol_dummy_repr.<locals>.implY  s    -r   r^   )rn  r
  s     r   ol_dummy_reprzFTestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.ol_dummy_reprW  s    .Kr   )r   make_dummy_typerW  r   rd  rc  )r  r   rM  	DummyTypern  rq  rv  rj  s          @r   test_str_calls_dunder_strz/TestStrAndReprBuiltin.test_str_calls_dunder_strF  s    		 
	  //1y4/	I	.	 
/	
 
J	/	 
0	
 	US[[%78r   c                     t         d        }| j                         \  }} |       }dfd|_        t        |d      fd       }| j	                   ||      |j                  |             y )Nc                     t        |       S r   rd   r   s    r   r   z>TestStrAndReprBuiltin.test_str_falls_back_to_repr.<locals>.fooa  rg  r   zthis is the dummy object reprc                     S r   r^   ri  s    r   r  zCTestStrAndReprBuiltin.test_str_falls_back_to_repr.<locals>.<lambda>h      [ r   rs  c                     fd}|S )Nc                     S r   r^   rm  s    r   r
  zVTestStrAndReprBuiltin.test_str_falls_back_to_repr.<locals>.ol_dummy_repr.<locals>.impll  ro  r   r^   rp  s     r   rv  zHTestStrAndReprBuiltin.test_str_falls_back_to_repr.<locals>.ol_dummy_reprj  rr  r   )r   rw  rs  r   rd  rc  )r  r   rM  rx  rn  rv  rj  s         @r   test_str_falls_back_to_reprz1TestStrAndReprBuiltin.test_str_falls_back_to_repr_  su    		 
	  //1y50	J	/	 
0	
 	US[[%78r   c                 x    t         d        }dD ])  }| j                   ||      |j                  |             + y )Nc                     t        |       | fS r   )reprr   s    r   r   z,TestStrAndReprBuiltin.test_repr.<locals>.foos  s    7A:r   )abcF{   r  r$  s      r   	test_reprzTestStrAndReprBuiltin.test_reprr  sA    		 
	 % 	5ASVS[[^4	5r   c                     | j                         \  }        }dt        |       dfd_        t        |      fd       }t        d        }| j                   ||      |j                  |             y )Nz<object type:>c                     S r   r^   ri  s    r   r  z:TestStrAndReprBuiltin.test_repr_fallback.<locals>.<lambda>  r}  r   c                     |j                   j                  |j                   j                              }|j                   j                  |d      S r   )pyapiunserializeserialize_objectcall_function_objargs)r  objr   clazobjrM  s       r   	box_dummyz;TestStrAndReprBuiltin.test_repr_fallback.<locals>.box_dummy  s=    gg))!''*B*B5*IJG7700"==r   c                     t        |       S r   rd   r   s    r   r   z5TestStrAndReprBuiltin.test_repr_fallback.<locals>.foo  rg  r   )rw  r   rs  r   r   rd  rc  )r  rx  rn  r  r   rM  rj  s        @@r   test_repr_fallbackz(TestStrAndReprBuiltin.test_repr_fallbackz  s    
  //1y%fUm_A60	Y	> 
	> 
	 
	 	US[[%78r   N)	r  r  r  r_  rd  ry  r  r  r  r^   r   r   r\  r\  3  s     /9929&59r   r\  __main__rb  )^r3  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   ry  r-  r  r   r#   r'   r*   r-   r0   r<   r?   rA   rE   rH   rX   r[   r_   rb   rf   rl   rq   rt   rw   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  rM  r\  r  mainr^   r   r   <module>r     s     
  "    * * , ,2 2 G G d#"E2 $' "
,$
,&
n$8 n$b9X 9B5H 5D]6( ]6@!2( !2HZ9OX Z9| zHMMO r   