
    xKgE                        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 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 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/ ZAd0 ZBd1 ZCd2 ZDd3 ZEd4 ZFd5 ZGd6 ZHd7 ZId8 Z?dQd9ZJd: ZKd; ZLd< ZMd= ZNd> ZOd? ZPd@ ZQdA ZRdB ZSdC ZT G dD dEe      ZU G dF dGe      ZV G dH dIe      ZW G dJ dKee      ZX G dL dMee      ZY G dN dOee      ZZe[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forceobjTF)nopython_nrtr   c                     t        |       S N)absxs    ]/home/alanp/www/video.onchill/myenv/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_usecaser/   7   s    !Q<r   c                  @    d} t        d      D ]  \  }}| ||z  z  }  | S )Nr         ?      @      @	enumerateresultijs      r   enumerate_usecaser;   :   s,    F-(1!a% )Mr   c                  B    d} t        dd      D ]  \  }}| ||z  z  }  | S )Nr   r1   *   r5   r7   s      r   enumerate_start_usecaser>   @   s.    F-,1!a% -Mr   c                  B    d} t        dd      D ]  \  }}| ||z  z  }  | S )Nr   r1   gn!	@r5   r7   s      r   enumerate_invalid_start_usecaser@   F   s.    F-11!a% 2Mr   c                     t        ||       S r   )filter)r   filter_funcs     r   filter_usecaserD   L   s    +q!!r   c                     t        |       S r   )floatr   s    r   float_usecaserG   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                        )rF   get)r   ds     r   float_inf_usecaserW   R   sV    <<==#$$%		A 558Or   c                 $    | j                  |      S r   )formatr    s     r   format_usecaserZ   _   s    88A;r   c                      t               S r   )globals r   r   globals_usecaser^   b   s
    9r   c                     t        |       S r   )hexr   s    r   hex_usecasera   g   r   r   c                     t        |       S r   strr   s    r   str_usecasere   j   r   r   c                     t        | |      S N)base)intr   rh   s     r   int_usecaserk   m   s    qtr   c                 D    t        |       }t        |      t        |      fS r   )iternext)r   its     r   iter_next_usecaserp   p   s    	aB8T"Xr   c                      d}t               d   S )NrR   r!   )localsr    s     r   locals_usecasers   t   s    	A8C=r   c                     t        | |      S rg   )longrj   s     r   long_usecaserv   x   s    r   c                     t        ||       S r   )map)r   map_funcs     r   map_usecaserz   {   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      rH   r   c                     t        | |      S r   r   )r   ns     r   round_usecase2r      s    A;r   c                     t        |       S r   sumr   s    r   sum_usecaser      r   r   c                 $     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   rN   rO   rP   )g      @@zipr7   s      r   zip_usecaser      s.    FIz*1!a% +Mr   c                  2    d} t               D ]  }| dz  } 	 | S Nr   rN   r   r8   r9   s     r   zip_0_usecaser      s!    FU! Mr   c                  8    d} t        d      D ]	  \  }| |z  }  | S )Nr   rN   rO   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   )rP   rQ   rR   )r   g!@r   )r8   r9   r:   ks       r   zip_3_usecaser      s7    Fvy*51a!a%!) 6Mr   c                      t        d      } d}t        |       }t        t        t        |      |            }t        |      }||fS )NrT   rP   )rangerm   listr   )iterabler   ro   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)NrN   ri          @rF   z, world!rd   r+   tupler   setbytesno match)

isinstanceri   rF   rd   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)	NrO   rQ   )rN   rP   
   rP   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   hellorN   rO   rP   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   rF   r   s    r   isinstance_usecase_invalid_typer   ,  s    !e\*+r   c                 :    | dkD  rd}nd}t        |t              ryy)NrQ   r   r   TFr   ri   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   ri   r   len)r   r   r9   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)NrQ   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   rN   rO   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   rN   g        皙?singleprecy      ?y                y?      @rJ                 ?nanr   r   rO   rN   )r   r   r
   r   r  r   rF   	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A##E!HfQi8  /U]]$..v6!A##E!HfQih#G " &x,eEl)::,eEl)::< 1U__&0%08A##E!HfQih#G  1U%%'151&9A##E!HfQi8   #22M "am.D.D)Dq)HIO2C(2E26:E$''a&)< % 3r   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   rN   N)r"   r   r
   r   	itertoolsproductr  r  r  r  r  
x_operands
y_operandsr   r!   s           r   test_allzTestBuiltins.test_all  k    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+  )assertTypingErrorr7  r,  r-  s    r   test_all_npmzTestBuiltins.test_all_npm  (    ##%MMM/ &%%   1:c                     t         } t        t        j                  t        j                  ffi ||      }g d}g d}t	        j
                  ||      D ]%  \  }}| j                   |||       |||             ' y r1  )r&   r   r
   r   r2  r3  r  r4  s           r   test_anyzTestBuiltins.test_any  r8  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               ?rJ   r!  r   )	r)   r   r
   r   r  r   rF   r#  r+   r  r  r  r  r   s        r   	test_boolzTestBuiltins.test_bool  s    ,U[[N,e,V4A##E!HfQi8 .U]]$..v6tS%,e=A##E!HfQi8 >1U%%'151&9!U5\*GAuU|,DEA##E!HfQi8 Fr   c                 0    | j                  t               y r+  )rF  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   rN   )r)   r   r
   stringr  DummyrE  s        r   test_bool_nonnumberz TestBuiltins.test_bool_nonnumber  s    -U\\O-u-f5A##E!HfQi8  5U[[(*4e4V<#rA##E!HfQi8 r   c                 z    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY wr+  )r:  rM  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 ]%  \  }}| j                   |||       |||             ' y Nr  )r,   r   r
   r   r2  r3  r  r4  s           r   test_complexzTestBuiltins.test_complex  sk     8U[[%++.8%8@

%%j*=DAq##E!QK1> >r   c                 0    | j                  t               y r+  )rR  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   )
rN   rP   rT      r  il    l         r   )@   )	r/   r   r
   r   r2  r3  r  assertRaisesZeroDivisionError)r  r  r  r  rX  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<@EAq*0A,'M<aID#A##QtWaf$5%&}%5q$GI	 A A""#45a 65 55s   
CC#	c                 0    | j                  t               y r+  )rf  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)	Nr2   g      @g}Ô%ITg       g      g\nrC  r  )r/   r   r
   r   r   rJ   r!  r2  r3  r  r]  r^  )r  r  r  r  r_  r`  r   r!   ra  rb  rc  rd  s               r   test_divmod_floatszTestBuiltins.test_divmod_floats  s    <U]]EMM2<e<VDCT61!T3K/
&&z<@EAq*0A,'M<aID###T3K-1NO A
 A""#45a 65 55s   
C//C8	c                 0    | j                  t               y r+  )rj  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+  )ro  r,  r-  s    r   test_enumerate_npmzTestBuiltins.test_enumerate_npm      .1r   c                 0    | j                  t        |       y r   )r  r>   rn  s     r   test_enumerate_startz!TestBuiltins.test_enumerate_start  s    5u=r   c                 0    | j                  t               y r+  )rt  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  )r@   r   forceobj_flagsr]  	TypeErrorassertInrd   	exception)r  r  r  raisesmsgs        r   'test_enumerate_start_invalid_start_typez4TestBuiltins.test_enumerate_start_invalid_start_type  s_    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  )	r@   r]  r	   TypingErrorr   r,  rz  rd   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12f%C%n%f- 3Cc3v//01 32s   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 NrO   r]   r   s    r   <lambda>z*TestBuiltins.test_filter.<locals>.<lambda>  s    Ar   r   rN   rO   rP   rQ   )rD   r
   rL  r   assertSequenceEqualr   )r  r  r  argtysr  rC   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  +    ##%>2 &%%r=  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.1rJ   rL   rK   rM   )rG   r   r
   r   r  r   rK  rE  s        r   
test_floatzTestBuiltins.test_float"  s    ,U[[N,e,V4A##E!HfQi8  /U]]$..v6!A##E!HfQih#G " .U\\O-u-f5EA##E!HfQi8 F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_float_npmzTestBuiltins.test_float_npm1  (    ##%OO.O1 &%%r=  c                     t         }t        |      }t        d      D ]   }| j                   ||       ||             " y )N   )rW   r   r   r  )r  r  r  r   s       r   test_float_string_literalz&TestBuiltins.test_float_string_literal5  s6    "VqA##E!HfQi8 r   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   )rZ   r   r
   rK  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  s+    ##%N3 &%%r=  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  s+    ##%!!4!0 &%%s   -6c                     t         } t        t        j                  ffi ||      }dD ]   }| j	                   ||       ||             " y rQ  )ra   r   r
   r   r  rE  s        r   test_hexzTestBuiltins.test_hexg  sE    ,U[[N,e,V4A##E!HfQi8 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_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  rN   r   r   i  )i[i! i@B r  )re   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

 C5C5"45f=E((377+q7GKK7''c!fvc!f~F::++E#qb'NF3r7OL  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)rO   r  r      )rk   r   r
   rK  r   r2  r3  r  r4  s           r   test_intzTestBuiltins.test_int  sk    :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)NrP   )rN   r=   rR   )rN   r=   rN   rN   )rp   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  rr  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   )rs   r]  r	   ForbiddenConstructr   r
   r   )r  r  r  s      r   test_localszTestBuiltins.test_locals  sA    v889(C(%(0 :99s   "AAc                 0    | j                  t               y r+  )r  rx  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Ur   r  )rz   r
   rL  r   r  r   )r  r  r  r  r  ry   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 rQ  r   r
   r   r2  r3  r  r  r  r  r  r5  r6  r   r!   s           r   check_minmax_1zTestBuiltins.check_minmax_1  f    8U[[%++.8%8@

%%j*=DAq##E!QK1> >r   c                 0    | j                  t        |       y)z
        max(*args)
        N)r  r~   rn  s     r   
test_max_1zTestBuiltins.test_max_1       	L%0r   c                 0    | j                  t        |       y)z
        min(*args)
        N)r  r   rn  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 rQ  r  r  s           r   check_minmax_2zTestBuiltins.check_minmax_2  r  r   c                 0    | j                  t        |       y)z
        max(list)
        N)r  r   rn  s     r   
test_max_2zTestBuiltins.test_max_2  r  r   c                 0    | j                  t        |       y)z
        min(list)
        N)r  r   rn  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 )NrD  r!  r3   r  )r   rF   r  )argtyr  tupvalr  r  r  s       r   checkz*TestBuiltins.check_minmax_3.<locals>.check  sZ    *C*E*62Eec*CS2Y'''c
F3K@ (r   rP   )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   rn  s     r   
test_max_3zTestBuiltins.test_max_3  r  r   c                 0    | j                  t        |       y)z
        min(tuple)
        N)r  r   rn  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   rN   )r   r
   r   rL  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]  ry  r  r~   r-  s    r   test_max_1_invalid_typesz%TestBuiltins.test_max_1_invalid_types,  *    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  -    ##%,,\,P &%%   6?c                     | j                  t              5  | j                  t               d d d        y # 1 sw Y   y xY wr   )r]  ry  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_r2  r3  r  )r  r  r  r  operandsr   r!   s          r   check_minmax_bool1zTestBuiltins.check_minmax_bool1<  sa    8U[[%++.8%8@ %%h9DAq##E!QK1> :r   c                 0    | j                  t        |       y r   )r  r~   rn  s     r   test_max_bool1zTestBuiltins.test_max_bool1C      e4r   c                 0    | j                  t        |       y r   )r  r   rn  s     r   test_min_bool1zTestBuiltins.test_min_bool1G  r  r   c                 V     t        t        j                  ffi ||      } |d       y NrN   )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]  ry  r  r   r-  s    r   test_max_unary_non_iterablez(TestBuiltins.test_max_unary_non_iterableQ  *    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  (    ##%11,? &%%   09c                     | j                  t              5  | j                  t               d d d        y # 1 sw Y   y xY wr   )r]  ry  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,  rz  rd   r{  )r  r  	func_namer|  s       r   check_min_max_empty_tuplez&TestBuiltins.check_min_max_empty_tuplec  sR    ##%%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  r0  r   c                     t         } t        t        j                  ffi ||      }dD ]   }| j	                   ||       ||             " y )N)ir  r   rN   r  )r   r   r
   r   r  rE  s        r   test_octzTestBuiltins.test_octp  sE    ,U[[N,e,V4"A##E!HfQi8 #r   c                 z    | j                         5  | j                  t               d d d        y # 1 sw Y   y xY wr+  )r:  r4  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    1q5r   r         $@)r   r
   rL  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.IqWQ]I.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?rD        @grC  )r   r
   r   r   r   r  )r  r  r  tpr  valuesr   s          r   test_round1zTestBuiltins.test_round1  sk    ==%--0B'C''/EPFtTl"F''a&)< 	 1r   c                 0    | j                  t               y r+  )rC  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      ?rD  g      ?g      @r3   g      @g      )@g      .@g     6@)r  r   rN   rO   r  )r   r
   r   r   r   r   r  )	r  r  r  rA  r  r  r   r   r  s	            r   test_round2zTestBuiltins.test_round2  s    ==%--0B!U]]28D3CU[[)3U3F;ED&A++E!QK115 , 7%qb!}H++E1"aL&!Q-15 , 7	 'D 1r   c                 0    | j                  t               y r+  )rH  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   r9  )r   r   r
   rL  r   r  r+   rE  s        r   test_sum_objmodezTestBuiltins.test_sum_objmode  s    4U[[(*4e4V<"Ia&)4!&r+AQ4Z+a&)4$)"I.IqWQ]I.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   r9  r   r   rN   rO                 @    rO   rP   rR   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1y!1qv:y11#(9-9a1r69--O 88B<!bggaj99E!H%BH''!*sC. sD/! 2-s   C4C*C4C/B'C4rU  rO   rP   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      r9  y              3@r   )r   	   )rS  r   rU  rO   rP   rT   rR   rV  )rR   rR   )rR   rW  irX  r_  )	r   r   r   r   r  r  r   r   rY  rZ  s     r   args_kwsz'TestBuiltins.test_sum.<locals>.args_kws  s    E"I,""',Ry1y!1qv:y1366#(9-9a1r69-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   rZ  rQ   r   )r   r   r   r   r  py_funcr   r  r  r  assertEqualr   )
r  sum_default	sum_kwargrQ  r  r   r`  r   rO  r  s
            @r   test_sumzTestBuiltins.test_sum  sB   ;'*+			. 
	.
 &3*-	" A##KNK4G4G4JK  YYr]BIIaL"((1+6Q)<)<Q)?@	% !
HAu##Iau$=$-$5$5au$5$EG #
 2q\EBl''	"E(B(1(9(9"E(9(J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  rz  rY   rd   r{  ri  )r  rd  re  r}  r|  s        r   test_sum_exceptionsz TestBuiltins.test_sum_exceptions  sc   ;'*+	 #v112fi% 3 	cjj+S1A1A-BCv112fi( 3 	cjj)3v/?/?+@Av112fi6!23 3 	cjj-s63C3C/DE v112f 3 	)3v/?/?+@A' 32
 32
 32 32s0    
F/%
F<
G	8	G/F9<G	GGc                     t         } t        d      |      }| j                   |d       |d             | j                   |d       |d             y )NTr  F)r   r   rc  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   rD  rO   rN   r3   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   rn  s     r   test_zipzTestBuiltins.test_zip.  s    k51r   c                 0    | j                  t               y r+  )rs  r,  r-  s    r   test_zip_npmzTestBuiltins.test_zip_npm1  r/  r   c                 0    | j                  t        |       y r   )r  r   rn  s     r   
test_zip_1zTestBuiltins.test_zip_14      mU3r   c                 0    | j                  t               y r+  )rw  r,  r-  s    r   test_zip_1_npmzTestBuiltins.test_zip_1_npm7  r  r   c                 0    | j                  t        |       y r   )r  r   rn  s     r   
test_zip_3zTestBuiltins.test_zip_3:  rx  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   rn  s     r   
test_zip_0zTestBuiltins.test_zip_0@  rx  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   rn  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))rO   rP   )r   rP   )rO   r4   )y               @rT  )r   r   r,  r   r  r  r  r   r!   r  r  rs          r   test_pow_op_usecasez TestBuiltins.test_pow_op_usecaseP  sc    
 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^  sc    
 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stepr9   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 )NrQ   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/0r   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)rP   rQ   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3r   c                        t         j                  t         j                   t         j                  t         j                  g      S r   )r   r!  rJ   r  s   r   r  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>  s%    "bffrvvgrvvrvv>?r   c                        g d      S )N))rP   r  )rO   r]   r  s   r   r  zTTestBuiltins.test_min_max_iterable_input.<locals>.sample_functions.<locals>.<lambda>  s    "/0r   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  sX    		 
		1 #c*B# + #c*B# +r   N)l__name__
__module____qualname__r  rx  r)  r.  r7  r;  r?  rA  rF  rH  rM  rO  rR  rT  rf  rh  rj  rl  ro  rq  rt  rv  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r	  r  r  r  r  r  r  r  r!  r$  r(  r*  r-  r/  r2  r4  r6  r:  r<  rC  rE  rH  rJ  rL  rf  rk  rn  rq  rs  ru  rw  rz  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   )rN   r   TFr2   r   r  r   NrJ  r  )getattrr   r   r2  r3  r  rb  )r  opstrr  thingsr   r!   r  s         @r   
test_eq_nez!TestOperatorMixedTypes.test_eq_ne  so    !E5)B   
 KF!))&&91''Q(:DAJG : "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   )rN   r   TFr2   r  r   z( does not match between Python and Numba)r  r   r   r2  r3  rb  rc  )
r  r  r  r  r   r!   r  r  messager  s
            @r   test_cmpzTestOperatorMixedTypes.test_cmp  s    9E5)B    8F!))&&91<<1-1aj+  38 : :r   N)r  r  r  r  r  r]   r   r   r  r    s    H9r   r  c                   N    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y)TestIsinstanceBuiltinc                     t         } t        d      |      }dddddg dd	t        d
dg      dd f
}|D ]$  } ||      } ||      }| j                  ||       & y )NTr  rP   r@  Hellos   worldr   r   )rN   rP   rP   rP   rN   rO   )rN   nbarO   )r   r   r   rc  r  r  r  inputsinptr  r  s          r   test_isinstancez%TestIsinstanceBuiltin.test_isinstance  su    #"T"6* AK
 Dd|H+CXs+ r   c                 l    t         } t        d      |      }| j                   |        |              y r  )r   r   rc  rm  s      r   test_isinstance_dictz*TestIsinstanceBuiltin.test_isinstance_dict  s,     "T"6*57+r   c                 p    t         } t        d      |      }| j                   |d       |d             y )NTr  rP   )r  r   rc  rm  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  rN   r   rO   r   r4   r   g      @r   y              @r   r   r   )r   r   r
   r   r   r   r   r"  r   r   r   emptyrc  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   rc  rm  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 typerV  )	r   r   
assertTruer]  r	   r  rz  rd   r{  )r  r  r  r}  r|  s        r   test_isinstance_invalid_typez2TestIsinstanceBuiltin.test_isinstance_invalid_type  sw    0"T"6* 	c
# 7v112f#J 3 	c3v//01 32s   	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(rV  )r   r   r  r
  r   r]  r	   r  rz  rd   r{  )r  fnsr  r}  r|  s        r   test_isinstance_exceptionsz0TestIsinstanceBuiltin.test_isinstance_exceptions  s    '577 1 9:FI
 GBbB""6#5#56&3 7 MM#s6#3#345  76s   	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   rN   gffffff@              @5rS   )rT      8r_  )r      r]  )   r   y              ,@)rY  r           rQ   )ri   rF   r+   rd   r   r   r   r   r   r   r  r   arrayr   r   r  r
   unicode_typer   r   
empty_listr#  rY  r   rb  rc  )	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	 Bim$B::a=e  h/  r   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  assertRegexrd   r{  )r  r  r  r}  r  r  r|  s          r   test_numba_typesz&TestIsinstanceBuiltin.test_numba_types$  s    	
 }}ekk5;;@5Bim$B""6#5#56& 7S!1!12C8	 66s   *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   intpri   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   rc  rb  )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   rd   r+   r   r   r   r  r   s    r   r   z4TestIsinstanceBuiltin.test_branch_prune.<locals>.fooL  sG    !S!=((Aw'wwqz!Au%1vqr   )rK  y      ?       @)r   rP   r  )r   rb  rc  )r  r   r   r  r  s        r   test_branch_prunez'TestIsinstanceBuiltin.test_branch_pruneH  sH     
	 
	 2A{{1~Ha&CS(+ 2r   N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r]   r   r   r  r    s9    ,.,.
,(,
26,0,9"/&,r   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>.foob  s    1j)D6Mr   rN   Q@rR   rS   rT   r   r  rb  r  r   r   s      r   test_getattr_func_rettyz*TestGetattrBuiltin.test_getattr_func_retty`  s<    		 
	 &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>.fool  s    1f%%r   rP   r  )r   r   r   r  r  rb  )r  r   r   rP  s       r   test_getattr_value_rettyz+TestGetattrBuiltin.test_getattr_value_rettyj  sS    		& 
	& 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>.foow  s    2t$$r   r  r  r   s     r   test_getattr_module_objz*TestGetattrBuiltin.test_getattr_module_objt  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cosrN   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  rz  rd   r{  r  r   r|  r}  s       r   'test_getattr_module_obj_not_implementedz:TestGetattrBuiltin.test_getattr_module_obj_not_implemented}  sa     
	) 
	) v112fE 3 >c3v//01	 32s   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]  AttributeErrorrz  rd   r{  )r  r   r|  r#  s      @r   #test_getattr_raises_attribute_errorz6TestGetattrBuiltin.test_getattr_raises_attribute_error  si    -		, 
	, ~.&I / 	4\N!D&**+	- /.s   	A""A+c                     t         d        }t        dd      D ].  \  }}| j                   |||      |j                  ||             0 y )Nc                     t        | d|      S )Nr!  r  )r   defaults     r   r   z9TestGetattrBuiltin.test_getattr_with_default.<locals>.foo  s    14g>>r   r
  )N   r  )r   r   r  rb  )r  r   r   r!   s       r   test_getattr_with_defaultz,TestGetattrBuiltin.test_getattr_with_default  sQ     
	? 
	? -/HIDAq##C1Is{{1a/@A J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   rN   r  z(argument 'name' must be a literal stringr  r  s       r   test_getattr_non_literal_strz/TestGetattrBuiltin.test_getattr_non_literal_str  sd    		. 
	. v112f: 3 9c3v//01	 32s   
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 )NrN   r!  )r  r   rY  )	hash_funcr2  s    r   r   zGTestGetattrBuiltin.test_getattr_no_optional_type_generated.<locals>.foo  s%    
,B ,.I;r   r  )r  r   r2  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  r  r&  r+  r/  r5  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  r!  hasattrr   s    r   r   z,TestHasattrBuiltin.test_hasattr.<locals>.foo  s    1j)716L+MMMr   rN   r  r  rQ   ABC)r   r
   r   r   r   r  r   r  r   rY  r  rb  )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 )NrP   r  __str__rN   r:  )predr	  s     r   r   z;TestHasattrBuiltin.test_hasattr_non_const_attr.<locals>.foo  s    ax! Atr   rS   zGhasattr() cannot determine the type of variable "attr" due to a branch.)r   r]  r	   NumbaTypeErrorrz  rd   r{  r  s       r   test_hasattr_non_const_attrz.TestHasattrBuiltin.test_hasattr_non_const_attr  sc    
 
	 
	 v445F 6)c3v//01 65s   	A%%A.N)r  r  r  r>  rD  r]   r   r   r7  r7    s    	<2r   r7  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   rc   r]   r   r   r   z3TestStrAndReprBuiltin.test_str_default.<locals>.foo  s	    5Lr   r  r  s     r   test_str_defaultz&TestStrAndReprBuiltin.test_str_default  s.    		 
	 	.r   c                 n    t         d        }d}| j                   ||      |j                  |             y )Nc                     t        |       S )N)objectrc   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   rc   r   s    r   r   z<TestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.foo      q6Mr   zthis is the dummy object strc                     S r   r]   r  string_reprs    r   r  zATestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.<lambda>  s    Kr   rA  c                     fd}|S )Nc                     S r   r]   dummyrT  s    r   r	  zVTestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.ol_dummy_string.<locals>.impl  	    ""r   r]   rX  r	  rT  s     r   ol_dummy_stringzHTestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.ol_dummy_string      #Kr   __repr__c                     d }|S )Nc                      y)NzSHOULD NOT BE CALLEDr]   )rX  s    r   r	  zTTestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.ol_dummy_repr.<locals>.impl  s    -r   r]   )rX  r	  s     r   ol_dummy_reprzFTestStrAndReprBuiltin.test_str_calls_dunder_str.<locals>.ol_dummy_repr  s    .Kr   )r   make_dummy_typerA  r   rc  rb  )r  r   rL  	DummyTyperX  r[  r`  rT  s          @r   test_str_calls_dunder_strz/TestStrAndReprBuiltin.test_str_calls_dunder_str  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   rc   r   s    r   r   z>TestStrAndReprBuiltin.test_str_falls_back_to_repr.<locals>.foo  rQ  r   zthis is the dummy object reprc                     S r   r]   rS  s    r   r  zCTestStrAndReprBuiltin.test_str_falls_back_to_repr.<locals>.<lambda>      [r   r]  c                     fd}|S )Nc                     S r   r]   rW  s    r   r	  zVTestStrAndReprBuiltin.test_str_falls_back_to_repr.<locals>.ol_dummy_repr.<locals>.impl  rY  r   r]   rZ  s     r   r`  zHTestStrAndReprBuiltin.test_str_falls_back_to_repr.<locals>.ol_dummy_repr  r\  r   )r   ra  r]  r   rc  rb  )r  r   rL  rb  rX  r`  rT  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>.foo!  s    7A:r   )abcF{   r  r  s      r   	test_reprzTestStrAndReprBuiltin.test_repr   s<    		 
	 %ASVS[[^4 %r   c                     | j                         \  }        }dt        |       dfd_        t        |      fd       }t        d        }| j                   ||      |j                  |             y )Nz<object type:>c                     S r   r]   rS  s    r   r  z:TestStrAndReprBuiltin.test_repr_fallback.<locals>.<lambda>0  rg  r   c                     |j                   j                  |j                   j                              }|j                   j                  |d      S r   )pyapiunserializeserialize_objectcall_function_objargs)r  objr   clazobjrL  s       r   	box_dummyz;TestStrAndReprBuiltin.test_repr_fallback.<locals>.box_dummy2  s=    gg))!''*B*B5*IJG7700"==r   c                     t        |       S r   rc   r   s    r   r   z5TestStrAndReprBuiltin.test_repr_fallback.<locals>.foo7  rQ  r   )ra  r   r]  r   r   rc  rb  )r  rb  rX  r{  r   rL  rT  s        @@r   test_repr_fallbackz(TestStrAndReprBuiltin.test_repr_fallback(  s    
  //1y%fUm_A60	Y	> 
	> 
	 
	 	US[[%78r   N)	r  r  r  rI  rN  rc  rj  rp  r}  r]   r   r   rF  rF    s     /9929&59r   rF  __main__ra  )]r2  r   sysr   collectionsr   numpyr   unittestwarningsnumbar   r   r   r   
numba.corer	   r
   r   numba.tests.supportr   r   r   r   numba.core.extendingr   r   rx  r,  r  r   r"   r&   r)   r,   r/   r;   r>   r@   rD   rG   rW   rZ   r^   ra   re   rk   rp   rs   rv   rz   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  r7  rF  r  mainr]   r   r   <module>r     s     
  "    * * , ,2 2 5 d#"E2 $' "
,$
,&
n$8 n$b9X 9Bm,H m,`]6( ]6@!2( !2HZ9OX Z9| zHMMO r   