def test_evaluate_operators(self): calculator = Calculator() self.assertEqual(Decimal(3), calculator.evaluate("+3")) self.assertEqual(Decimal(-3), calculator.evaluate("-3")) self.assertEqual(Decimal(6), calculator.evaluate("2 * 3")) self.assertEqual(Decimal(2), calculator.evaluate("6 / 3")) self.assertEqual(Decimal(5), calculator.evaluate("2 + 3")) self.assertEqual(Decimal(3), calculator.evaluate("7 - 4"))
def evaluate(): data = request.get_json() expression = data['expression']; calculator = Calculator(converter) result = calculator.evaluate(expression) return jsonify({'result': result})
def test_evaluate(self): calculator = Calculator() self.assertEqual(Decimal(4), calculator.evaluate("4")) self.assertEqual(Decimal(21), calculator.evaluate("7 * 3")) self.assertEqual(Decimal(11), calculator.evaluate("2 * 4 + 3")) self.assertEqual(Decimal(45), calculator.evaluate("(3 * (2 + 5)) + 6 * (4)")) self.assertEqual(Decimal("25.92"), calculator.evaluate("2.7 * (3.2 + 6.4)")) self.assertEqual(Decimal(1), calculator.evaluate("-2 * -4 + -7"))
def test_evaluate_operator_precedences(self): calculator = Calculator() self.assertEqual(Decimal(-14), calculator.evaluate("-3 * 5 + +1")) self.assertEqual(Decimal("6.5"), calculator.evaluate("8 / -16 - -7")) self.assertEqual(Decimal(30), calculator.evaluate("5 * 3 * 8 / 4 / 2 * 6 / 3")) self.assertEqual(Decimal(-3), calculator.evaluate("2 + 3 + 4 - 5 - 8 + 6 + 4 - 9"))
def test_evaluate_complex(test_input, expected): """Test evaluate() observes order of operations.""" calculator = Calculator(roman) assert calculator.evaluate(test_input) == expected
def test_evaluate_simple(test_input, expected): """Test evaluate() performs basic math from string expression.""" calculator = Calculator(roman) assert calculator.evaluate(test_input) == expected
import sys from calculator.calculator import Calculator __author__ = 'Frank van Heeswijk' if __name__ == '__main__': if len(sys.argv) < 2: print("Usage: calculator_application \"<expression>\"") sys.exit(1) calculator = Calculator() expression = " ".join(sys.argv[1:]) result = calculator.evaluate(expression) print(result)