
[c           @` s  d  d l  m Z m Z m Z m Z d  d l Z d  d l Z d  d l Z d  d l	 m
 Z
 d  d l m Z d d l m Z d d l m Z d d l m Z d d	 l m Z d
 d l m Z y d  d l m Z e Z Wn e k
 r e Z n Xd e f d     YZ e j j d  d e f d     Y Z  d e f d     YZ! d   Z" d   Z# d   Z$ d   Z% d   Z& d   Z' d   Z( d   Z) d   Z* d   Z+ e j j d  d    Z, e j j d  d    Z- e j j d  d     Z. e j j d  d!    Z/ d S("   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsN(   t   assert_allclose(   t   RandomStatei   (   t   Fittable1DModel(   t	   Parameter(   t   models(   t   fittingi   (   t   ignore_non_integer_warning(   t   optimizet   TestNonLinearConstraintsc           B` s}   e  Z d    Z e j j d  d    Z e j j d  d    Z e j j d  d    Z e j j d  d    Z	 RS(   c         C` s   t  j d d d d |  _ t  j d d d d |  _ t j d d d  |  _ |  j |  j  |  _ |  j |  j  |  _ t	 d	  } | j
 d
  |  _ |  j d |  j |  _ |  j d |  j |  _ d  S(   Ni
   g-@t   stddevg333333?i   g?i   g?iIid   i   (   R   t
   Gaussian1Dt   g1t   g2t   npt   aranget   xt   y1t   y2R   t   randnt   nt   ny1t   ny2(   t   selft   rsn(    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   setup_class   s    u   not HAS_SCIPYc      
   C` sh   t  j d d d d d d i t d 6} t j   } | | |  j |  j  } | j j d k sd t	  d  S(   Ni
   t   meang-@R   g333333?t   fixedu	   amplitude(
   R   R   t   TrueR	   t   LevMarLSQFitterR   R   t	   amplitudet   valuet   AssertionError(   R   R   t   fittert   model(    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_fixed_par(   s
    c      
   C` sy   d   } t  j d d d d d d i | d 6} t j   } | | |  j |  j  } t | j j d	 | j	 d
 d d  S(   Nc         S` s   d |  j  } | S(   Ni2   (   R   (   R%   R   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   tied3   s    i
   R   g-@R   g333333?R'   u   meani2   t   rtoligh㈵>(
   R   R   R	   R    R   R   R   R   R"   R   (   R   R'   R   R$   R%   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_tied_par0   s    	(c         ` sy  t  j d d d d } t  j d d d d } t j | | g i d g | 6d g | 6d g  } t j d d	 d
  } | |  } | |  } t j j d  } | d | } | d | }	 | | | | |	  d d g }
 d d g } d } t j | |
 | f } d       f d   } t	 j
 | | d | | | |	 f \ } } t | j | d d t | j j | j j  d  S(   Ni
   g-@R   g333333?i   g?u	   amplitudeg#@i   g?id   i   c         S` s-   |  t  j d | d d | | d d  S(   Ng      i   i   i    (   R   t   exp(   t   At   pR   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt	   compmodelN   s    c         ` sM   t  j t  j   |  d |  d d !|  |   |  d |  d |  | f  S(   Ni    i   i   (   R   t   ravelt   r_(   R,   t   x1R   t   x2R   (   R-   (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   errfQ   s    $t   argsR(   igh㈵>(   R   R   R	   t   JointFitterR   R   t   randomR   R/   R   t   leastsqR   t	   fitparamsR!   R"   (   R   R   R   t   jfR   R   R   R   R   R   t   p1t   p2R+   R,   R2   R7   t   _(    (   R-   sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_joint_fitter<   s(    	*c         ` s   t  j d d d d } d       f d   } d d d g } | |  j  } t j j d  } | | } t j | | d |  j | f \ } } t j	   }	 |	 | |  j |  }
 t
 |
 j | d	 d
 d d  S(   Ng#@g      -@R   g333333?c         S` s1   |  d t  j d |  d d | |  d d  S(   Ni    g      i   i   (   R   R*   (   R,   R   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   func^   s    c         ` s     |  |  | S(   N(    (   R,   R   t   y(   R=   (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyR2   a   s    id   R3   R(   i   i
   igMbP?(   R   R   R   R   R5   R   R   R6   R	   R    R   t
   parameters(   R   R   R2   t   p0R>   R   t   nyt   fitpart   sR$   R%   (    (   R=   sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_no_constraintsZ   s    	
'(
   t   __name__t
   __module__R   t   pytestt   markt   skipifR&   R)   R<   RD   (    (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyR      s
   	u   not HAS_SCIPYt
   TestBoundsc           B` s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c      z   C` s  d } d } t  j d d d  |  _ | |  j | t  j j d d d d  |  _ t  j 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/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI d> d dJ dK d- dL dM dN dO dP dQ dR dS dJ dT dU dV dW dX dY dZ d[ d d[ d\ d] d^ d_ d` da db dc dd de df d3 dg d' dh di dj dk dl dm dn do dp dq dq dr ds d@ d' dt du gy  } | j dv dv  |  _ d  S(w   Ng       g      ?g      g      ?id   t   scaleg?t   sizeg     @g     `@g     @g     @g     @g     H@g     @g      @g     |@g     P}@g     z@g     0@g     `@g     @g     @g     Ј@g     H@g     @g     @g     @g     }@g     `|@g     @g     @g     <@g     @g     (@g     0@g     @g     @g     p~@g     P|@g     x@g     `@g     @g     @g     $@g     D@g     ԗ@g     @g     @g     @g      }@g     @g     0@g     @g     @g     ܤ@g     Σ@g     X@g     @g     @g     @g     @g     }@g     ȁ@g     @g     @g     f@g     r@g     @g     ؛@g     @g     @g     @g     @g     đ@g     ڦ@g     @g     ؝@g     8@g     @g     @g     |@g     `~@g     @g     @g     @g     L@g      @g     p@g     ؄@g      ~@g     @g     @g     @g     @g     $@g     D@g     (@g     @g      z@g     |@g     0{@g     @g     @g     @g     P@g     0@g     }@g     @g     {@g      z@g     p{@g     }@g     ~@g     X@g     {@g     z@i   (	   R   t   linspaceR   R5   t   normalR>   t   arrayt   reshapet   data(   R   R+   t   BRQ   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyR   q   s"    -$!'c   	      C` s   d } d } i d d 6d d 6} t  j | | d	 | } t j   } | | |  j |  j  } | j j } | j j } | d | d d k s t	  | d | d d k s t	  | d | d d k s t	  | d | d d k s t	  d  S(   Ng?g        g      g      @u   slopeg      g      ?u	   interceptt   boundsi
   ii    i   (   g      g      @(   g      g      ?gh㈵>gh㈵>gh㈵>gh㈵>(
   R   t   Linear1DR	   R    R   R>   t   slopeR"   t	   interceptR#   (	   R   t   guess_slopet   guess_interceptRS   t
   line_modelR$   R%   RU   RV   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_bounds_lsq   s    	c   	      C` s   d } d } i d d 6d d 6} t  j | | d	 | } t j   } t    | | |  j |  j  } Wd  QX| j j } | j	 j } | d | d d k s t
  | d | d d k s t
  | d | d d k s t
  | d | d d k s t
  d  S(   Ng?g        g      g      @u   slopeg      g      ?u	   interceptRS   i
   ii    i   (   g      g      @(   g      g      ?gh㈵>gh㈵>gh㈵>gh㈵>(   R   RT   R	   t   SLSQPLSQFitterR
   R   R>   RU   R"   RV   R#   (	   R   RW   RX   RS   RY   R$   R%   RU   RV   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_bounds_slsqp   s    	
c         C` s  t  j t  j d  t  j d   \ } } i d d g d 6d d g d 6d d g d 6d d g d	 6} t j d
 d d d d d d d d d d d d |  } t j   } | | | | |  j  } | j j	 } | j
 j	 } | j j	 }	 | j j	 }
 | d | d d k st  | d | d d k s*t  | d | d d k sHt  | d | d d k sft  |	 d | d d k st  |	 d | d d k st  |
 d | d	 d k st  |
 d  | d	 d k st  d  S(!   Ni   g        g      &@u   x_meanu   y_meang      ?i   u   x_stddevu   y_stddevR!   g      $@t   x_meang      @t   y_meant   x_stddevg      @t   y_stddevt   thetag      ?RS   i
   ii    i   gh㈵>gh㈵>gh㈵>gh㈵>gh㈵>gh㈵>gh㈵>gh㈵>(   R   t   meshgridR   R   t
   Gaussian2DR	   R    RQ   R]   R"   R^   R_   R`   R#   (   R   t   Xt   YRS   t   gausst	   gauss_fitR%   R]   R^   R_   R`   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_bounds_gauss2d_lsq   s,    *	c         C` s  t  j t  j d  t  j d   \ } } i d d g d 6d d g d 6d d g d 6d d g d	 6} t j d
 d d d d d d d d d d d d |  } t j   } t    | | | | |  j  } Wd  QX| j	 j
 } | j j
 } | j j
 }	 | j j
 }
 | d | d d k st  | d | d d k s:t  | d | d d k sXt  | d | d d k svt  |	 d | d d k st  |	 d | d d k st  |
 d | d	 d k st  |
 d  | d	 d k st  d  S(!   Ni   g        g      &@u   x_meanu   y_meang      ?i   u   x_stddevu   y_stddevR!   g      $@R]   g      @R^   R_   g      @R`   Ra   g      ?RS   i
   ii    i   gh㈵>gh㈵>gh㈵>gh㈵>gh㈵>gh㈵>gh㈵>gh㈵>(   R   Rb   R   R   Rc   R	   R[   R
   RQ   R]   R"   R^   R_   R`   R#   (   R   Rd   Re   RS   Rf   Rg   R%   R]   R^   R_   R`   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_bounds_gauss2d_slsqp   s.    *	
(   RE   RF   R   RZ   R\   Rh   Ri   (    (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyRJ   n   s
   				t   TestLinearConstraintsc           B` s   e  Z d    Z d   Z RS(   c         C` s   t  j d  |  _ d |  j _ d |  j _ d d g |  j _ t j d  |  _ |  j |  j  |  _	 t
 d  } | j d  |  _ |  j	 |  j |  _ d  S(   Ni   i    g        g      "@i
   iI(   R   t   Polynomial1DR9   t   c0t   c1t   windowR   R   R   R>   R   R   R   RA   (   R   R   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyR      s    c         C` sb   t  |  j j _ t  |  j j _ t j   } | |  j |  j |  j  } t	 |  j | |  j   d  S(   N(
   R   R9   Rl   R   Rm   R	   t   LinearLSQFitterR   R>   R   (   R   t   pfitR%   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test   s
    (   RE   RF   R   Rq   (    (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyRj      s   	c          C` sX   t  j d d d d d d  }  t |  j _ |  j i t d 6t d 6t d	 6k sT t  d  S(
   NR!   i   R   i   R   i   u	   amplitudeu   meanu   stddev(   R   R   R   R   R   t   FalseR#   (   Rf   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_set_fixed_1   s    c          C` sG   t  j d d d d d d d i t d 6 }  |  j j t k sC t  d  S(	   NR!   i   R   i   R   i   R   u   mean(   R   R   R   R   R   R#   (   Rf   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_set_fixed_2   s    c          C` sn   d   }  t  j d d d d d d  } |  | j _ | j j t k	 sK t  t | j d t j  sj t  d  S(	   Nc         S` s   d |  j  S(   Ni2   (   R   (   R%   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   tie_amplitude   s    R!   i   R   i   R   i   u	   amplitude(	   R   R   R!   R'   Rr   R#   t
   isinstancet   typest   FunctionType(   Ru   Rf   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_set_tied_1   s
    	c          C` sJ   d   }  t  j d d d d d d d i |  d	 6 } | j j sF t  d  S(
   Nc         S` s   d |  j  S(   Ni2   (   R   (   R%   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyRu     s    R!   i   R   i   R   i   R'   u	   amplitude(   R   R   R!   R'   R#   (   Ru   Rf   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_set_tied_2  s    	c          C` se   t  j d d d d d d d i t d 6 }  t |  j _ |  j i t d	 6t d 6t d
 6k sa t  d  S(   NR!   i   R   i   R   i   R   u   meanu	   amplitudeu   stddev(   R   R   R   Rr   R   R   R#   (   Rf   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_unset_fixed  s    c          C` sn   d   }  t  j d d d d d d d i |  d	 6 } t | j _ | j i t d	 6t d
 6t d 6k sj t  d  S(   Nc         S` s   d |  j  S(   Ni2   (   R   (   R%   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyRu     s    R!   i   R   i   R   i   R'   u	   amplitudeu   meanu   stddev(   R   R   Rr   R!   R'   R#   (   Ru   Rf   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_unset_tied  s
    	c          C` sY   t  j d d d d d d d i d d	 6 }  |  j i d d
 6d d 6d d	 6k sU t  d  S(   NR!   i   R   i   R   i   RS   i    u   stddevu	   amplitudeu   meang        (   i    N(   NN(   NN(   g        N(   R   R   t   NoneRS   R#   (   Rf   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_set_bounds_1  s
    c          C` sX   t  j d d d d d d  }  d |  j _ |  j i d d 6d d	 6d d
 6k sT t  d  S(   NR!   i   R   i   R   i   g        u	   amplitudeu   meanu   stddev(   NN(   NN(   g        N(   R   R   R   t   minRS   R}   R#   (   Rf   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_set_bounds_2&  s
    c          C` sq   t  j d d d d d d d i d d	 6 }  d  |  j _ d  |  j _ |  j i d d
 6d d 6d d	 6k sm t  d  S(   NR!   i   R   i   R   i   RS   i    u   stddevu	   amplitudeu   mean(   i    i   (   NN(   NN(   NN(   R   R   R}   R   R   t   maxRS   R#   (   Rf   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_unset_bounds.  s    c       	   C` s  d t  f d     Y}  |  j j d k s. t  |  j j d k sF t  |  j j d k s^ t  |  j j d k sv t  |  j j t	 k s t  |    } | j j
 d k s t  | j j
 d k s t  | j j d k s t  | j j d k s t  | j j t	 k st  | j i d d 6d d 6k s2t  | j i t d 6t	 d 6k sUt  |  d d d	 i d d 6d d 6d i t	 d 6t d 6} | j j
 d k st  | j j
 d k st  | j j d k st  | j j d
 k st  | j j d k st  | j j d k st  | j j t	 k s4t  | j j t k sLt  | j i d d 6d d 6k sot  | j i t	 d 6t d 6k st  d S(   u   Regression test for https://github.com/astropy/astropy/issues/2396

    Ensure that default constraints defined on parameters are carried through
    to instances of the models those parameters are defined for.
    t   MyModelc           B` sA   e  Z e d  d  Z e d  d d d d e  Z e d    Z RS(   t   defaulti   i    R   R   c         S` s   |  | | S(   N(    (   R   t   at   b(    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   evaluateC  s    (   RE   RF   R   R   R   R   t   staticmethodR   (    (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyR   ?  s   i   i    u   au   bi   i   RS   i   R   N(   i    N(   i    N(   NN(   i    N(   i   N(   i   N(   i   N(   i   N(   i   N(   i   N(   R   R   R   R#   R   R   RS   R}   R   R   R"   Rr   (   R   t   m(    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_default_constraints8  s4    	## #c          C` s  t  j d d d d d d d i d d	 6d
 i t d 6 }  t j d d d  } t j | d d  } t j   } | |  | |  } | j d k s t	  | j d k s t	  | j
 d k s t	  t |  j
 _ | |  | |  } | j d k s t	  | j d k s
t	  d S(   u   
    Regression test for https://github.com/astropy/astropy/issues/2235

    Currently doesn't test that the fit is any *good*--just that parameters
    stay within their given constraints.
    R!   i   R   i   R   i   RS   i   u   meanR   u	   amplitudei    i
   i   g      @N(   i   i   (   R   R   R   R   RM   R*   R	   R    R   R#   R!   Rr   R   (   R   R   R>   t   ft   fitted_1t   fitted_2(    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt)   test_fit_with_fixed_and_bound_constraintse  s    	c    
      C` s2  d t  f d     Y}  |  d d d d  } t j d  } | |  } |    } t j   } | | | |  } t j | j d  s t  t j | j d  s t  |    } d | j _	 t j   } | | | |  }	 t j | j d  s t  t j | j d  st  t j
 | j d
 d k  s.t  d S(   u   
    Regression test for https://github.com/astropy/astropy/issues/2400

    Checks that bounds constraints are obeyed on a custom model that does not
    define fit_deriv (and thus its Jacobian must be estimated for non-linear
    fitting).
    R   c           B` s5   e  Z e d  d  Z e d  d  Z e d    Z RS(   R   i   i   c         S` s   | |  | S(   N(    (   R   R   R   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyR     s    (   RE   RF   R   R   R   R   R   (    (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyR     s   R   g      ?R   iid   ii   u   fjaci    N(   ii   (   R   R   R   R	   R    t   allcloseR   R#   R   RS   t   anyt   fit_info(
   R   t   m_realR   R>   R   R   R   t   m2t   f2R   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt1   test_fit_with_bound_constraints_estimate_jacobian  s     
		c       !   C` sn  d d d d d d d d d	 d
 d d d d d d d g d d d d d d d d d d d d d d d  d! d" g d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 g d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD g dE dF dG dH dI dJ dK dL dM dN dO dP dQ dR dS dT dU g dV dW dX dY dZ d[ d\ d] d^ d_ d` da db dc dd de df g dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw g dx dy dz d{ d| d} d~ d d d d d d d d d d g d d d d dK d d d d d d d d d d d d g d d d d d d d d d d d d d d d d d g d d d d d d d d d d d d d d d d d g d d d d d d d d d d d d d d d d d g d d d d d d d d d d d d d d d d d g d d d d d d d d d d d d d d d d d g d d d d d d d d d d d d d d d d d g d d ddddddddd	d
dddddg ddddddddddddddddd g g }  t  j d!d"d#d" } t j   } t j d  d$ d  d$ f \ } } | | | | |   } t | j j | j	 j g d%d&g d'd(t | j
 j d) t | j j d*d'd+t | j j d,d'd-d  S(.  Ng
ףp=*KgQ+@gfffffFAgfffff!@gQagQg     M@g(\-g̜igQ>g)\_gR^@gp=
׳Q@gQ^[gzGZgRA@g
ףp=J2@g\(_gQHVgq=
ףO@gQ^I@g
ףp=N@g(\3@glP@g\(|S@g)\H]@gp=
ka@g)\HJ@gzGm@gp=
#Y@g)\Hn@gp=
דfgq=
ף@c@g(\ gQV@gX@g(\¥]g(\eg(\]gףp=
T@gp=
׳Ug=
ףp=-@gq=
ףS@g=
ףp=@gQ~K@gGzBp@g=
ףpagQ4g33333cSgq=
ףe@gQ`@gq=
ף@@gQ@gQE@g(\Q@gHzwQ@g\(@@g     q@gQf@gGz>i@g=
ףpu@gq=
ףHu@gq=
ףxd@gףp=
cg=
ףp}5@gQbgQW@gfffffFE@gRT@g=
ףp5f@g(\:@g)\1@gHzG@gGz.?gHzv@g{Gh@g\(J@g33333Kn@gR{@gq=
ף@g@g(\a@gR@gQUg{G:2gHzd@g(\E\@gzGBg(\`@g)\Q@gQZ@gGzh@gGzq@gףp=
@gfffff>@g{G@g"@gu@gya@gGzc@gQg=
ףp:g̬B@gGzZ@gQ?@g(\?U@g(\r_g     `h@gfffff~@gQ@gGzb@g33333@gGzh@gQ@gQJy@gQ\@gףp=
[@gGz<@g33333^@gGz.Mgp=
f@g\(F@gRqD@gQ[@g)\z@gGzt@gQ@g\(@g
ףp=@gچ@gGz@g(\Vy@gfffff3gQ@g     ag
ףp=b@g=
ףp=9@g\($a@g̼UgHz.@gGzf@gGz؅@g33333'@gR볏@g{Gp@g=
ףp=@gGz|@gQ8o@g33333W@g(\D@g(\gQf@gGzg@gRA@gQ:@g)\h@gp=
Bg=
ףp@gzG@gQ@g
ףp=@g     ȅ@g)\~@g(\w@g(\u2gq=
ףpPgfffffX@gR(@gQYg33333]@g(\g@gGzt_@g33333ws@g=
ףpw@gQS@gRe|@g@g{G@g=
ףp@gHzg@gQj@gQ=k@gp=
ף@g(\u;@gGzegףp=
Tgp=
TgRKgQT@gףp=
p@g33333#q@g)\0e@gq=
ףpt@gfffff~@gGzX{@g\(,l@gGzk@g
ףp=
@gGzWgףp=
C@g\(L@gQb@gp=
Y@g{GzA@gףp=
O`@gQgfffff&G@g(\_Y@gq=
ף\@g\(,k@g(\:o@g\@gףp=
U@gp=
sZ@gGzGgzG#gRTgfffffb@g\(T@g=
ףp}7@gf@gQ[gQ\gQn@gq=
ףY@g(\o@gףp=
od@g(\BL@g)\@@gzG@g(\[gQV@gfffff&h@gQ+YgzG.@gGzU@gq=
ףp:g33333Chgףp=
W[@gq=
ף X@g)\8_gffffff0gHzU@gHz\@giPg(\BMgQ87gGzNE@gQb@g{G:jg(\[@gHzP@gfffffv]g(\wbgq=
ף^gzG%@g=
ףpF@gHz]@gp=
CGg)\RgGzRgQ85@g(\?gRU@gQ7@g(\µFg(@gQeg
ףp=;@gHzN@gGzU@g
ףp=<@gGzNG@gףp=
Zg{GZL@gfffffVg(\0g̜Pg{GagQ?g
ףp=
M@gq=
ףq@gGzNgQ"gGz6tg,M@g)\T@gGzNYg4b@R]   i   R^   i   g['Ǝ@g Six	@R(   gTqs*>g!0N%'@g(#@gƠ>gU1?g>(   R   Rc   R	   R    R   t   mgridR   R!   R"   R`   R]   R^   R_   (   Rq   t   g_initR$   R>   R   t   g_fit(    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_gaussian2d_positive_stddev  sV    !%c          C` s	  t  j d d d d d d  }  t j   } t j d d d	  } t j d d d	  } t j | |  \ } } |  | |  } t j | j  } | j	 | _	 d
 d l
 m } | d  Nt j j | j  }	 | j	 |	 _	 | |  | | | d |	 d | }
 t |
 j |  j d d | |  | | | d |	 d d  }
 t |
 j |  j d d t |  j _ | |  | | | d |	 d | }
 t |
 j |  j d d | |  | | | d |	 d d  }
 t |
 j |  j d d t  j d d d d d d d } | | |  } | | | | | d |	 d d  }
 t |
 j | j d d | | | | | d |	 d | }
 t |
 j | j d d t | j _ | | | | | d |	 d | }
 t |
 j | j d d | | | | | d |	 d d  }
 t |
 j | j d d Wd  QXd  S(   Ngffffff$@g333333@i   i   g333333?gffffff?ii   i   i   (   t   NumpyRNGContextiIt   weightsR(   g?i   t   c0_0t   c1_0t   c0_1g	@(   R   Rc   R	   R    R   RM   Rb   t   onesRL   t   shapet   utilsR   R5   R   R   R?   R}   R   R_   R   t   Polynomial2DR   (   t   gauss2dR$   Rd   Re   R   R>   t   zt   wR   R   R   R:   (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   test_2d_model  s@    ####!####(0   t
   __future__R    R   R   R   Rw   RG   t   numpyR   t   numpy.testingR   t   numpy.randomR   t   coreR   R?   R   t    R   R	   R   R
   t   scipyR   R   t	   HAS_SCIPYt   ImportErrorRr   t   objectR   RH   RI   RJ   Rj   Rs   Rt   Ry   Rz   R{   R|   R~   R   R   R   R   R   R   R   (    (    (    sF   lib/python2.7/site-packages/astropy/modeling/tests/test_constraints.pyt   <module>   sB   "

Sh			
				
			
	-,6