def test_bit_link_data_equivalent(self):
        """Test BitLinkData equivalent check."""
        obj1 = drawings.GateLinkData(bits=[self.qubits[0], self.qubits[1]],
                                     xval=0,
                                     styles=self.style1)

        obj2 = drawings.GateLinkData(bits=[self.qubits[0], self.qubits[1]],
                                     xval=0,
                                     styles=self.style2)

        self.assertEqual(obj1, obj2)
    def test_bit_link_data_equivalent_abstract_coord(self):
        """Test BitLinkData equivalent check with abstract coordinate."""
        obj1 = drawings.GateLinkData(bits=[self.qubits[0], self.qubits[1]],
                                     xval=types.AbstractCoordinate.LEFT,
                                     styles=self.style1)

        obj2 = drawings.GateLinkData(bits=[self.qubits[0], self.qubits[1]],
                                     xval=types.AbstractCoordinate.LEFT,
                                     styles=self.style2)

        self.assertEqual(obj1, obj2)
Пример #3
0
def gen_gate_link(link: types.GateLink,
                  formatter: Dict[str, Any]) -> List[drawings.GateLinkData]:
    """Generate gate link line.

    Line color depends on the operand type.

    Stylesheet:
        - `gate_link` style is applied.
        - The `gate_face_color` style is applied for line color.

    Args:
        link: Gate link object.
        formatter: Dictionary of stylesheet settings.

    Returns:
        List of `GateLinkData` drawings.
    """

    # find line color
    color = formatter["color.gates"].get(link.opname,
                                         formatter["color.default_gate"])

    styles = {
        "alpha": formatter["alpha.gate_link"],
        "zorder": formatter["layer.gate_link"],
        "linewidth": formatter["line_width.gate_link"],
        "linestyle": formatter["line_style.gate_link"],
        "color": color,
    }

    drawing = drawings.GateLinkData(bits=link.bits,
                                    xval=link.t0,
                                    styles=styles)

    return [drawing]