예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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)
예제 #4
0
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)