B
     \                 @   s   d dl mZ d dlZd dlZd dlmZmZ ddlm	Z	m
Z
 dZdd Zdd	 Zd
d Zdd Zdd Zdd ZG dd de	Zedkre  dS )    N)jitutils   )TestCasetagl    c               C   s   t S )N)
max_uint64 r   r   8lib/python3.7/site-packages/numba/tests/test_intwidth.pyusecase_uint64_global   s    r
   c               C   s   dS )Nl    r   r   r   r   r	   usecase_uint64_constant   s    r   c               C   s
   t ddS )Nl    l    )maxr   r   r   r	   usecase_uint64_func   s    r   c               C   s   dS )Nl    r   r   r   r   r	   usecase_int64_pos   s    r   c               C   s   dS )Nl         r   r   r   r   r	   usecase_int64_neg   s    r   c               C   s   t ddtdd S )Nl    l         )r   minr   r   r   r	   usecase_int64_func   s    r   c               @   st   e Zd Zdd ZdddZdd Zddd	Zed
dd ZdddZ	dd Z
dd Zed
dddZdd ZdS )IntWidthTestc             K   s"   t f ||}| | |  d S )N)r   ZassertPreciseEqual)selfpyfunckwargsZcfuncr   r   r	   check_nullary_func"   s    zIntWidthTest.check_nullary_funcFc             C   s   t }| j||d d S )N)nopython)r
   r   )r   r   r   r   r   r	   test_global_uint64&   s    zIntWidthTest.test_global_uint64c             C   s   | j dd d S )NT)r   )r   )r   r   r   r	   test_global_uint64_npm*   s    z#IntWidthTest.test_global_uint64_npmc             C   s   t }| j||d d S )N)r   )r   r   )r   r   r   r   r   r	   test_constant_uint64-   s    z!IntWidthTest.test_constant_uint64Z	importantc             C   s   | j dd d S )NT)r   )r   )r   r   r   r	   test_constant_uint64_npm1   s    z%IntWidthTest.test_constant_uint64_npmc             C   s   t }| j||d d S )N)r   )r   r   )r   r   r   r   r   r	   "test_constant_uint64_function_call5   s    z/IntWidthTest.test_constant_uint64_function_callc             C   s   | j dd d S )NT)r   )r   )r   r   r   r	   &test_constant_uint64_function_call_npm9   s    z3IntWidthTest.test_constant_uint64_function_call_npmc             C   s*  t j}| |dd | |dd | |dd | |dd | |dd | |dd | |d	d
 | |dd | |dd
 | |dd | |dd | |dd | |dd | |dd | |dd | |dd t jdk r&| |tdd d S )N      i      i   i   	   i ii   i  i   l            l    l    @   l            A   )   r   )r   
bit_lengthZassertEqualZ	PYVERSIONZlong)r   fr   r   r	   test_bit_length<   s&    zIntWidthTest.test_bit_lengthc             C   s.   | j t|d | j t|d | j t|d d S )N)r   )r   r   r   r   )r   r   r   r   r	   test_constant_int64Q   s    z IntWidthTest.test_constant_int64c             C   s   | j dd d S )NT)r   )r-   )r   r   r   r	   test_constant_int64_npmW   s    z$IntWidthTest.test_constant_int64_npmN)F)F)F)F)__name__
__module____qualname__r   r   r   r   r   r   r   r   r,   r-   r.   r   r   r   r	   r       s   


r   __main__)Znumba.unittest_supportZunittest_supportZunittestZmathsysZnumbar   r   Zsupportr   r   r   r
   r   r   r   r   r   r   r/   mainr   r   r   r	   <module>   s   ;