// SPDX-License-Identifier: GPL-2.0-or-later // Copyright The Music Player Daemon Project #include "test_pcm_util.hxx" #include "pcm/Dither.cxx" #include TEST(PcmTest, Dither24) { constexpr unsigned N = 509; const auto src = TestDataBuffer(RandomInt24()); int16_t dest[N]; PcmDither dither; dither.Dither24To16(dest, src.begin(), src.end()); for (unsigned i = 0; i < N; ++i) { EXPECT_GE(dest[i], (src[i] >> 8) - 8); EXPECT_LT(dest[i], (src[i] >> 8) + 8); } } TEST(PcmTest, Dither32) { constexpr unsigned N = 509; const auto src = TestDataBuffer(); int16_t dest[N]; PcmDither dither; dither.Dither32To16(dest, src.begin(), src.end()); for (unsigned i = 0; i < N; ++i) { EXPECT_GE(dest[i], (src[i] >> 16) - 8); EXPECT_LT(dest[i], (src[i] >> 16) + 8); } }