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))
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")
def test_expression_hex_len_returns_correct_when_resolved(self): result = ExpressionValue("254+1") result = result.resolve(None) self.assertEqual(result.hex_len(), 2)
def test_expression_resolve_numeric_only_division_works_correctly(self): result = ExpressionValue("4/2") result = result.resolve(None) self.assertEqual(result.int, 2)
def test_expression_resolve_numeric_only_subtraction_works_correctly(self): result = ExpressionValue("3-2") result = result.resolve(None) self.assertEqual(result.int, 1)
def test_expression_resolve_numeric_only_multiplication_works_correctly(self): result = ExpressionValue("2*3") result = result.resolve(None) self.assertEqual(result.int, 6)