3
d                 @   sb   d dl Z d dlmZmZmZmZ d dlmZmZ edk	rHG dd deZ	eG dd de j
ZdS )    N)ArrayBool	HasTraits
TraitError)numpyrequires_numpyc               @   s"   e Zd Ze ZedZdd ZdS )FooFc             C   s
   d| _ d S )NT)event_fired)self r   9/tmp/pip-build-7vycvbft/traits/traits/tests/test_array.py
_a_changed   s    zFoo._a_changedN)__name__
__module____qualname__r   ar   r	   r   r   r   r   r   r      s   r   c               @   s    e Zd ZdZdd Zdd ZdS )ArrayTestCasez" Test cases for delegated traits. c             C   sF   t  }tjdt|_d|_tj|jtjdgf|_| j|jd dS )z` Test that an event fires when an Array trait changes from zero to
        one element.
           Fd   TN)r   )	r   r   zerosfloatr   r	   ZconcatenatearrayZassertEqual)r
   fr   r   r   test_zero_to_one_element    s
    z&ArrayTestCase.test_zero_to_one_elementc          	   C   sh   G dd dt }tjdgdd}tjdgdd}| }||_||_||_| jt ||_W d Q R X d S )Nc               @   s"   e Zd ZeddZedddZdS )z,ArrayTestCase.test_safe_casting.<locals>.Barfloat32)dtypesafe)r   ZcastingN)r   r   r   r   
unsafe_f32safe_f32r   r   r   r   Bar0   s   
r      Zfloat64)r   r   )r   r   r   r   r   ZassertRaisesr   )r
   r   Zf64Zf32br   r   r   test_safe_casting/   s    zArrayTestCase.test_safe_castingN)r   r   r   __doc__r   r"   r   r   r   r   r      s   r   )ZunittestZ
traits.apir   r   r   r   Z$traits.testing.optional_dependenciesr   r   r   ZTestCaser   r   r   r   r   <module>   s   