File size: 1,052 Bytes
9b3b8c8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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