Example #1
0
 def test_find_2x3_and_3x2_in_6x3(self):
     mat = matrix.Matrix([[1,1,1],
                          [1,1,1],
                          [1,1,0],
                          [1,1,0],
                          [1,1,0],
                          [2,2,2]])
     rectangles = mat.find_rectangles([(2,3), (3,2)])
     self.assertEqual(rectangles, {(2,3): 1, (3,2): 1})
Example #2
0
 def test_2x2(self):
     mat = matrix.Matrix([[1,1], [1,1]])
     self.assertEqual(mat.test_rectangle_at((0,0), ((0,0))), True)
     self.assertEqual(mat.test_rectangle_at((0,0), ((1,1))), True)
     self.assertEqual(mat.test_rectangle_at((0,0), ((1,2))), True)
     self.assertEqual(mat.test_rectangle_at((0,0), ((2,1))), True)
     self.assertEqual(mat.test_rectangle_at((0,0), ((2,2))), True)
     self.assertEqual(mat.test_rectangle_at((0,0), ((1,3))), False)
     self.assertEqual(mat.test_rectangle_at((0,0), ((1,3))), False)
Example #3
0
 def test_6x3(self):
     mat = matrix.Matrix([[1,1,1],
                          [1,1,1],
                          [1,1,0],
                          [1,1,0],
                          [1,1,0],
                          [2,2,2]])
     rectangles = mat.count_rectangles()
     self.assertEqual(rectangles, [0,2,0,0])
Example #4
0
    def test_2x2_at_1x1(self):
        mat = matrix.Matrix([[1,1,1],
                             [1,1,1],
                             [1,1,1]])

        mat.invalidate((1,1), (2,2))

        self.assertEqual(mat.mat, [[1,1,1],
                                   [1,-1,-1],
                                   [1,-1,-1]])
Example #5
0
    def test_2x2_at_0x0(self):
        mat = matrix.Matrix([[1,1,1],
                             [1,1,1],
                             [1,1,1]])

        mat.invalidate((0,0), (2,2))

        self.assertEqual(mat.mat, [[-1,-1,1],
                                   [-1,-1,1],
                                   [1,1,1]])
Example #6
0
def main(argv):
    if len(argv) != 2:
        print("Usage: {} <file>".format(argv[0]))
        exit(1)

    try:
        input_file = argv[1]
        file_content = np.genfromtxt(input_file, delimiter=',', dtype=int)
        mat = matrix.Matrix(file_content)
        found_rectangles = mat.count_rectangles()

        print(''.join(map(lambda x: str(x), found_rectangles)))

    except Exception as ex:
        print(ex)
        exit(1)
Example #7
0
 def test_find_2x2_in_2x2(self):
     mat = matrix.Matrix([[1,1], [1,1]])
     self.assertEqual(mat.find_rectangles([(2,2)]), {(2,2): 1})
Example #8
0
 def test_find_1x1_in_2x2(self):
     mat = matrix.Matrix([[1,1], [1,1]])
     self.assertEqual(mat.find_rectangles([(1,1)]), {(1,1): 4})
Example #9
0
 def test_find_1x4_in_1x4(self):
     mat = matrix.Matrix([[1,1,1,1]])
     self.assertEqual(mat.find_rectangles([(1,4)]), {(1,4): 1})
Example #10
0
 def test_empty(self):
     mat = matrix.Matrix([])
     self.assertEqual(mat.cols, 0)
     self.assertEqual(mat.rows, 0)
Example #11
0
 def test_empty(self):
     mat = matrix.Matrix([])
     rectangles = mat.count_rectangles()
     self.assertEqual(rectangles, [0,0,0,0])
Example #12
0
 def test_no_overlap_2x2(self):
     mat = matrix.Matrix([[0,1,1],
                          [1,1,1],
                          [1,1,3]])
     rectangles = mat.count_rectangles()
     self.assertEqual(rectangles, [1,0,0,0])
Example #13
0
 def test_2x2(self):
     mat = matrix.Matrix([[1,1], [1,1]])
     self.assertEqual(mat.cols, 2)
     self.assertEqual(mat.rows, 2)
Example #14
0
 def test_find_1x1_in_3x3(self):
     mat = matrix.Matrix([[0,1,1],
                          [1,1,1],
                          [1,1,3]])
     rectangles = mat.find_rectangles([(2,2)])
     self.assertEqual(rectangles, {(2,2): 1})
Example #15
0
 def test_1x1(self):
     mat = matrix.Matrix([[1]])
     self.assertEqual(mat.cols, 1)
     self.assertEqual(mat.rows, 1)
Example #16
0
 def test_find_2x3_in_2x3_horizontal(self):
     mat = matrix.Matrix([[1,1,1],
                          [1,1,1]])
     rectangles = mat.find_rectangles([(2,3)])
     self.assertEqual(rectangles, {(2,3): 1})
Example #17
0
 def test_find_3x2_in_3x2(self):
     mat = matrix.Matrix([[1,1],
                          [1,1],
                          [1,1]])
     rectangles = mat.find_rectangles([(3,2)])
     self.assertEqual(rectangles, {(3,2): 1})
Example #18
0
 def test_empty(self):
     mat = matrix.Matrix([])
     self.assertEqual(mat.test_rectangle_at((0,0), (0,0)), True)
     self.assertEqual(mat.test_rectangle_at((0,0), (1,1)), False)
     self.assertEqual(mat.test_rectangle_at((1,1), (1,1)), False)