Skip to content

Commit

Permalink
tox
Browse files Browse the repository at this point in the history
  • Loading branch information
jkalloor3 committed Sep 27, 2024
1 parent f10aa6c commit fdb81d7
Showing 1 changed file with 21 additions and 15 deletions.
36 changes: 21 additions & 15 deletions tests/passes/synthesis/test_bzxz.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,39 +5,45 @@
from bqskit.compiler import Compiler
from bqskit.ir.circuit import Circuit
from bqskit.ir.gates.parameterized import VariableUnitaryGate
from bqskit.passes import BlockZXZPass, FullBlockZXZPass
from bqskit.passes import BlockZXZPass
from bqskit.passes import FullBlockZXZPass
from bqskit.qis import UnitaryMatrix


def create_random_unitary_circ(num_qudits: int):
'''
Create a Circuit with a random VariableUnitaryGate.
'''
def create_random_unitary_circ(num_qudits: int) -> Circuit:
"""Create a Circuit with a random VariableUnitaryGate."""
circuit = Circuit(num_qudits)
utry = UnitaryMatrix.random(num_qudits)
utry_params = np.concatenate((np.real(utry._utry).flatten(),
np.imag(utry._utry).flatten()))
circuit.append_gate(VariableUnitaryGate(num_qudits),
list(range(num_qudits)),
utry_params)
utry_params = np.concatenate((
np.real(utry._utry).flatten(),
np.imag(utry._utry).flatten(),
))
circuit.append_gate(
VariableUnitaryGate(num_qudits),
list(range(num_qudits)),
utry_params,
)
return circuit


class TestBZXZ:
def test_small_qubit_bzxz(compiler: Compiler) -> None:
def test_small_qubit_bzxz(self, compiler: Compiler) -> None:
circuit = create_random_unitary_circ(4)
utry = circuit.get_unitary()
bzxz = BlockZXZPass(min_qudit_size=2)
circuit = compiler.compile(circuit, [bzxz])
dist = circuit.get_unitary().get_distance_from(utry)
assert dist <= 1e-5

def test_full_bzxz_no_extract(compiler: Compiler) -> None:
def test_full_bzxz_no_extract(self, compiler: Compiler) -> None:
circuit = create_random_unitary_circ(5)
utry = circuit.get_unitary()
bzxz = FullBlockZXZPass(min_qudit_size=2, perform_scan=False,
perform_extract=False)
bzxz = FullBlockZXZPass(
min_qudit_size=2, perform_scan=False,
perform_extract=False,
)
circuit = compiler.compile(circuit, [bzxz])
dist = circuit.get_unitary().get_distance_from(utry)
print(dist)
print(circuit.gate_counts)
assert dist <= 1e-5
assert dist <= 1e-5

0 comments on commit fdb81d7

Please sign in to comment.