ó
î&]\c           @` sì  d  Z  d d l m Z m Z m Z d d l Z d d l m Z m Z m	 Z	 m
 Z
 m Z m Z m Z m Z m Z m Z m Z d d l m Z d d l m Z d d l m Z m Z m Z m Z m Z d d l m Z d d	 l m  Z  m! Z! m" Z" d
 e# f d „  ƒ  YZ$ d e# f d „  ƒ  YZ% d e% f d „  ƒ  YZ& d e% f d „  ƒ  YZ' d e# f d „  ƒ  YZ( d e# f d „  ƒ  YZ) d d9 d „  ƒ  YZ* d e* f d „  ƒ  YZ+ d e* f d „  ƒ  YZ, d e* f d „  ƒ  YZ- d e* f d „  ƒ  YZ. e+ e, e- e. g Z/ d  „  Z0 d! „  Z1 d" „  Z2 d# „  Z3 d$ „  Z4 d% „  Z5 d& „  Z6 d' „  Z7 d( e# f d) „  ƒ  YZ8 d* e8 f d+ „  ƒ  YZ9 d, e8 f d- „  ƒ  YZ: d. e8 f d/ „  ƒ  YZ; d0 e8 f d1 „  ƒ  YZ< d2 e8 f d3 „  ƒ  YZ= d4 „  Z> d5 „  Z? d6 „  Z@ d7 „  ZA d8 „  ZB d S(:   s"   
Tests for numerical integration.
i    (   t   divisiont   print_functiont   absolute_importN(   t   aranget   zerost   arrayt   dott   sqrtt   cost   sint   eyet   pit   expt   allclose(   t   _assert_warns(   t   xrange(   t   assert_t   assert_array_almost_equalt   assert_allcloset   assert_array_equalt   assert_equal(   t   raises(   t   odeintt   odet   complex_odet
   TestOdeintc           B` s   e  Z d  „  Z d „  Z RS(   c      
   ` sC  t  d ˆ  j d ƒ } t ˆ  j ˆ  j | d t ƒ\ } } t ˆ  j | | ƒ ƒ t ‡  f d †  ˆ  j | d t d t ƒ\ } } t ˆ  j | | ƒ ƒ t ˆ  d ƒ r?t ˆ  j ˆ  j | d ˆ  j	 d t ƒ\ } } t ˆ  j | | ƒ ƒ t ‡  f d †  ˆ  j | d ‡  f d	 †  d t d t ƒ\ } } t ˆ  j | | ƒ ƒ n  d  S(
   Ng        gš™™™™™©?t   full_outputc         ` s   ˆ  j  | |  ƒ S(   N(   t   f(   t   tt   y(   t   problem(    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   <lambda>$   s    t   tfirstt   jact   Dfunc         ` s   ˆ  j  | |  ƒ S(   N(   R   (   R   R   (   R   (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR   /   s    c         ` s   ˆ  j  | |  ƒ S(   N(   R!   (   R   R   (   R   (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR   0   s    (
   R   t   stop_tR   R   t   z0t   TrueR   t   verifyt   hasattrR!   (   t   selfR   R   t   zt   infodict(    (   R   sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   _do_problem   s    $c         C` s:   x3 t  D]+ } | ƒ  } | j r% q n  |  j | ƒ q Wd  S(   N(   t   PROBLEMSt   cmplxR+   (   R(   t   problem_clsR   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_odeint4   s
    		(   t   __name__t
   __module__R+   R/   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR      s   	t   TestODEClassc           B` s   e  Z d Z d  d „ Z RS(   t   adamsc   	   	   ` sX  ‡  f d †  } d  } t ˆ  d ƒ r6 ‡  f d †  } n  i  } ˆ  j d  k	 sZ ˆ  j d  k	 rw ˆ  j | d <ˆ  j | d <n  |  j | | ƒ } | j | d ˆ  j d d ˆ  j d d	 | | | j ˆ  j	 d
 d ƒ| j
 ˆ  j ƒ } t | | j ƒ t | j ƒ  ˆ  | f ƒ t | j ƒ  d k ˆ  | f ƒ t ˆ  j t | g ƒ ˆ  j ƒ ˆ  | f ƒ d  S(   Nc         ` s   ˆ  j  | |  ƒ S(   N(   R   (   R   R)   (   R   (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR   C   s    R!   c         ` s   ˆ  j  | |  ƒ S(   N(   R!   (   R   R)   (   R   (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR   F   s    t   ubandt   lbandt   atoli
   t   rtolt   methodR   g        i    (   t   NoneR'   R5   R4   t	   ode_classt   set_integratorR6   R7   t   set_initial_valueR$   t	   integrateR#   R   R   R   t
   successfult   get_return_codeR&   R   (	   R(   R   t
   integratorR8   R   R!   t   integrator_paramst   igR)   (    (   R   sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR+   @   s(    N(   R0   R1   R9   R:   R+   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR2   <   s   t   TestOdec           B` sM   e  Z e Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(   c         C` s_   xX t  D]P } | ƒ  } | j r% q n  | j sD |  j | d d ƒ n  |  j | d d ƒ q Wd  S(   Nt   vodeR3   t   bdf(   R,   R-   t   stiffR+   (   R(   R.   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt	   test_vodea   s    			c         C` sP   xI t  D]A } | ƒ  } | j s5 |  j | d d ƒ n  |  j | d d ƒ q Wd  S(   Nt   zvodeR3   RE   (   R,   RF   R+   (   R(   R.   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt
   test_zvodek   s
    		c         C` s=   x6 t  D]. } | ƒ  } | j r% q n  |  j | d ƒ q Wd  S(   Nt   lsoda(   R,   R-   R+   (   R(   R.   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt
   test_lsodas   s
    		c         C` sa   xZ t  D]R } | ƒ  } | j r% q n  | j r4 q n  t | d ƒ rI q n  |  j | d ƒ q Wd  S(   NR!   t   dopri5(   R,   R-   RF   R'   R+   (   R(   R.   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_dopri5{   s    			c         C` sa   xZ t  D]R } | ƒ  } | j r% q n  | j r4 q n  t | d ƒ rI q n  |  j | d ƒ q Wd  S(   NR!   t   dop853(   R,   R-   RF   R'   R+   (   R(   R.   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_dop853‡   s    			c         C` sª   x£ d D]› } d „  } t  | ƒ j | ƒ } | j d d ƒ t  | ƒ j | ƒ } | j d d ƒ | j | j d ƒ | j | j d ƒ t t | j | j d ƒ q Wd  S(   NRD   RH   RJ   c         S` s   d S(   Ng      ð?(    (   R   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR   •   s    i    gš™™™™™¹?(   RD   RH   RJ   (   R   R;   R<   R=   R   t   assert_raisest   RuntimeError(   R(   t   solR   t   rt   r2(    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_concurrent_fail“   s    	c         C` sº  d „  } xªt  d ƒ D]œ} x´ d D]¬ } t | ƒ j | ƒ } | j d d ƒ t | ƒ j | ƒ } | j d d ƒ | j | j d	 ƒ | j | j d	 ƒ | j | j d	 ƒ t | j d	 ƒ t | j d
 ƒ q# WxÜ d D]Ô } t | ƒ j | ƒ } | j d d ƒ t | ƒ j | ƒ } | j d d ƒ | j | j d	 ƒ | j | j d	 ƒ | j | j d	 ƒ | j | j d	 ƒ | j | j d	 ƒ t | j d ƒ t | j d
 ƒ qÚ Wq Wd  S(   Nc         S` s   d S(   Ng      ð?(    (   R   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR   £   s    i   RD   RH   RJ   RL   RN   i    gš™™™™™¹?gš™™™™™É?g333333Ó?(   RD   RH   RJ   RL   RN   (   RL   RN   (   R   R   R;   R<   R=   R   R   R   (   R(   R   t   kRR   RS   RT   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_concurrent_ok¢   s0    	(   R0   R1   R   R:   RG   RI   RK   RM   RO   RU   RW   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRC   ]   s   	
					t   TestComplexOdec           B` s2   e  Z e Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C` sP   xI t  D]A } | ƒ  } | j s5 |  j | d d ƒ q |  j | d d ƒ q Wd  S(   NRD   R3   RE   (   R,   RF   R+   (   R(   R.   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRG   É   s
    		c         C` s.   x' t  D] } | ƒ  } |  j | d ƒ q Wd  S(   NRJ   (   R,   R+   (   R(   R.   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRK   Ò   s    	c         C` sR   xK t  D]C } | ƒ  } | j r% q n  t | d ƒ r: q n  |  j | d ƒ q Wd  S(   NR!   RL   (   R,   RF   R'   R+   (   R(   R.   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRM   Ø   s    		c         C` sR   xK t  D]C } | ƒ  } | j r% q n  t | d ƒ r: q n  |  j | d ƒ q Wd  S(   NR!   RN   (   R,   RF   R'   R+   (   R(   R.   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRO   â   s    		(   R0   R1   R   R:   RG   RK   RM   RO   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRX   Å   s
   				
t
   TestSoloutc           B` s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c   	      ` sÈ   g  ‰  g  ‰ d } d } d d g } ‡  ‡ f d †  } d „  } t  | ƒ j | ƒ } | j | ƒ | j | | ƒ | j | ƒ } t ˆ d | ƒ t ˆ d | ƒ t ˆ  d | ƒ t ˆ  d | ƒ d  S(	   Ng        g      $@g      ð?g       @c         ` s$   ˆ  j  |  ƒ ˆ j  | j ƒ  ƒ d  S(   N(   t   appendt   copy(   R   R   (   t   tst   ys(    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   solout÷   s    c         S` s   | d | d | d d g S(   Ni    i   i   (    (   R   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   rhsû   s    i    iÿÿÿÿ(   R   R;   t
   set_soloutR<   R=   R   R   (	   R(   R@   t   t0t   tendt   y0R^   R_   RB   t   ret(    (   R\   R]   sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   _run_solout_testï   s    	c         C` s"   x d D] } |  j  | ƒ q Wd  S(   NRL   RN   (   RL   RN   (   Re   (   R(   R@   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_solout  s    c   	      ` sÈ   g  ‰  g  ‰ d } d } d d g } ‡  ‡ f d †  } d „  } t  | ƒ j | ƒ } | j | | ƒ | j | ƒ | j | ƒ } t ˆ d | ƒ t ˆ d | ƒ t ˆ  d | ƒ t ˆ  d | ƒ d  S(	   Ng        g      $@g      ð?g       @c         ` s$   ˆ  j  |  ƒ ˆ j  | j ƒ  ƒ d  S(   N(   RZ   R[   (   R   R   (   R\   R]   (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR^     s    c         S` s   | d | d | d d g S(   Ni    i   i   (    (   R   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR_     s    i    iÿÿÿÿ(   R   R;   R<   R`   R=   R   R   (	   R(   R@   Ra   Rb   Rc   R^   R_   RB   Rd   (    (   R\   R]   sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   _run_solout_after_initial_test  s    	c         C` s"   x d D] } |  j  | ƒ q Wd  S(   NRL   RN   (   RL   RN   (   Rg   (   R(   R@   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_solout_after_initial#  s    c         ` sæ   g  ‰ g  ‰ d } d ‰  d d g } ‡  ‡ ‡ f d †  } d „  } t  | ƒ j | ƒ } | j | ƒ | j | | ƒ | j ˆ  ƒ } t ˆ d | ƒ t ˆ d | ƒ t ˆ d | ƒ t ˆ d ˆ  d k ƒ t ˆ d ˆ  k  ƒ d  S(	   Ng        g      $@g      ð?g       @c         ` s8   ˆ j  |  ƒ ˆ j  | j ƒ  ƒ |  ˆ  d k r4 d Sd  S(   Ng       @iÿÿÿÿ(   RZ   R[   (   R   R   (   Rb   R\   R]   (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR^   /  s    c         S` s   | d | d | d d g S(   Ni    i   i   (    (   R   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR_   5  s    i    iÿÿÿÿ(   R   R;   R`   R<   R=   R   R   R   (   R(   R@   Ra   Rc   R^   R_   RB   Rd   (    (   Rb   R\   R]   sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   _run_solout_break_test'  s     	c         C` s"   x d D] } |  j  | ƒ q Wd  S(   NRL   RN   (   RL   RN   (   Ri   (   R(   R@   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_solout_breakB  s    (   R0   R1   Re   Rf   Rg   Rh   Ri   Rj   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRY   í   s   					t   TestComplexSoloutc           B` s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c   	      ` sÅ   g  ‰  g  ‰ d } d } d g } ‡  ‡ f d †  } d „  } t  | ƒ j | ƒ } | j | ƒ | j | | ƒ | j | ƒ } t ˆ d | ƒ t ˆ d | ƒ t ˆ  d | ƒ t ˆ  d | ƒ d  S(   Ng        g      4@c         ` s$   ˆ  j  |  ƒ ˆ j  | j ƒ  ƒ d  S(   N(   RZ   R[   (   R   R   (   R\   R]   (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR^   Q  s    c         S` s   d |  d d g S(   Ng      ð?g      $@y              ð?(    (   R   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR_   U  s    i    iÿÿÿÿ(   R   R;   R`   R<   R=   R   R   (	   R(   R@   Ra   Rb   Rc   R^   R_   RB   Rd   (    (   R\   R]   sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRe   I  s    		c         C` s"   x d D] } |  j  | ƒ q Wd  S(   NRL   RN   (   RL   RN   (   Re   (   R(   R@   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRf   a  s    c         ` sã   g  ‰ g  ‰ d } d ‰  d g } ‡  ‡ ‡ f d †  } d „  } t  | ƒ j | ƒ } | j | ƒ | j | | ƒ | j ˆ  ƒ } t ˆ d | ƒ t ˆ d | ƒ t ˆ d | ƒ t ˆ d ˆ  d k ƒ t ˆ d ˆ  k  ƒ d  S(   Ng        g      4@c         ` s8   ˆ j  |  ƒ ˆ j  | j ƒ  ƒ |  ˆ  d k r4 d Sd  S(   Ng       @iÿÿÿÿ(   RZ   R[   (   R   R   (   Rb   R\   R]   (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR^   m  s    c         S` s   d |  d d g S(   Ng      ð?g      $@y              ð?(    (   R   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR_   s  s    i    iÿÿÿÿg       @(   R   R;   R`   R<   R=   R   R   R   (   R(   R@   Ra   Rc   R^   R_   RB   Rd   (    (   Rb   R\   R]   sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRi   e  s     		c         C` s"   x d D] } |  j  | ƒ q Wd  S(   NRL   RN   (   RL   RN   (   Ri   (   R(   R@   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRj   €  s    (   R0   R1   Re   Rf   Ri   Rj   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRk   G  s   			t   ODEc           B` s>   e  Z d  Z e Z e Z d Z g  Z d Z	 d Z
 d Z d Z RS(   s   
    ODE problem
    i   gíµ ÷Æ°>gñhãˆµøä>N(   R0   R1   t   __doc__t   FalseRF   R-   R#   R$   R9   R5   R4   R6   R7   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRl   Š  s   t   SimpleOscillatorc           B` sG   e  Z d  Z d Z e d d g e ƒ Z d Z d Z d „  Z	 d „  Z
 RS(	   sÇ   
    Free vibration of a simple oscillator::
        m \ddot{u} + k u = 0, u(0) = u_0 \dot{u}(0) \dot{u}_0
    Solution::
        u(t) = u_0*cos(sqrt(k/m)*t)+\dot{u}_0*sin(sqrt(k/m)*t)/sqrt(k/m)
    i   g
×£p=
·?g      ð?gš™™™™™¹?g      @c         C` s;   t  d t ƒ } d | d <|  j |  j | d <t | | ƒ S(   Ni   g      ð?i    i   (   i   i   (   i    i   (   i   i    (   R   t   floatRV   t   mR   (   R(   R)   R   t   tmp(    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR   §  s    
c         C` s}   t  |  j |  j ƒ } |  j d t | | ƒ |  j d t | | ƒ | } t | | d  d  … d f d |  j d |  j ƒS(   Ni    i   R6   R7   (	   R   RV   Rq   R$   R   R	   R   R6   R7   (   R(   t   zsR   t   omegat   u(    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR&   ­  s    8gq=
×£pñ?(   R0   R1   Rm   R#   R   Rp   R$   RV   Rq   R   R&   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRo   š  s   	t
   ComplexExpc           B` sT   e  Z d  Z d e Z e d d d d d g ƒ Z e Z d „  Z	 d „  Z
 d	 „  Z RS(
   s   The equation :lm:`\dot u = i u`g®Gáz®ó?y              ð?y               @y              @y              @y              @c         C` s   d | S(   Ny              ð?(    (   R(   R)   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR   ¹  s    c         C` s   d t  d ƒ S(   Ny              ð?i   (   R
   (   R(   R)   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR!   ¼  s    c         C` s6   |  j  t d | ƒ } t | | d |  j d |  j ƒS(   Ny              ð?R6   R7   (   R$   R   R   R6   R7   (   R(   Rs   R   Ru   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR&   ¿  s    (   R0   R1   Rm   R   R#   R   R$   R%   R-   R   R!   R&   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRv   ³  s   
		t   Pic           B` s5   e  Z d  Z d Z d g Z e Z d „  Z d „  Z RS(   s'   Integrate 1/(t + 1j) from t=-10 to t=10i   i    c         C` s   t  d | d d g ƒ S(   Ng      ð?i
   y              ð?(   R   (   R(   R)   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR   Ê  s    c         C` sB   d t  j d ƒ } t | | d d  d  … f d |  j d |  j ƒS(   Ny               Ài
   iÿÿÿÿR6   R7   (   t   npt   arctanR   R6   R7   (   R(   Rs   R   Ru   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR&   Í  s    (	   R0   R1   Rm   R#   R$   R%   R-   R   R&   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRw   Ä  s   		t   CoupledDecayc           B` s_   e  Z d  Z e Z d Z d d d g Z d Z d Z d d d	 g Z	 d
 „  Z
 d „  Z d „  Z RS(   se   
    3 coupled decays suited for banded treatment
    (banded mode makes it necessary when N>>3)
    g      à?g      @g      @g      *@i   i    gÃõ(\ÂÅ?gq=
×£pÍ?gÂõ(\Ò?c         C` sf   |  j  } t j | d | d | d | d | d | d | d | d | d | d g ƒ S(   Ni    i   i   (   t   lmbdRx   R   (   R(   R)   R   R{   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR   à  s    	 c         ` s¯   ˆ j  } t j ˆ j ˆ j d d f d d ƒ‰  ‡  ‡ f d †  } | d d | d ƒ | d d | d ƒ | d d | d ƒ | d d | d ƒ | d d | d ƒ ˆ  S(   Ni   i   t   ordert   Fc         ` s   | ˆ  ˆ j  |  | | f <d  S(   N(   R4   (   t   rit   cit   val(   t   jR(   (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   set_jö  s    i    i   (   R{   Rx   R   R5   R4   (   R(   R)   R   R{   R‚   (    (   R   R(   sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR!   æ  s    	)c      	   C` sk  t  j |  j ƒ } | d | d } | d | d } | d | d } t  j | d | ƒ } t  j | d | ƒ } t  j | d | ƒ }	 t  j |  j d | |  j d | |  j d | d | | | |  j d |	 |  j d | d | | |	 | d | d |  j d | d | | |	 d | | |	 f ƒ j ƒ  }
 t |
 | d |  j d |  j	 ƒS(   Ni   i    i   R6   R7   (
   Rx   R   R{   R   t   vstackR$   t	   transposeR   R6   R7   (   R(   Rs   R   R{   t   d10t   d21t   d20t   e0t   e1t   e2Ru   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR&   ÿ  s    --0(   R0   R1   Rm   R%   RF   R#   R$   R5   R4   R{   R   R!   R&   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRz   Ò  s   		c         C` s   | d | d g } | S(   Ni   i    (    (   R   t   xt   dxdt(    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR     s    c         C` s"   t  d d g d d g g ƒ } | S(   Ng        g      ð?g      ð¿(   R   (   R   R‹   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR!     s    c         C` s!   | | d | | d g } | S(   Ni   i    (    (   R   R‹   Rt   RŒ   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   f1!  s    c         C` s#   t  d | g | d g g ƒ } | S(   Ng        (   R   (   R   R‹   Rt   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   jac1&  s    c         C` s!   | | d | | d g } | S(   Ni   i    (    (   R   R‹   t   omega1t   omega2RŒ   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   f2,  s    c         C` s#   t  d | g | d g g ƒ } | S(   Ng        (   R   (   R   R‹   R   R   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   jac21  s    c         C` s)   | d | d | d | d g } | S(   Ni    i   (    (   R   R‹   Rt   RŒ   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   fv7  s    %c         C` s+   t  d | d g | d d g g ƒ } | S(   Ng        i    i   (   R   (   R   R‹   Rt   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   jacv<  s    t   ODECheckParameterUsec           B` sY   e  Z d  Z d Z e Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z RS(	   s=   Call an ode-class solver with several cases of parameter use.t    c         C` s`   t  | | ƒ } |  j r@ | j |  j d d d d d |  j ƒn | j |  j d d d d ƒ| S(   NR6   g•Ö&è.>R7   gH¯¼šò×z>t   with_jacobian(   R   t   solver_uses_jacR;   t   solver_name(   R(   R   R!   t   solver(    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   _get_solverK  s    	c         C` sC   d d g } | j  | d ƒ | j t ƒ t | j d d g ƒ d  S(   Ng      ð?g        g      ð¿(   R<   R=   R   R   R   (   R(   Rš   t   ic(    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   _check_solverW  s    c         C` s#   |  j  t t ƒ } |  j | ƒ d  S(   N(   R›   R   R!   R   (   R(   Rš   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_no_params]  s    c         C` sO   |  j  t t ƒ } d } | j | ƒ |  j r> | j | ƒ n  |  j | ƒ d  S(   Ng      ð?(   R›   R   RŽ   t   set_f_paramsR˜   t   set_jac_paramsR   (   R(   Rš   Rt   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_one_scalar_parama  s    	c         C` s[   |  j  t t ƒ } d } d } | j | | ƒ |  j rJ | j | | ƒ n  |  j | ƒ d  S(   Ng      ð?(   R›   R‘   R’   RŸ   R˜   R    R   (   R(   Rš   R   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_two_scalar_paramsi  s    	c         C` sU   |  j  t t ƒ } d d g } | j | ƒ |  j rD | j | ƒ n  |  j | ƒ d  S(   Ng      ð?(   R›   R“   R”   RŸ   R˜   R    R   (   R(   Rš   Rt   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_vector_paramr  s    	c         C` s[   |  j  t t ƒ } | j |  j d d ƒd d g } | j | d ƒ t t | j t	 ƒ d  S(   Nt   nstepsi   g      ð?g        (
   R›   R   R!   R;   R™   R<   R   t   UserWarningR=   R   (   R(   Rš   Rœ   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_warns_on_failurez  s
    (   R0   R1   Rm   R™   Rn   R˜   R›   R   Rž   R¡   R¢   R£   R¦   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR•   B  s   							t   TestDOPRI5CheckParameterUsec           B` s   e  Z d  Z e Z RS(   RL   (   R0   R1   R™   Rn   R˜   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR§   ƒ  s   t   TestDOP853CheckParameterUsec           B` s   e  Z d  Z e Z RS(   RN   (   R0   R1   R™   Rn   R˜   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR¨   ˆ  s   t   TestVODECheckParameterUsec           B` s   e  Z d  Z e Z RS(   RD   (   R0   R1   R™   R%   R˜   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR©     s   t   TestZVODECheckParameterUsec           B` s   e  Z d  Z e Z RS(   RH   (   R0   R1   R™   R%   R˜   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyRª   ’  s   t   TestLSODACheckParameterUsec           B` s   e  Z d  Z e Z RS(   RJ   (   R0   R1   R™   R%   R˜   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR«   —  s   c          C` sP   d }  d g } t  d „  |  | d t ƒ\ } } t | t j |  g g ƒ ƒ d  S(   Ni   i    c         S` s   |  S(   N(    (   R   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR   ¡  s    R   (   R   R%   R   Rx   R   (   Rc   R   R   t   info(    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_odeint_trivial_timeœ  s    	!c          ` s¢  d „  ‰ d „  ‰ d „  }  d „  ‰  ‡  f d †  } t  d d d d g d	 d
 d d g d d d d g d d d	 d g g ƒ } t j d ƒ } t j  d d d d g ƒ } t ˆ | | d | f d t d d d d d d d ˆ ƒ\ } } t ˆ | | d | f d t d d d d d d d |  d t ƒ\ } } t ˆ | | d | f d t d d d d d d d ˆ  d d d  d! ƒ\ }	 }
 t ˆ | | d | f d t d d d d d d d | d d d  d! d t ƒ	\ } } t | | d" d# ƒt | |	 d d$ d" d% ƒt |	 | d" d& ƒt | d' | d' ƒ t |
 d' | d' ƒ t ‡ f d( †  | | d | f d t d d d d d d d ‡ f d) †  d* t ƒ\ } } t | | d d$ d" d+ ƒd  S(,   Nc         S` s   | j  |  ƒ S(   N(   R   (   R   R   t   c(    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   func¨  s    c         S` s   | S(   N(    (   R   R   R®   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR!   «  s    c         S` s   | j  j d d ƒ S(   NR|   t   C(   t   TR[   (   R   R   R®   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   jac_transpose®  s    c         S` sv   t  j t  j d t  j | d ƒ f t  j | ƒ t  j t  j | d ƒ d f t  j t  j | d ƒ d d f f ƒ } | S(   Ni    i   iÿÿÿÿiþÿÿÿ(   Rx   t	   row_stackt   r_t   diag(   R   R   R®   R!   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt	   bjac_rows±  s
    "(c         ` s   ˆ  |  | | ƒ j  j d d ƒ S(   NR|   R°   (   R±   R[   (   R   R   R®   (   R¶   (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt	   bjac_cols¸  s    i3ÿÿÿg{®Gáz„?g        gš™™™™™¹?g      Àg{®Gáz”?gü©ñÒMbP?g       Àg      ð¿i   i    i   i
   id   t   argsR   R6   g‚vIhÂ%<=R7   g•dyáý¥=t   mxstepi'  R"   t	   col_derivt   mli   t   mui   t   err_msgs   sol1 != sol2gê-™—q=s   sol1 != sol3s   sol3 != sol4t   njec         ` s   ˆ  | |  | ƒ S(   N(    (   R   R   R®   (   R¯   (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR   ä  s    c         ` s   ˆ  | |  | ƒ S(   N(    (   R   R   R®   (   R!   (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR   ç  s    R    s   sol1 != sol1ty(   R   Rx   t   onesR   R%   R   R   (   R²   R·   R®   Rc   R   t   sol1t   info1t   sol2t   info2t   sol3t   info3t   sol4t   info4t   sol1tyt   info1ty(    (   R¶   R¯   R!   sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_odeint_banded_jacobian¥  sB    				!!c          C` sç   d „  }  d „  } d „  } d „  } d „  } d „  } d „  } t  t t | d d	 d
 g ƒ t  t t | d d	 d
 g ƒ t  t t |  d d	 d
 g d | ƒt  t t |  d d	 d
 g d | ƒt  t t | d d g d	 d
 g d | ƒd  S(   Nc         S` s   d |  S(   Niœÿÿÿ(    (   R‹   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   sys1dï  s    c         S` s   d d S(   Ng      ð?i    (    (   R‹   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   bad1ò  s    c         S` s   d S(   Nt   foo(    (   R‹   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   bad2õ  s    c         S` s   d d S(   Ng      ð?i    (    (   R‹   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   bad_jac1ø  s    c         S` s
   d g g S(   NRÍ   (    (   R‹   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   bad_jac2û  s    c         S` s   d |  d d |  d g S(   Niœÿÿÿi    gš™™™™™¹¿i   (    (   R‹   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   sys2dþ  s    c         S` s   d d d g d d g g S(   Ng      ð?i    gš™™™™™¹¿(    (   R‹   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   sys2d_bad_jac  s    g      ð?i    i   R"   (   RP   t   ZeroDivisionErrorR   t
   ValueError(   RË   RÌ   RÎ   RÏ   RÐ   RÑ   RÒ   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_odeint_errorsî  s    							""!c          C` sÈ   d „  }  d „  } d „  } d d g d d g g } t  t t | | d d g ƒ d d g d d g g } t  t t | d g | ƒ t  t t |  d	 d d g ƒ t  t t | d	 d	 g d d g d
 | ƒd  S(   Nc         S` s
   d d g S(   Ni   iÿÿÿÿ(    (   R‹   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   badrhs  s    c         S` s   d |  S(   Niœÿÿÿ(    (   R‹   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   sys1  s    c         S` s   d d d g g S(   Ni    (    (   R‹   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   badjac  s    i    i   i   i   g      $@i
   R"   (   RP   RÔ   R   RQ   (   RÖ   R×   RØ   t   bad_y0t   bad_t(    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_odeint_bad_shapes  s    			c       	   C` s‘  d „  }  t  j d ƒ } t |  d g | ƒ } t | t  j t | ƒ d f ƒ ƒ d t  j d ƒ } d g d | d | d | d	 | g } t |  d d g | d
 d d d ƒ} t  j d d g g d d d g d d g d d g d d g g ƒ } t | | ƒ t |  d g g  ƒ } t | t  j g  d t  j	 ƒj
 d ƒ ƒ t t t |  d g d d d d g ƒ t t t |  d d d	 g d d d d	 g ƒ d S(   s   Regression test for gh-8217.c         S` s   d |  S(   Ng      Ð¿(    (   R‹   R   (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyR¯   ,  s    i
   g      ð?i   i   i   i    i	   i   R7   gê-™—q=R6   g       @g      à?g      Ð?g      À?t   dtypeiÿÿÿÿiþÿÿÿN(   i    i   (   Rx   R   R   R   R¿   t   lent   logR   R   t   float64t   reshapeRP   RÔ   (   R¯   R   RR   t   taut   expected_sol(    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   test_repeated_t_values)  s"    	")$			(%(    (C   Rm   t
   __future__R    R   R   t   numpyRx   R   R   R   R   R   R   R	   R
   R   R   R   t   scipy._lib._numpy_compatR   t   scipy._lib.sixR   t   numpy.testingR   R   R   R   R   t   pytestR   RP   t   scipy.integrateR   R   R   t   objectR   R2   RC   RX   RY   Rk   Rl   Ro   Rv   Rw   Rz   R,   R   R!   R   RŽ   R‘   R’   R“   R”   R•   R§   R¨   R©   Rª   R«   R­   RÊ   RÕ   RÛ   Rã   (    (    (    sC   lib/python2.7/site-packages/scipy/integrate/tests/test_integrate.pyt   <module>   sN   L(#!h(ZC?								A			I	 	