def test_save_load_modelresult(dill): """Save/load ModelResult with/without dill.""" if dill: pytest.importorskip("dill") else: lmfit.jsonutils.HAS_DILL = False # create model, perform fit, save ModelResult and perform some tests model, params = create_model_params(x, y) result = model.fit(y, params, x=x) save_modelresult(result, SAVE_MODELRESULT) file_exists = wait_for_file(SAVE_MODELRESULT, timeout=10) assert file_exists text = '' with open(SAVE_MODELRESULT, 'r') as fh: text = fh.read() assert_between(len(text), 8000, 25000) # load the saved ModelResult from file and compare results result_saved = load_modelresult(SAVE_MODELRESULT) check_fit_results(result_saved) clear_savefile(SAVE_MODEL)
def do_save_model(with_dill=True): x, y = XDAT, YDAT if DILL_AVAILABLE and with_dill: lmfit.jsonutils.HAS_DILL = True else: lmfit.jsonutils.HAS_DILL = False model, params = create_model_params(x, y) save_model(model, SAVE_MODEL) file_exists = wait_for_file(SAVE_MODEL, timeout=10) assert (file_exists) text = '' with open(SAVE_MODEL, 'r') as fh: text = fh.read() assert_between(len(text), 1000, 2500)
def do_save_modelresult(with_dill=True): x, y = XDAT, YDAT if DILL_AVAILABLE and with_dill: lmfit.jsonutils.HAS_DILL = True else: lmfit.jsonutils.HAS_DILL = False model, params = create_model_params(x, y) result = model.fit(y, params, x=x) save_modelresult(result, SAVE_MODELRESULT) file_exists = wait_for_file(SAVE_MODELRESULT, timeout=10) assert(file_exists) text = '' with open(SAVE_MODELRESULT, 'r') as fh: text = fh.read() assert_between(len(text), 8000, 25000)
def check_fit_results(result): assert(result.nvarys == 8) assert_between(result.chisqr, 1000, 1500) assert_between(result.aic, 400, 450) pars = result.params assert_param_between(pars['exp_decay'], 90, 92) assert_param_between(pars['exp_amplitude'], 98, 101) assert_param_between(pars['g1_sigma'], 16, 17) assert_param_between(pars['g1_center'], 106, 109) assert_param_between(pars['g1_amplitude'], 4100, 4500) assert_param_between(pars['g1_fwhm'], 38, 42) assert_param_between(pars['g1_height'], 100, 103) assert_param_between(pars['g2_sigma'], 10, 15) assert_param_between(pars['g2_center'], 150, 160) assert_param_between(pars['g2_amplitude'], 2100, 2900) assert_param_between(pars['g2_fwhm'], 30, 34) assert_param_between(pars['g2_height'], 70, 75)
def check_fit_results(result): """Check the result of optimization.""" assert result.nvarys == 8 assert_between(result.chisqr, 1000, 1500) assert_between(result.aic, 400, 450) pars = result.params assert_param_between(pars['exp_decay'], 90, 92) assert_param_between(pars['exp_amplitude'], 98, 101) assert_param_between(pars['g1_sigma'], 16, 17) assert_param_between(pars['g1_center'], 106, 109) assert_param_between(pars['g1_amplitude'], 4100, 4500) assert_param_between(pars['g1_fwhm'], 38, 42) assert_param_between(pars['g1_height'], 100, 103) assert_param_between(pars['g2_sigma'], 10, 15) assert_param_between(pars['g2_center'], 150, 160) assert_param_between(pars['g2_amplitude'], 2100, 2900) assert_param_between(pars['g2_fwhm'], 30, 34) assert_param_between(pars['g2_height'], 70, 75)