def test10(self): print("Testing ParametersWithUnitsConverted on vector parameters") definitions = [] for par_name in ["length_x", "length_y", "length_z"]: definitions.append( parameters.ModuleMethodParameterDefinition( "get_" + par_name, "set_" + par_name, par_name, "a test parameter", 10.0 | generic_unit_system.length)) definitions.append( parameters.VectorParameterDefinition( "mesh_length", "length of the model in the x, y and z directions", ("length_x", "length_y", "length_z"), [10, 10, 10] | generic_unit_system.length)) class TestModule(BaseTestModule): x = 123.0 | generic_unit_system.length y = 456.0 | generic_unit_system.length z = 789.0 | generic_unit_system.length def get_length_x(self): return self.x def set_length_x(self, value): self.x = value def get_length_y(self): return self.y def set_length_y(self, value): self.y = value def get_length_z(self): return self.z def set_length_z(self, value): self.z = value o = TestModule() x = parameters.Parameters(definitions, o) self.assertTrue("mesh_length" in str(x)) self.assertTrue("[123.0, 456.0, 789.0] length" in str(x)) converter = generic_unit_converter.ConvertBetweenGenericAndSiUnits( 2.0 | units.m, 4.0 | units.kg, 6.0 | units.s) y = parameters.ParametersWithUnitsConverted( x, converter.as_converter_from_si_to_generic()) self.assertTrue("mesh_length" in str(y)) self.assertTrue("[246.0, 912.0, 1578.0] m" in str(y))
def test9(self): parameter_definition1 = parameters.ModuleMethodParameterDefinition( "get_test", "set_test", "test_name", "a test parameter", 11.0 | units.m ) parameter_definition2 = parameters.ModuleMethodParameterDefinition( "get_test1", "set_test1", "test_name2", "a test parameter", 12.0 | units.m ) paramer_definition3 = parameters.VectorParameterDefinition( "test_vector", "vector of parameters", ["test_name", "test_name2"], [11.0, 12.0] | units.m ) class TestModule(BaseTestModule): def get_test(self): return self.x def set_test(self, value): self.x = value def get_test1(self): return self.y def set_test1(self, value): self.y = value instance = TestModule() instance.x = 1 | units.m instance.y = 2 | units.m p = parameters.Parameters([parameter_definition1, parameter_definition2, paramer_definition3], instance) self.assertEquals(p.test_vector, (1,2) | units.m) p.test_vector = (3,4) | units.m self.assertEquals(instance.x, 3 | units.m) self.assertEquals(instance.y, 4 | units.m)