27 lines
922 B
Python
27 lines
922 B
Python
import datetime
|
|
|
|
import pytest
|
|
|
|
from catopt_studio import LocalProblem, SharedVariables
|
|
from catopt_studio.solver import compile_to_solver, simulate_solver_step, SolverConfig
|
|
|
|
|
|
def test_compile_to_solver_basic():
|
|
lp = LocalProblem(id="lp1", domain="energy", assets={"battery": 100}, objective="min_cost")
|
|
sv = SharedVariables()
|
|
sc = compile_to_solver(lp, sv)
|
|
assert isinstance(sc, SolverConfig)
|
|
assert sc.solver_type in ("admm-lite-energy", "admm-lite-cost", "admm-lite")
|
|
assert sc.max_iterations == 50
|
|
assert sc.rho > 0
|
|
|
|
|
|
def test_simulate_solver_step_returns_dict():
|
|
lp = LocalProblem(id="lp1", domain="energy", assets={}, objective="min_cost")
|
|
sv = SharedVariables()
|
|
sc = compile_to_solver(lp, sv)
|
|
step = simulate_solver_step(sc, lp, sv, delta={"x": 1})
|
|
assert isinstance(step, dict)
|
|
assert step.get("iteration") == 1
|
|
assert step.get("delta_applied") == {"x": 1}
|