Esempio n. 1
0
    def test_nine_patch_rect_draw(self):
        ascii_canvas = AsciiCanvas(5, 5)
        ascii_canvas.add_nine_patch_rect(0, 0, 5, 5)
        canvas_with_rect_str = \
            line('.---.') + \
            line('|   |') + \
            line('|   |') + \
            line('|   |') + \
            last("`---'")
        self.assertEqual(ascii_canvas.get_canvas_as_str(), canvas_with_rect_str, 'Incorrect canvas with 9-patch rect')

        ascii_canvas = AsciiCanvas(5, 5)
        nine_patch_style = (
            Style('1'), Style('2'), Style('3'),
            Style('4'), Style('5'), Style('6'),
            Style('7'), Style('8'), Style('9')
        )
        ascii_canvas.add_nine_patch_rect(0, 0, 5, 5, nine_patch_style)
        canvas_with_rect_str = \
            line('12223') + \
            line('45556') + \
            line('45556') + \
            line('45556') + \
            last('78889')
        self.assertEqual(ascii_canvas.get_canvas_as_str(), canvas_with_rect_str, 'Incorrect canvas with 9-patch rect')

        ascii_canvas = AsciiCanvas(2, 2)
        ascii_canvas.add_nine_patch_rect(0, 0, 2, 2)
        canvas_with_rect_str = \
            line('..') + \
            last("`'")
        self.assertEqual(ascii_canvas.get_canvas_as_str(), canvas_with_rect_str, 'Incorrect canvas with 9-patch rect')

        ascii_canvas = AsciiCanvas(2, 2)
        ascii_canvas.add_nine_patch_rect(0, 0, 0, 0)
        canvas_with_rect_str = \
            line('  ') + \
            last('  ')
        self.assertEqual(ascii_canvas.get_canvas_as_str(), canvas_with_rect_str, 'Incorrect canvas with 9-patch rect')

        ascii_canvas = AsciiCanvas(2, 2)
        ascii_canvas.add_nine_patch_rect(1, 1, 1, 1, nine_patch_style)
        canvas_with_rect_str = \
            line('  ') + \
            last(' 1')
        self.assertEqual(ascii_canvas.get_canvas_as_str(), canvas_with_rect_str, 'Incorrect canvas with 9-patch rect')

        ascii_canvas = AsciiCanvas(2, 2)
        ascii_canvas.add_nine_patch_rect(1, 1, -1, -1)
        canvas_with_rect_str = \
            line('  ') + \
            last('  ')
        self.assertEqual(ascii_canvas.get_canvas_as_str(), canvas_with_rect_str, 'Incorrect canvas with 9-patch rect')
Esempio n. 2
0
    def draw(self):
        # NOTE: coordinates might me negative, so we need to shift
        # everything to the positive plane before we actually draw it.
        Xs = []
        Ys = []

        for v in self.sug.g.sV:
            # NOTE: moving boxes w/2 to the left
            Xs.append(v.view.xy[0] - v.view.w / 2.0)
            Xs.append(v.view.xy[0] + v.view.w / 2.0)
            Ys.append(v.view.xy[1])
            Ys.append(v.view.xy[1] + v.view.h)

        for e in self.sug.g.sE:
            for xy in e.view._pts:
                Xs.append(xy[0])
                Ys.append(xy[1])

        minx = min(Xs)
        miny = min(Ys)
        maxx = max(Xs)
        maxy = max(Ys)

        canvas_cols = int(math.ceil(math.ceil(maxx) - math.floor(minx))) + 1
        canvas_lines = int(round(maxy - miny))

        canvas = AsciiCanvas(canvas_cols, canvas_lines)

        # NOTE: first draw edges so that node boxes could overwrite them
        for e in self.sug.g.sE:
            assert len(e.view._pts) > 1
            for index in range(1, len(e.view._pts)):
                start = e.view._pts[index - 1]
                end = e.view._pts[index]

                start_x = int(round(start[0] - minx))
                start_y = int(round(start[1] - miny))
                end_x = int(round(end[0] - minx))
                end_y = int(round(end[1] - miny))

                assert start_x >= 0
                assert start_y >= 0
                assert end_x >= 0
                assert end_y >= 0

                canvas.add_line(start_x,
                                start_y,
                                end_x,
                                end_y,
                                style=Style('*'))

        for v in self.sug.g.sV:
            # NOTE: moving boxes w/2 to the left
            x = v.view.xy[0] - v.view.w / 2.0
            y = v.view.xy[1]

            canvas.add_nine_patch_rect(int(round(x - minx)),
                                       int(round(y - miny)), v.view.w,
                                       v.view.h)

            canvas.add_text(
                int(round(x - minx)) + 1,
                int(round(y - miny)) + 1, v.data)

        canvas.print_out()
Esempio n. 3
0
    def test_nine_patch_rect_draw(self):
        ascii_canvas = AsciiCanvas(5, 5)
        ascii_canvas.add_nine_patch_rect(0, 0, 5, 5)
        canvas_with_rect_str = \
            line('.---.') + \
            line('|   |') + \
            line('|   |') + \
            line('|   |') + \
            last("`---'")
        self.assertEqual(ascii_canvas.get_canvas_as_str(),
                         canvas_with_rect_str,
                         'Incorrect canvas with 9-patch rect')

        ascii_canvas = AsciiCanvas(5, 5)
        nine_patch_style = (Style('1'), Style('2'), Style('3'), Style('4'),
                            Style('5'), Style('6'), Style('7'), Style('8'),
                            Style('9'))
        ascii_canvas.add_nine_patch_rect(0, 0, 5, 5, nine_patch_style)
        canvas_with_rect_str = \
            line('12223') + \
            line('45556') + \
            line('45556') + \
            line('45556') + \
            last('78889')
        self.assertEqual(ascii_canvas.get_canvas_as_str(),
                         canvas_with_rect_str,
                         'Incorrect canvas with 9-patch rect')

        ascii_canvas = AsciiCanvas(2, 2)
        ascii_canvas.add_nine_patch_rect(0, 0, 2, 2)
        canvas_with_rect_str = \
            line('..') + \
            last("`'")
        self.assertEqual(ascii_canvas.get_canvas_as_str(),
                         canvas_with_rect_str,
                         'Incorrect canvas with 9-patch rect')

        ascii_canvas = AsciiCanvas(2, 2)
        ascii_canvas.add_nine_patch_rect(0, 0, 0, 0)
        canvas_with_rect_str = \
            line('  ') + \
            last('  ')
        self.assertEqual(ascii_canvas.get_canvas_as_str(),
                         canvas_with_rect_str,
                         'Incorrect canvas with 9-patch rect')

        ascii_canvas = AsciiCanvas(2, 2)
        ascii_canvas.add_nine_patch_rect(1, 1, 1, 1, nine_patch_style)
        canvas_with_rect_str = \
            line('  ') + \
            last(' 1')
        self.assertEqual(ascii_canvas.get_canvas_as_str(),
                         canvas_with_rect_str,
                         'Incorrect canvas with 9-patch rect')

        ascii_canvas = AsciiCanvas(2, 2)
        ascii_canvas.add_nine_patch_rect(1, 1, -1, -1)
        canvas_with_rect_str = \
            line('  ') + \
            last('  ')
        self.assertEqual(ascii_canvas.get_canvas_as_str(),
                         canvas_with_rect_str,
                         'Incorrect canvas with 9-patch rect')