38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
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)
|