Commit 9ba7c6d0 authored by Nguyen, Thien Minh's avatar Nguyen, Thien Minh
Browse files

Use OpenQASM3 test util func in the test body



Signed-off-by: default avatarThien Nguyen <nguyentm@ornl.gov>
parent fa62d45c
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -7,8 +7,6 @@ link_directories(${XACC_ROOT}/lib)
#target_include_directories(qasm3VisitorTester PRIVATE . ../../ ${XACC_ROOT}/include/gtest)
#target_link_libraries(qasm3VisitorTester qcor-mlir-api gtest gtest_main)

link_directories(${XACC_ROOT}/lib)

add_executable(qasm3VisitorAliasTester test_alias_handler.cpp)
add_test(NAME qcor_qasm3_quantum_alias_decl_tester COMMAND test_alias_handler)
target_include_directories(qasm3VisitorAliasTester PRIVATE . ../../ ${XACC_ROOT}/include/gtest)
+19 −7
Original line number Diff line number Diff line
@@ -6,18 +6,30 @@ TEST(qasm3VisitorTester, checkAlias) {
  const std::string src = R"#(OPENQASM 3;
include "qelib1.inc";
qubit q[6];
x q[3];
// myreg[0] refers to the qubit q[1]
// myreg[0,1,2] refers to the qubit q[1,3,5]
let myreg = q[1, 3, 5];
x myreg[0];
h myreg[1];
let alias = q[0, 2, 4];
cx alias[1], myreg[2];
// Apply x on qubits in the alias list
for i in [0:3] {
  x myreg[i];
}
// Measure all qubits
bit m[6];
m = measure q;

for i in [0:6] {
  print(m[i]);
}
QCOR_EXPECT_TRUE(m[0] == 0);
QCOR_EXPECT_TRUE(m[1] == 1);
QCOR_EXPECT_TRUE(m[2] == 0);
QCOR_EXPECT_TRUE(m[3] == 1);
QCOR_EXPECT_TRUE(m[4] == 0);
QCOR_EXPECT_TRUE(m[5] == 1);
)#";
  auto mlir =
      qcor::mlir_compile("qasm3", src, "test", qcor::OutputType::MLIR, true);
  std::cout << "MLIR:\n" << mlir << "\n";
  qcor::execute("qasm3", src, "test");
  EXPECT_FALSE(qcor::execute("qasm3", src, "test"));
}

int main(int argc, char **argv) {