def test_split_after_one_column(self): g = grid(3, 3) g1, g2 = split_horizontally(g, 1) self.assertEqual(g1['rows'], [[cell()], [cell()], [cell()]]) self.assertEqual( g2['rows'], [[cell(), cell()], [cell(), cell()], [cell(), cell()]])
def test_degenerate_case_of_not_actually_spanning(self): g = span_top_left(grid(2, 2), 1, 1) self.assertEqual(g['rows'][0], [cell(), cell()]) self.assertEqual(g['rows'][1], [cell(), cell()])
def test_degenerate_case_of_1_by_1_grid(self): g = span_top_left(grid(1, 1), 222, 222) self.assertEqual(g['rows'], [[cell()]])
def test_init_with_default_values(self): c = cell() self.assertEqual(c['colspan'], 1) self.assertEqual(c['rowspan'], 1) self.assertEqual(c['color'], 'white')
def test_removes_2_by_3_square_from_top_left(self): g = span_top_left(grid(5, 5), 2, 3) self.assertEqual(g['rows'][0], [spanning_cell(2, 3), cell(), cell()]) self.assertEqual(g['rows'][1], [cell(), cell()]) self.assertEqual( g['rows'][2], [cell(), cell(), cell(), cell(), cell()]) self.assertEqual( g['rows'][3], [cell(), cell(), cell(), cell(), cell()]) self.assertEqual( g['rows'][3], [cell(), cell(), cell(), cell(), cell()])
def test_spanning_to_2_rows_removes_1_cell_from_2nd_row(self): g = span_top_left(grid(3, 2), 2, 1) self.assertEqual(g['rows'][0], [spanning_cell(2, 1), cell()]) self.assertEqual(g['rows'][1], [cell()]) self.assertEqual(g['rows'][2], [cell(), cell()])
def test_spanning_to_2_columns_removes_1_cell_from_top_row(self): g = span_top_left(grid(2, 3), 1, 2) self.assertEqual(g['rows'][0], [spanning_cell(1, 2), cell()]) self.assertEqual(g['rows'][1], [cell(), cell(), cell()])
def test_init_creates_height_of_rows_with_width_of_cells(self): g = grid(2, 3) self.assertEqual( g['rows'], [[cell(), cell(), cell()], [cell(), cell(), cell()]])
def test_returns_list_with_given_number_of_cells(self): self.assertEqual(row(4), [cell(), cell(), cell(), cell()])
def test_split_on_the_left(self): g = grid(2, 2) g1, g2 = split_horizontally(g, 2) self.assertEqual(g1['rows'], [[cell(), cell()], [cell(), cell()]]) self.assertEqual(g2['rows'], [])
def test_rows_split_in_the_bottom(self): g = grid(2, 2) g1, g2 = split_vertically(g, 2) self.assertEqual(g1['rows'], [[cell(), cell()], [cell(), cell()]]) self.assertEqual(g2['rows'], [])
def test_rows_split_on_top(self): g = grid(2, 2) g1, g2 = split_vertically(g, 0) self.assertEqual(g1['rows'], []) self.assertEqual(g2['rows'], [[cell(), cell()], [cell(), cell()]])