def test_variational_study_save_load(): datadir = 'tmp_yulXPXnMBrxeUVt7kYVw' study_name = 'test_study' study = VariationalStudy( study_name, test_ansatz, test_objective, initial_state=numpy.array([0.0, 1.0, 0.0, 0.0]).astype(numpy.complex64), datadir=datadir, black_box_type=variational_black_box.XMON_SIMULATE_STATEFUL) study.optimize( OptimizationParams(ScipyOptimizationAlgorithm( kwargs={'method': 'COBYLA'}, options={'maxiter': 2}), initial_guess=numpy.array([7.9, 3.9]), initial_guess_array=numpy.array([[7.5, 7.6], [8.8, 1.1]]), cost_of_evaluate=1.0), 'example') study.save() loaded_study = VariationalStudy.load(study_name, datadir=datadir) assert loaded_study.name == study.name assert str(loaded_study.circuit) == str(study.circuit) assert loaded_study.datadir == datadir assert len(loaded_study.trial_results) == 1 numpy.testing.assert_allclose(loaded_study.initial_state, numpy.array([0.0, 1.0, 0.0, 0.0])) result = loaded_study.trial_results['example'] assert isinstance(result, OptimizationTrialResult) assert result.repetitions == 1 assert isinstance(result.params.algorithm, ScipyOptimizationAlgorithm) assert result.params.algorithm.kwargs == {'method': 'COBYLA'} assert result.params.algorithm.options == {'maxiter': 2} assert result.params.cost_of_evaluate == 1.0 loaded_study = VariationalStudy.load('{}.study'.format(study_name), datadir=datadir) assert loaded_study.name == study.name # Clean up os.remove(os.path.join(datadir, '{}.study'.format(study_name))) os.rmdir(datadir)
def test_variational_study_save_load(): datadir = 'tmp_yulXPXnMBrxeUVt7kYVw' study_name = 'test_study' study = ExampleStudy( study_name, test_ansatz, datadir=datadir) study.optimize( OptimizationParams( ScipyOptimizationAlgorithm( kwargs={'method': 'COBYLA'}, options={'maxiter': 2}), initial_guess=numpy.array([7.9, 3.9]), initial_guess_array=numpy.array([[7.5, 7.6], [8.8, 1.1]]), cost_of_evaluate=1.0), 'example') study.save() loaded_study = VariationalStudy.load(study_name, datadir=datadir) assert loaded_study.name == study.name assert str(loaded_study.circuit) == str(study.circuit) assert loaded_study.datadir == datadir assert len(loaded_study.results) == 1 result = loaded_study.results['example'] assert isinstance(result, OptimizationTrialResult) assert result.repetitions == 1 assert isinstance(result.params.algorithm, ScipyOptimizationAlgorithm) assert result.params.algorithm.kwargs == {'method': 'COBYLA'} assert result.params.algorithm.options == {'maxiter': 2} assert result.params.cost_of_evaluate == 1.0 loaded_study = VariationalStudy.load('{}.study'.format(study_name), datadir=datadir) assert loaded_study.name == study.name # Clean up os.remove(os.path.join(datadir, '{}.study'.format(study_name))) os.rmdir(datadir)