import logging import unittest import numpy as np from jobs.src.a_job import sigma_x, sigma_y, sigma_z logger = logging.getLogger(__name__) logging.basicConfig(level=logging.INFO) class AJobTest(unittest.TestCase): def test_a_job(self): """ Test functionalities of Pauli gates on single qubits """ qubit_0 = np.array([1, 0]) qubit_1 = np.array([0, 1]) # ensure input is a single qubit self.assertTrue(qubit_0.shape[0] == 2) self.assertTrue(qubit_1.shape[0] == 2) # test Pauli gate X self.assertTrue(np.array_equal(np.dot(sigma_x(), qubit_0), qubit_1)) self.assertTrue(np.array_equal(np.dot(sigma_x(), qubit_1), qubit_0)) # test Pauli gate Y self.assertTrue(np.array_equal(np.dot(sigma_y(), qubit_0), 1j * qubit_1)) self.assertTrue(np.array_equal(np.dot(sigma_y(), qubit_1), -1j * qubit_0)) # test Pauli gate Z self.assertTrue(np.array_equal(np.dot(sigma_z(), qubit_0), qubit_0)) self.assertTrue(np.array_equal(np.dot(sigma_z(), qubit_1), -qubit_1)) logger.info("Logging for fun!") if __name__ == '__main__': unittest.main()