def test_remove_all_equivalences(self): from libcellml import Variable # void removeAllEquivalences() v1 = Variable() v2 = Variable() v3 = Variable() Variable.addEquivalence(v1, v2) Variable.addEquivalence(v1, v3) v2.removeAllEquivalences() self.assertFalse(Variable.removeEquivalence(v1, v2)) self.assertTrue(Variable.removeEquivalence(v1, v3))
def test_equivalence(self): from libcellml import Variable from libcellml.variable import Variable_addEquivalence, Variable_removeEquivalence v1 = Variable() v2 = Variable() self.assertFalse(v1.hasEquivalentVariable(v2)) Variable.addEquivalence(v1, v2) self.assertTrue(v1.hasEquivalentVariable(v2)) Variable.removeEquivalence(v1, v2) self.assertFalse(v1.hasEquivalentVariable(v2)) Variable_addEquivalence(v1, v2) self.assertTrue(v1.hasEquivalentVariable(v2)) Variable_removeEquivalence(v1, v2) self.assertFalse(v1.hasEquivalentVariable(v2))
def test_remove_equivalence(self): from libcellml import Variable # static bool removeEquivalence(const VariablePtr &variable1, # const VariablePtr &variable2) v1 = Variable() v2 = Variable() v3 = Variable() self.assertFalse(Variable.removeEquivalence(v1, v2)) Variable.addEquivalence(v1, v2) self.assertFalse(Variable.removeEquivalence(v1, v3)) self.assertFalse(Variable.removeEquivalence(v3, v2)) self.assertTrue(Variable.removeEquivalence(v1, v2)) self.assertFalse(Variable.removeEquivalence(v1, v2)) Variable.addEquivalence(v1, v2) self.assertTrue(Variable.removeEquivalence(v2, v1))
# - illegal connections between equivalent variables, as now the environment # component and the sodiumChannel component are no longer siblings. validator.validateModel(model) print_errors_to_terminal(validator) # 2.d Add all of the units from the sodium channel model which are not already # present into the combined model. for u in range(0, sodium_channel_model.unitsCount()): unitName = sodium_channel_model.units(u).name() if not model.hasUnits(unitName): print("Adding units called {}".format(unitName)) model.addUnits(sodium_channel_model.units(u)) # 2.e Disconnect the sodiumChannel from its old environment component Variable.removeEquivalence( sodium_channel.variable("t"), sodium_channel_model.component("environment").variable("t")) Variable.removeEquivalence( sodium_channel.variable("V"), sodium_channel_model.component("environment").variable("V")) # 2.f Validate that there are no more errors in the combined model validator.validateModel(model) print_errors_to_terminal(validator) print("\n-----------------------------------------------") print(" STEP 3: Read the potassium channel") print("-----------------------------------------------") print("Opening the CellML file: 'tutorial5_PotassiumChannelModel.cellml'") read_file3 = open("../resources/tutorial5_PotassiumChannelModel.cellml", "r")