def test_number_label_bin_offset(self): parser = AddressParser() parser.labels = {'foo': 0xC000} self.assertEqual(0xC003, parser.number('foo+%00000011')) self.assertEqual(0xBFFD, parser.number('foo-%00000011')) self.assertEqual(0xC003, parser.number('foo + %00000011')) self.assertEqual(0xBFFD, parser.number('foo - %00000011'))
def test_number_label_bin_offset(self): parser = AddressParser() parser.labels = {'foo': 0xC000} self.assertEqual(0xC003, parser.number('foo+%00000011')) self.assertEqual(0xBFFD, parser.number('foo-%00000011')) self.assertEqual(0xC003, parser.number('foo + %00000011')) self.assertEqual(0xBFFD, parser.number('foo - %00000011'))
def test_number_label_dec_offset(self): parser = AddressParser() parser.labels = {'foo': 0xC000} self.assertEquals(0xC003, parser.number('foo++3')) self.assertEquals(0xBFFD, parser.number('foo-+3')) self.assertEquals(0xC003, parser.number('foo + +3')) self.assertEquals(0xBFFD, parser.number('foo - +3'))
def test_number_label_dec_offset(self): parser = AddressParser() parser.labels = {"foo": 0xC000} self.assertEqual(0xC003, parser.number("foo++3")) self.assertEqual(0xBFFD, parser.number("foo-+3")) self.assertEqual(0xC003, parser.number("foo + +3")) self.assertEqual(0xBFFD, parser.number("foo - +3"))
def test_number_bad_label_syntax(self): parser = AddressParser() parser.labels = {'foo': 0xFFFF} try: parser.number('#$foo') self.fail() except KeyError as exc: self.assertEqual('Label not found: #$foo', exc.args[0])
def test_number_label_offset_default_radix(self): parser = AddressParser() parser.labels = {'foo': 0xC000} parser.radix = 16 self.assertEqual(0xC010, parser.number('foo+10')) self.assertEqual(0xBFF0, parser.number('foo-10')) self.assertEqual(0xC010, parser.number('foo + 10')) self.assertEqual(0xBFF0, parser.number('foo - 10')) parser.radix = 10 self.assertEqual(0xC00A, parser.number('foo+10')) self.assertEqual(0xBFF6, parser.number('foo-10')) self.assertEqual(0xC00A, parser.number('foo + 10')) self.assertEqual(0xBFF6, parser.number('foo - 10'))
def test_number_label_offset_default_radix(self): parser = AddressParser() parser.labels = {'foo': 0xC000} parser.radix = 16 self.assertEqual(0xC010, parser.number('foo+10')) self.assertEqual(0xBFF0, parser.number('foo-10')) self.assertEqual(0xC010, parser.number('foo + 10')) self.assertEqual(0xBFF0, parser.number('foo - 10')) parser.radix = 10 self.assertEqual(0xC00A, parser.number('foo+10')) self.assertEqual(0xBFF6, parser.number('foo-10')) self.assertEqual(0xC00A, parser.number('foo + 10')) self.assertEqual(0xBFF6, parser.number('foo - 10'))
def test_number_truncates_address_at_maxwidth_16(self): parser = AddressParser() parser.labels = {'foo': 0xFFFF} self.assertEqual(0xFFFF, parser.number('foo+5'))
def test_number_label(self): parser = AddressParser() parser.labels = {'foo': 0xC000} self.assertEqual(0xC000, parser.number('foo'))
def test_number_label(self): parser = AddressParser() parser.labels = {'foo': 0xC000} self.assertEqual(0xC000, parser.number('foo'))
def test_number_constrains_address_at_maxwidth_24(self): parser = AddressParser() parser.maxwidth = 24 parser.labels = {'foo': 0xFFFFFF} self.assertRaises(OverflowError, parser.number, 'foo+5')
def test_number_truncates_address_at_maxwidth_24(self): parser = AddressParser() parser.maxwidth = 24 parser.labels = {'foo': 0xFFFFFF} self.assertEqual(0xFFFFFF, parser.number('foo+5'))
def test_number_truncates_address_at_maxwidth_24(self): parser = AddressParser() parser.maxwidth = 24 parser.labels = {"foo": 0xFFFFFF} self.assertEqual(0xFFFFFF, parser.number("foo+5"))