Files
Alicho/tests/unit/engine/audio_format_test.cpp
2025-10-28 10:27:49 +08:00

59 lines
2.2 KiB
C++

// ================================================================================================
// Audio Backend - 音频格式测试
// ================================================================================================
#include <gtest/gtest.h>
#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<AudioFormat>(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<int>(AudioFormat::INT16), static_cast<int>(AudioFormat::INT16));
EXPECT_NE(static_cast<int>(AudioFormat::INT16), static_cast<int>(AudioFormat::INT32));
}
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}