/
reds
/
OpenDAW
Обзор
Документация
Войти
/
reds
/
OpenDAW
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
tests/unit/test_audio_buffer.cpp
97 строк
2 KB
OpenDAW Developer
feat: Initial OpenDAW v0.1.0 release
20 фев 2026, 23:57
20 фев 2026, 23:57
720a381
Код
Авторство
О чём код?
// Unit tests for AudioBuffer #include <opendaw/audio/AudioBuffer.h> #include <gtest/gtest.h> using namespace opendaw; TEST(AudioBufferTest, ConstructorAndResize) { AudioBuffer<float> buffer(2, 512); EXPECT_EQ(buffer.getNumChannels(), 2); EXPECT_EQ(buffer.getNumSamples(), 512); EXPECT_EQ(buffer.getTotalSamples(), 1024); EXPECT_FALSE(buffer.isEmpty()); buffer.resize(4, 1024); EXPECT_EQ(buffer.getNumChannels(), 4); EXPECT_EQ(buffer.getNumSamples(), 1024); } TEST(AudioBufferTest, Clear) { AudioBuffer<float> buffer(2, 256); for (int ch = 0; ch < buffer.getNumChannels(); ++ch) { auto* data = buffer.getChannel(ch); for (int i = 0; i < buffer.getNumSamples(); ++i) { data[i] = 1.0f; } } buffer.clear(); for (int ch = 0; ch < buffer.getNumChannels(); ++ch) { for (int i = 0; i < buffer.getNumSamples(); ++i) { EXPECT_FLOAT_EQ(buffer.getSample(ch, i), 0.0f); } } } TEST(AudioBufferTest, GetSetSample) { AudioBuffer<float> buffer(2, 128); buffer.setSample(0, 0, 0.5f); buffer.setSample(1, 64, -0.5f); EXPECT_FLOAT_EQ(buffer.getSample(0, 0), 0.5f); EXPECT_FLOAT_EQ(buffer.getSample(1, 64), -0.5f); } TEST(AudioBufferTest, ApplyGain) { AudioBuffer<float> buffer(2, 256); for (int ch = 0; ch < buffer.getNumChannels(); ++ch) { auto* data = buffer.getChannel(ch); for (int i = 0; i < buffer.getNumSamples(); ++i) { data[i] = 1.0f; } } buffer.applyGain(0.5f); for (size_t i = 0; i < buffer.getTotalSamples(); ++i) { EXPECT_FLOAT_EQ(buffer.getData()[i], 0.5f); } } TEST(MidiBufferTest, AddAndRetrieve) { MidiBuffer buffer; buffer.addNoteOn(0, 60, 100, 0); buffer.addNoteOff(0, 60, 0, 480); EXPECT_EQ(buffer.getNumEvents(), 2); auto& event = buffer.getEvent(0); EXPECT_TRUE(event.isNoteOn()); EXPECT_EQ(event.getNoteNumber(), 60); EXPECT_EQ(event.getVelocity(), 100); } TEST(MidiBufferTest, Sort) { MidiBuffer buffer; buffer.addNoteOn(0, 72, 100, 200); buffer.addNoteOn(0, 60, 100, 0); buffer.addNoteOn(0, 67, 100, 100); buffer.sort(); EXPECT_EQ(buffer.getEvent(0).frameOffset, 0u); EXPECT_EQ(buffer.getEvent(1).frameOffset, 100u); EXPECT_EQ(buffer.getEvent(2).frameOffset, 200u); } int main(int argc, char** argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }