26 lines
1.1 KiB
Python
26 lines
1.1 KiB
Python
import json
|
|
from spacesafeml_certification_benchmark_and_.verification import generate_certificate
|
|
from spacesafeml_certification_benchmark_and_.dsl import SafetyContract, SafetyPreConditions, SafetyPostConditions, ResourceBudgets, LocalCapabilities, DataSharingPolicy
|
|
|
|
|
|
def test_verification_certificate_basic():
|
|
plan = {
|
|
"name": "sample-mission",
|
|
"actions": ["scan", "navigate", "dock"],
|
|
"budgets": {"cpu_cores": 1.0, "memory_gb": 2.0, "energy_wh": 100.0, "time_seconds": 1800},
|
|
}
|
|
|
|
contract = SafetyContract(
|
|
contract_id="contract-1",
|
|
local_capabilities=[LocalCapabilities(name="Planner", capabilities=["plan"] )],
|
|
budgets=ResourceBudgets(cpu_cores=2.0, memory_gb=4.0, energy_wh=150.0, time_seconds=3600),
|
|
data_policy=DataSharingPolicy(policy_id="policy-1", allowed_data=["telemetry"]),
|
|
version="1.0",
|
|
)
|
|
|
|
cert = generate_certificate(plan, contract)
|
|
assert cert["status"] in ("safe", "unsafe")
|
|
assert "certificate_id" in cert
|
|
assert cert["plan_hash"]
|
|
assert isinstance(cert["details"], list)
|