Skip to content
Snippets Groups Projects
test_a_job.py 1.16 KiB
Newer Older
import logging
import unittest

import numpy as np

nguyed99's avatar
nguyed99 committed
from jobs.src.a_job import sigma_x, sigma_y, sigma_z

logger = logging.getLogger(__name__)
nguyed99's avatar
nguyed99 committed
logging.basicConfig(level=logging.INFO)


class AJobTest(unittest.TestCase):

    def test_a_job(self):
nguyed99's avatar
nguyed99 committed
        """
        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()