mirror of
https://github.com/headroomlabs-ai/headroom.git
synced 2026-08-27 14:17:10 -04:00
46 lines
1.5 KiB
Python
46 lines
1.5 KiB
Python
|
|
from headroom.cache.compression_strategy_outcomes import CompressionStrategyOutcomes
|
||
|
|
|
||
|
|
|
||
|
|
def test_retrieval_rate_is_zero_without_strategy_compressions():
|
||
|
|
outcomes = CompressionStrategyOutcomes(retrievals={"sample": 2})
|
||
|
|
|
||
|
|
assert outcomes.retrieval_rate("sample") == 0.0
|
||
|
|
|
||
|
|
|
||
|
|
def test_best_strategy_requires_minimum_samples():
|
||
|
|
outcomes = CompressionStrategyOutcomes(
|
||
|
|
compressions={"under_sampled": 2, "sampled": 3},
|
||
|
|
retrievals={"under_sampled": 0, "sampled": 1},
|
||
|
|
)
|
||
|
|
|
||
|
|
assert outcomes.best_strategy() == "sampled"
|
||
|
|
|
||
|
|
|
||
|
|
def test_best_strategy_uses_lowest_retrieval_rate():
|
||
|
|
outcomes = CompressionStrategyOutcomes(
|
||
|
|
compressions={"top_n": 10, "smart_sample": 10},
|
||
|
|
retrievals={"top_n": 7, "smart_sample": 2},
|
||
|
|
)
|
||
|
|
|
||
|
|
assert outcomes.retrieval_rate("smart_sample") == 0.2
|
||
|
|
assert outcomes.best_strategy() == "smart_sample"
|
||
|
|
|
||
|
|
|
||
|
|
def test_recording_prunes_strategy_counters_to_bounded_high_signal_set():
|
||
|
|
outcomes = CompressionStrategyOutcomes(max_strategies=10, top_strategies_per_counter=8)
|
||
|
|
|
||
|
|
for index in range(30):
|
||
|
|
strategy = f"strategy_{index:02d}"
|
||
|
|
for _ in range(index + 1):
|
||
|
|
outcomes.record_compression(strategy)
|
||
|
|
|
||
|
|
for index in range(30):
|
||
|
|
strategy = f"strategy_{index:02d}"
|
||
|
|
for _ in range(30 - index):
|
||
|
|
outcomes.record_retrieval(strategy)
|
||
|
|
|
||
|
|
assert len(outcomes.compressions) <= 10
|
||
|
|
assert len(outcomes.retrievals) <= 10
|
||
|
|
assert "strategy_29" in outcomes.compressions
|
||
|
|
assert "strategy_00" in outcomes.retrievals
|