counting / maths /arithmetic /arithmetic_with_visualization.py
spagestic's picture
algebra & arithmetic modularized
9b3b8c8
import matplotlib.pyplot as plt
from typing import Any, Tuple
from .add import add
from .subtract import subtract
from .multiply import multiply
from .divide import divide
from .number_line_visualization import create_number_line_visualization
def arithmetic_with_visualization(a: float, b: float, operation: str) -> Tuple[Any, plt.Figure]:
"""Perform arithmetic operation and return result with visualization."""
try:
a, b = float(a), float(b)
if operation == 'add':
result = add(a, b)
elif operation == 'subtract':
result = subtract(a, b)
elif operation == 'multiply':
result = multiply(a, b)
elif operation == 'divide':
result = divide(a, b)
if isinstance(result, str):
return result, None
else:
return "Error: Unknown operation", None
fig = create_number_line_visualization([a, b], operation, result)
return result, fig
except Exception as e:
return f"Error: {str(e)}", None