novaplan-decentralized-priv.../tests/test_dsl_seed.py

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)