σ
ίΘ[c           @` s   d  d l  m Z m Z m Z m Z d  d l Z d  d l Z d d l m	 Z
 m Z d d l m Z d   Z d   Z d   Z d S(	   i    (   t   absolute_importt   unicode_literalst   divisiont   print_functionNi   (   t   ExpressionTreet   ellipse_extent(   t	   Ellipse2Dc          C` s}   t  d t  d  t  d   }  t  d |  |   } g  | j   D] } | j ^ q= } | d d d d d d d g k sy t  d S(   uΓ   
    Regression test for a bug in `ExpressionTree.traverse_postorder`
    where given an expression like ``(1 + 2) + (1 + 2)`` where the two proper
    subtrees are actually the same object.
    u   +i   i   N(   t   ETt   traverse_postordert   valuet   AssertionError(   t   subtreet   treet   nt	   traversal(    (    s@   lib/python2.7/site-packages/astropy/modeling/tests/test_utils.pyt*   test_traverse_postorder_duplicate_subtrees   s    "c          ` s7  i t  j d 6t  j d 6t  j d 6t  j d 6t  j d 6  t d t d  t d t d  t d t d  t d t d	  t d t d
  t d           f d   }   j    d d d k sΣ t  |  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 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 d
  |  d d d  d S(.   u8   Test evaluating a subexpression from an expression tree.u   +u   -u   *u   /u   **g      π?g       @g      @g      @g      @g      @c         ` s1   t  j  j   d |  d | |  s- t  d  S(   Nt   startt   stop(   t   npt   allcloset   evaluateR
   (   R   R   t   expected(   t	   operatorsR   (    s@   lib/python2.7/site-packages/astropy/modeling/tests/test_utils.pyt
   test_slice(   s    i    i   i   i   i   i   i   Ng      @g      (@g    Ξ@g      @g      (@g333333@g      @g      (@g      @g        g      @g      (@g    Ξ@g      (@g333333@g      (@g      πΏg      (@g    Ξ@g      (@g333333@g      (@g    Ξ@gι?g    Ξ@(	   t   operatort   addt   subt   mult   truedivt   powR   R   R
   (   R   (    (   R   R   s@   lib/python2.7/site-packages/astropy/modeling/tests/test_utils.pyt    test_tree_evaluate_subexpression   s6    !*#c          C` st  d }  t  j |   } \ } } d } d } d } d } d } t  j d }	 t | | | | | |	  }
 t | | |	  \ } } | | | | f | | | | f f } | |
 _ |
 j d |  } |
 | |  } t  j j | | d d	 d
 d t  j	 |  j
   } xj d	 d g D]\ } | j d |  } t  j | d | t  j | d	 k  d	 d	  } | d k  st  qWd  S(   Nid   i   i2   i   i
   i   t   coordst   atoli    t   rtolt   axisi   (   id   id   (   R   t   indicest   piR   R   t   bounding_boxt   rendert   testingt   assert_allcloset   arrayt   flattent   sumt   abst   whereR
   (   t   imshapeR   t   yt   xt	   amplitudet   x0t   y0t   at   bt   thetat   modelt   dxt   dyt   limitst   actualR   t   it   st   diff(    (    s@   lib/python2.7/site-packages/astropy/modeling/tests/test_utils.pyt   test_ellipse_extentH   s(    (	2(   t
   __future__R    R   R   R   R   t   numpyR   t   utilsR   R   R   t   modelsR   R   R   R?   (    (    (    s@   lib/python2.7/site-packages/astropy/modeling/tests/test_utils.pyt   <module>   s   "		+