// ================================================================================================ // Audio Backend - 音频格式测试 // ================================================================================================ #include #include "engine/audio_buffer.h" #include "tests/common/test_fixtures.h" using namespace audio_backend; using namespace audio_backend::engine; // 基本测试固定装置 class AudioFormatTest : public test::BaseTest {}; // 测试音频格式的字节大小 TEST_F(AudioFormatTest, FormatByteSize) { // 测试所有格式的字节大小 EXPECT_EQ(get_format_byte_size(AudioFormat::INT16), 2); EXPECT_EQ(get_format_byte_size(AudioFormat::INT24), 3); EXPECT_EQ(get_format_byte_size(AudioFormat::INT32), 4); EXPECT_EQ(get_format_byte_size(AudioFormat::FLOAT32), 4); EXPECT_EQ(get_format_byte_size(AudioFormat::FLOAT64), 8); EXPECT_EQ(get_format_byte_size(AudioFormat::UNKNOWN), 0); } // 测试音频格式名称 TEST_F(AudioFormatTest, FormatName) { // 测试所有格式的名称 EXPECT_STREQ(get_format_name(AudioFormat::INT16), "INT16"); EXPECT_STREQ(get_format_name(AudioFormat::INT24), "INT24"); EXPECT_STREQ(get_format_name(AudioFormat::INT32), "INT32"); EXPECT_STREQ(get_format_name(AudioFormat::FLOAT32), "FLOAT32"); EXPECT_STREQ(get_format_name(AudioFormat::FLOAT64), "FLOAT64"); EXPECT_STREQ(get_format_name(AudioFormat::UNKNOWN), "UNKNOWN"); } // 测试边界情况 TEST_F(AudioFormatTest, EdgeCases) { // 测试无效的枚举值 AudioFormat invalid_format = static_cast(999); EXPECT_EQ(get_format_byte_size(invalid_format), 0); EXPECT_STREQ(get_format_name(invalid_format), "INVALID"); } // 测试格式比较 TEST_F(AudioFormatTest, FormatComparison) { // 相等比较 EXPECT_EQ(AudioFormat::INT16, AudioFormat::INT16); EXPECT_NE(AudioFormat::INT16, AudioFormat::INT32); // 与原始值比较 EXPECT_EQ(static_cast(AudioFormat::INT16), static_cast(AudioFormat::INT16)); EXPECT_NE(static_cast(AudioFormat::INT16), static_cast(AudioFormat::INT32)); } int main(int argc, char** argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }