def setUp(self): self.logger = dcs.Logger(10) time = np.arange(251) sim_params = SimParams(time, magnitude=3.5, frequency=12, phase=180) truth_time = np.arange(-10, 201) truth_data = 5 * np.sin(2*np.pi*10*time/1000 + 90*np.pi/180) self.opti_opts = dcs.OptiOpts() self.opti_opts.model_func = sim_model self.opti_opts.model_args = {'sim_params': sim_params} self.opti_opts.cost_func = cost_wrapper self.opti_opts.cost_args = {'results_time': time, 'truth_time': truth_time, 'truth_data': truth_data} self.opti_opts.get_param_func = get_parameter self.opti_opts.set_param_func = set_parameter self.opti_opts.output_folder = '' self.opti_opts.output_results = '' self.opti_opts.params = [] # Parameters to estimate self.opti_opts.params.append(dcs.OptiParam('magnitude', best=2.5, min_=-10, max_=10, typical=5, minstep=0.01)) self.opti_opts.params.append(dcs.OptiParam('frequency', best=20, min_=1, max_=1000, typical=60, minstep=0.01)) self.opti_opts.params.append(dcs.OptiParam('phase', best=180, min_=0, max_=360, typical=100, minstep=0.1))
def test_get_array5(self): opti_param = dcs.OptiParam('test') params = [opti_param, opti_param] with self.assertRaises(ValueError): dcs.OptiParam.get_array(params, type_='bad_name')
def test_get_names(self): opti_param1 = dcs.OptiParam('test1') opti_param2 = dcs.OptiParam('test2') params = [opti_param1, opti_param2] names = dcs.OptiParam.get_names(params) self.assertEqual(names, ['test1', 'test2'])
def test_get_array(self): opti_param = dcs.OptiParam('test') params = [opti_param, opti_param] best = dcs.OptiParam.get_array(params) np.testing.assert_array_equal(best, np.array([np.nan, np.nan]))
def test_get_array3(self): opti_param = dcs.OptiParam('test') params = [opti_param, opti_param] values = dcs.OptiParam.get_array(params, type_='max') np.testing.assert_array_equal(values, np.array([np.inf, np.inf]))
def test_inequality2(self): opti_param = dcs.OptiParam('test') self.assertNotEqual(opti_param, 2)
def test_inequality(self): opti_param1 = dcs.OptiParam('test') opti_param2 = dcs.OptiParam('test') opti_param2.min_ = 5.5 self.assertNotEqual(opti_param1, opti_param2)
def test_equality(self): opti_param1 = dcs.OptiParam('test') opti_param2 = dcs.OptiParam('test') self.assertEqual(opti_param1, opti_param2)
def test_init(self): opti_param = dcs.OptiParam('test') self.assertTrue(isinstance(opti_param, dcs.OptiParam))
opti_opts.is_max_like = False opti_opts.max_iters = 10 opti_opts.tol_cosmax_grad = 1e-4 opti_opts.tol_delta_step = 1e-7 opti_opts.tol_delta_cost = 1e-8 opti_opts.step_limit = 5 opti_opts.x_bias = 0.8 opti_opts.grow_radius = 2 opti_opts.shrink_radius = 0.5 opti_opts.trust_radius = 1.0 # Parameters to estimate opti_opts.params.append( dcs.OptiParam('magnitude', best=2.5, min_=-10, max_=10, typical=5, minstep=0.01)) opti_opts.params.append( dcs.OptiParam('frequency', best=20, min_=1, max_=1000, typical=60, minstep=0.01)) opti_opts.params.append( dcs.OptiParam('phase', best=180, min_=0, max_=360, typical=100,