"""Original static CPU allocation accounting; no inference, copy-on-write implementation, external-fragmentation simulation, or vLLM benchmark.
Run with Python 3.10+; standard library only. Writes results.json in the current directory.
"""
def allocated_slots(length, page_size):
    assert length >= 0 and page_size > 0
    return ((length + page_size - 1) // page_size) * page_size

lengths = [5, 9, 17]
useful = sum(lengths)
reserved = 32 * len(lengths)
print(f"reserved: slots={reserved}, unused={reserved - useful}")
for page_size in (4, 8, 16):
    slots = sum(allocated_slots(n, page_size) for n in lengths)
    slack = slots - useful
    assert 0 <= slack < len(lengths) * page_size
    print(f"page={page_size}: slots={slots}, unused={slack}")

page_size = 4
branch_lengths = [20, 23]
shared_prefix = 8
assert shared_prefix % page_size == 0
separate = sum(allocated_slots(n, page_size) for n in branch_lengths)
shared = separate - shared_prefix
assert shared == 36 and separate == 44
print(f"prefix-sharing: separate={separate}, shared={shared}")
assert sum(lengths) == 31
assert allocated_slots(0, 4) == 0

# Extended experiment: deterministic parameter sweep and invariants.
lengths=[5,9,17]
sweep=[]
for page in [1,2,4,8,16,32]:
    blocks=sum((n+page-1)//page for n in lengths)
    slots=blocks*page
    for metadata_slots in [0.,0.25,1.,4.]:
        sweep.append(dict(page_size=page,block_count=blocks,allocated_slots=slots,
                          slack_slots=slots-sum(lengths),metadata_slots_per_block=metadata_slots,
                          total_equivalent_slots=slots+blocks*metadata_slots))
    assert 0<=slots-sum(lengths)<len(lengths)*page
sharing=[]
for prefix in range(0,21,4):
    distinct=allocated_slots(20,4)+allocated_slots(23,4)-prefix
    sharing.append(dict(shared_prefix=prefix,physical_slots=distinct,logical_tokens=43))
data=dict(lengths=lengths,reservation_per_request=32,page_sweep=sweep,prefix_sweep=sharing)
for overhead in [0.,0.25,1.,4.]:
    best=min((r for r in sweep if r['metadata_slots_per_block']==overhead),key=lambda r:r['total_equivalent_slots'])
    print(f"metadata cost={overhead} token-slot equivalents/block: best tested page={best['page_size']}, cost={best['total_equivalent_slots']}")

import json
from pathlib import Path
Path("results.json").write_text(json.dumps(data,indent=2,allow_nan=False)+"\n",encoding="utf-8")
