Implement WebAssembly runtime and kinematics coverage
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user