import unittest from hopemesh import ( GraphOfContracts, GovernanceLedger, LocalProblem, PrivacyBudget, make_local_problem, make_plan_delta, make_shared_variables, merge_plan_deltas, validate_deltas, ) class HopeMeshCoreTests(unittest.TestCase): def test_primitives_and_budget(self) -> None: problem = LocalProblem(name="Water allocation", region="North", objective="minimize unmet demand") shared = make_shared_variables("stock", {"water": 10}, source_regions=["North"]) budget = PrivacyBudget("pb-1", 3.0) self.assertTrue(problem.fingerprint()) self.assertTrue(shared.fingerprint()) self.assertTrue(budget.consume(1.5)) self.assertFalse(budget.consume(2.0)) self.assertEqual(round(budget.remaining(), 2), 1.5) def test_graph_of_contracts(self) -> None: graph = GraphOfContracts() schema = graph.register_schema("resource-plan", "1.0", {"fields": ["id", "qty"]}) adapter = graph.register_adapter("field-hub", "1.0", {"transport": "tls"}) link = graph.link(adapter.contract_id, schema.contract_id) self.assertEqual(link.relation, "implements") self.assertEqual(graph.validate(), []) snapshot = graph.snapshot() restored = GraphOfContracts.from_snapshot(snapshot) self.assertEqual(restored.fingerprint(), graph.fingerprint()) def test_ledger_chain(self) -> None: ledger = GovernanceLedger() first = ledger.append("audit", {"message": "created"}) second = ledger.append("audit", {"message": "updated"}, actor="operator") self.assertNotEqual(first.entry_hash, second.entry_hash) self.assertEqual(ledger.verify(), []) restored = GovernanceLedger.from_snapshot(ledger.snapshot()) self.assertEqual(restored.verify(), []) def test_delta_helpers(self) -> None: delta_a = make_plan_delta("a", [{"allocate": {"region": "North", "qty": 2}}]) delta_b = make_plan_delta("b", [{"allocate": {"region": "South", "qty": 3}}]) merged = merge_plan_deltas([delta_b, delta_a]) self.assertEqual(len(merged.actions), 2) self.assertEqual(validate_deltas([delta_a, delta_b]), []) def test_factory_alias(self) -> None: problem = make_local_problem("Hospital supply", region="East", urgent=True) self.assertEqual(problem.region, "East") self.assertEqual(problem.metadata["urgent"], True) if __name__ == "__main__": unittest.main()