Example #1
0
 def test_expression_symbol_left_resolves_correctly(self):
     symbol_table = {"VAR": NumericValue("$FE", mode=ExplicitAddressingMode.DIRECT)}
     result = ExpressionValue("VAR+1")
     result = result.resolve(symbol_table)
     self.assertEqual(result.hex(), "FF")
Example #2
0
 def test_expression_raises_when_not_numeric_or_address_for_resolve(self):
     result = ExpressionValue("VAR+1")
     result.left = NoneValue()
     with self.assertRaises(ValueError) as context:
         result.resolve({})
     self.assertEqual("[VAR+1] unresolved expression", str(context.exception))
Example #3
0
 def test_expression_hex_len_returns_correct_when_resolved(self):
     result = ExpressionValue("254+1")
     result = result.resolve(None)
     self.assertEqual(result.hex_len(), 2)
Example #4
0
 def test_expression_hex_len_returns_zero_if_not_resolved(self):
     result = ExpressionValue("2+3")
     self.assertEqual(result.hex_len(), 0)
Example #5
0
 def test_expression_resolve_numeric_only_division_works_correctly(self):
     result = ExpressionValue("4/2")
     result = result.resolve(None)
     self.assertEqual(result.int, 2)
Example #6
0
 def test_expression_resolve_numeric_only_subtraction_works_correctly(self):
     result = ExpressionValue("3-2")
     result = result.resolve(None)
     self.assertEqual(result.int, 1)
Example #7
0
 def test_expression_resolve_numeric_only_multiplication_works_correctly(self):
     result = ExpressionValue("2*3")
     result = result.resolve(None)
     self.assertEqual(result.int, 6)