class TestTableContentAccess(unittest.TestCase): def setUp(self): self.table = Table(xmlnode=etree.XML(SQUAREMATRIX)) def test_metrics(self): self.assertEqual(self.table.name, 'RowColAccess') self.assertEqual(self.table.ncols(), 4) self.assertEqual(self.table.nrows(), 4) def test_row_neg_index(self): cell = self.table[-1, 0] self.assertEqual(cell.value, 13.) def test_col_index_error(self): with self.assertRaises(IndexError): self.table[0, 4] def test_access_cell_by_index(self): cell = self.table[0, 0] self.assertEqual(cell.value, 1.) def test_access_cell_by_reference(self): cell = self.table['B1'] self.assertEqual(cell.value, 2.) def test_setting_cell_by_index(self): self.table[0, 0] = Cell('Textcell') cell = self.table['A1'] self.assertEqual(cell.plaintext(), "Textcell") def test_setting_cell_by_address(self): self.table['A1'] = Cell('Textcell') cell = self.table[0, 0] self.assertEqual(cell.plaintext(), "Textcell") def test_set_cell_row_index_error(self): with self.assertRaises(IndexError): self.table[10, 0] = Cell() def test_set_cell_column_index_error(self): with self.assertRaises(IndexError): self.table[0, 10] = Cell() def test_set_cell_neg_row_index(self): self.table[-1, 0] = Cell('Textcell') cell = self.table[3, 0] self.assertEqual(cell.plaintext(), "Textcell") def test_set_cell_neg_column_index(self): self.table[0, -1] = Cell('Textcell') cell = self.table[0, 3] self.assertEqual(cell.plaintext(), "Textcell") def test_if_rows_generates_lists(self): nrows = self.table.nrows() ncols = self.table.ncols() for row in self.table.rows(): cells = row self.assertEqual(len(cells), ncols)
class TestRowColumnAccess(unittest.TestCase): def setUp(self): self.table = Table(xmlnode=etree.XML(SQUAREMATRIX)) def test_get_row_1_by_index(self): values = [cell.value for cell in self.table.row(1)] self.assertEqual(values, [5., 6., 7., 8.]) def test_get_row_1_by_address(self): self.assertEqual(tofloats(self.table.row('A2')), [5., 6., 7., 8.]) def test_row_slice(self): self.assertEqual(tofloats(self.table.row(1)[1:3]), [6., 7.]) def test_row_index_error(self): with self.assertRaises(IndexError): self.table.row(4) def test_row_neg_index(self): self.assertEqual(tofloats(self.table.row(-1)), [13., 14., 15., 16.]) def test_get_column_1_by_index(self): self.assertEqual(tofloats(self.table.column(1)), [2., 6., 10., 14.]) def test_get_column_1_by_address(self): self.assertEqual(tofloats(self.table.column('B2')), [2., 6., 10., 14.]) def test_column_slice(self): self.assertEqual(tofloats(self.table.column(1)[1:3]), [6., 10.]) def test_column_index_error(self): with self.assertRaises(IndexError): self.table.column(4) def test_column_neg_index(self): self.assertEqual(tofloats(self.table.column(-1)), [4., 8., 12., 16.]) def test_rows(self): values = tofloats(chain(*self.table.rows())) expected = [float(x) for x in range(1, 17)] self.assertEqual(expected, values) def test_columns(self): values = tofloats(chain(*self.table.columns())) expected = [ 1., 5., 9., 13., 2., 6., 10., 14., 3., 7., 11., 15., 4., 8., 12., 16. ] self.assertEqual(expected, values)
class TestRowColumnAccess(unittest.TestCase): def setUp(self): self.table = Table(xmlnode=etree.XML(SQUAREMATRIX)) def test_get_row_1_by_index(self): values = [cell.value for cell in self.table.row(1)] self.assertEqual(values, [5., 6., 7., 8.]) def test_get_row_1_by_address(self): self.assertEqual(tofloats(self.table.row('A2')), [5., 6., 7., 8.]) def test_row_slice(self): self.assertEqual(tofloats(self.table.row(1)[1:3]), [6., 7.]) def test_row_index_error(self): with self.assertRaises(IndexError): self.table.row(4) def test_row_neg_index(self): self.assertEqual(tofloats(self.table.row(-1)), [13., 14., 15., 16.]) def test_get_column_1_by_index(self): self.assertEqual(tofloats(self.table.column(1)), [2., 6., 10., 14.]) def test_get_column_1_by_address(self): self.assertEqual(tofloats(self.table.column('B2')), [2., 6., 10., 14.]) def test_column_slice(self): self.assertEqual(tofloats(self.table.column(1)[1:3]), [6., 10.]) def test_column_index_error(self): with self.assertRaises(IndexError): self.table.column(4) def test_column_neg_index(self): self.assertEqual(tofloats(self.table.column(-1)), [4., 8., 12., 16.]) def test_rows(self): values = tofloats(chain(*self.table.rows())) expected = [float(x) for x in range(1, 17)] self.assertEqual(expected, values) def test_columns(self): values = tofloats(chain(*self.table.columns())) expected = [1., 5., 9., 13., 2., 6., 10., 14., 3., 7., 11., 15., 4., 8., 12., 16.] self.assertEqual(expected, values)