package service import ( "encoding/base64" "testing" "github.com/stretchr/testify/require" ) func TestParseAudioUsesFormatSpecificSampleRates(t *testing.T) { pcm := base64.StdEncoding.EncodeToString(make([]byte, 48_000)) duration, err := parseAudio(pcm, "pcm16") require.NoError(t, err) require.Equal(t, 1.0, duration) g711 := base64.StdEncoding.EncodeToString(make([]byte, 8_000)) duration, err = parseAudio(g711, "g711_ulaw") require.NoError(t, err) require.Equal(t, 1.0, duration) } func TestParseAudioAndDecodeBase64AudioDataRejectInvalidEncoding(t *testing.T) { _, err := parseAudio("not base64", "pcm16") require.Error(t, err) _, err = DecodeBase64AudioData("not base64") require.Error(t, err) } func TestDecodeBase64AudioDataStripsDataURLPrefix(t *testing.T) { decoded, err := DecodeBase64AudioData("data:audio/pcm;base64,AAE=") require.NoError(t, err) require.Equal(t, "AAE=", decoded) } func TestCountAudioTokensUsesConfiguredInputAndOutputRates(t *testing.T) { oneSecondPCM := base64.StdEncoding.EncodeToString(make([]byte, 48_000)) inputTokens, err := CountAudioTokenInput(oneSecondPCM, "pcm16") require.NoError(t, err) require.Equal(t, 27, inputTokens) outputTokens, err := CountAudioTokenOutput(oneSecondPCM, "pcm16") require.NoError(t, err) require.Equal(t, 13, outputTokens) inputTokens, err = CountAudioTokenInput("", "pcm16") require.NoError(t, err) require.Zero(t, inputTokens) }