def test_remove_auxiliary_variable(): p1 = Parameter('test_parameter', 1.0, min_value=-5.0, max_value=5.0, delta=0.2, desc='test', free=False, unit='MeV') x = Parameter('aux_variable', 1.0) # ax + b law = Line() law.a = 1.0 law.b = 2.0 p1.add_auxiliary_variable(x, law) assert p1.value == 3.0 x.value = 4.0 assert p1.value == 6.0 p1.remove_auxiliary_variable() assert p1.has_auxiliary_variable() == False p1.value = -1.0 assert p1.value == -1.0
def test_set_auxiliary_variable(): p1 = Parameter('test_parameter', 1.0, min_value=-5.0, max_value=5.0, delta=0.2, desc='test', free=False, unit='MeV') x = Parameter('aux_variable', 1.0) # ax + b law = Line() law.a = 1.0 law.b = 2.0 p1.add_auxiliary_variable(x, law) assert p1.has_auxiliary_variable() == True assert p1.value == 3.0 x.value = 4.0 assert p1.value == 6.0 # Check that assigning to the parameter doesn't produce any effect p1.value = -1.0 assert p1.value == 6.0
def test_set_units(): p = Parameter('test_parameter',1.0, unit=u.keV) p.value = 3.0 * u.MeV assert p.value == 3000.0 with pytest.raises(u.UnitConversionError): p.value = 3.0 * u.cm
def test_set_outside_bounds_units(): p = Parameter('test_parameter', 1.0 * u.keV, min_value = -2.0 * u.MeV, max_value = 2.0 * u.MeV, unit=u.keV) with pytest.raises(SettingOutOfBounds): p.value = -10.0 * u.MeV
def test_set_within_bounds_units(): p = Parameter('test_parameter',1.0 * u.keV, min_value = -2.0 * u.MeV, max_value = 2.0 * u.MeV, unit=u.keV) p.value = 1.2 * u.MeV assert p.value == 1200.0
def test_set_within_bounds_no_units(): p = Parameter('test_parameter',1.0, min_value = -2.0, max_value = 2.0) p.value = 1.5 assert p.value == 1.5
def test_set_no_units(): p = Parameter('test_parameter',1.0) p.value = 25.4 assert p.value == 25.4
def test_set_remove_minimum(): p1 = Parameter('test_parameter', 1.0, min_value=-5.0, max_value=5.0, delta=0.2, desc='test', free=False, unit='MeV') p1.remove_minimum() assert p1.min_value == None p1.value = -1000.0 assert p1.value == -1000.0