//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.SingleSample24) 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() != 6284999 { t.Errorf("Wrong Sample Count %d != %d", sink.GetSamplesRead(), 6284999) } }