huge commit
- worked on about everything - grid walker using plugable modules - wifi models - new distributions - worked on geometric data-structures - added typesafe timestamps - worked on grid-building - added sensor-classes - added sensor analysis (step-detection, turn-detection) - offline data reader - many test-cases
This commit is contained in:
115
tests/data/TestRingBuffer.cpp
Normal file
115
tests/data/TestRingBuffer.cpp
Normal file
@@ -0,0 +1,115 @@
|
||||
#ifdef WITH_TESTS
|
||||
|
||||
#include "../Tests.h"
|
||||
#include "../../data/RingBuffer.h"
|
||||
|
||||
TEST(RingBuffer, reset) {
|
||||
|
||||
RingBuffer<int> buf(4);
|
||||
|
||||
ASSERT_EQ(0, buf.size());
|
||||
ASSERT_TRUE(buf.empty());
|
||||
|
||||
buf.add(3);
|
||||
ASSERT_EQ(1, buf.size());
|
||||
ASSERT_FALSE(buf.empty());
|
||||
|
||||
buf.reset();
|
||||
ASSERT_EQ(0, buf.size());
|
||||
ASSERT_TRUE(buf.empty());
|
||||
|
||||
buf.add(4);
|
||||
ASSERT_EQ(1, buf.size());
|
||||
ASSERT_FALSE(buf.empty());
|
||||
ASSERT_EQ(4, buf.get());
|
||||
|
||||
}
|
||||
|
||||
TEST(RingBuffer, add) {
|
||||
|
||||
RingBuffer<int> buf(4);
|
||||
|
||||
ASSERT_EQ(0, buf.size());
|
||||
ASSERT_TRUE(buf.empty());
|
||||
|
||||
buf.add(9);
|
||||
ASSERT_EQ(1, buf.size());
|
||||
ASSERT_FALSE(buf.empty());
|
||||
ASSERT_EQ(9, buf.get());
|
||||
ASSERT_TRUE(buf.empty());
|
||||
|
||||
buf.add(2);
|
||||
buf.add(4);
|
||||
buf.add(3);
|
||||
ASSERT_EQ(3, buf.size());
|
||||
ASSERT_FALSE(buf.empty());
|
||||
ASSERT_EQ(2, buf.get());
|
||||
ASSERT_EQ(4, buf.get());
|
||||
ASSERT_EQ(3, buf.get());
|
||||
ASSERT_TRUE(buf.empty());
|
||||
|
||||
buf.add(5);
|
||||
buf.add(7);
|
||||
buf.add(8);
|
||||
ASSERT_EQ(3, buf.size());
|
||||
ASSERT_FALSE(buf.empty());
|
||||
ASSERT_EQ(5, buf.get());
|
||||
ASSERT_EQ(7, buf.get());
|
||||
ASSERT_EQ(8, buf.get());
|
||||
ASSERT_TRUE(buf.empty());
|
||||
|
||||
}
|
||||
|
||||
TEST(RingBuffer, iterator) {
|
||||
|
||||
RingBuffer<int> buf(4);
|
||||
|
||||
int sum;
|
||||
|
||||
buf.add(1);
|
||||
sum = 0; for (int i : buf) {sum += i;}
|
||||
ASSERT_EQ(1, sum);
|
||||
|
||||
buf.add(2);
|
||||
sum = 0; for (int i : buf) {sum += i;}
|
||||
ASSERT_EQ(1+2, sum);
|
||||
|
||||
buf.add(3);
|
||||
sum = 0; for (int i : buf) {sum += i;}
|
||||
ASSERT_EQ(1+2+3, sum);
|
||||
|
||||
buf.add(4);
|
||||
sum = 0; for (int i : buf) {sum += i;}
|
||||
ASSERT_EQ(1+2+3+4, sum);
|
||||
|
||||
// prevent overflow
|
||||
buf.get();
|
||||
|
||||
buf.add(5);
|
||||
sum = 0; for (int i : buf) {sum += i;}
|
||||
ASSERT_EQ(2+3+4+5, sum);
|
||||
|
||||
|
||||
ASSERT_EQ(2, buf.get());
|
||||
ASSERT_EQ(3, buf.size());
|
||||
sum = 0; for (int i : buf) {sum += i;}
|
||||
ASSERT_EQ(3+4+5, sum);
|
||||
|
||||
buf.get();
|
||||
ASSERT_EQ(2, buf.size());
|
||||
sum = 0; for (int i : buf) {sum += i;}
|
||||
ASSERT_EQ(4+5, sum);
|
||||
|
||||
buf.get();
|
||||
ASSERT_EQ(1, buf.size());
|
||||
sum = 0; for (int i : buf) {sum += i;}
|
||||
ASSERT_EQ(5, sum);
|
||||
|
||||
buf.get();
|
||||
ASSERT_EQ(0, buf.size());
|
||||
sum = 0; for (int i : buf) {sum += i;}
|
||||
ASSERT_EQ(0, sum);
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user