3
de                 @   sr   d dl Z d dlmZmZmZmZmZ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 )    N)	HasTraitsIntListRangeStr
TraitErrorTuplec               @   s&   e Zd ZeddZeZeZdd Z	dS )WithFloatRangeg        g      Y@c             C   sD   |  j d7  _ t| j| _| jd dkr@|  jd| jd  7  _d S )N   
   r   )_changed_handler_callsstrrr_copied_on_change)selfoldnew r   9/tmp/pip-build-7vycvbft/traits/traits/tests/test_range.py
_r_changed   s    zWithFloatRange._r_changedN)
__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   r   r	      s   
r	   c               @   s&   e Zd ZeddZeZeZdd Z	dS )WithLargeIntRanger   i  c             C   s.   |  j d7  _ t| j| _| jdkr*d| _d S )Nr
   d   r   )r   r   r   r   )r   r   r   r   r   r   r   $   s    
zWithLargeIntRange._r_changedN)
r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s   
r   c               @   s<   e Zd ZedZedZedZedddddZd	d
 Z	dS )WithDynamicRanger   r      valuelowhighT)r   r   r   Zexclude_highc             C   s   |  j d7  _ d S )Nr
   )r   )r   r   r   r   r   r   r   3   s    zWithDynamicRange._r_changedN)
r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ,   s
   r   c               @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )RangeTestCasec             C   sL   t  }d|_d|_| jd|j d|_d|_| j|jd | j|jd d S )Nr   r   r
   gHzGA@   (   )r	   r   r   assertEqual)r   objr   r   r   test_non_ui_events8   s    z RangeTestCase.test_non_ui_eventsc             C   sv   t  }d|_d|_| j|jd | j|jd d|_| j|jd | j|jd d|_| j|jd | j|jd d S )Nr   r   r
   r   r!   e      )r   r   r   r#   )r   r$   r   r   r   test_non_ui_int_eventsE   s    z$RangeTestCase.test_non_ui_int_eventsc          
   C   s^   t  }d|_d|_| j|jd | j|jd | jt |j|_W d Q R X | j|jd d S )Nr      r
   )r   r   r   r#   assertRaisesr   r   )r   r$   r   r   r   test_dynamic_eventsX   s    z!RangeTestCase.test_dynamic_eventsc          	   C   sP   G dd dt }|ddd}d
|_| j|jd | jt d|_W d Q R X d S )Nc               @   s*   e Zd Ze Ze ZeedddeZ	dS )zBRangeTestCase.test_dynamic_range_in_tuple.<locals>.HasRangeInTupler   r   )r   r   N)
r   r   r   r   r   r   r   r   r   hours_and_namer   r   r   r   HasRangeInTupleg   s   r-   r   0   )r   r   r"   fred2   george)r"   r/   )r"   r/   )r0   r1   )r   r,   r#   r*   r   )r   r-   modelr   r   r   test_dynamic_range_in_tuplee   s    z)RangeTestCase.test_dynamic_range_in_tuplec             C   sR   G dd dt }|ddd}ddddg|_| jt d	dddg|_W d Q R X d S )
Nc               @   s(   e Zd Ze Ze ZeedddZdS )z@RangeTestCase.test_dynamic_range_in_list.<locals>.HasRangeInListr   r   )r   r   N)	r   r   r   r   r   r   r   r   digit_sequencer   r   r   r   HasRangeInListu   s   r5   r
   )r   r   r   r!   r6   r6   )r   r4   r*   r   )r   r5   r2   r   r   r   test_dynamic_range_in_lists   s
    	z(RangeTestCase.test_dynamic_range_in_listN)r   r   r   r%   r(   r+   r3   r7   r   r   r   r   r    7   s
   r    )ZunittestZ
traits.apir   r   r   r   r   r   r   r	   r   r   ZTestCaser    r   r   r   r   <module>   s
   $