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"
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
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")
def test_parameter_set_numpy_value(self): par = Parameter("test", unit="eV") par.value = 1e-4 par.value = numpy.log(10)