Loading python/tests/CMakeLists.txt +18 −18 Original line number Diff line number Diff line Loading @@ -5,23 +5,23 @@ add_test (NAME qcor_quasimo_python_bindings set_tests_properties(qcor_quasimo_python_bindings PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_INSTALL_PREFIX}:$ENV{PYTHONPATH}") #add_test (NAME qcor_simple_kernel_jit_python # COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_kernel_jit.py # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} #) #set_tests_properties(qcor_simple_kernel_jit_python # PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_INSTALL_PREFIX}:$ENV{PYTHONPATH}") add_test (NAME qcor_simple_kernel_jit_python COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_kernel_jit.py WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) set_tests_properties(qcor_simple_kernel_jit_python PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_INSTALL_PREFIX}:$ENV{PYTHONPATH}") #add_test (NAME qcor_test_qcor_spec_api # COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_qcor_spec_api.py # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} # ) # set_tests_properties(qcor_test_qcor_spec_api # PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_INSTALL_PREFIX}:$ENV{PYTHONPATH}") add_test (NAME qcor_test_qcor_spec_api COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_qcor_spec_api.py WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) set_tests_properties(qcor_test_qcor_spec_api PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_INSTALL_PREFIX}:$ENV{PYTHONPATH}") #add_test (NAME qcor_kernel_ftqc_python # COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_kernel_ftqc.py -qrt ftqc # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} #) #set_tests_properties(qcor_kernel_ftqc_python # PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_INSTALL_PREFIX}:$ENV{PYTHONPATH}") No newline at end of file add_test (NAME qcor_kernel_ftqc_python COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_kernel_ftqc.py -qrt ftqc WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) set_tests_properties(qcor_kernel_ftqc_python PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_INSTALL_PREFIX}:$ENV{PYTHONPATH}") No newline at end of file python/tests/test_kernel_ftqc.py +13 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ int_result = 0 class TestKernelFTQC(unittest.TestCase): def test_pass_by_ref(self): global testX0 @qjit def testX0(q : qreg, out_meas_z: FLOAT_REF): X(q[0]) Loading @@ -15,6 +16,7 @@ class TestKernelFTQC(unittest.TestCase): else: out_meas_z = 1.0 + out_meas_z global testX1 @qjit def testX1(q : qreg, out_meas_z: FLOAT_REF): X(q[1]) Loading @@ -23,6 +25,7 @@ class TestKernelFTQC(unittest.TestCase): else: out_meas_z = 1.0 + out_meas_z global test_ref @qjit def test_ref(q : qreg, out_meas_z: FLOAT_REF): testX0(q, out_meas_z) Loading @@ -39,6 +42,7 @@ class TestKernelFTQC(unittest.TestCase): self.assertAlmostEqual(float_result, -2.0) def test_pass_by_value(self): global testX0_byVal @qjit def testX0_byVal(q : qreg, out_meas_z: float): X(q[0]) Loading @@ -47,6 +51,7 @@ class TestKernelFTQC(unittest.TestCase): else: out_meas_z = 1.0 + out_meas_z global testX1_byVal @qjit def testX1_byVal(q : qreg, out_meas_z: float): X(q[1]) Loading @@ -55,6 +60,7 @@ class TestKernelFTQC(unittest.TestCase): else: out_meas_z = 1.0 + out_meas_z global test_byVal @qjit def test_byVal(q : qreg, out_meas_z: float): testX0_byVal(q, out_meas_z) Loading @@ -68,11 +74,13 @@ class TestKernelFTQC(unittest.TestCase): self.assertAlmostEqual(float_result, 0.0) def test_bit_flip_code(self): global encodeLogicalQubit @qjit def encodeLogicalQubit(q : qreg): CX(q[0], q[1]) CX(q[0], q[2]) global measureSyndrome @qjit def measureSyndrome(q : qreg, syndrome: INT_REF): # Make sure to clear syndrome Loading @@ -94,12 +102,14 @@ class TestKernelFTQC(unittest.TestCase): X(q[ancIdx]) syndrome = syndrome + 2 global reset_all_qubits @qjit def reset_all_qubits(q : qreg): for i in range(q.size()): if Measure(q[i]): X(q[i]) global testBitflipCode @qjit def testBitflipCode(q : qreg, qIdx: int, syndrome: INT_REF): H(q[0]) Loading Loading @@ -129,6 +139,7 @@ class TestKernelFTQC(unittest.TestCase): self.assertEqual(int_result, 2) def test_deuteron_measurement(self): global measure_basis @qjit def measure_basis(q: qreg, bases: List[int], out_parity: INT_REF): oneCount = 0 Loading @@ -143,12 +154,14 @@ class TestKernelFTQC(unittest.TestCase): oneCount = 1 + oneCount out_parity = oneCount - 2 * (oneCount / 2) global h2_ansatz @qjit def h2_ansatz(q: qreg, theta: float): X(q[0]) Ry(q[1], theta) CX(q[1], q[0]) global estimate_term_expectation @qjit def estimate_term_expectation(q: qreg, theta: float, bases: List[int], nSamples: int, out_energy: FLOAT_REF): exp_sum = 0.0 Loading python/tests/test_openfermion_integration.py +2 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ try: H = FOp('', 0.0002899) + FOp('0^ 0', -.43658) + \ FOp('1 0^', 4.2866) + FOp('1^ 0', -4.2866) + FOp('1^ 1', 12.25) global ansatz @qjit def ansatz(q: qreg, theta: float): X(q[0]) Loading @@ -28,6 +29,7 @@ try: H = QOp('', 5.907) + QOp('Y0 Y1', -2.1433) + \ QOp('X0 X1', -2.1433) + QOp('Z0', .21829) + QOp('Z1', -6.125) global ansatz @qjit def ansatz(q: qreg, theta: float): X(q[0]) Loading python/tests/test_qcor_spec_api.py +11 −8 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ from qcor import * class TestQCORSpecAPI(unittest.TestCase): def test_simple_deuteron(self): global ansatz @qjit def ansatz(q: qreg, theta: List[float]): X(q[0]) Loading Loading @@ -34,8 +34,9 @@ class TestQCORSpecAPI(unittest.TestCase): def test_simple_deuteron_with_grad(self): global ansatz1 @qjit def ansatz(q: qreg, theta: float): def ansatz1(q: qreg, theta: float): X(q[0]) Ry(q[1], theta) CX(q[1], q[0]) Loading @@ -44,7 +45,7 @@ class TestQCORSpecAPI(unittest.TestCase): Y(0) * Y(1) + .21829 * Z(0) - 6.125 * Z(1) + 5.907 n_params = 1 obj = createObjectiveFunction(ansatz, H, n_params, {'gradient-strategy':'parameter-shift'}) obj = createObjectiveFunction(ansatz1, H, n_params, {'gradient-strategy':'parameter-shift'}) optimizer = createOptimizer('nlopt', {'nlopt-optimizer':'l-bfgs'}) results = optimizer.optimize(obj) self.assertAlmostEqual(results[0], -1.74, places=1) Loading @@ -54,8 +55,9 @@ class TestQCORSpecAPI(unittest.TestCase): H = -2.1433 * X(0) * X(1) - 2.1433 * \ Y(0) * Y(1) + .21829 * Z(0) - 6.125 * Z(1) + 5.907 global ansatz2 @qjit def ansatz(q : qreg, theta : float): def ansatz2(q : qreg, theta : float): X(q[0]) Ry(q[1], theta) CX(q[1], q[0]) Loading @@ -64,7 +66,7 @@ class TestQCORSpecAPI(unittest.TestCase): def objective_function(x): q = qalloc(H.nBits()) energy = ansatz.observe(H, q, x[0]) energy = ansatz2.observe(H, q, x[0]) return abs(target_energy - energy) optimizer = createOptimizer('nlopt', {'nlopt-maxeval':20}) Loading @@ -80,8 +82,9 @@ class TestQCORSpecAPI(unittest.TestCase): H = FOp('', 0.0002899) + FOp('0^ 0', -.43658) + \ FOp('1 0^', 4.2866) + FOp('1^ 0', -4.2866) + FOp('1^ 1', 12.25) global ansatz3 @qjit def ansatz(q : qreg, theta : float): def ansatz3(q : qreg, theta : float): X(q[0]) Ry(q[1], theta) CX(q[1], q[0]) Loading @@ -90,7 +93,7 @@ class TestQCORSpecAPI(unittest.TestCase): def objective_function(x): q = qalloc(2) energy = ansatz.observe(H, q, x[0]) energy = ansatz3.observe(H, q, x[0]) print(energy) return abs(target_energy - energy) Loading @@ -102,7 +105,7 @@ class TestQCORSpecAPI(unittest.TestCase): Hq = jordan_wigner(H) def objective_function2(x): q = qalloc(2) energy = ansatz.observe(Hq, q, x[0]) energy = ansatz3.observe(Hq, q, x[0]) print(energy) return abs(target_energy - energy) Loading python/tests/test_quasimo.py +1 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ class TestWorkflows(unittest.TestCase): H = -2.1433 * X(0) * X(1) - 2.1433 * \ Y(0) * Y(1) + .21829 * Z(0) - 6.125 * Z(1) + 5.907 global ansatz @qjit def ansatz(q : qreg, theta : float): X(q[0]) Loading Loading
python/tests/CMakeLists.txt +18 −18 Original line number Diff line number Diff line Loading @@ -5,23 +5,23 @@ add_test (NAME qcor_quasimo_python_bindings set_tests_properties(qcor_quasimo_python_bindings PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_INSTALL_PREFIX}:$ENV{PYTHONPATH}") #add_test (NAME qcor_simple_kernel_jit_python # COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_kernel_jit.py # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} #) #set_tests_properties(qcor_simple_kernel_jit_python # PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_INSTALL_PREFIX}:$ENV{PYTHONPATH}") add_test (NAME qcor_simple_kernel_jit_python COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_kernel_jit.py WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) set_tests_properties(qcor_simple_kernel_jit_python PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_INSTALL_PREFIX}:$ENV{PYTHONPATH}") #add_test (NAME qcor_test_qcor_spec_api # COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_qcor_spec_api.py # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} # ) # set_tests_properties(qcor_test_qcor_spec_api # PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_INSTALL_PREFIX}:$ENV{PYTHONPATH}") add_test (NAME qcor_test_qcor_spec_api COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_qcor_spec_api.py WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) set_tests_properties(qcor_test_qcor_spec_api PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_INSTALL_PREFIX}:$ENV{PYTHONPATH}") #add_test (NAME qcor_kernel_ftqc_python # COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_kernel_ftqc.py -qrt ftqc # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} #) #set_tests_properties(qcor_kernel_ftqc_python # PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_INSTALL_PREFIX}:$ENV{PYTHONPATH}") No newline at end of file add_test (NAME qcor_kernel_ftqc_python COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_kernel_ftqc.py -qrt ftqc WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) set_tests_properties(qcor_kernel_ftqc_python PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_INSTALL_PREFIX}:$ENV{PYTHONPATH}") No newline at end of file
python/tests/test_kernel_ftqc.py +13 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ int_result = 0 class TestKernelFTQC(unittest.TestCase): def test_pass_by_ref(self): global testX0 @qjit def testX0(q : qreg, out_meas_z: FLOAT_REF): X(q[0]) Loading @@ -15,6 +16,7 @@ class TestKernelFTQC(unittest.TestCase): else: out_meas_z = 1.0 + out_meas_z global testX1 @qjit def testX1(q : qreg, out_meas_z: FLOAT_REF): X(q[1]) Loading @@ -23,6 +25,7 @@ class TestKernelFTQC(unittest.TestCase): else: out_meas_z = 1.0 + out_meas_z global test_ref @qjit def test_ref(q : qreg, out_meas_z: FLOAT_REF): testX0(q, out_meas_z) Loading @@ -39,6 +42,7 @@ class TestKernelFTQC(unittest.TestCase): self.assertAlmostEqual(float_result, -2.0) def test_pass_by_value(self): global testX0_byVal @qjit def testX0_byVal(q : qreg, out_meas_z: float): X(q[0]) Loading @@ -47,6 +51,7 @@ class TestKernelFTQC(unittest.TestCase): else: out_meas_z = 1.0 + out_meas_z global testX1_byVal @qjit def testX1_byVal(q : qreg, out_meas_z: float): X(q[1]) Loading @@ -55,6 +60,7 @@ class TestKernelFTQC(unittest.TestCase): else: out_meas_z = 1.0 + out_meas_z global test_byVal @qjit def test_byVal(q : qreg, out_meas_z: float): testX0_byVal(q, out_meas_z) Loading @@ -68,11 +74,13 @@ class TestKernelFTQC(unittest.TestCase): self.assertAlmostEqual(float_result, 0.0) def test_bit_flip_code(self): global encodeLogicalQubit @qjit def encodeLogicalQubit(q : qreg): CX(q[0], q[1]) CX(q[0], q[2]) global measureSyndrome @qjit def measureSyndrome(q : qreg, syndrome: INT_REF): # Make sure to clear syndrome Loading @@ -94,12 +102,14 @@ class TestKernelFTQC(unittest.TestCase): X(q[ancIdx]) syndrome = syndrome + 2 global reset_all_qubits @qjit def reset_all_qubits(q : qreg): for i in range(q.size()): if Measure(q[i]): X(q[i]) global testBitflipCode @qjit def testBitflipCode(q : qreg, qIdx: int, syndrome: INT_REF): H(q[0]) Loading Loading @@ -129,6 +139,7 @@ class TestKernelFTQC(unittest.TestCase): self.assertEqual(int_result, 2) def test_deuteron_measurement(self): global measure_basis @qjit def measure_basis(q: qreg, bases: List[int], out_parity: INT_REF): oneCount = 0 Loading @@ -143,12 +154,14 @@ class TestKernelFTQC(unittest.TestCase): oneCount = 1 + oneCount out_parity = oneCount - 2 * (oneCount / 2) global h2_ansatz @qjit def h2_ansatz(q: qreg, theta: float): X(q[0]) Ry(q[1], theta) CX(q[1], q[0]) global estimate_term_expectation @qjit def estimate_term_expectation(q: qreg, theta: float, bases: List[int], nSamples: int, out_energy: FLOAT_REF): exp_sum = 0.0 Loading
python/tests/test_openfermion_integration.py +2 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ try: H = FOp('', 0.0002899) + FOp('0^ 0', -.43658) + \ FOp('1 0^', 4.2866) + FOp('1^ 0', -4.2866) + FOp('1^ 1', 12.25) global ansatz @qjit def ansatz(q: qreg, theta: float): X(q[0]) Loading @@ -28,6 +29,7 @@ try: H = QOp('', 5.907) + QOp('Y0 Y1', -2.1433) + \ QOp('X0 X1', -2.1433) + QOp('Z0', .21829) + QOp('Z1', -6.125) global ansatz @qjit def ansatz(q: qreg, theta: float): X(q[0]) Loading
python/tests/test_qcor_spec_api.py +11 −8 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ from qcor import * class TestQCORSpecAPI(unittest.TestCase): def test_simple_deuteron(self): global ansatz @qjit def ansatz(q: qreg, theta: List[float]): X(q[0]) Loading Loading @@ -34,8 +34,9 @@ class TestQCORSpecAPI(unittest.TestCase): def test_simple_deuteron_with_grad(self): global ansatz1 @qjit def ansatz(q: qreg, theta: float): def ansatz1(q: qreg, theta: float): X(q[0]) Ry(q[1], theta) CX(q[1], q[0]) Loading @@ -44,7 +45,7 @@ class TestQCORSpecAPI(unittest.TestCase): Y(0) * Y(1) + .21829 * Z(0) - 6.125 * Z(1) + 5.907 n_params = 1 obj = createObjectiveFunction(ansatz, H, n_params, {'gradient-strategy':'parameter-shift'}) obj = createObjectiveFunction(ansatz1, H, n_params, {'gradient-strategy':'parameter-shift'}) optimizer = createOptimizer('nlopt', {'nlopt-optimizer':'l-bfgs'}) results = optimizer.optimize(obj) self.assertAlmostEqual(results[0], -1.74, places=1) Loading @@ -54,8 +55,9 @@ class TestQCORSpecAPI(unittest.TestCase): H = -2.1433 * X(0) * X(1) - 2.1433 * \ Y(0) * Y(1) + .21829 * Z(0) - 6.125 * Z(1) + 5.907 global ansatz2 @qjit def ansatz(q : qreg, theta : float): def ansatz2(q : qreg, theta : float): X(q[0]) Ry(q[1], theta) CX(q[1], q[0]) Loading @@ -64,7 +66,7 @@ class TestQCORSpecAPI(unittest.TestCase): def objective_function(x): q = qalloc(H.nBits()) energy = ansatz.observe(H, q, x[0]) energy = ansatz2.observe(H, q, x[0]) return abs(target_energy - energy) optimizer = createOptimizer('nlopt', {'nlopt-maxeval':20}) Loading @@ -80,8 +82,9 @@ class TestQCORSpecAPI(unittest.TestCase): H = FOp('', 0.0002899) + FOp('0^ 0', -.43658) + \ FOp('1 0^', 4.2866) + FOp('1^ 0', -4.2866) + FOp('1^ 1', 12.25) global ansatz3 @qjit def ansatz(q : qreg, theta : float): def ansatz3(q : qreg, theta : float): X(q[0]) Ry(q[1], theta) CX(q[1], q[0]) Loading @@ -90,7 +93,7 @@ class TestQCORSpecAPI(unittest.TestCase): def objective_function(x): q = qalloc(2) energy = ansatz.observe(H, q, x[0]) energy = ansatz3.observe(H, q, x[0]) print(energy) return abs(target_energy - energy) Loading @@ -102,7 +105,7 @@ class TestQCORSpecAPI(unittest.TestCase): Hq = jordan_wigner(H) def objective_function2(x): q = qalloc(2) energy = ansatz.observe(Hq, q, x[0]) energy = ansatz3.observe(Hq, q, x[0]) print(energy) return abs(target_energy - energy) Loading
python/tests/test_quasimo.py +1 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ class TestWorkflows(unittest.TestCase): H = -2.1433 * X(0) * X(1) - 2.1433 * \ Y(0) * Y(1) + .21829 * Z(0) - 6.125 * Z(1) + 5.907 global ansatz @qjit def ansatz(q : qreg, theta : float): X(q[0]) Loading