3
dX  ใ               @   s   d Z ddlZddlZddlZddlmZmZmZmZm	Z	 ddl
mZmZ G dd deZG dd deZG d	d
 d
eZG dd dejZdS )z 
Tests for the Int trait type.

้    N)ฺEitherฺ	HasTraitsฺIntฺCIntฺ
TraitError)ฺnumpyฺrequires_numpyc               @   s   e Zd ZeZeZedeZdS )ฺAN)	ฺ__name__ฺ
__module__ฺ__qualname__r   ฺintegralr   ฺconvertibler   ฺconvertible_or_noneฉ r   r   ๚;/tmp/pip-build-7vycvbft/traits/traits/tests/test_integer.pyr	      s   r	   c               @   s   e Zd Zdd ZdS )ฺIntegerLikec             C   s   dS )N้*   r   )ฺselfr   r   r   ฺ	__index__!   s    zIntegerLike.__index__N)r
   r   r   r   r   r   r   r   r       s   r   c               @   s   e Zd Zdd ZdS )ฺTruncatablec             C   s   dS )Nr   r   )r   r   r   r   ฺ__int__&   s    zTruncatable.__int__N)r
   r   r   r   r   r   r   r   r   %   s   r   c               @   s`   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
edd Zdd ZdS )ฺTestIntc             C   s*   t  }| j|jd | jt|jt d S )Nr   )r	   ฺassertEqualr   ฺassertIsฺtypeฺint)r   ฺar   r   r   ฺtest_default+   s    zTestInt.test_defaultc             C   s0   t  }d|_| j|jd | jt|jt d S )N้   )r	   r   r   r   r   r   )r   r   r   r   r   ฺtest_accepts_int0   s    zTestInt.test_accepts_intc             C   s   t j}t }||_| j|j| | jt|jt |d |_| j|j|d  | jt|jt dd d |_| j|jdd d  | jt|jt d S )N้   ้   i   )ฺsysฺmaxsizer	   r   r   r   r   r   )r   Z
size_limitr   r   r   r   ฺtest_accepts_large_integer6   s    
z"TestInt.test_accepts_large_integerc             C   s0   t  }d|_| j|jd | jt|jt d S )NTr!   )r	   r   r   r   r   r   )r   r   r   r   r   ฺtest_accepts_boolE   s    zTestInt.test_accepts_boolc             C   s2   t  }t |_| j|jd | jt|jt d S )Nr   )r	   r   r   r   r   r   r   )r   r   r   r   r   ฺtest_respects_dunder_indexK   s    z"TestInt.test_respects_dunder_indexc          	   C   s(   t  }| jt t |_W d Q R X d S )N)r	   ฺassertRaisesr   r   r   )r   r   r   r   r   ฺtest_rejects_dunder_intQ   s    zTestInt.test_rejects_dunder_intc             C   sH   t  }| jt d|_W d Q R X | jt tjd|_W d Q R X d S )Ng      7@r   )r	   r(   r   r   ฺdecimalฺDecimal)r   r   r   r   r   ฺ!test_rejects_floating_point_typesV   s
    z)TestInt.test_rejects_floating_point_typesc          	   C   s&   t  }| jt d|_W d Q R X d S )NZ23)r	   r(   r   r   )r   r   r   r   r   ฺtest_rejects_string]   s    zTestInt.test_rejects_stringc             C   sฆ   t  }tjd|_| j|jd | jt|jt tjd|_| j|jd | jt|jt | j	t
 tjd|_W d Q R X | j	t
 tjd|_W d Q R X d S )	Nr   r"   ้?   g      @l            l           l            l           )r	   r   Zint32r   r   r   r   r   Zuint64r(   r   Zfloat32Zfloat64)r   r   r   r   r   ฺtest_numpy_typesb   s    zTestInt.test_numpy_typesc             C   sV   t  }d|_| jt|jt | j|jd d|_| jt|jt | j|jd d S )NTr!   )r	   r   r   r   r   r   r   )r   r   r   r   r   ฺ"test_cint_conversion_of_subclassesr   s    z*TestInt.test_cint_conversion_of_subclassesN)r
   r   r   r   r    r%   r&   r'   r)   r,   r-   r   r/   r0   r   r   r   r   r   *   s   r   )ฺ__doc__r*   r#   ZunittestZ
traits.apir   r   r   r   r   Z$traits.testing.optional_dependenciesr   r   r	   ฺobjectr   r   ZTestCaser   r   r   r   r   ฺ<module>   s   