import datetime import pytest from catopt_studio import LocalProblem, SharedVariables, PlanDelta, PrivacyBudget, AuditLog def test_local_problem_dataclass_basic(): lp = LocalProblem(id="lp1", domain="energy", assets={"battery": 100}, objective="min_cost") assert lp.id == "lp1" assert lp.domain == "energy" assert lp.assets["battery"] == 100 assert lp.objective == "min_cost" def test_shared_variables_defaults(): sv = SharedVariables() assert isinstance(sv.version, int) assert sv.forecasts == {} assert sv.priors == {} def test_plan_delta_timestamp_is_datetime(): pd = PlanDelta(delta={"a": 1}, author="tester") assert isinstance(pd.timestamp, datetime.datetime) assert pd.author == "tester" def test_privacy_budget_and_audit_log_defaults(): pb = PrivacyBudget(signal="sig", budget=0.5) al = AuditLog(entry="test log", signer="alice") assert pb.signal == "sig" assert pb.budget == 0.5 assert al.signer == "alice"