1
0
mirror of https://github.com/clementine-player/Clementine synced 2025-01-07 07:41:54 +01:00
Clementine-audio-player-Mac.../3rdparty/chromaprint/tests/test_combined_buffer.cpp
John Maguire f02732e138 Add Chromaprint to 3rdparty.
(cherry picked from commit 1bcbc2ed3e)
2012-01-11 21:09:40 +00:00

96 lines
2.3 KiB
C++

#include <gtest/gtest.h>
#include <algorithm>
#include "combined_buffer.h"
using namespace std;
using namespace Chromaprint;
TEST(CombinedBuffer, Size) {
short buffer1[] = { 1, 2, 3, 4, 5 };
short buffer2[] = { 6, 7, 8 };
CombinedBuffer<short> buffer(buffer1, 5, buffer2, 3);
EXPECT_EQ(8, buffer.Size());
buffer.Shift(1);
EXPECT_EQ(7, buffer.Size());
}
TEST(CombinedBuffer, AccessElements) {
short buffer1[] = { 1, 2, 3, 4, 5 };
short buffer2[] = { 6, 7, 8 };
CombinedBuffer<short> buffer(buffer1, 5, buffer2, 3);
for (int i = 0; i < 8; i++) {
EXPECT_EQ(1 + i, buffer[i]);
}
buffer.Shift(1);
for (int i = 0; i < 7; i++) {
EXPECT_EQ(2 + i, buffer[i]);
}
buffer.Shift(5);
for (int i = 0; i < 2; i++) {
EXPECT_EQ(7 + i, buffer[i]);
}
}
TEST(CombinedBuffer, AccessElementsViaIterator) {
short buffer1[] = { 1, 2, 3, 4, 5 };
short buffer2[] = { 6, 7, 8 };
CombinedBuffer<short> buffer(buffer1, 5, buffer2, 3);
CombinedBuffer<short>::Iterator iter = buffer.Begin();
for (int i = 0; i < 8; i++) {
EXPECT_EQ(1 + i, *iter);
++iter;
}
EXPECT_TRUE(buffer.End() == iter);
}
TEST(CombinedBuffer, AccessElementsViaIteratorAfterShift) {
short buffer1[] = { 1, 2, 3, 4, 5 };
short buffer2[] = { 6, 7, 8 };
CombinedBuffer<short> buffer(buffer1, 5, buffer2, 3);
buffer.Shift(6);
CombinedBuffer<short>::Iterator iter = buffer.Begin();
for (int i = 0; i < 2; i++) {
EXPECT_EQ(7 + i, *iter);
++iter;
}
EXPECT_TRUE(buffer.End() == iter);
}
TEST(CombinedBuffer, CopyUsingStlAlgorithms) {
short buffer1[] = { 1, 2, 3, 4, 5 };
short buffer2[] = { 6, 7, 8 };
short tmp[10];
CombinedBuffer<short> buffer(buffer1, 5, buffer2, 3);
fill(tmp, tmp + 10, 0);
for (int i = 0; i < 10; i++) {
EXPECT_EQ(0, tmp[i]);
}
copy(buffer.Begin(), buffer.End(), tmp);
for (int i = 0; i < 8; i++) {
EXPECT_EQ(1 + i, tmp[i]);
}
for (int i = 8; i < 10; i++) {
EXPECT_EQ(0, tmp[i]);
}
}
TEST(CombinedBuffer, CopyUsingStlAlgorithmsAfterShift) {
short buffer1[] = { 1, 2, 3, 4, 5 };
short buffer2[] = { 6, 7, 8 };
short tmp[10];
CombinedBuffer<short> buffer(buffer1, 5, buffer2, 3);
buffer.Shift(6);
fill(tmp, tmp + 10, 0);
for (int i = 0; i < 10; i++) {
EXPECT_EQ(0, tmp[i]);
}
copy(buffer.Begin(), buffer.End(), tmp);
for (int i = 0; i < 2; i++) {
EXPECT_EQ(7 + i, tmp[i]);
}
for (int i = 2; i < 10; i++) {
EXPECT_EQ(0, tmp[i]);
}
}