示例#1
0
    def __str__(self):
        diagram = TextDiagramDrawer()

        for q in self.qubits:
            diagram.write(q.col, q.row, str(q))
            for q2 in self.neighbors_of(q):
                diagram.grid_line(q.col, q.row, q2.col, q2.row)

        return diagram.render(horizontal_spacing=3,
                              vertical_spacing=2,
                              use_unicode_characters=True)
示例#2
0
    def __str__(self):
        diagram = TextDiagramDrawer()

        for q in self.qubits:
            diagram.write(q.col, q.row, str(q))
            for q2 in self.neighbors_of(q):
                diagram.grid_line(q.col, q.row, q2.col, q2.row)

        return diagram.render(
            horizontal_spacing=3,
            vertical_spacing=2,
            use_unicode_characters=True)
示例#3
0
    def __str__(self) -> str:
        diagram = TextDiagramDrawer()
        dx = min(q.col for q in self)
        dy = min(q.row for q in self)

        for q in self:
            diagram.write(q.col - dx, q.row - dy, str(q))

        for q1, q2 in zip(self, self[1:]):
            diagram.grid_line(q1.col - dx, q1.row - dy, q2.col - dx,
                              q2.row - dy, True)

        return diagram.render(horizontal_spacing=2,
                              vertical_spacing=1,
                              use_unicode_characters=True)
示例#4
0
    def __str__(self):
        diagram = TextDiagramDrawer()
        dx = min(q.col for q in self)
        dy = min(q.row for q in self)

        for q in self:
            diagram.write(q.col - dx, q.row - dy, str(q))

        for q1, q2 in zip(self, self[1:]):
            diagram.grid_line(q1.col - dx, q1.row - dy,
                              q2.col - dx, q2.row - dy,
                              True)

        return diagram.render(horizontal_spacing=2,
                              vertical_spacing=1,
                              use_unicode_characters=True)
示例#5
0
def test_draw_entries_and_lines_with_emphasize():
    d = TextDiagramDrawer()
    d.write(0, 0, '!')
    d.write(6, 2, 'span')
    d.grid_line(2, 3, 8, 3, True)
    d.grid_line(7, 1, 7, 4, True)
    print(d.render().strip())
    assert d.render().strip() == """
!

                 ┃
                 ┃
            span ┃
                 ┃
    ━━━━━━━━━━━━━━━
                 ┃
    """.strip()
示例#6
0
def test_line_fails_when_not_aligned():
    d = TextDiagramDrawer()
    with pytest.raises(ValueError):
        d.grid_line(1, 2, 3, 4)
示例#7
0
def test_line_detects_vertical():
    d = TextDiagramDrawer()
    with mock.patch.object(d, 'horizontal_line') as horizontal_line:
        d.grid_line(2, 1, 5, 1, True)
        horizontal_line.assert_called_once_with(1, 2, 5, True)
def test_line_detects_horizontal():
    d = TextDiagramDrawer()
    with mock.patch.object(d, 'vertical_line') as vertical_line:
        d.grid_line(1, 2, 1, 5, True)
        vertical_line.assert_called_once_with(1, 2, 5, True)
def test_line_fails_when_not_aligned():
    d = TextDiagramDrawer()
    with pytest.raises(ValueError):
        d.grid_line(1, 2, 3, 4)