Example #1
0
 def setUp(self):
     """
     Set up LinearODE for further tests.
     This setup is a test itself, it passes
     if LinearODE can be successfully initialised.
     """
     ode.LinearODE(t0=0., tmax=1., params=3., initval=0.1, initval_unc=2.1)
 def setUp(self):
     """Setup odesolver and solve a scalar ode"""
     prior = stsp.IBM(q=1, dim=1)
     self.solver = oso.ODESolver(prior, filtertype="kalman")
     self.ode = ode.LinearODE(t0=0.0, tmax=1.2, params=2.0, initval=4.1)
     self.h = 0.1
     self.tsteps, self.means, self.stdevs = self.solver.solve(
         self.ode, stepsize=self.h)
 def test_inconsistent_prior_and_ssm(self):
     """
     Prior uses dim=2, so a scalar ODE should raise an AssertionError.
     """
     solver = oso.ODESolver(self.working_2d_prior, self.working_filtertype)
     wrong_dimensional_ode = ode.LinearODE(t0=0., tmax=1.,
                                           params=1.123, initval=1.)
     with self.assertRaises(AssertionError):
         solver.solve(wrong_dimensional_ode, stepsize=0.1)
Example #4
0
 def test_modeval_scalar(self):
     """
     Test passes if scalar LinearODE can be successfully evaluated.
     """
     lin_ode = ode.LinearODE(t0=0.,
                             tmax=1.,
                             params=3.152,
                             initval=0.1,
                             initval_unc=2.1)
     self.assertEqual(lin_ode.modeval(1., 2.124), 3.152 * 2.124)
Example #5
0
 def test_init_multidim_fails_initval(self):
     """
     Test fails if LinearODE cannot be initialised with
     anything but a scalar initial value.
     """
     initval = np.eye(2)
     with self.assertRaises(TypeError):
         ode.LinearODE(t0=0.,
                       tmax=1.,
                       params=1.0,
                       initval=initval,
                       initval_unc=2.1)
Example #6
0
 def test_init_multidim_fails_param(self):
     """
     Test fails if LinearODE cannot be initialised with
     anything but a scalar parameter.
     """
     params = np.eye(2)
     with self.assertRaises(TypeError):
         ode.LinearODE(t0=0.,
                       tmax=1.,
                       params=params,
                       initval=0.1,
                       initval_unc=2.1)
Example #7
0
 def test_modeval_vect_scalar(self):
     """
     Test passes if linear ODE allows vectorised evaluation.
     """
     lin_ode = ode.LinearODE(t0=0.,
                             tmax=1.,
                             params=3.,
                             initval=0.1,
                             initval_unc=2.1)
     evaluation = lin_ode.modeval(0.1, np.random.rand(20))
     self.assertEqual(len(evaluation.shape), 1)
     self.assertEqual(evaluation.shape[0], 20)  # pylint: disable=E1136