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)
|