f2232eec09
CI / push-validation (pull_request) Successful in 32s
CI / helm (pull_request) Successful in 42s
CI / build (pull_request) Successful in 45s
CI / lint (pull_request) Successful in 1m13s
CI / quality (pull_request) Successful in 1m14s
CI / typecheck (pull_request) Successful in 1m27s
CI / security (pull_request) Successful in 1m28s
CI / unit_tests (pull_request) Successful in 7m6s
CI / docker (pull_request) Successful in 1m53s
CI / integration_tests (pull_request) Successful in 21m26s
CI / coverage (pull_request) Successful in 13m44s
CI / status-check (pull_request) Successful in 3s
- Updated SkeletonCompressorService.compress() to accept (fragments: tuple[ContextFragment, ...], skeleton_budget: int) -> tuple[ContextFragment, ...], matching the SkeletonCompressor protocol - Removed skeleton_ratio and CompressionResult from the public API - Added @runtime_checkable to SkeletonCompressor protocol in acms_service.py - Added structural subtype assertion at module level to prevent future protocol drift - Rewrote all Behave feature scenarios and step definitions to use skeleton_budget - Updated benchmarks and robot helpers to use absolute token budgets - Removed CompressionResult export from services __init__.py and vulture_whitelist.py - The depth_breadth_projection.py call site already correctly computed and passed skeleton_budget ISSUES CLOSED: #2925
50 lines
2.4 KiB
Plaintext
50 lines
2.4 KiB
Plaintext
*** Settings ***
|
|
Documentation Smoke tests for skeleton compressor service
|
|
Resource ${CURDIR}/common.resource
|
|
Suite Setup Setup Test Environment
|
|
Suite Teardown Cleanup Test Environment
|
|
|
|
*** Variables ***
|
|
${HELPER} ${CURDIR}/helper_skeleton_compressor.py
|
|
|
|
*** Test Cases ***
|
|
Compress Fragments At Budget 500
|
|
[Documentation] Compress sample fragments with budget of 500 tokens and verify output
|
|
${result}= Run Process ${PYTHON} ${HELPER} compress 500 cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} skeleton-compress-ok budget=500
|
|
|
|
Compress Fragments At Full Budget
|
|
[Documentation] Full budget — all fragments should survive
|
|
${result}= Run Process ${PYTHON} ${HELPER} compress 1000 cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} skeleton-compress-ok budget=1000
|
|
Should Contain ${result.stdout} fragment_count=3
|
|
|
|
Compress Fragments At Budget Zero
|
|
[Documentation] Zero budget — no fragments should survive
|
|
${result}= Run Process ${PYTHON} ${HELPER} compress 0 cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} skeleton-compress-ok budget=0
|
|
Should Contain ${result.stdout} fragment_count=0
|
|
|
|
Validate Budget Bounds
|
|
[Documentation] Out-of-range budgets must raise ValueError
|
|
${result}= Run Process ${PYTHON} ${HELPER} validate-budget-bounds cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} skeleton-budget-bounds-ok
|
|
|
|
Verify Protocol Conformance
|
|
[Documentation] SkeletonCompressorService must satisfy the SkeletonCompressor protocol
|
|
${result}= Run Process ${PYTHON} ${HELPER} protocol-check cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} skeleton-protocol-check-ok
|
|
|
|
Verify Stable Fragment Ordering
|
|
[Documentation] Fragments with equal relevance must be ordered deterministically
|
|
${result}= Run Process ${PYTHON} ${HELPER} stable-ordering cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} skeleton-stable-ordering-ok
|