import sys import pathlib # Ensure repository root is on sys.path so tests can import the package sys.path.insert(0, str(pathlib.Path(__file__).resolve().parents[1])) from cosmic_ledger.delta import DeltaLog from cosmic_ledger.adapter import DeltaBlock, verify_block, verify_entry_inclusion def test_deltablock_create_and_verify(): dl = DeltaLog() # add a few simple entries for i in range(5): dl.add_entry({"v": i}) key = b'test-key-for-adapter' raw_block = dl.export_delta_block(since_index=0, signer_key=key) block = DeltaBlock.from_dict(raw_block) # verify aggregated block signature and structure assert block.root == raw_block["root"] assert len(block.digests) == len(block.entries) assert verify_block(block, signer_key=key) def test_verify_single_entry_inclusion(): dl = DeltaLog() for i in range(3): dl.add_entry({"k": i}) block = DeltaBlock.from_dict(dl.export_delta_block(since_index=0)) # verify inclusion for each entry for idx, digest in enumerate(block.digests): assert verify_entry_inclusion(digest, block, idx)