InferScale-Sim / tests /test_optimizer.py
ArchitSharma's picture
Release InferScale-Sim v0.2.0
20fb354
Raw
History Blame Contribute Delete
1.12 kB
from inferscale.models import SimulationConfig
from inferscale.optimizer import capacity_search, compare_schedulers, evaluate_rate
def test_capacity_search_returns_trace():
cfg = {
"duration_s": 6,
"prompt_tokens_mean": 128,
"output_tokens_mean": 16,
"slo_ttft_ms": 1000,
"slo_e2e_ms": 10000,
"slo_attainment_target": 0.95,
}
out = capacity_search(cfg, min_rate=0.25, max_rate=3, iterations=3, repetitions=1)
assert out["trace"]
assert out["capacity_rps"] >= 0
assert out["criterion"] == "all-repetitions-meet-target-and-drain"
def test_rate_evaluation_exposes_repetition_range():
out = evaluate_rate(SimulationConfig(duration_s=4, request_rate_rps=1), 1.0, repetitions=2)
assert out["slo_attainment_min"] <= out["slo_attainment"] <= out["slo_attainment_max"]
assert out["repetitions"] == 2
def test_scheduler_compare_has_rows_and_diagnostics():
out = compare_schedulers({"duration_s": 4, "request_rate_rps": 1, "output_tokens_mean": 8})
assert len(out["rows"]) == 5
assert all(row["bottleneck"] for row in out["rows"])