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}