ó
àÆ÷Xc           @` s|   d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l Z d  d l m Z m	 Z	 d „  Z
 d e j f d „  ƒ  YZ d S(   i    (   t   absolute_importt   print_functiont   divisionN(   t   hash_from_ndarrayt   shape_of_variablesc          C` sM  g  }  t  j j d d ƒ } xd d d d d t  j d ƒ t  j d ƒ t  j d ƒ t  j d ƒ t  j d ƒ j d d ƒ t  j d ƒ j d d ƒ j t  j d d	 d
 ƒt  j d d	 d ƒ| | d | d  | d d !| d  d  d … | d  d  d … g D]( } t  j | ƒ } |  j t	 | ƒ ƒ qó Wt
 t |  ƒ ƒ t
 |  ƒ k sCt ‚ t	 | d ƒ t	 | d j ƒ  ƒ k sot ‚ t	 | d d !ƒ t	 | d d !j ƒ  ƒ k s¡t ‚ t	 | d  ƒ t	 | d  j ƒ  ƒ k sÍt ‚ t	 | d  d  d … ƒ t	 | d  d  d … j ƒ  ƒ k st ‚ t	 | d  d  d … ƒ t	 | d  d  d … j ƒ  ƒ k sIt ‚ d  S(   Ni   iþÿÿÿiÿÿÿÿi    i   i   i   i   t   dtypet   uint32t   int32i   i   (   i   i   (   i   i   (   i   i    (   i   i    (   i   i   (   i   i   (   t   numpyt   randomt   randt   zerost   aranget   reshapet   Tt   asarrayt   appendR   t   lent   sett   AssertionErrort   copy(   t   hashst   rngt   data(    (    s>   /tmp/pip-build-X4mzal/theano/theano/tensor/tests/test_utils.pyt   test_hash_from_ndarray
   s"    *E$,2,>t   Tshape_of_variablesc           B` s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C` sþ   t  j j d ƒ } | | } t  j | g | g d t ƒ} t | i d | 6ƒ } | i d | 6d | 6k sp t ‚ t  j j d ƒ } t  j j | | j ƒ } t  j | g | g d t ƒ} t | i d | 6ƒ } | | d	 k sä t ‚ | | d
 k sú t ‚ d  S(   Nt   xt   clonei   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (	   t   theanot   tensort   matrixt   FunctionGrapht   FalseR   R   t   dotR   (   t   selfR   t   yt   fgrapht   shapes(    (    s>   /tmp/pip-build-X4mzal/theano/theano/tensor/tests/test_utils.pyt   test_simple)   s    
 c         C` sj   t  j j d ƒ } | d } t  j | g | g d t ƒ} t | i d | 6ƒ } | | d k sf t ‚ d  S(   NR   i   R   i
   i	   (   i
   i
   (   i	   i
   (   R   R   R   R   R    R   R   (   R"   R   t   subxR$   R%   (    (    s>   /tmp/pip-build-X4mzal/theano/theano/tensor/tests/test_utils.pyt   test_subtensor7   s
    
c         C` sU   t  j j d ƒ } | d } t  j | g | g ƒ } |  j t t | i d | 6ƒ d  S(   NR   i   i
   (   i
   i
   (   R   R   R   R   t   assertRaisest
   ValueErrorR   (   R"   R   R'   R$   (    (    s>   /tmp/pip-build-X4mzal/theano/theano/tensor/tests/test_utils.pyt   test_err>   s    
(   t   __name__t
   __module__R&   R(   R+   (    (    (    s>   /tmp/pip-build-X4mzal/theano/theano/tensor/tests/test_utils.pyR   (   s   		(   t
   __future__R    R   R   t   unittestR   R   t   theano.tensor.utilsR   R   R   t   TestCaseR   (    (    (    s>   /tmp/pip-build-X4mzal/theano/theano/tensor/tests/test_utils.pyt   <module>   s   	