示例#1
0
    def test_units(self):
        from libcellml import Model, Units

        # UnitsPtr units(size_t index)
        name = 'naaame'
        m = Model()
        u = Units()
        u.setName(name)
        self.assertIsNone(m.units(0))
        self.assertIsNone(m.units(1))
        self.assertIsNone(m.units(-1))
        m.addUnits(u)
        self.assertIsNone(m.units(1))
        self.assertIsNone(m.units(-1))
        self.assertIsNotNone(m.units(0))
        self.assertEqual(m.units(0).name(), name)
        del [m, u, name]

        # UnitsPtr units(const std::string &name)
        name = 'kermit'
        m = Model()
        u = Units()
        u.setName(name)
        self.assertIsNone(m.units(name))
        m.addUnits(u)
        self.assertIsNotNone(m.units(name))
        self.assertEqual(m.units(name).name(), name)
        del [m, u, name]
示例#2
0
    def test_replace_units(self):
        from libcellml import Model, Units

        # bool replaceUnits(size_t index, const UnitsPtr &units)
        m = Model()
        u1 = Units()
        u1.setName('a')
        m.addUnits(u1)
        u2 = Units()
        u2.setName('b')
        self.assertTrue(m.replaceUnits(0, u2))
        self.assertFalse(m.replaceUnits(1, u1))
        self.assertFalse(m.replaceUnits(-1, u1))
        self.assertEqual(m.units(0).name(), 'b')
        del [m, u1, u2]

        # bool replaceUnits(const std::string &name, const UnitsPtr &units)
        m = Model()
        a = Units()
        a.setName('a')
        m.addUnits(a)
        b = Units()
        b.setName('b')
        self.assertFalse(m.replaceUnits('b', a))
        self.assertTrue(m.replaceUnits('a', b))
        self.assertTrue(m.replaceUnits('b', a))
        self.assertFalse(m.replaceUnits('b', a))
        del [m, a, b]

        # bool replaceUnits(const UnitsPtr &oldUnits, const UnitsPtr &newUnits)
        m = Model()
        a = Units()
        m.addUnits(a)
        b = Units()
        self.assertTrue(m.replaceUnits(b, a))
        self.assertTrue(m.replaceUnits(a, b))
        self.assertTrue(m.replaceUnits(b, a))
        del [m, a, b]
示例#3
0
    def test_type_based_retrieval(self):
        from libcellml import Annotator, Model, Parser

        annotator = Annotator()
        model = Model()
        parser = Parser()

        model_string = file_contents("annotator/unique_ids.cellml")

        model = parser.parseModel(model_string)
        annotator.setModel(model)

        v1v1 = (model.component("component2").variable("variable1"),
                model.component("component2").component("component3").variable(
                    "variable1"))
        v2v2 = (model.component("component2").variable("variable2"),
                model.component("component2").component("component3").variable(
                    "variable2"))

        self.assertEqual(model.name(), annotator.model("model_1").name())
        self.assertEqual(model.name(),
                         annotator.encapsulation("encapsulation_1").name())
        self.assertEqual(
            model.component("component1").name(),
            annotator.component("component_1").name())
        self.assertEqual(
            model.component("component2").name(),
            annotator.component("component_2").name())
        self.assertEqual(
            model.component("component2").name(),
            annotator.component("component_ref_1").name())
        self.assertEqual(
            model.component("component2").component("component3").name(),
            annotator.component("component_3").name())
        self.assertEqual(
            model.component("component2").component("component3").name(),
            annotator.componentRef("component_ref_2").name())
        self.assertEqual(
            model.component("component1").importSource().url(),
            annotator.importSource("import_1").url())
        self.assertEqual(
            model.units("units1").name(),
            annotator.units("units_1").name())
        self.assertEqual(
            model.units("units1").importSource().url(),
            annotator.importSource("import_2").url())
        self.assertEqual(
            model.units("units2").name(),
            annotator.units("units_2").name())
        self.assertEqual(
            model.units("units2").name(),
            annotator.unit("unit_1").units().name())
        self.assertEqual(0, annotator.unit("unit_1").index())

        self.assertEqual(
            model.component("component2").variable("variable1").name(),
            annotator.variable("variable_1").name())

        self.assertEqual(
            model.component("component2").variable("variable2").name(),
            annotator.variable("variable_2").name())
        self.assertEqual(
            model.component("component2").reset(0).variable().name(),
            annotator.reset("reset_1").variable().name())
        self.assertEqual(
            model.component("component2").reset(0).testVariable().name(),
            annotator.reset("reset_1").testVariable().name())
        self.assertEqual(
            model.component("component2").reset(0).testValue(),
            annotator.testValue("test_value_1").testValue())
        self.assertEqual(
            model.component("component2").reset(0).resetValue(),
            annotator.resetValue("reset_value_1").resetValue())

        self.assertEqual(
            model.component("component2").component("component3").variable(
                "variable1").name(),
            annotator.variable("variable_3").name())
        self.assertEqual(
            model.component("component2").component("component3").variable(
                "variable2").name(),
            annotator.variable("variable_4").name())
        self.assertEqual(
            v1v1[0].name(),
            annotator.connection("connection_1").variable1().name())

        self.assertEqual(
            v1v1[1].name(),
            annotator.connection("connection_1").variable2().name())
        self.assertEqual(
            v1v1[0].name(),
            annotator.mapVariables("map_variables_1").variable1().name())
        self.assertEqual(
            v1v1[1].name(),
            annotator.mapVariables("map_variables_1").variable2().name())
        self.assertEqual(
            v2v2[0].name(),
            annotator.mapVariables("map_variables_2").variable1().name())
        self.assertEqual(
            v2v2[1].name(),
            annotator.mapVariables("map_variables_2").variable2().name())

        self.assertIsNone(annotator.model("i_dont_exist"))
        self.assertIsNone(annotator.component("i_dont_exist"))
        self.assertIsNone(annotator.variable("i_dont_exist"))
        self.assertIsNone(annotator.units("i_dont_exist"))
        self.assertIsNone(annotator.unit("i_dont_exist"))
        self.assertIsNone(annotator.reset("i_dont_exist"))
        self.assertIsNone(annotator.resetValue("i_dont_exist"))
        self.assertIsNone(annotator.testValue("i_dont_exist"))
        self.assertIsNone(annotator.componentRef("i_dont_exist"))
        self.assertIsNone(annotator.connection("i_dont_exist"))
        self.assertIsNone(annotator.importSource("i_dont_exist"))