File size: 1,636 Bytes
4ea7f9c
 
 
f0d95d4
65e7da7
f0d95d4
1dc6c9a
f0d95d4
c712d2c
f0d95d4
 
 
 
 
 
f45d9c2
f0d95d4
4ea7f9c
 
f0d95d4
ae81756
65e7da7
4ea7f9c
 
65e7da7
f0d95d4
65e7da7
 
 
 
 
 
f0d95d4
 
ae81756
f0d95d4
65e7da7
f0d95d4
 
65e7da7
f0d95d4
 
65e7da7
 
 
 
 
 
ae81756
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
from __future__ import annotations

from quant_solver import solve_quant
from solver_absolute_value import solve_absolute_value
from solver_algebra import solve_algebra
from solver_combinatorics import solve_combinatorics
from solver_distance_rate_time import solve_distance_rate_time
from solver_factorial import solve_factorial
from solver_number_properties import solve_number_properties
from solver_overlapping_sets import solve_overlapping_sets
from solver_percent import solve_percent
from solver_probability import solve_probability
from solver_ratio import solve_ratio
from solver_remainder import solve_remainder
from solver_standard_deviation import solve_standard_deviation
from solver_weighted_average_and_mixture import solve_weighted_average_and_mixture
from solver_work_rate import solve_work_rate


def route_solver(text: str):
    """Route to the most specific solver first."""
    if not text or not text.strip():
        return solve_quant(text)

    text = text.strip()
    ordered_solvers = [
        solve_standard_deviation,
        solve_overlapping_sets,
        solve_combinatorics,
        solve_weighted_average_and_mixture,
        solve_work_rate,
        solve_distance_rate_time,
        solve_percent,
        solve_ratio,
        solve_probability,
        solve_remainder,
        solve_factorial,
        solve_absolute_value,
        solve_number_properties,
        solve_algebra,
    ]
    for solver in ordered_solvers:
        try:
            result = solver(text)
            if result:
                return result
        except Exception:
            continue
    return solve_quant(text)