def test_ignore_non_gates(): class Foo(Operator): @property def name(self) -> str: return "foo" def to_ir(self, target): return "foo" circ = Circuit().h(0).h(1).cnot(1, 2).add_instruction(Instruction(Foo(), 0)) expected = ( "T : |0|1|", " ", "q0 : -H---", " ", "q1 : -H-C-", " | ", "q2 : ---X-", "", "T : |0|1|", ) expected = "\n".join(expected) assert AsciiCircuitDiagram.build_diagram(circ) == expected
def test_str(h): expected = AsciiCircuitDiagram.build_diagram(h) assert str(h) == expected
def test_one_gate_one_qubit(): circ = Circuit().h(0) expected = ("T : |0|", " ", "q0 : -H-", "", "T : |0|") expected = "\n".join(expected) assert AsciiCircuitDiagram.build_diagram(circ) == expected
def test_empty_circuit(): assert AsciiCircuitDiagram.build_diagram(Circuit()) == ""
def _assert_correct_diagram(circ, expected): assert AsciiCircuitDiagram.build_diagram(circ) == "\n".join(expected)