from gravityweave.delta_synopsis import build_priority_key, build_synopsis, serialize_synopsis, deserialize_synopsis from gravityweave.plan_delta import PlanDelta def test_build_priority_key_valid(): key = build_priority_key(3, 10) assert isinstance(key, int) assert key == (3 << 4) | 10 def test_build_synopsis_and_serialization(): pd = PlanDelta() pd.commitments.add({"id": "x", "type": "downlink"}) pd.priority.write(5) syn = build_synopsis(pd, parent_version="v0", urgency_score=2, impact_score=7, affected_assets=["satA"], signer="node1", key=b"secret") assert "delta_id" in syn assert syn["parent_version"] == "v0" assert isinstance(syn["priority_key"], int) assert syn["affected_assets"] == ["satA"] assert syn["short_sig"] != "" b = serialize_synopsis(syn) syn2 = deserialize_synopsis(b) assert syn2["delta_id"] == syn["delta_id"]