Implement WebAssembly runtime and kinematics coverage

This commit is contained in:
2026-08-21 06:04:48 +08:00
parent 5dd614c335
commit 554b72dae8
112 changed files with 47148 additions and 807 deletions

View File

@@ -6,6 +6,7 @@ from pathlib import Path
from tempfile import TemporaryDirectory
from context_packet import PacketError, generate_packet
from validate_model_budget import validate_request
class ContextPacketTests(unittest.TestCase):
@@ -115,6 +116,67 @@ class ContextPacketTests(unittest.TestCase):
self.assertEqual([item["path"] for item in packet["evidence"]["selected"]], ["required.log", "a.log"])
self.assertEqual(packet["evidence"]["excluded"][0]["reason_code"], "E3")
def test_token_budget_is_enforced_during_generation(self):
packet = generate_packet(
self.base([{"path": "large.log", "size": 1800, "priority": 1}]),
context_id="c1",
packet_id="p1",
profile="doc",
total_bytes=8192,
evidence_bytes=2048,
)
self.assertEqual(packet["evidence"]["selected"], [])
self.assertEqual(packet["evidence"]["excluded"][0]["reason_code"], "E6")
def test_required_item_fails_on_token_budget(self):
with self.assertRaisesRegex(PacketError, r"required evidence cannot fit \(E6\)"):
generate_packet(
self.base([{"path": "required.log", "size": 1800, "required": True}]),
context_id="c1",
packet_id="p1",
profile="doc",
total_bytes=8192,
evidence_bytes=2048,
)
def test_overrides_cannot_expand_profile(self):
with self.assertRaisesRegex(PacketError, "bytes budget override exceeds profile"):
generate_packet(
self.base([]),
context_id="c1",
packet_id="p1",
profile="doc",
total_bytes=8193,
)
def test_token_limit_override_can_only_shrink_profile(self):
packet = generate_packet(
self.base([]),
context_id="c1",
packet_id="p1",
profile="feature",
token_limit=512,
)
self.assertEqual(packet["budget"]["token_limit"], 512)
with self.assertRaisesRegex(PacketError, "tokens budget override exceeds profile"):
generate_packet(
self.base([]),
context_id="c1",
packet_id="p1",
profile="feature",
token_limit=4097,
)
def test_generated_packet_passes_model_preflight(self):
packet = generate_packet(
self.base([]),
context_id="c1",
packet_id="p1",
profile="feature",
)
result = validate_request(packet, context_window=16384, overhead_tokens=256)
self.assertLessEqual(result["reserved_total_tokens"], 16384)
def test_cli_does_not_replace_existing_output_on_generation_failure(self):
with TemporaryDirectory() as directory:
root = Path(directory)