diff --git a/delay/tests/test_buffer.cpp b/delay/tests/test_buffer.cpp index b3299be..38810a0 100644 --- a/delay/tests/test_buffer.cpp +++ b/delay/tests/test_buffer.cpp @@ -14,18 +14,21 @@ int test_buffer_1() dsp::Buffer buffer(10); printf("Buffer capacity = %zu\n", buffer.capacity()); - for (int i=0; i < 10; i++) + for (int i=0; i < buffer.capacity(); i++) { buffer[i] = i+100; } buffer += 5; + { + dsp::Buffer t_buf{105, 106, 107, 108, 109}; + check(buffer, t_buf, t_buf.capacity()); + } dsp::Buffer res_buf(5); for (int i=0; i < res_buf.capacity(); i++) { int v = buffer[i-5]; res_buf[i] = v; - printf("i=%d: v=%d\n", i, v); } dsp::Buffer t_buf{100, 101, 102, 103, 104}; @@ -47,21 +50,12 @@ int test_buffer_2() std::cout << "Start test_buffer_2" << std::endl; std::cout << "----------------------------------------------" << std::endl; - dsp::Buffer buffer(10); + dsp::Buffer buffer(5); printf("Buffer capacity = %zu\n", buffer.capacity()); - for (int i=0; i < 10; i++) + for (int i=0; i < buffer.capacity(); i++) { buffer[i] = i+100; } - buffer += 5; - - for (int i=-5; i < 5; i++) - { - int v = buffer[i]; - printf("i=%d: v=%d\n", i, v); - } - - buffer.reset(); const auto v1 = dsp::Buffer(buffer, -1); const auto v2 = dsp::Buffer(buffer, -5); diff --git a/delay/tests/test_common.hpp b/delay/tests/test_common.hpp index e02c75f..131e230 100644 --- a/delay/tests/test_common.hpp +++ b/delay/tests/test_common.hpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -21,15 +22,38 @@ void print(const dsp::Buffer &v, size_t size, std::string name=std::string("" } template -void check(const dsp::Buffer &target, const dsp::Buffer &actual) +void check(const dsp::Buffer &target, const dsp::Buffer &actual, size_t size=0) { - if (!(target == actual)) + bool success = false; + do + { + if (size == 0) + { + if (target.capacity() != actual.capacity()) + { + break; + } + size = target.capacity(); + } + + for (int i=0; i < size; i++) + { + if (target[i] != actual[i]) + { + break; + } + } + success = true; + + } while(false); + + if (!success) { std::cout << "Check failed" << std::endl; print(target, target.capacity(), "Target"); print(actual, actual.capacity(), "Actual"); } - assert(target == actual); + assert(success); } #endif \ No newline at end of file