Ejemplo n.º 1
0
 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, '')
Ejemplo n.º 2
0
 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")
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 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))
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
 def test_max_likelihood(self):
     self.logger.set_level(0)
     self.opti_opts.is_max_like = True
     dcs.run_bpe(self.opti_opts)
Ejemplo n.º 7
0
                      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
Ejemplo n.º 8
0
    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)