Skip to content

Commit

Permalink
Adapt test_solver_based_model tests to sympy==0.7.6.1
Browse files Browse the repository at this point in the history
  • Loading branch information
phantomas1234 committed Sep 28, 2015
1 parent 654e4b3 commit 8ba7087
Showing 1 changed file with 13 additions and 22 deletions.
35 changes: 13 additions & 22 deletions tests/test_solver_based_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -483,33 +483,29 @@ def test_add_metabolites_combine_true(self):
for reaction in self.model.reactions:
reaction.add_metabolites({test_metabolite: -66}, combine=True)
self.assertEqual(reaction.metabolites[test_metabolite], -66)
self.assertIn(-66. * reaction.forward_variable, self.model.solver.constraints['test'].expression)
self.assertIn(66. * reaction.reverse_variable, self.model.solver.constraints['test'].expression)
self.assertTrue(self.model.solver.constraints['test'].expression.has(-66. * reaction.forward_variable))
self.assertTrue(self.model.solver.constraints['test'].expression.has(66. * reaction.reverse_variable))
already_included_metabolite = list(reaction.metabolites.keys())[0]
previous_coefficient = reaction.get_coefficient(already_included_metabolite.id)
reaction.add_metabolites({already_included_metabolite: 10}, combine=True)
new_coefficient = previous_coefficient + 10
self.assertEqual(reaction.metabolites[already_included_metabolite], new_coefficient)
self.assertIn(new_coefficient * reaction.forward_variable,
self.model.solver.constraints[already_included_metabolite.id].expression)
self.assertIn(-1 * new_coefficient * reaction.reverse_variable,
self.model.solver.constraints[already_included_metabolite.id].expression)
self.assertTrue(self.model.solver.constraints[already_included_metabolite.id].expression.has(new_coefficient * reaction.forward_variable))
self.assertTrue(self.model.solver.constraints[already_included_metabolite.id].expression.has(-1 * new_coefficient * reaction.reverse_variable))

@unittest.skipIf(TRAVIS, 'This test behaves non-deterministic on travis-ci')
def test_add_metabolites_combine_false(self):
test_metabolite = Metabolite('test')
for reaction in self.model.reactions:
reaction.add_metabolites({test_metabolite: -66}, combine=False)
self.assertEqual(reaction.metabolites[test_metabolite], -66)
self.assertIn(-66. * reaction.forward_variable, self.model.solver.constraints['test'].expression)
self.assertIn(66. * reaction.reverse_variable, self.model.solver.constraints['test'].expression)
self.assertTrue(self.model.solver.constraints['test'].expression.has(-66. * reaction.forward_variable))
self.assertTrue(self.model.solver.constraints['test'].expression.has(66. * reaction.reverse_variable))
already_included_metabolite = list(reaction.metabolites.keys())[0]
reaction.add_metabolites({already_included_metabolite: 10}, combine=False)
self.assertEqual(reaction.metabolites[already_included_metabolite], 10)
self.assertIn(10 * reaction.forward_variable,
self.model.solver.constraints[already_included_metabolite.id].expression)
self.assertIn(-10 * reaction.reverse_variable,
self.model.solver.constraints[already_included_metabolite.id].expression)
self.assertTrue(self.model.solver.constraints[already_included_metabolite.id].expression.has(10 * reaction.forward_variable))
self.assertTrue(self.model.solver.constraints[already_included_metabolite.id].expression.has(-10 * reaction.reverse_variable))

@unittest.skip('Not implemented yet.')
def test_change_id_is_reflected_in_solver(self):
Expand Down Expand Up @@ -628,19 +624,15 @@ def test_add_demand(self):
demand_reaction = self.model.add_demand(metabolite, prefix="DemandReaction_")
self.assertEqual(self.model.reactions.get_by_id(demand_reaction.id), demand_reaction)
self.assertEqual(demand_reaction.reactants, [metabolite])
self.assertTrue(
self.model.solver.variables["DemandReaction_" + metabolite.id] in self.model.solver.constraints[
metabolite.id].expression)
self.assertTrue(self.model.solver.constraints[metabolite.id].expression.has(self.model.solver.variables["DemandReaction_" + metabolite.id]))

def test_add_demand_time_machine(self):
with TimeMachine() as tm:
for metabolite in self.model.metabolites:
demand_reaction = self.model.add_demand(metabolite, time_machine=tm)
self.assertEqual(self.model.reactions.get_by_id(demand_reaction.id), demand_reaction)
self.assertEqual(demand_reaction.reactants, [metabolite])
self.assertTrue(
self.model.solver.variables["DM_" + metabolite.id] in self.model.solver.constraints[
metabolite.id].expression)
self.assertTrue(-self.model.solver.constraints[metabolite.id].expression.has(self.model.solver.variables["DM_" + metabolite.id]))
for metabolite in self.model.metabolites:
self.assertNotIn("DM_" + metabolite.id, self.model.reactions)
self.assertNotIn("DM_" + metabolite.id, self.model.solver.variables.keys())
Expand Down Expand Up @@ -743,8 +735,7 @@ def test_effective_bounds(self):
def test_add_demand_for_non_existing_metabolite(self):
metabolite = Metabolite(id="a_metabolite")
self.model.add_demand(metabolite)
self.assertTrue(self.model.solver.variables["DM_" + metabolite.id]
in self.model.solver.constraints[metabolite.id].expression)
self.assertTrue(self.model.solver.constraints[metabolite.id].expression.has(self.model.solver.variables["DM_" + metabolite.id]))

def test_add_ratio_constraint(self):
solution = self.model.solve()
Expand All @@ -769,12 +760,12 @@ def test_fix_objective_as_constraint(self):
with TimeMachine() as tm:
self.model.fix_objective_as_constraint(time_machine=tm)
constraint_name = self.model.solver.constraints[-1]
self.assertTrue(Eq(self.model.solver.constraints[-1].expression, self.model.objective.expression))
self.assertEqual(self.model.solver.constraints[-1].expression - self.model.objective.expression, 0)
self.assertNotIn(constraint_name, self.model.solver.constraints)
# without TimeMachine
self.model.fix_objective_as_constraint()
constraint_name = self.model.solver.constraints[-1]
self.assertTrue(Eq(self.model.solver.constraints[-1].expression, self.model.objective.expression))
self.assertEqual(self.model.solver.constraints[-1].expression - self.model.objective.expression, 0)
self.assertIn(constraint_name, self.model.solver.constraints)


Expand Down

0 comments on commit 8ba7087

Please sign in to comment.