class RosenbrockWithList(Rosenbrock): """ A 3 dimensional implementation of the Rosenbrock function Result at (1,1,1) is 0. """ l = parameter.List(np.arange(0, 10), repeat=True, doc='list parameter for testing') x = parameter.Uniform(-10, 10, 1.5, 3.0, -10, 10, doc='x value of Rosenbrock function') y = parameter.Uniform(-10, 10, 1.5, 3.0, -10, 10, doc='y value of Rosenbrock function') z = parameter.Uniform(-10, 10, 1.5, 3.0, -10, 10, doc='z value of Rosenbrock function')
class RosenbrockWithConstant(Rosenbrock): """ A 3 dimensional implementation of the Rosenbrock function Result at (1,1,1) is 0. """ c = parameter.Constant(0, doc='Constant offset, should stay 0') x = parameter.Uniform(-10, 10, 1.5, 3.0, -10, 10, doc='x value of Rosenbrock function') y = parameter.Uniform(-10, 10, 1.5, 3.0, -10, 10, doc='y value of Rosenbrock function') z = parameter.Uniform(-10, 10, 1.5, 3.0, -10, 10, doc='z value of Rosenbrock function')
class SpotSetupClassAttributes(SpotSetupBase): """ A Test case with two parameters as class parameters (a,b) and 2 given from the parameter function """ a = parameter.Uniform(-1, 1) b = parameter.Uniform(-1, 1) c = parameter.Uniform(-1, 1) d = parameter.Uniform(-1, 1)
class SpotSetupMixedParameterList(SpotSetupBase): """ A Test case with two parameters as class parameters (a,b) and 2 given from the parameter function """ a = parameter.Uniform(0, 1) b = parameter.Uniform(1, 2) def parameters(self): return parameter.generate( [parameter.Uniform(name, -1, 1) for name in 'cd'])
def __init__(self, chn_fn=None): if chn_fn is None: chn_fn = 'channel_pars.csv' fn = _join(_par_dir, chn_fn) fp = open(fn) csv_rdr = csv.DictReader(fp) pars = {} pars_list = [] for row in csv_rdr: par = row['parameter'] optimize = int(row['optimize']) optguess = float(row['optguess']) if optimize == 0: # fixed parameter pars[par] = optguess else: pars[par] = '{%s}' % par distribution = row['distribution'] if distribution.lower() != 'uniform': raise NotImplementedError low = float(row['low']) high = float(row['high']) stepsize = row['stepsize'] if len(stepsize) == 0: stepsize = None else: stepsize = float(stepsize) if stepsize is None: pars_list.append( parameter.Uniform(name='chndefs:' + par, low=low, high=high, optguess=optguess)) else: pars_list.append( parameter.Uniform(name='chndefs:' + par, low=low, high=high, optguess=optguess, stepsize=stepsize)) fp.close() self.pars = pars self.pars_list = pars_list
def test_find_constant_parameters(self): flex = parameter.Uniform('flexible', 0, 1) p = parameter.generate([flex, self.const]) constant_parameters = parameter.find_constant_parameters(p) self.assertFalse(constant_parameters[0], 'Flexible parameter detected as constant') self.assertTrue(constant_parameters[1], 'Constant parameter not detected')
def test_uniform_has_correct_statistics(self): unif = parameter.Uniform("test", 0, 1) # Generate 10k random numbers nums = [unif() for _ in range(10000)] self.assertAlmostEqual(np.mean(nums), (1 - 0) / 2.0, self.tolerance, "Mean of Unif(0, 1) should be 1/2") self.assertAlmostEqual(np.var(nums), 1.0 / 12, self.tolerance, "Variance of Unif(0, 1) should be 1/12")
def paramcontrol(name, calibrate, value, low, high, guess): d = { 'calibrate': calibrate, 'value': value, 'param': parameter.Uniform(name, low=low, high=high, optguess=guess), 'name': name } return d
def test_uniform_has_correct_bounds(self): unif = parameter.Uniform("test", low=0, high=1) print(unif.minbound) self.assertGreaterEqual(unif.minbound, 0) self.assertLessEqual(unif.maxbound, 1)
def test_uniform_is_callable(self): unif = parameter.Uniform("test", low=0, high=1) self.assertTrue(callable(unif), "Uniform param instance should be callable")
def test_uniform_processes_non_keyword_args(self): _ = parameter.Uniform("test", 0, 1)
def __init__(self): self.parameters = [parameter.Uniform(name, -1, 1) for name in 'abcd']
def parameters(self): return parameter.generate( [parameter.Uniform(name, -1, 1) for name in 'cd'])