Kirika/audio/filter/resample_filter_nocgo_test.go
DataHoarder bf39ddac3a
All checks were successful
continuous-integration/drone/push Build is passing
Update several sections to use atomic[T] instead of pointers
2022-08-03 15:38:29 +02:00

44 lines
1,020 B
Go

//go:build !cgo
package filter
import (
"git.gammaspectra.live/S.O.N.G/Kirika/audio"
"git.gammaspectra.live/S.O.N.G/Kirika/audio/format/flac"
"git.gammaspectra.live/S.O.N.G/Kirika/test"
"os"
"testing"
)
func TestFilterChainResample(t *testing.T) {
t.Parallel()
fp, err := os.Open(test.TestSingleSample24)
if err != nil {
t.Error(err)
return
}
defer fp.Close()
source, err := flac.NewFormat().Open(fp)
if err != nil {
t.Error(err)
return
}
const sampleRate = 16000
result := NewFilterChain(source, MonoFilter{}, NewResampleFilter(sampleRate, QualityFast, 0), StereoFilter{})
sink := audio.NewForwardSink(audio.NewNullSink())
sink.Process(result)
if result.GetSampleRate() != sampleRate {
t.Errorf("Wrong SampleRate %d != %d", result.GetSampleRate(), sampleRate)
}
if result.GetChannels() != 2 {
t.Errorf("Wrong Channel Count %d != %d", result.GetChannels(), 2)
}
if sink.GetSamplesRead() != 6285000 {
t.Errorf("Wrong Sample Count %d != %d", sink.GetSamplesRead(), 6285000)
}
}