opengrowth-privacy-preservi.../tests/test_contracts.py

54 lines
1.7 KiB
Python

import json
from opengrowth_privacy_preserving_federated_ import contracts as c
def test_local_experiment_to_dict():
le = c.LocalExperiment(
name="TestExperiment",
variables={"price": 9.99, "discount": 0.1},
privacy_budget={"epsilon": 1.0},
metadata={"owner": "alice"},
)
d = le.to_dict()
assert d["name"] == "TestExperiment"
assert d["variables"]["price"] == 9.99
assert d["privacy_budget"]["epsilon"] == 1.0
assert d["metadata"]["owner"] == "alice"
def test_shared_signals_to_dict():
ss = c.SharedSignals(
signals={"activation_rate": 0.42, "funnel_drop": 0.15},
provenance={"source": "mock"},
)
d = ss.to_dict()
assert d["signals"]["activation_rate"] == 0.42
assert d["provenance"]["source"] == "mock"
def test_plan_delta_to_dict():
pd = c.PlanDelta(delta={"activation": 1}, timestamp="2020-01-01T00:00:00Z", note="init")
d = pd.to_dict()
assert d["delta"]["activation"] == 1
assert d["timestamp"] == "2020-01-01T00:00:00Z"
assert d["note"] == "init"
def test_graph_of_contracts_registry_ops():
g = c.GraphOfContracts()
# register a contract
g.register_contract("example", {"hello": "world"}, version="1.0")
# get contract
reg = g.get_contract("example")
assert reg is not None
assert reg["version"] == "1.0"
assert reg["contract"]["hello"] == "world"
# list contracts
all_contracts = g.list_contracts()
assert "example" in all_contracts
# unregister and ensure removal
removed = g.unregister_contract("example")
assert removed is True
all_contracts = g.list_contracts()
assert "example" not in all_contracts