def test4(self):
        parameter_definition = parameters.ModuleMethodParameterDefinition(
            "get_test",
            None,
            "test_name",
            "a test parameter",
            11.0 | nbody_system.length
        )

        class TestModule(BaseTestModule):
            x = 123.0 | nbody_system.length

            def get_test(self):
                return self.x
            def set_test(self, value):
                self.x = value

        o = TestModule()
        x = parameters.Parameters([parameter_definition], o)


        self.assertTrue("test_name" in str(x))
        self.assertTrue("123.0 length" in str(x))

        convert_nbody = nbody_system.nbody_to_si(2.0 | units.m, 4.0 | units.kg)
        y = parameters.ParametersWithUnitsConverted(
                x,
                convert_nbody.as_converter_from_si_to_generic()
            )
        self.assertTrue("test_name" in str(y))
        self.assertTrue("246.0 m" in str(y))
 def test16(self):
     print "Testing add_interface_parameter"
     
     class TestModule(BaseTestModule):
       pass
     
     o = TestModule()
     parameters_handler = HandleParameters(o)
     parameters_handler.add_vector_parameter(
         "mesh_length",
         "length of the model in the x, y and z directions",
         ("length_x", "length_y", "length_z")
     )
     for i,par_name in enumerate(["length_x", "length_y", "length_z"]):
         parameters_handler.add_interface_parameter(
             par_name, 
             "a test parameter", 
             default_value = i*10.0 | generic_unit_system.length,
         )
     
     x = parameters_handler.get_attribute(None, None)
     self.assertTrue("mesh_length" in str(x))
     self.assertTrue("[0.0, 10.0, 20.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("[0.0, 20.0, 40.0] m" in str(y))
Пример #3
0
    def test6(self):
        print("Test 5: testing mixed nbody and string units")
        nbody_parameter_definition = parameters.ModuleMethodParameterDefinition(
            "get_nbody", None, "nbody_par_name",
            "a test parameter with nbody units", 11.0 | nbody_system.length)
        string_parameter_definition = parameters.ModuleMethodParameterDefinition(
            "get_string", None, "string_par_name",
            "a test parameter with string units", "test string")

        class TestModule(BaseTestModule):
            x = 123.0 | nbody_system.length

            def get_nbody(self):
                return self.x

            def get_string(self):
                return str(10 * self.x.number)

        o = TestModule()
        x = parameters.Parameters(
            [string_parameter_definition, nbody_parameter_definition], o)

        self.assertTrue("nbody_par_name" in str(x))
        self.assertTrue("123.0 length" in str(x))
        self.assertTrue("string_par_name" in str(x))
        self.assertTrue("1230.0" in str(x))

        convert_nbody = nbody_system.nbody_to_si(2.0 | units.m, 4.0 | units.kg)
        y = parameters.ParametersWithUnitsConverted(
            x, convert_nbody.as_converter_from_si_to_generic())
        self.assertEqual(getattr(y, "string_par_name"), "1230.0")
        self.assertAlmostEqual(getattr(y, "nbody_par_name"), 246.0 | units.m)
Пример #4
0
    def test2(self):
        parameter_definition = parameters.ModuleMethodParameterDefinition(
            "get_test", "set_test", "test_name", "a test parameter",
            11.0 | nbody_system.length)

        class TestModule(BaseTestModule):
            x = 123 | nbody_system.length

            def get_test(self):
                return self.x

            def set_test(self, value):
                self.x = value

        o = TestModule()
        x = parameters.Parameters([parameter_definition], o)

        self.assertEqual(x.test_name, 123 | nbody_system.length)

        convert_nbody = nbody_system.nbody_to_si(2.0 | units.m, 4.0 | units.kg)

        y = parameters.ParametersWithUnitsConverted(
            x, convert_nbody.as_converter_from_si_to_generic())

        self.assertAlmostEqual(y.test_name.value_in(units.m), 246.0, 6)
        y.test_name = 500 | units.m

        self.assertAlmostEqual(y.test_name.value_in(units.m), 500.0, 6)
        print(x.test_name, o.x)
        self.assertAlmostEqual(x.test_name.value_in(nbody_system.length),
                               250.0, 6)
        self.assertAlmostEqual(o.x, 250.0 | nbody_system.length, 6)
Пример #5
0
    def test11(self):
        print(
            "Testing ParametersWithUnitsConverted on vector parameters, using add_vector_parameter"
        )

        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()
        parameters_handler = HandleParameters(o)
        parameters_handler.add_vector_parameter(
            "mesh_length", "length of the model in the x, y and z directions",
            ("length_x", "length_y", "length_z"))
        for par_name in ["length_x", "length_y", "length_z"]:
            parameters_handler.add_method_parameter(
                "get_" + par_name,
                "set_" + par_name,
                par_name,
                "a test parameter",
                default_value=10.0 | generic_unit_system.length,
            )

        x = parameters_handler.get_attribute(None, None)
        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 test5(self):
        print "Test 5: testing mixed nbody and physical units"
        phys_parameter_definition = parameters.ModuleMethodParameterDefinition(
            "get_test",
            "set_test",
            "phys_test_name",
            "a test parameter with physical units",
            11.0 | units.m
        )
        nbody_parameter_definition = parameters.ModuleMethodParameterDefinition(
            "get_test1",
            "set_test1",
            "nbody_test_name",
            "a test parameter with nbody units",
            11.0 | nbody_system.length
        )

        class TestModule(BaseTestModule):
            x = 123.0 | units.m
            y = 123.0 | nbody_system.length

            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

        o = TestModule()
        x = parameters.Parameters([phys_parameter_definition, nbody_parameter_definition], o)

        self.assertTrue("nbody_test_name" in str(x))
        self.assertTrue("123.0 length" in str(x))
        self.assertTrue("phys_test_name" in str(x))
        self.assertTrue("123.0 m" in str(x))

        convert_nbody = nbody_system.nbody_to_si(2.0 | units.m, 4.0 | units.kg)
        y = parameters.ParametersWithUnitsConverted(
                x,
                convert_nbody.as_converter_from_si_to_generic()
            )
        self.assertEquals(getattr(y,"phys_test_name"), 123.0 | units.m)
        self.assertAlmostEquals(getattr(y,"nbody_test_name"), 246.0 | units.m)
        y.phys_test_name = 1234.0 | units.m
        self.assertEquals(y.phys_test_name, 1234.0 | units.m)
        y.nbody_test_name = 12345.0 | nbody_system.length
        self.assertAlmostEquals(y.nbody_test_name, 24690.0 | units.m)
        y.nbody_test_name = 12345.0 | units.m
        self.assertEquals(y.nbody_test_name, 12345.0 | units.m)
Пример #7
0
    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))