def test_print_symbol_table_corect(self, print_mock): statement = Statement("POLCAT EQU $FFEE") program = Program() program.save_symbol(0, statement) program.print_symbol_table() self.assertEqual([call("-- Symbol Table --"), call("$FFEE POLCAT")], print_mock.mock_calls)
def test_save_symbol_raises_if_redefined(self): statement = Statement("BLAH JMP $FFFF") program = Program() program.symbol_table = {"BLAH": 1234} with self.assertRaises(TranslationError) as context: program.save_symbol(0, statement) self.assertEqual("'Label [BLAH] redefined'", str(context.exception))
def test_save_symbol_does_nothing_if_no_label(self): statement = Statement(" JMP $FFFF") program = Program() program.symbol_table = { "BLAH": 1234 } program.save_symbol(0, statement) self.assertEqual({"BLAH": 1234}, program.symbol_table)
def test_save_symbol_saves_index_of_statement(self): statement = Statement("START JMP $FFEE") program = Program() program.save_symbol(0x35, statement) self.assertEqual("35", program.symbol_table["START"].hex())
def test_save_symbol_saves_value(self): statement = Statement("POLCAT EQU $FFEE") program = Program() program.save_symbol(0, statement) self.assertEqual("FFEE", program.symbol_table["POLCAT"].hex())