Loading lib/qsim/impls/workflow/qite.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -104,10 +104,10 @@ QiteWorkflow::execute(const QuantumSimulationModel &model) { }; // Cost function (observable) evaluator evaluator = getEvaluator(model.observable, config_params); auto calcCurrentEnergy = [&](){ // Trotter kernel up to this point auto propagateKernel = constructPropagateCircuit(approxOps, model.user_defined_ansatz, stepSize); evaluator = getEvaluator(model.observable, config_params); return evaluator->evaluate(propagateKernel); }; Loading lib/qsim/impls/workflow/tests/CMakeLists.txt +6 −1 Original line number Diff line number Diff line Loading @@ -9,3 +9,8 @@ add_executable(QaoaWorkflowTester QaoaWorkflowTester.cpp) add_test(NAME QaoaWorkflowTester COMMAND QaoaWorkflowTester) target_include_directories(QaoaWorkflowTester PRIVATE ../../ ../../../base ${XACC_ROOT}/include/gtest) target_link_libraries(QaoaWorkflowTester ${XACC_TEST_LIBRARIES} xacc::xacc xacc::quantum_gate qcor-qsim) add_executable(QiteWorkflowTester QiteWorkflowTester.cpp) add_test(NAME QiteWorkflowTester COMMAND QiteWorkflowTester) target_include_directories(QiteWorkflowTester PRIVATE ../../ ../../../base ${XACC_ROOT}/include/gtest) target_link_libraries(QiteWorkflowTester ${XACC_TEST_LIBRARIES} xacc::xacc xacc::quantum_gate qcor-qsim) No newline at end of file lib/qsim/impls/workflow/tests/QiteWorkflowTester.cpp 0 → 100644 +33 −0 Original line number Diff line number Diff line #include "qcor.hpp" #include "qcor_qsim.hpp" #include "xacc.hpp" #include <gtest/gtest.h> TEST(QiteWorkflowTester, checkSimple) { using namespace qcor; auto observable = 0.7071067811865475 * X(0) + 0.7071067811865475 * Z(0); xacc::internal_compiler::qpu = xacc::getAccelerator("qpp"); const int nbSteps = 25; const double stepSize = 0.1; auto problemModel = qsim::ModelBuilder::createModel(&observable); auto workflow = qsim::getWorkflow("qite", {{"steps", nbSteps}, {"step-size", stepSize}}); auto result = workflow->execute(problemModel); const auto energy = result.get<double>("energy"); const auto energyAtStep = result.get<std::vector<double>>("exp-vals"); for (const auto &val : energyAtStep) { std::cout << val << "\n"; } // Minimal Energy = -1 EXPECT_NEAR(energy, -1.0, 1e-2); auto finalCircuit = result.getPointerLike<xacc::CompositeInstruction>("circuit"); std::cout << "HOWDY:\n" << finalCircuit->toString() << "\n"; } int main(int argc, char **argv) { xacc::Initialize(); ::testing::InitGoogleTest(&argc, argv); auto ret = RUN_ALL_TESTS(); xacc::Finalize(); return ret; } No newline at end of file Loading
lib/qsim/impls/workflow/qite.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -104,10 +104,10 @@ QiteWorkflow::execute(const QuantumSimulationModel &model) { }; // Cost function (observable) evaluator evaluator = getEvaluator(model.observable, config_params); auto calcCurrentEnergy = [&](){ // Trotter kernel up to this point auto propagateKernel = constructPropagateCircuit(approxOps, model.user_defined_ansatz, stepSize); evaluator = getEvaluator(model.observable, config_params); return evaluator->evaluate(propagateKernel); }; Loading
lib/qsim/impls/workflow/tests/CMakeLists.txt +6 −1 Original line number Diff line number Diff line Loading @@ -9,3 +9,8 @@ add_executable(QaoaWorkflowTester QaoaWorkflowTester.cpp) add_test(NAME QaoaWorkflowTester COMMAND QaoaWorkflowTester) target_include_directories(QaoaWorkflowTester PRIVATE ../../ ../../../base ${XACC_ROOT}/include/gtest) target_link_libraries(QaoaWorkflowTester ${XACC_TEST_LIBRARIES} xacc::xacc xacc::quantum_gate qcor-qsim) add_executable(QiteWorkflowTester QiteWorkflowTester.cpp) add_test(NAME QiteWorkflowTester COMMAND QiteWorkflowTester) target_include_directories(QiteWorkflowTester PRIVATE ../../ ../../../base ${XACC_ROOT}/include/gtest) target_link_libraries(QiteWorkflowTester ${XACC_TEST_LIBRARIES} xacc::xacc xacc::quantum_gate qcor-qsim) No newline at end of file
lib/qsim/impls/workflow/tests/QiteWorkflowTester.cpp 0 → 100644 +33 −0 Original line number Diff line number Diff line #include "qcor.hpp" #include "qcor_qsim.hpp" #include "xacc.hpp" #include <gtest/gtest.h> TEST(QiteWorkflowTester, checkSimple) { using namespace qcor; auto observable = 0.7071067811865475 * X(0) + 0.7071067811865475 * Z(0); xacc::internal_compiler::qpu = xacc::getAccelerator("qpp"); const int nbSteps = 25; const double stepSize = 0.1; auto problemModel = qsim::ModelBuilder::createModel(&observable); auto workflow = qsim::getWorkflow("qite", {{"steps", nbSteps}, {"step-size", stepSize}}); auto result = workflow->execute(problemModel); const auto energy = result.get<double>("energy"); const auto energyAtStep = result.get<std::vector<double>>("exp-vals"); for (const auto &val : energyAtStep) { std::cout << val << "\n"; } // Minimal Energy = -1 EXPECT_NEAR(energy, -1.0, 1e-2); auto finalCircuit = result.getPointerLike<xacc::CompositeInstruction>("circuit"); std::cout << "HOWDY:\n" << finalCircuit->toString() << "\n"; } int main(int argc, char **argv) { xacc::Initialize(); ::testing::InitGoogleTest(&argc, argv); auto ret = RUN_ALL_TESTS(); xacc::Finalize(); return ret; } No newline at end of file