28 lines
1.0 KiB
Python
28 lines
1.0 KiB
Python
from catopt_studio import LocalProblem
|
|
from catopt_studio.adapters import RoverAdapter, HabitatAdapter
|
|
|
|
|
|
def test_rover_adapter_propose_delta_low_battery():
|
|
lp = LocalProblem(id="r1", domain="rover", assets={"battery": 10}, objective="navigate")
|
|
ra = RoverAdapter()
|
|
delta = ra.propose_delta(lp, author="tester")
|
|
assert delta.author == "tester"
|
|
assert delta.contract_id == "r1"
|
|
assert delta.delta.get("action") == "hold_position"
|
|
|
|
|
|
def test_rover_to_canonical_contains_expected_keys():
|
|
lp = LocalProblem(id="r2", domain="rover", assets={"wheel": 2}, objective="survey")
|
|
ra = RoverAdapter()
|
|
canon = ra.to_canonical(lp)
|
|
assert canon["adapter"] == "rover_planner"
|
|
assert canon["id"] == "r2"
|
|
|
|
|
|
def test_habitat_adapter_respects_no_move_constraint():
|
|
lp = LocalProblem(id="h1", domain="habitat", assets={}, constraints=["no_move_zone"], objective="manage")
|
|
ha = HabitatAdapter()
|
|
delta = ha.propose_delta(lp, author="hub")
|
|
assert delta.delta.get("action") == "pause"
|
|
assert delta.author == "hub"
|