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:
2016-08-29 08:18:44 +02:00
parent 99ee95ce7b
commit a2c9e575a2
94 changed files with 8298 additions and 257 deletions

View 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