Mimir/tests/test_probe_optimizer.py
2026-05-18 16:24:10 +01:00

40 lines
1.4 KiB
Python

import unittest
from audio_field.probe_optimizer import ActiveProbeOptimizer, ProbePolicy
from audio_field.runtime_sync import SyncState
class ActiveProbeOptimizerTests(unittest.TestCase):
def test_schedules_weakest_source_when_masked(self):
optimizer = ActiveProbeOptimizer(ProbePolicy(trigger_confidence=0.4, min_interval_frames=10))
request = optimizer.choose_probe(
100,
{
"good": SyncState(confidence=0.8),
"weak": SyncState(confidence=0.2),
},
masked_window=True,
)
self.assertIsNotNone(request)
self.assertEqual("weak", request.source_id)
self.assertGreater(request.urgency, 0.0)
def test_respects_probe_spacing(self):
optimizer = ActiveProbeOptimizer(ProbePolicy(trigger_confidence=0.4, min_interval_frames=10))
states = {"weak": SyncState(confidence=0.2)}
self.assertIsNotNone(optimizer.choose_probe(100, states, masked_window=True))
self.assertIsNone(optimizer.choose_probe(105, states, masked_window=True))
def test_waits_for_masked_window_when_configured(self):
optimizer = ActiveProbeOptimizer(ProbePolicy(trigger_confidence=0.4, prefer_masked_windows=True))
request = optimizer.choose_probe(100, {"weak": SyncState(confidence=0.2)}, masked_window=False)
self.assertIsNone(request)
if __name__ == "__main__":
unittest.main()