Пример #1
0
class TableTC(TestCase):
    """Table TestCase class"""
    def setUp(self):
        """Creates a default table"""
        # from logilab.common import table
        # reload(table)
        self.table = Table()
        self.table.create_rows(['row1', 'row2', 'row3'])
        self.table.create_columns(['col1', 'col2'])

    def test_valeur_scalaire(self):
        tab = Table()
        tab.create_columns(['col1'])
        tab.append_row([1])
        self.assertEqual(tab, [[1]])
        tab.append_row([2])
        self.assertEqual(tab[0, 0], 1)
        self.assertEqual(tab[1, 0], 2)

    def test_valeur_ligne(self):
        tab = Table()
        tab.create_columns(['col1', 'col2'])
        tab.append_row([1, 2])
        self.assertEqual(tab, [[1, 2]])

    def test_valeur_colonne(self):
        tab = Table()
        tab.create_columns(['col1'])
        tab.append_row([1])
        tab.append_row([2])
        self.assertEqual(tab, [[1], [2]])
        self.assertEqual(tab[:, 0], [1, 2])

    def test_indexation(self):
        """we should be able to use [] to access rows"""
        self.assert_(self.table[0] == self.table.data[0])
        self.assert_(self.table[1] == self.table.data[1])

    def test_iterable(self):
        """test iter(table)"""
        it = iter(self.table)
        self.assert_(it.next() == self.table.data[0])
        self.assert_(it.next() == self.table.data[1])

    def test_get_rows(self):
        """tests Table.get_rows()"""
        self.assertEqual(self.table, [[0, 0], [0, 0], [0, 0]])
        self.assertEqual(self.table[:], [[0, 0], [0, 0], [0, 0]])
        self.table.insert_column(1, range(3), 'supp')
        self.assertEqual(self.table, [[0, 0, 0], [0, 1, 0], [0, 2, 0]])
        self.assertEqual(self.table[:], [[0, 0, 0], [0, 1, 0], [0, 2, 0]])

    def test_get_cells(self):
        self.table.insert_column(1, range(3), 'supp')
        self.assertEqual(self.table[0, 1], 0)
        self.assertEqual(self.table[1, 1], 1)
        self.assertEqual(self.table[2, 1], 2)
        self.assertEqual(self.table['row1', 'supp'], 0)
        self.assertEqual(self.table['row2', 'supp'], 1)
        self.assertEqual(self.table['row3', 'supp'], 2)
        self.assertRaises(KeyError, self.table.__getitem__, ('row1', 'foo'))
        self.assertRaises(KeyError, self.table.__getitem__, ('foo', 'bar'))

    def test_shape(self):
        """tests table shape"""
        self.assertEqual(self.table.shape, (3, 2))
        self.table.insert_column(1, range(3), 'supp')
        self.assertEqual(self.table.shape, (3, 3))

    def test_set_column(self):
        """Tests that table.set_column() works fine.
        """
        self.table.set_column(0, range(3))
        self.assertEqual(self.table[0, 0], 0)
        self.assertEqual(self.table[1, 0], 1)
        self.assertEqual(self.table[2, 0], 2)

    def test_set_column_by_id(self):
        """Tests that table.set_column_by_id() works fine.
        """
        self.table.set_column_by_id('col1', range(3))
        self.assertEqual(self.table[0, 0], 0)
        self.assertEqual(self.table[1, 0], 1)
        self.assertEqual(self.table[2, 0], 2)
        self.assertRaises(KeyError, self.table.set_column_by_id, 'col123',
                          range(3))

    def test_cells_ids(self):
        """tests that we can access cells by giving row/col ids"""
        self.assertRaises(KeyError, self.table.set_cell_by_ids, 'row12',
                          'col1', 12)
        self.assertRaises(KeyError, self.table.set_cell_by_ids, 'row1',
                          'col12', 12)
        self.assertEqual(self.table[0, 0], 0)
        self.table.set_cell_by_ids('row1', 'col1', 'DATA')
        self.assertEqual(self.table[0, 0], 'DATA')
        self.assertRaises(KeyError, self.table.set_row_by_id, 'row12', [])
        self.table.set_row_by_id('row1', ['1.0', '1.1'])
        self.assertEqual(self.table[0, 0], '1.0')

    def test_insert_row(self):
        """tests a row insertion"""
        tmp_data = ['tmp1', 'tmp2']
        self.table.insert_row(1, tmp_data, 'tmprow')
        self.assertEqual(self.table[1], tmp_data)
        self.assertEqual(self.table['tmprow'], tmp_data)
        self.table.delete_row_by_id('tmprow')
        self.assertRaises(KeyError, self.table.delete_row_by_id, 'tmprow')
        self.assertEqual(self.table[1], [0, 0])
        self.assertRaises(KeyError, self.table.__getitem__, 'tmprow')

    def test_get_column(self):
        """Tests that table.get_column() works fine.
        """
        self.table.set_cell(0, 1, 12)
        self.table.set_cell(2, 1, 13)
        self.assertEqual(self.table[:, 1], [12, 0, 13])
        self.assertEqual(self.table[:, 'col2'], [12, 0, 13])

    def test_get_columns(self):
        """Tests if table.get_columns() works fine.
        """
        self.table.set_cell(0, 1, 12)
        self.table.set_cell(2, 1, 13)
        self.assertEqual(self.table.get_columns(), [[0, 0, 0], [12, 0, 13]])

    def test_insert_column(self):
        """Tests that table.insert_column() works fine.
        """
        self.table.insert_column(1, range(3), "inserted_column")
        self.assertEqual(self.table[:, 1], [0, 1, 2])
        self.assertEqual(self.table.col_names,
                         ['col1', 'inserted_column', 'col2'])

    def test_delete_column(self):
        """Tests that table.delete_column() works fine.
        """
        self.table.delete_column(1)
        self.assertEqual(self.table.col_names, ['col1'])
        self.assertEqual(self.table[:, 0], [0, 0, 0])
        self.assertRaises(KeyError, self.table.delete_column_by_id, 'col2')
        self.table.delete_column_by_id('col1')
        self.assertEqual(self.table.col_names, [])

    def test_transpose(self):
        """Tests that table.transpose() works fine.
        """
        self.table.append_column(range(5, 8), 'col3')
        ttable = self.table.transpose()
        self.assertEqual(ttable.row_names, ['col1', 'col2', 'col3'])
        self.assertEqual(ttable.col_names, ['row1', 'row2', 'row3'])
        self.assertEqual(ttable.data, [[0, 0, 0], [0, 0, 0], [5, 6, 7]])

    def test_sort_table(self):
        """Tests the table sort by column
        """
        self.table.set_column(0, [3, 1, 2])
        self.table.set_column(1, [1, 2, 3])
        self.table.sort_by_column_index(0)
        self.assertEqual(self.table.row_names, ['row2', 'row3', 'row1'])
        self.assertEqual(self.table.data, [[1, 2], [2, 3], [3, 1]])
        self.table.sort_by_column_index(1, 'desc')
        self.assertEqual(self.table.row_names, ['row3', 'row2', 'row1'])
        self.assertEqual(self.table.data, [[2, 3], [1, 2], [3, 1]])

    def test_sort_by_id(self):
        """tests sort_by_column_id()"""
        self.table.set_column_by_id('col1', [3, 1, 2])
        self.table.set_column_by_id('col2', [1, 2, 3])
        self.table.sort_by_column_id('col1')
        self.assertRaises(KeyError, self.table.sort_by_column_id, 'col123')
        self.assertEqual(self.table.row_names, ['row2', 'row3', 'row1'])
        self.assertEqual(self.table.data, [[1, 2], [2, 3], [3, 1]])
        self.table.sort_by_column_id('col2', 'desc')
        self.assertEqual(self.table.row_names, ['row3', 'row2', 'row1'])
        self.assertEqual(self.table.data, [[2, 3], [1, 2], [3, 1]])

    def test_pprint(self):
        """only tests pprint doesn't raise an exception"""
        self.table.pprint()
        str(self.table)
Пример #2
0
class TableTC(TestCase):
    """Table TestCase class"""

    def setUp(self):
        """Creates a default table"""
        # from logilab.common import table
        # reload(table)
        self.table = Table()
        self.table.create_rows(['row1', 'row2', 'row3'])
        self.table.create_columns(['col1', 'col2'])

    def test_valeur_scalaire(self):
        tab = Table()
        tab.create_columns(['col1'])
        tab.append_row([1])
        self.assertEqual(tab, [[1]])
        tab.append_row([2])
        self.assertEqual(tab[0,0], 1)
        self.assertEqual(tab[1,0], 2)

    def test_valeur_ligne(self):
        tab = Table()
        tab.create_columns(['col1','col2'])
        tab.append_row([1,2])
        self.assertEqual(tab, [[1,2]])

    def test_valeur_colonne(self):
        tab = Table()
        tab.create_columns(['col1'])
        tab.append_row([1])
        tab.append_row([2])
        self.assertEqual(tab, [[1],[2]])
        self.assertEqual(tab[:,0], [1,2])

    def test_indexation(self):
        """we should be able to use [] to access rows"""
        self.assert_(self.table[0] == self.table.data[0])
        self.assert_(self.table[1] == self.table.data[1])

    def test_iterable(self):
        """test iter(table)"""
        it = iter(self.table)
        self.assert_(it.next() == self.table.data[0])
        self.assert_(it.next() == self.table.data[1])

    def test_get_rows(self):
        """tests Table.get_rows()"""
        self.assertEqual(self.table, [[0, 0], [0, 0], [0, 0]])
        self.assertEqual(self.table[:], [[0, 0], [0, 0], [0, 0]])
        self.table.insert_column(1, range(3), 'supp')
        self.assertEqual(self.table, [[0, 0, 0], [0, 1, 0], [0, 2, 0]])
        self.assertEqual(self.table[:], [[0, 0, 0], [0, 1, 0], [0, 2, 0]])

    def test_get_cells(self):
        self.table.insert_column(1, range(3), 'supp')
        self.assertEqual(self.table[0,1], 0)
        self.assertEqual(self.table[1,1], 1)
        self.assertEqual(self.table[2,1], 2)
        self.assertEqual(self.table['row1', 'supp'], 0)
        self.assertEqual(self.table['row2', 'supp'], 1)
        self.assertEqual(self.table['row3', 'supp'], 2)
        self.assertRaises(KeyError, self.table.__getitem__, ('row1', 'foo'))
        self.assertRaises(KeyError, self.table.__getitem__, ('foo', 'bar'))

    def test_shape(self):
        """tests table shape"""
        self.assertEqual(self.table.shape, (3, 2))
        self.table.insert_column(1, range(3), 'supp')
        self.assertEqual(self.table.shape, (3, 3))

    def test_set_column(self):
        """Tests that table.set_column() works fine.
        """
        self.table.set_column(0, range(3))
        self.assertEqual(self.table[0,0], 0)
        self.assertEqual(self.table[1,0], 1)
        self.assertEqual(self.table[2,0], 2)

    def test_set_column_by_id(self):
        """Tests that table.set_column_by_id() works fine.
        """
        self.table.set_column_by_id('col1', range(3))
        self.assertEqual(self.table[0,0], 0)
        self.assertEqual(self.table[1,0], 1)
        self.assertEqual(self.table[2,0], 2)
        self.assertRaises(KeyError, self.table.set_column_by_id, 'col123', range(3))

    def test_cells_ids(self):
        """tests that we can access cells by giving row/col ids"""
        self.assertRaises(KeyError, self.table.set_cell_by_ids, 'row12', 'col1', 12)
        self.assertRaises(KeyError, self.table.set_cell_by_ids, 'row1', 'col12', 12)
        self.assertEqual(self.table[0,0], 0)
        self.table.set_cell_by_ids('row1', 'col1', 'DATA')
        self.assertEqual(self.table[0,0], 'DATA')
        self.assertRaises(KeyError, self.table.set_row_by_id, 'row12', [])
        self.table.set_row_by_id('row1', ['1.0', '1.1'])
        self.assertEqual(self.table[0,0], '1.0')

    def test_insert_row(self):
        """tests a row insertion"""
        tmp_data = ['tmp1', 'tmp2']
        self.table.insert_row(1, tmp_data, 'tmprow')
        self.assertEqual(self.table[1], tmp_data)
        self.assertEqual(self.table['tmprow'], tmp_data)
        self.table.delete_row_by_id('tmprow')
        self.assertRaises(KeyError, self.table.delete_row_by_id, 'tmprow')
        self.assertEqual(self.table[1], [0, 0])
        self.assertRaises(KeyError, self.table.__getitem__, 'tmprow')

    def test_get_column(self):
        """Tests that table.get_column() works fine.
        """
        self.table.set_cell(0, 1, 12)
        self.table.set_cell(2, 1, 13)
        self.assertEqual(self.table[:,1], [12,0,13])
        self.assertEqual(self.table[:,'col2'], [12,0,13])

    def test_get_columns(self):
        """Tests if table.get_columns() works fine.
        """
        self.table.set_cell(0, 1, 12)
        self.table.set_cell(2, 1, 13)
        self.assertEqual(self.table.get_columns(), [[0,0,0], [12,0,13]])

    def test_insert_column(self):
        """Tests that table.insert_column() works fine.
        """
        self.table.insert_column(1, range(3), "inserted_column")
        self.assertEqual(self.table[:,1], [0,1,2])
        self.assertEqual(self.table.col_names,
                          ['col1', 'inserted_column', 'col2'])

    def test_delete_column(self):
        """Tests that table.delete_column() works fine.
        """
        self.table.delete_column(1)
        self.assertEqual(self.table.col_names, ['col1'])
        self.assertEqual(self.table[:,0], [0,0,0])
        self.assertRaises(KeyError, self.table.delete_column_by_id, 'col2')
        self.table.delete_column_by_id('col1')
        self.assertEqual(self.table.col_names, [])

    def test_transpose(self):
        """Tests that table.transpose() works fine.
        """
        self.table.append_column(range(5,8), 'col3')
        ttable = self.table.transpose()
        self.assertEqual(ttable.row_names, ['col1', 'col2', 'col3'])
        self.assertEqual(ttable.col_names, ['row1', 'row2', 'row3'])
        self.assertEqual(ttable.data, [[0,0,0], [0,0,0], [5,6,7]])

    def test_sort_table(self):
        """Tests the table sort by column
        """
        self.table.set_column(0, [3, 1, 2])
        self.table.set_column(1, [1, 2, 3])
        self.table.sort_by_column_index(0)
        self.assertEqual(self.table.row_names, ['row2', 'row3', 'row1'])
        self.assertEqual(self.table.data, [[1, 2], [2, 3], [3, 1]])
        self.table.sort_by_column_index(1, 'desc')
        self.assertEqual(self.table.row_names, ['row3', 'row2', 'row1'])
        self.assertEqual(self.table.data, [[2, 3], [1, 2], [3, 1]])

    def test_sort_by_id(self):
        """tests sort_by_column_id()"""
        self.table.set_column_by_id('col1', [3, 1, 2])
        self.table.set_column_by_id('col2', [1, 2, 3])
        self.table.sort_by_column_id('col1')
        self.assertRaises(KeyError, self.table.sort_by_column_id, 'col123')
        self.assertEqual(self.table.row_names, ['row2', 'row3', 'row1'])
        self.assertEqual(self.table.data, [[1, 2], [2, 3], [3, 1]])
        self.table.sort_by_column_id('col2', 'desc')
        self.assertEqual(self.table.row_names, ['row3', 'row2', 'row1'])
        self.assertEqual(self.table.data, [[2, 3], [1, 2], [3, 1]])

    def test_pprint(self):
        """only tests pprint doesn't raise an exception"""
        self.table.pprint()
        str(self.table)
class TableTC(TestCase):
    """Table TestCase class"""

    def setUp(self):
        """Creates a default table"""
        # from logilab.common import table
        # reload(table)
        self.table = Table()
        self.table.create_rows(["row1", "row2", "row3"])
        self.table.create_columns(["col1", "col2"])

    def test_valeur_scalaire(self):
        tab = Table()
        tab.create_columns(["col1"])
        tab.append_row([1])
        self.assertEqual(tab, [[1]])
        tab.append_row([2])
        self.assertEqual(tab[0, 0], 1)
        self.assertEqual(tab[1, 0], 2)

    def test_valeur_ligne(self):
        tab = Table()
        tab.create_columns(["col1", "col2"])
        tab.append_row([1, 2])
        self.assertEqual(tab, [[1, 2]])

    def test_valeur_colonne(self):
        tab = Table()
        tab.create_columns(["col1"])
        tab.append_row([1])
        tab.append_row([2])
        self.assertEqual(tab, [[1], [2]])
        self.assertEqual(tab[:, 0], [1, 2])

    def test_indexation(self):
        """we should be able to use [] to access rows"""
        self.assert_(self.table[0] == self.table.data[0])
        self.assert_(self.table[1] == self.table.data[1])

    def test_iterable(self):
        """test iter(table)"""
        it = iter(self.table)
        self.assert_(it.next() == self.table.data[0])
        self.assert_(it.next() == self.table.data[1])

    def test_get_rows(self):
        """tests Table.get_rows()"""
        self.assertEqual(self.table, [[0, 0], [0, 0], [0, 0]])
        self.assertEqual(self.table[:], [[0, 0], [0, 0], [0, 0]])
        self.table.insert_column(1, range(3), "supp")
        self.assertEqual(self.table, [[0, 0, 0], [0, 1, 0], [0, 2, 0]])
        self.assertEqual(self.table[:], [[0, 0, 0], [0, 1, 0], [0, 2, 0]])

    def test_get_cells(self):
        self.table.insert_column(1, range(3), "supp")
        self.assertEqual(self.table[0, 1], 0)
        self.assertEqual(self.table[1, 1], 1)
        self.assertEqual(self.table[2, 1], 2)
        self.assertEqual(self.table["row1", "supp"], 0)
        self.assertEqual(self.table["row2", "supp"], 1)
        self.assertEqual(self.table["row3", "supp"], 2)
        self.assertRaises(KeyError, self.table.__getitem__, ("row1", "foo"))
        self.assertRaises(KeyError, self.table.__getitem__, ("foo", "bar"))

    def test_shape(self):
        """tests table shape"""
        self.assertEqual(self.table.shape, (3, 2))
        self.table.insert_column(1, range(3), "supp")
        self.assertEqual(self.table.shape, (3, 3))

    def test_set_column(self):
        """Tests that table.set_column() works fine.
        """
        self.table.set_column(0, range(3))
        self.assertEqual(self.table[0, 0], 0)
        self.assertEqual(self.table[1, 0], 1)
        self.assertEqual(self.table[2, 0], 2)

    def test_set_column_by_id(self):
        """Tests that table.set_column_by_id() works fine.
        """
        self.table.set_column_by_id("col1", range(3))
        self.assertEqual(self.table[0, 0], 0)
        self.assertEqual(self.table[1, 0], 1)
        self.assertEqual(self.table[2, 0], 2)
        self.assertRaises(KeyError, self.table.set_column_by_id, "col123", range(3))

    def test_cells_ids(self):
        """tests that we can access cells by giving row/col ids"""
        self.assertRaises(KeyError, self.table.set_cell_by_ids, "row12", "col1", 12)
        self.assertRaises(KeyError, self.table.set_cell_by_ids, "row1", "col12", 12)
        self.assertEqual(self.table[0, 0], 0)
        self.table.set_cell_by_ids("row1", "col1", "DATA")
        self.assertEqual(self.table[0, 0], "DATA")
        self.assertRaises(KeyError, self.table.set_row_by_id, "row12", [])
        self.table.set_row_by_id("row1", ["1.0", "1.1"])
        self.assertEqual(self.table[0, 0], "1.0")

    def test_insert_row(self):
        """tests a row insertion"""
        tmp_data = ["tmp1", "tmp2"]
        self.table.insert_row(1, tmp_data, "tmprow")
        self.assertEqual(self.table[1], tmp_data)
        self.assertEqual(self.table["tmprow"], tmp_data)
        self.table.delete_row_by_id("tmprow")
        self.assertRaises(KeyError, self.table.delete_row_by_id, "tmprow")
        self.assertEqual(self.table[1], [0, 0])
        self.assertRaises(KeyError, self.table.__getitem__, "tmprow")

    def test_get_column(self):
        """Tests that table.get_column() works fine.
        """
        self.table.set_cell(0, 1, 12)
        self.table.set_cell(2, 1, 13)
        self.assertEqual(self.table[:, 1], [12, 0, 13])
        self.assertEqual(self.table[:, "col2"], [12, 0, 13])

    def test_get_columns(self):
        """Tests if table.get_columns() works fine.
        """
        self.table.set_cell(0, 1, 12)
        self.table.set_cell(2, 1, 13)
        self.assertEqual(self.table.get_columns(), [[0, 0, 0], [12, 0, 13]])

    def test_insert_column(self):
        """Tests that table.insert_column() works fine.
        """
        self.table.insert_column(1, range(3), "inserted_column")
        self.assertEqual(self.table[:, 1], [0, 1, 2])
        self.assertEqual(self.table.col_names, ["col1", "inserted_column", "col2"])

    def test_delete_column(self):
        """Tests that table.delete_column() works fine.
        """
        self.table.delete_column(1)
        self.assertEqual(self.table.col_names, ["col1"])
        self.assertEqual(self.table[:, 0], [0, 0, 0])
        self.assertRaises(KeyError, self.table.delete_column_by_id, "col2")
        self.table.delete_column_by_id("col1")
        self.assertEqual(self.table.col_names, [])

    def test_transpose(self):
        """Tests that table.transpose() works fine.
        """
        self.table.append_column(range(5, 8), "col3")
        ttable = self.table.transpose()
        self.assertEqual(ttable.row_names, ["col1", "col2", "col3"])
        self.assertEqual(ttable.col_names, ["row1", "row2", "row3"])
        self.assertEqual(ttable.data, [[0, 0, 0], [0, 0, 0], [5, 6, 7]])

    def test_sort_table(self):
        """Tests the table sort by column
        """
        self.table.set_column(0, [3, 1, 2])
        self.table.set_column(1, [1, 2, 3])
        self.table.sort_by_column_index(0)
        self.assertEqual(self.table.row_names, ["row2", "row3", "row1"])
        self.assertEqual(self.table.data, [[1, 2], [2, 3], [3, 1]])
        self.table.sort_by_column_index(1, "desc")
        self.assertEqual(self.table.row_names, ["row3", "row2", "row1"])
        self.assertEqual(self.table.data, [[2, 3], [1, 2], [3, 1]])

    def test_sort_by_id(self):
        """tests sort_by_column_id()"""
        self.table.set_column_by_id("col1", [3, 1, 2])
        self.table.set_column_by_id("col2", [1, 2, 3])
        self.table.sort_by_column_id("col1")
        self.assertRaises(KeyError, self.table.sort_by_column_id, "col123")
        self.assertEqual(self.table.row_names, ["row2", "row3", "row1"])
        self.assertEqual(self.table.data, [[1, 2], [2, 3], [3, 1]])
        self.table.sort_by_column_id("col2", "desc")
        self.assertEqual(self.table.row_names, ["row3", "row2", "row1"])
        self.assertEqual(self.table.data, [[2, 3], [1, 2], [3, 1]])

    def test_pprint(self):
        """only tests pprint doesn't raise an exception"""
        self.table.pprint()
        str(self.table)