- 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
42 lines
949 B
C++
42 lines
949 B
C++
#ifdef WITH_TESTS
|
|
|
|
#include <cmath>
|
|
#include "../Tests.h"
|
|
#include "../../math/Interpolator.h"
|
|
|
|
TEST(Interpolator, addAndGet) {
|
|
|
|
Interpolator<int, float> interp;
|
|
interp.add(10, 20);
|
|
interp.add(20, 30);
|
|
interp.add(30, 50);
|
|
|
|
ASSERT_EQ(20, std::round(interp.get(0))); // before
|
|
ASSERT_EQ(20, std::round(interp.get(10))); // matches
|
|
|
|
ASSERT_EQ(21, std::round(interp.get(11)));
|
|
ASSERT_EQ(25, std::round(interp.get(15)));
|
|
ASSERT_EQ(29, std::round(interp.get(19)));
|
|
|
|
ASSERT_EQ(30, std::round(interp.get(20))); //matches
|
|
|
|
ASSERT_EQ(40, std::round(interp.get(25)));
|
|
ASSERT_EQ(42, std::round(interp.get(26)));
|
|
|
|
ASSERT_EQ(50, std::round(interp.get(30))); // matches
|
|
ASSERT_EQ(50, std::round(interp.get(99))); // after
|
|
|
|
}
|
|
|
|
TEST(Interpolator, sanity) {
|
|
|
|
Interpolator<int, int> interp;
|
|
interp.add(10, 20);
|
|
ASSERT_THROW( interp.add(10,30), std::exception );
|
|
interp.add(12, 22);
|
|
ASSERT_THROW( interp.add(11,21), std::exception );
|
|
|
|
}
|
|
|
|
#endif
|