示例#1
0
 def test_species_parameter_name_substrings(self):
     model = Model()
     rate = Parameter(name='rate', expression=1)
     model.add_parameter(rate)
     species1 = Species('A', initial_value=100)
     species2 = Species('AA', initial_value=0)
     model.add_species([species1, species2])
     reaction1 = Reaction(name="reaction1",
                          reactants={species1: 1},
                          products={species2: 1},
                          rate=rate)
     model.add_reaction(reaction1)
     number_points = 11
     model.timespan(np.linspace(0, 1, number_points))
     from gillespy2.solvers.numpy.ssa_solver import NumPySSASolver
     results = model.run(number_of_trajectories=1,
                         solver=NumPySSASolver,
                         seed=1)
     self.assertTrue(len(results['time']) == number_points)
     self.assertTrue(len(results[species1.name]) == number_points)
     self.assertTrue(len(results[species2.name]) == number_points)
     self.assertGreater(results[species1.name][0],
                        results[species1.name][-1])
     self.assertLess(results[species2.name][0], results[species2.name][-1])
     self.assertEqual(
         np.sum(results[species1.name]) + np.sum(results[species2.name]),
         number_points * species1.initial_value)
示例#2
0
 def test_run_nonsolver(self):
     model = Model()
     rate = Parameter(name='rate', expression=0.5)
     model.add_parameter(rate)
     species1 = Species(name='A', initial_value=0)
     species2 = Species(name='B', initial_value=0)
     model.add_species(species1)
     model.add_species(species2)
     reaction = Reaction(name='reaction1',
                         reactants={species1: 1},
                         products={species2: 1},
                         rate=rate)
     with self.assertRaises(SimulationError):
         results = model.run(number_of_trajectories=1,
                             solver='non_solver',
                             seed=1)
示例#3
0
 def test_uniform_timespan(self):
     model = Model()
     model.timespan(np.linspace(0, 1, 100))
     with self.assertRaises(TimespanError):
         model.timespan(np.array([0, 0.1, 0.5]))
         model.run()