def test_get_item(self):
        par1 = Parameter("test")
        par1.value = 8
        par2 = Parameter("test2", unit="meV")
        par2.value = 10

        parameters = CalculatorParameters()
        self.assertRaises(KeyError, parameters.__getitem__, "test3")
    def test_add_interval_after_value(self):
        par = Parameter("test")
        par.value = 4.0
        par.add_interval(3, 4.5, True)

        par.clear_intervals()
        par.value = 5.0
        with self.assertRaises(ValueError):
            par.add_interval(3, 4.5, True)
 def test_print_parameters(self):
     par1 = Parameter("test")
     par1.value = 8
     par2 = Parameter("test2", unit="meV")
     par2.value = 10
     parameters = CalculatorParameters()
     parameters.add(par1)
     parameters.add(par2)
     print(parameters)
    def test_parameter_set_value(self):
        par = Parameter("test")
        par.add_interval(3, 4.5, True)

        par.value = 4.0
        self.assertEqual(par.value, 4.0)

        with self.assertRaises(ValueError):
            par.value = 5.0  # Should throw an error and be ignored

        self.assertEqual(par.value, 4.0)
    def test_initialize_parameters_from_add(self):
        par1 = Parameter("test")
        par1.value = 8
        par2 = Parameter("test2", unit="meV")
        par2.value = 10

        parameters = CalculatorParameters()
        parameters.add(par1)
        parameters.add(par2)

        self.assertEqual(parameters["test"].value, 8)
        self.assertEqual(parameters["test2"].value, 10)
    def test_parameter_from_dict(self):
        par = Parameter("test")

        par.add_interval(3, 4.5, True)
        par.value = 4.0
        par_from_dict = Parameter.from_dict(par.__dict__)
        self.assertEqual(par_from_dict.value, 4.0)
    def test_parameter_value_type(self):
        par = Parameter("test")
        par.value = 4.0
        assert par._Parameter__value_type == Quantity

        par1 = Parameter("test")
        par1.value = 4
        assert par1._Parameter__value_type == int

        par2 = Parameter("test", unit="meV")
        par2.value = 4
        assert par2._Parameter__value_type == Quantity

        par3 = Parameter("test", unit="meV")
        par3.add_interval(0, 1e6, True)
        assert par3._Parameter__value_type == Quantity
    def test_initialize_parameters_from_list(self):
        par1 = Parameter("test")
        par1.value = 8
        par2 = Parameter("test2", unit="meV")

        parameters = CalculatorParameters([par1, par2])

        self.assertEqual(parameters["test"].value, 8)
    def test_json(self):
        par1 = Parameter("test")
        par1.value = 8.0
        par2 = Parameter("test2", unit="meV")
        par2.value = 10

        parameters = CalculatorParameters()
        parameters.add(par1)
        parameters.add(par2)

        with tempfile.TemporaryDirectory() as d:
            tmp_file = os.path.join(d, "test.json")
            parameters.to_json(tmp_file)
            params_json = CalculatorParameters.from_json(tmp_file)
            self.assertEqual(params_json["test2"].value, 10)
            assert params_json["test2"].value_no_conversion == Quantity(
                10, "meV")
            with pytest.raises(TypeError):
                params_json["test2"].value = "A"
示例#10
0
    def test_values_different_units(self):
        par = Parameter("energy",
                        unit="meV",
                        comment="Energy of emitted particles")
        import pint

        ureg = pint.UnitRegistry()
        with pytest.raises(pint.errors.DimensionalityError):
            thisunit = Unit("meter")
            par.value = 5 * thisunit
示例#11
0
    def test_json_with_objects(self):
        par1 = Parameter("test")
        par1.value = 8
        par2 = Parameter("test2", unit="meV")
        par2.value = 10
        par3 = Parameter("test3", unit="meV")
        par3.value = 3.14

        parameters = CalculatorParameters()
        parameters.add(par1)
        parameters.add(par2)
        parameters.add(par3)
        with tempfile.TemporaryDirectory() as d:
            tmp_file = os.path.join(d, "test.json")
            tmp_file = "/tmp/test.json"
            parameters.to_json(tmp_file)
            params_json = CalculatorParameters.from_json(tmp_file)
            self.assertEqual(params_json["test2"].value, 10)
            print(params_json["test3"])
            assert params_json["test3"].value == par3.value
            assert params_json["test3"].value == 3.14
            assert params_json["test3"].value_no_conversion == Quantity(
                3.14, "meV")
示例#12
0
 def test_parameter_set_numpy_value(self):
     par = Parameter("test", unit="eV")
     par.value = 1e-4
     par.value = numpy.log(10)