@@ -698,23 +698,27 @@ async def test_audio_timing_calculation_accuracy(self, model):
698698 for event in audio_deltas :
699699 await model ._handle_ws_event (event )
700700
701- # Should accumulate audio length: 8 bytes / 24 / 2 * 1000 = milliseconds
702- # Total: 8 bytes / 24 / 2 * 1000
703- expected_length = (8 / 24 / 2 ) * 1000
701+ # Should accumulate audio length: 8 bytes -> 4 samples -> (4 / 24000) * 1000 ≈ 0.167 ms
702+ expected_length = (8 / (24_000 * 2 )) * 1000
704703
705704 # Test through the actual audio state tracker
706705 audio_state = model ._audio_state_tracker .get_state ("item_1" , 0 )
707706 assert audio_state is not None
708- assert abs ( audio_state .audio_length_ms - expected_length ) < 0.001
707+ assert audio_state .audio_length_ms == pytest . approx ( expected_length , rel = 0 , abs = 1e-6 )
709708
710709 def test_calculate_audio_length_ms_pure_function (self , model ):
711710 """Test the pure audio length calculation function."""
712711 from agents .realtime ._util import calculate_audio_length_ms
713712
714713 # Test various audio buffer sizes for pcm16 format
715- assert calculate_audio_length_ms ("pcm16" , b"test" ) == (4 / 24 / 2 ) * 1000 # 4 bytes
714+ expected_pcm = (len (b"test" ) / (24_000 * 2 )) * 1000
715+ assert calculate_audio_length_ms ("pcm16" , b"test" ) == pytest .approx (
716+ expected_pcm , rel = 0 , abs = 1e-6
717+ ) # 4 bytes
716718 assert calculate_audio_length_ms ("pcm16" , b"" ) == 0 # empty
717- assert calculate_audio_length_ms ("pcm16" , b"a" * 48 ) == 1000.0 # exactly 1000ms worth
719+ assert calculate_audio_length_ms ("pcm16" , b"a" * 48 ) == pytest .approx (
720+ (48 / (24_000 * 2 )) * 1000 , rel = 0 , abs = 1e-6
721+ ) # exactly 1ms worth
718722
719723 # Test g711 format
720724 assert calculate_audio_length_ms ("g711_ulaw" , b"test" ) == (4 / 8000 ) * 1000 # 4 bytes
@@ -741,7 +745,8 @@ async def test_handle_audio_delta_state_management(self, model):
741745 # Test that audio state is tracked correctly
742746 audio_state = model ._audio_state_tracker .get_state ("test_item" , 5 )
743747 assert audio_state is not None
744- assert audio_state .audio_length_ms == (4 / 24 / 2 ) * 1000 # 4 bytes in milliseconds
748+ expected_ms = (len (b"test" ) / (24_000 * 2 )) * 1000
749+ assert audio_state .audio_length_ms == pytest .approx (expected_ms , rel = 0 , abs = 1e-6 )
745750
746751 # Test that last audio item is tracked
747752 last_item = model ._audio_state_tracker .get_last_audio_item ()
0 commit comments