def test_no_logging(self): self.logger.set_level(0) with dcs.capture_output() as out: dcs.run_bpe(self.opti_opts) output = out.getvalue().strip() out.close() self.assertEqual(output, '')
def test_to_convergence(self): self.opti_opts.max_iters = 100 with dcs.capture_output() as out: dcs.run_bpe(self.opti_opts) lines = out.getvalue().strip().split('\n') out.close() for line in lines: if line.startswith('Declare convergence'): break else: self.assertTrue(False, "Didn't converge")
def test_two_sided(self): with dcs.capture_output() as out: self.opti_opts.slope_method = 'two_sided' dcs.run_bpe(self.opti_opts) lines = out.getvalue().strip().split('\n') out.close() for (ix, line) in enumerate(lines): if line == 'Running iteration 1.': self.assertTrue(lines[ix+1].startswith(' Running model with magnitude')) self.assertTrue(lines[ix+2].startswith(' Running model with magnitude')) break else: self.assertTrue(False, 'two sided had issues') # rerun at log_level 0 self.logger.set_level(0) dcs.run_bpe(self.opti_opts)
def test_nominal(self): with dcs.capture_output() as out: (bpe_results, results) = dcs.run_bpe(self.opti_opts) output = out.getvalue().strip() out.close() self.assertTrue(output.startswith('******************************\nValidating optimization options.')) self.assertTrue(isinstance(bpe_results, dcs.BpeResults)) self.assertTrue(isinstance(results, np.ndarray))
def test_saving(self): self.logger.set_level(0) self.opti_opts.max_iters = 0 self.opti_opts.output_folder = dcs.get_tests_dir() self.opti_opts.output_results = 'temp_results.hdf5' dcs.run_bpe(self.opti_opts)
def test_max_likelihood(self): self.logger.set_level(0) self.opti_opts.is_max_like = True dcs.run_bpe(self.opti_opts)
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, minstep=0.1)) # Run code if rerun: (bpe_results, results) = dcs.run_bpe(opti_opts) else: bpe_results = dcs.BpeResults.load( os.path.join(opti_opts.output_folder, opti_opts.output_results)) results = sim_model( sim_params) # just re-run, nothing is actually saved by this model # Plot results if make_plots: # build opts opts = dcs.Opts() opts.case_name = 'Model Results' opts.save_path = dcs.get_output_dir() opts.save_plot = True # make model plots
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, minstep=0.1)) # Run code if rerun: (bpe_results, results) = dcs.run_bpe(opti_opts) else: bpe_results = dcs.BpeResults.load(os.path.join(opti_opts.output_folder, opti_opts.output_results)) results = sim_model(sim_params) # just re-run, nothing is actually saved by this model # Plot results if make_plots: # build opts opts = dcs.Opts() opts.case_name = 'Model Results' opts.save_path = dcs.get_output_dir() opts.save_plot = True # make model plots dcs.plot_time_history(time, results, description='Output vs. Time', opts=opts, truth=truth)