예제 #1
0
class TableTest(unittest.TestCase):
    def setUp(self):
        self.oktavia = Oktavia()
        self.table = self.oktavia.add_table('address book',
                                            ['zip', 'city', 'area code'])

        self.oktavia.add_word("94101")  # 5
        self.table.set_column_tail_and_EOB()
        self.oktavia.add_word("San Francisco")  # 13
        self.table.set_column_tail_and_EOB()
        self.oktavia.add_word("415")  # 3
        self.table.set_column_tail_and_EOB()
        self.table.set_row_tail()

        self.oktavia.add_word("94607")  # 5
        self.table.set_column_tail_and_EOB()
        self.oktavia.add_word("Oakland")  # 7
        self.table.set_column_tail_and_EOB()
        self.oktavia.add_word("510")  # 3
        self.table.set_column_tail_and_EOB()
        self.table.set_row_tail()

        self.oktavia.add_word("94401")  # 5
        self.table.set_column_tail_and_EOB()
        self.oktavia.add_word("San Mateo")  # 9
        self.table.set_column_tail_and_EOB()
        self.oktavia.add_word("650")  # 3
        self.table.set_column_tail_and_EOB()
        self.table.set_row_tail()

        self.oktavia.build()

    def test_row_sizes(self):
        self.assertEqual(3, self.table.row_size())

    def test_column_sizes(self):
        self.assertEqual(3, self.table.column_size())

    def test_get_cell(self):
        self.assertEqual(0, self.table.get_cell(0)[0])
        self.assertEqual(0, self.table.get_cell(0)[1])
        self.assertEqual(0, self.table.get_cell(22)[0])
        self.assertEqual(2, self.table.get_cell(22)[1])
        self.assertEqual(1, self.table.get_cell(24)[0])
        self.assertEqual(0, self.table.get_cell(24)[1])
        self.assertEqual(1, self.table.get_cell(40)[0])
        self.assertEqual(2, self.table.get_cell(40)[1])
        self.assertEqual(2, self.table.get_cell(42)[0])
        self.assertEqual(0, self.table.get_cell(42)[1])
        self.assertEqual(2, self.table.get_cell(60)[0])
        self.assertEqual(2, self.table.get_cell(60)[1])

    def test_get_table_index_boundary(self):
        try:
            self.table.get_cell(-1)
            self.fail("fm.gettableIndex()")
        except:
            pass
        try:
            self.table.get_cell(62)
            self.fail("fm.gettableIndex()")
        except:
            pass

    def test_get_table_content(self):
        row = self.table.get_row_content(0)
        self.assertEqual('94101', row['zip'])
        self.assertEqual("San Francisco", row['city'])
        self.assertEqual('415', row['area code'])

    def test_get_table_content_boundary(self):
        try:
            self.table.get_content(3)
            self.fail("fm.get_content()")
        except:
            pass
        try:
            self.table.get_content(-1)
            self.fail("fm.get_content()")
        except:
            pass

    def test_load_dump_and_row_sizes(self):
        dump = self.oktavia.dump()
        self.oktavia.load(dump)
        self.table = self.oktavia.get_table('address book')
        self.assertEqual(3, self.table.row_size())

    def test_load_dump_and_column_sizes(self):
        dump = self.oktavia.dump()
        self.oktavia.load(dump)
        self.table = self.oktavia.get_table('address book')

        self.assertEqual(3, self.table.column_size())

    def test_load_dump_and_get_cell(self):
        dump = self.oktavia.dump()
        self.oktavia.load(dump)
        self.table = self.oktavia.get_table('address book')

        self.assertEqual(0, self.table.get_cell(0)[0])
        self.assertEqual(0, self.table.get_cell(0)[1])
        self.assertEqual(0, self.table.get_cell(22)[0])
        self.assertEqual(2, self.table.get_cell(22)[1])
        self.assertEqual(1, self.table.get_cell(24)[0])
        self.assertEqual(0, self.table.get_cell(24)[1])
        self.assertEqual(1, self.table.get_cell(40)[0])
        self.assertEqual(2, self.table.get_cell(40)[1])
        self.assertEqual(2, self.table.get_cell(42)[0])
        self.assertEqual(0, self.table.get_cell(42)[1])
        self.assertEqual(2, self.table.get_cell(60)[0])
        self.assertEqual(2, self.table.get_cell(60)[1])

    def test_load_dump_and_get_table_index_boundary(self):
        dump = self.oktavia.dump()
        self.oktavia.load(dump)
        self.table = self.oktavia.get_table('address book')

        try:
            self.table.get_cell(-1)
            self.fail("fm.gettableIndex()")
        except:
            pass
        try:
            self.table.get_cell(62)
            self.fail("fm.gettableIndex()")
        except:
            pass

    def test_load_dump_and_get_table_content(self):
        dump = self.oktavia.dump()
        self.oktavia.load(dump)
        self.table = self.oktavia.get_table('address book')

        row = self.table.get_row_content(0)
        self.assertEqual('94101', row['zip'])
        self.assertEqual('San Francisco', row['city'])
        self.assertEqual('415', row['area code'])

    def test_load_dump_and_get_table_content_boundary(self):
        dump = self.oktavia.dump()
        self.oktavia.load(dump)
        self.table = self.oktavia.get_table('address book')

        try:
            self.table.get_content(3)
            self.fail("fm.get_content()")
        except:
            pass
        try:
            self.table.get_content(-1)
            self.fail("fm.get_content()")
        except:
            pass
예제 #2
0
class TableTest(unittest.TestCase):

    def setUp(self):
        self.oktavia = Oktavia()
        self.table = self.oktavia.add_table('address book', ['zip', 'city', 'area code'])

        self.oktavia.add_word("94101") # 5
        self.table.set_column_tail_and_EOB()
        self.oktavia.add_word("San Francisco") # 13
        self.table.set_column_tail_and_EOB()
        self.oktavia.add_word("415") # 3
        self.table.set_column_tail_and_EOB()
        self.table.set_row_tail()

        self.oktavia.add_word("94607") # 5
        self.table.set_column_tail_and_EOB()
        self.oktavia.add_word("Oakland") # 7
        self.table.set_column_tail_and_EOB()
        self.oktavia.add_word("510") # 3
        self.table.set_column_tail_and_EOB()
        self.table.set_row_tail()

        self.oktavia.add_word("94401") # 5
        self.table.set_column_tail_and_EOB()
        self.oktavia.add_word("San Mateo") # 9
        self.table.set_column_tail_and_EOB()
        self.oktavia.add_word("650") # 3
        self.table.set_column_tail_and_EOB()
        self.table.set_row_tail()

        self.oktavia.build()

    def test_row_sizes(self):
        self.assertEqual(3, self.table.row_size())

    def test_column_sizes(self):
        self.assertEqual(3, self.table.column_size())

    def test_get_cell(self):
        self.assertEqual(0, self.table.get_cell(0)[0])
        self.assertEqual(0, self.table.get_cell(0)[1])
        self.assertEqual(0, self.table.get_cell(22)[0])
        self.assertEqual(2, self.table.get_cell(22)[1])
        self.assertEqual(1, self.table.get_cell(24)[0])
        self.assertEqual(0, self.table.get_cell(24)[1])
        self.assertEqual(1, self.table.get_cell(40)[0])
        self.assertEqual(2, self.table.get_cell(40)[1])
        self.assertEqual(2, self.table.get_cell(42)[0])
        self.assertEqual(0, self.table.get_cell(42)[1])
        self.assertEqual(2, self.table.get_cell(60)[0])
        self.assertEqual(2, self.table.get_cell(60)[1])

    def test_get_table_index_boundary(self):
        try:
            self.table.get_cell(-1)
            self.fail("fm.gettableIndex()")
        except:
            pass
        try:
            self.table.get_cell(62)
            self.fail("fm.gettableIndex()")
        except:
            pass

    def test_get_table_content(self):
        row = self.table.get_row_content(0)
        self.assertEqual('94101', row['zip'])
        self.assertEqual("San Francisco", row['city'])
        self.assertEqual('415', row['area code'])

    def test_get_table_content_boundary(self):
        try:
            self.table.get_content(3)
            self.fail("fm.get_content()")
        except:
            pass
        try:
            self.table.get_content(-1)
            self.fail("fm.get_content()")
        except:
            pass

    def test_load_dump_and_row_sizes(self):
        dump = self.oktavia.dump()
        self.oktavia.load(dump)
        self.table = self.oktavia.get_table('address book')
        self.assertEqual(3, self.table.row_size())

    def test_load_dump_and_column_sizes(self):
        dump = self.oktavia.dump()
        self.oktavia.load(dump)
        self.table = self.oktavia.get_table('address book')

        self.assertEqual(3, self.table.column_size())

    def test_load_dump_and_get_cell(self):
        dump = self.oktavia.dump()
        self.oktavia.load(dump)
        self.table = self.oktavia.get_table('address book')

        self.assertEqual(0, self.table.get_cell(0)[0])
        self.assertEqual(0, self.table.get_cell(0)[1])
        self.assertEqual(0, self.table.get_cell(22)[0])
        self.assertEqual(2, self.table.get_cell(22)[1])
        self.assertEqual(1, self.table.get_cell(24)[0])
        self.assertEqual(0, self.table.get_cell(24)[1])
        self.assertEqual(1, self.table.get_cell(40)[0])
        self.assertEqual(2, self.table.get_cell(40)[1])
        self.assertEqual(2, self.table.get_cell(42)[0])
        self.assertEqual(0, self.table.get_cell(42)[1])
        self.assertEqual(2, self.table.get_cell(60)[0])
        self.assertEqual(2, self.table.get_cell(60)[1])

    def test_load_dump_and_get_table_index_boundary(self):
        dump = self.oktavia.dump()
        self.oktavia.load(dump)
        self.table = self.oktavia.get_table('address book')

        try:
            self.table.get_cell(-1)
            self.fail("fm.gettableIndex()")
        except:
            pass
        try:
            self.table.get_cell(62)
            self.fail("fm.gettableIndex()")
        except:
            pass

    def test_load_dump_and_get_table_content(self):
        dump = self.oktavia.dump()
        self.oktavia.load(dump)
        self.table = self.oktavia.get_table('address book')

        row = self.table.get_row_content(0)
        self.assertEqual('94101', row['zip'])
        self.assertEqual('San Francisco', row['city'])
        self.assertEqual('415', row['area code'])

    def test_load_dump_and_get_table_content_boundary(self):
        dump = self.oktavia.dump()
        self.oktavia.load(dump)
        self.table = self.oktavia.get_table('address book')

        try:
            self.table.get_content(3)
            self.fail("fm.get_content()")
        except:
            pass
        try:
            self.table.get_content(-1)
            self.fail("fm.get_content()")
        except:
            pass