spacesafeml-certification-b.../tests/test_verification.py

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)