OpenAssetTools/test/ObjCommonTests/Sound/FlacDecoderTest.cpp

40 lines
1.3 KiB
C++

#include "Sound/FlacDecoder.h"
#include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
namespace flac
{
TEST_CASE("FlacDecoder: Ensure properly decodes flac stream info", "[sound][flac]")
{
// clang-format off
constexpr uint8_t testData[]
{
// Magic
'f', 'L', 'a', 'C',
// Block header
0x00, 0x00, 0x00, 0x22,
// StreamInfo block
0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xB8, 0x02, 0xF0, 0x00,
0x02, 0xF9, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
};
// clang-format on
FlacMetaData metaData;
const auto result = GetFlacMetaData(testData, sizeof(testData), metaData);
REQUIRE(result == true);
REQUIRE(metaData.m_minimum_block_size == 1024);
REQUIRE(metaData.m_maximum_block_size == 1024);
REQUIRE(metaData.m_minimum_frame_size == 0);
REQUIRE(metaData.m_maximum_frame_size == 0);
REQUIRE(metaData.m_sample_rate == 48000);
REQUIRE(metaData.m_number_of_channels == 2);
REQUIRE(metaData.m_bits_per_sample == 16);
REQUIRE(metaData.m_total_samples == 194870);
}
} // namespace flac