-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathquasar_qasm_test.py
More file actions
35 lines (27 loc) · 1.02 KB
/
quasar_qasm_test.py
File metadata and controls
35 lines (27 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import unittest
from qiskit import QuantumCircuit
from builtin_gates import X_GATE, Z_GATE
from quasar_qasm import QASMFormatter
class QasmFormatterTest(unittest.TestCase):
def test_formatter(self) -> None:
f = QASMFormatter()
self.assertEqual(f.gate(X_GATE, 10, [], set()).strip(),
'x q[10];')
self.assertEqual(f.gate(X_GATE, 10, [], {20}).strip(),
'cx q[20], q[10];')
self.assertEqual(f.gate(X_GATE, 10, [], {20, 30}).strip(),
'ccx q[20], q[30], q[10];')
def test_is_loadable(self) -> None:
f = QASMFormatter()
f.set_qubits_counter(2)
f.set_bits_counter(1)
lines = [
f.gate(X_GATE, 0, [], set()),
f.gate(Z_GATE, 1, [], {0})
]
lines = f.get_headers() + lines + f.get_footers()
code = '\n'.join(lines)
# Just test if it loads with no exceptions
QuantumCircuit.from_qasm_str(code)
if __name__ == '__main__':
unittest.main()