import pytest from nova_plan.dsl import LocalProblemDSL, seed_delta_for_local_problem from nova_plan.planner import LocalProblem from nova_plan.contracts import PlanDelta def test_dsl_to_local_problem(): dsl = LocalProblemDSL( id="LP1", domain="space", assets=["rover1", "habitat1"], objective="min-energy", constraints=["deadline<=t", "power<=Pmax"], ) lp = dsl.to_local_problem() assert isinstance(lp, LocalProblem) assert lp.id == "LP1" assert isinstance(lp.variables, dict) assert "rover1_var" in lp.variables def test_dsl_delta_seed_generation(): # Create a minimal LocalProblem seed dsl = LocalProblemDSL( id="LP2", domain="space", assets=["rover2"], objective="min-energy", constraints=[], ) lp = dsl.to_local_problem() # Shared vars could be empty; use delta seed helper to generate a PlanDelta delta = seed_delta_for_local_problem(lp, shared_vars={}, agent_id=lp.id) assert isinstance(delta, PlanDelta) assert delta.agent_id == lp.id assert isinstance(delta.delta, dict)