Example #1
0
def test_matrix_vcolorize():
    m, n = 3, 3
    matrix = Matrix(m, n)

    matrix.vcolorize(1, 1, 2, 'X')

    assert matrix[1][1] == 'X'
    assert matrix[2][1] == 'X'

    matrix.vcolorize(2, 0, 1, 'X')

    assert matrix[0][2] == 'X'
    assert matrix[1][2] == 'X'

    matrix.vcolorize(0, 0, 2, 'X')

    assert matrix[0][0] == 'X'
    assert matrix[1][0] == 'X'
    assert matrix[2][0] == 'X'
Example #2
0
class MatrixParser:

    def init(self, m, n):
        m, n = int(m), int(n)
        self.matrix = Matrix(m, n)

    def clean(self):
        self.matrix.clean()

    def colorize(self, x, y, color):
        # Humanaze
        x, y = int(x), int(y)
        x, y = x - 1, y - 1
        self.matrix.colorize(x, y, color)

    def vcolorize(self, x, y1, y2, color):
        x, y1, y2 = int(x), int(y1), int(y2)
        x, y1, y2 = x - 1, y1 - 1, y2 - 1
        self.matrix.vcolorize(x, y1, y2, color)

    def hcolorize(self, x1, x2, y, color):
        y, x1, x2 = int(y), int(x1), int(x2)
        y, x1, x2 = y - 1, x1 - 1, x2 - 1
        self.matrix.hcolorize(y, x1, x2, color)

    def fill(self, x, y, color):
        x, y = int(x), int(y)
        x, y = x - 1, y - 1
        self.matrix.fill(x, y, color)

    def rect(self, x1, y1, x2, y2, color):
        x1, y1, x2, y2 = int(x1), int(y1), int(x2), int(y2)
        x1, y1, x2, y2 = x1 - 1, y1 - 1, x2 - 1, y2 - 1

        self.matrix.rect(x1, y1, x2, y2, color)

    def replace(self, x, y, color):
        x, y = int(x), int(y)
        x, y = x - 1, y - 1
        self.matrix.replace(x, y, color)

    def save(self, name):
        self.matrix.save(name)

    def parse(self, command):
        command, *args = command.split()
        method = self._REGISTER.get(command)

        if method:
            method(self, *args)

    _REGISTER = {
        'I': init,
        'C': clean,
        'L': colorize,
        'V': vcolorize,
        'H': hcolorize,
        'Q': fill,
        'F': replace,
        'K': rect,
        'S': save
    }