myrmidon / python /tests /services /test_hybrid_router.py
tek Atrust
chore(deploy): build monolithic server for Hugging Face
d5ef46f
Raw
History Blame Contribute Delete
1.89 kB
# python/tests/services/test_hybrid_router.py
from src.server.services.llm.hybrid_router import HybridRouter
def test_evaluate_complexity_simple():
router = HybridRouter()
simple_proof = "theorem id_prop (P : Prop) : P -> P := by intro h; exact h"
score = router.evaluate_complexity(simple_proof)
# 12 words * 2 = 24. theorem (10), intro (10), exact (10). Total = 54.
assert score > 0
assert score < 150
def test_evaluate_complexity_complex():
router = HybridRouter()
complex_proof = (
"theorem add_commute (n m : Nat) : n + m = m + n := by\n"
" induction n with\n"
" | zero => simp\n"
" | succ n' ih =>\n"
" simp\n"
" rw [Nat.add_succ]\n"
" rw [ih]\n"
" rw [Nat.succ_add]\n"
" simp\n"
" induction m with\n"
" | zero => rfl\n"
" | succ m' ih2 => simp [ih2]\n"
)
score = router.evaluate_complexity(complex_proof)
# Lots of keywords, should score high
assert score > 150
def test_should_escalate_rules():
# Mock capability matrix with slow local CPU
router = HybridRouter()
router.capability_matrix = {
"models": {
"gemma3:4b": {
"tokens_per_sec": 1.2 # Extremely slow CPU fallback
}
}
}
# 1. Slow hardware trigger
assert router.should_escalate_to_cloud("simp", retry_count=0) is True
# Reset hardware speed
router.capability_matrix["models"]["gemma3:4b"]["tokens_per_sec"] = 5.0
# 2. Retry count trigger (K >= 2)
assert router.should_escalate_to_cloud("simp", retry_count=2) is True
assert router.should_escalate_to_cloud("simp", retry_count=1) is False
# 3. Complexity trigger (S >= 150)
complex_proof = "theorem " * 20
assert router.should_escalate_to_cloud(complex_proof, retry_count=0) is True