import unittest from catopt_graph.core import ContractRegistry class TestContractRegistry(unittest.TestCase): def test_register_and_get_contract_versions(self): reg = ContractRegistry() reg.register_contract("LocalProblem", {"foo": "bar"}, version="1.0.0") reg.register_contract("LocalProblem", {"foo": "baz"}, version="1.1.0") c_latest = reg.get_contract("LocalProblem") c_10 = reg.get_contract("LocalProblem", version="1.0.0") c_11 = reg.get_contract("LocalProblem", version="1.1.0") self.assertIsNotNone(c_latest) self.assertEqual(c_10, {"foo": "bar"}) self.assertEqual(c_11, {"foo": "baz"}) # The latest should reflect the highest version number self.assertEqual(c_latest, c_11) def test_list_contracts(self): reg = ContractRegistry() reg.register_contract("X", {"a": 1}, version="0.1.0") reg.register_contract("Y", {"b": 2}, version="0.1.0") all_contracts = reg.list_contracts() self.assertIn("X", all_contracts) self.assertIn("Y", all_contracts) if __name__ == "__main__": unittest.main()