Loading runtime/qrt/impls/ftqc/CMakeLists.txt +1 −1 Original line number Diff line number Diff line Loading @@ -52,7 +52,7 @@ else() endif() if (QCOR_BUILD_TESTS) #add_subdirectory(tests) add_subdirectory(tests) endif() install(TARGETS ${LIBRARY_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/plugins) runtime/qrt/impls/ftqc/tests/CMakeLists.txt 0 → 100644 +9 −0 Original line number Diff line number Diff line link_directories(${XACC_ROOT}/lib) if (NOT XACC_ROOT STREQUAL CMAKE_INSTALL_PREFIX) add_definitions(-D__internal__qcor__compile__plugin__path="${CMAKE_INSTALL_PREFIX}/plugins") endif() add_executable(FtqcQrtTester FtqcQrtTester.cpp) add_test(NAME qcor_FtqcQrtTester COMMAND FtqcQrtTester) target_include_directories(FtqcQrtTester PRIVATE ${XACC_ROOT}/include/gtest) target_link_libraries(FtqcQrtTester ${XACC_TEST_LIBRARIES} qcor) No newline at end of file runtime/qrt/impls/ftqc/tests/FtqcQrtTester.cpp 0 → 100644 +59 −0 Original line number Diff line number Diff line #include "qcor.hpp" #include <gtest/gtest.h> #include "xacc_service.hpp" TEST(FtqcQrtTester, checkSimple) { ::quantum::set_qrt("ftqc"); ::quantum::initialize("qpp", "empty"); auto qreg = qalloc(1); qreg.setName("q"); ::quantum::set_current_buffer(qreg.results()); const auto nTests = 100; int nZeros = 0; int nOnes = 0; for (int i = 0; i < nTests; ++i) { ::quantum::h({"q", 0}); if (::quantum::mz({"q", 0})) { ++nOnes; } else { ++nZeros; } } std::cout << "Number of one: " << nOnes << "\n"; std::cout << "Number of zero: " << nZeros << "\n"; EXPECT_GT(nZeros, 0); EXPECT_GT(nOnes, 0); } TEST(FtqcQrtTester, checkReset) { ::quantum::set_qrt("ftqc"); ::quantum::initialize("qpp", "empty"); auto qreg = qalloc(1); qreg.setName("q"); ::quantum::set_current_buffer(qreg.results()); const auto nTests = 100; int nZeros = 0; int nOnes = 0; for (int i = 0; i < nTests; ++i) { ::quantum::h({"q", 0}); // Apply reset ::quantum::reset({"q", 0}); ::quantum::x({"q", 0}); if (::quantum::mz({"q", 0})) { ++nOnes; } else { ++nZeros; } } std::cout << "Number of one: " << nOnes << "\n"; std::cout << "Number of zero: " << nZeros << "\n"; EXPECT_EQ(nZeros, 0); // Expect all 1's due to reset. EXPECT_EQ(nOnes, 100); } int main(int argc, char **argv) { ::testing::InitGoogleTest(&argc, argv); auto ret = RUN_ALL_TESTS(); return ret; } Loading
runtime/qrt/impls/ftqc/CMakeLists.txt +1 −1 Original line number Diff line number Diff line Loading @@ -52,7 +52,7 @@ else() endif() if (QCOR_BUILD_TESTS) #add_subdirectory(tests) add_subdirectory(tests) endif() install(TARGETS ${LIBRARY_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/plugins)
runtime/qrt/impls/ftqc/tests/CMakeLists.txt 0 → 100644 +9 −0 Original line number Diff line number Diff line link_directories(${XACC_ROOT}/lib) if (NOT XACC_ROOT STREQUAL CMAKE_INSTALL_PREFIX) add_definitions(-D__internal__qcor__compile__plugin__path="${CMAKE_INSTALL_PREFIX}/plugins") endif() add_executable(FtqcQrtTester FtqcQrtTester.cpp) add_test(NAME qcor_FtqcQrtTester COMMAND FtqcQrtTester) target_include_directories(FtqcQrtTester PRIVATE ${XACC_ROOT}/include/gtest) target_link_libraries(FtqcQrtTester ${XACC_TEST_LIBRARIES} qcor) No newline at end of file
runtime/qrt/impls/ftqc/tests/FtqcQrtTester.cpp 0 → 100644 +59 −0 Original line number Diff line number Diff line #include "qcor.hpp" #include <gtest/gtest.h> #include "xacc_service.hpp" TEST(FtqcQrtTester, checkSimple) { ::quantum::set_qrt("ftqc"); ::quantum::initialize("qpp", "empty"); auto qreg = qalloc(1); qreg.setName("q"); ::quantum::set_current_buffer(qreg.results()); const auto nTests = 100; int nZeros = 0; int nOnes = 0; for (int i = 0; i < nTests; ++i) { ::quantum::h({"q", 0}); if (::quantum::mz({"q", 0})) { ++nOnes; } else { ++nZeros; } } std::cout << "Number of one: " << nOnes << "\n"; std::cout << "Number of zero: " << nZeros << "\n"; EXPECT_GT(nZeros, 0); EXPECT_GT(nOnes, 0); } TEST(FtqcQrtTester, checkReset) { ::quantum::set_qrt("ftqc"); ::quantum::initialize("qpp", "empty"); auto qreg = qalloc(1); qreg.setName("q"); ::quantum::set_current_buffer(qreg.results()); const auto nTests = 100; int nZeros = 0; int nOnes = 0; for (int i = 0; i < nTests; ++i) { ::quantum::h({"q", 0}); // Apply reset ::quantum::reset({"q", 0}); ::quantum::x({"q", 0}); if (::quantum::mz({"q", 0})) { ++nOnes; } else { ++nZeros; } } std::cout << "Number of one: " << nOnes << "\n"; std::cout << "Number of zero: " << nZeros << "\n"; EXPECT_EQ(nZeros, 0); // Expect all 1's due to reset. EXPECT_EQ(nOnes, 100); } int main(int argc, char **argv) { ::testing::InitGoogleTest(&argc, argv); auto ret = RUN_ALL_TESTS(); return ret; }