59 lines
2.2 KiB
C++
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();
|
|
} |