This repository has been archived on 2020-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Files
Indoor/tests/sensors/radio/TestLogDistanceModel.cpp
FrankE 99ee95ce7b worked on signal-strength-estimation
add this information to grid nodes
evaluate this information
new test-cases
2016-07-15 15:29:07 +02:00

38 lines
1.2 KiB
C++

#ifdef WITH_TESTS
#include "../../Tests.h"
#include "../../../sensors/radio/model/LogDistanceModel.h"
TEST(LogDistanceModel, calc) {
const float txp = -40;
const float exp = 1;
ASSERT_EQ(-40, LogDistanceModel::distanceToRssi(txp, exp, 1.0));
// only exponent changed. at 1.0 meter: no difference
ASSERT_EQ(LogDistanceModel::distanceToRssi(-40, 1.0, 1.0), LogDistanceModel::distanceToRssi(-40, 2.0, 1.0));
// distance increment
ASSERT_GT(LogDistanceModel::distanceToRssi(-40, 1.0, 1.0), LogDistanceModel::distanceToRssi(-40, 1.0, 2.0));
// exponent at more than 1.0m
ASSERT_GT(LogDistanceModel::distanceToRssi(-40, 1.0, 3.0), LogDistanceModel::distanceToRssi(-40, 1.1, 3.0));
// other txp
ASSERT_GT(LogDistanceModel::distanceToRssi(-40, 1.0, 1.0), LogDistanceModel::distanceToRssi(-45, 1.0, 1.0));
}
TEST(LogDistanceModel, forwardBackward) {
const float txp = -40;
const float exp = 1;
ASSERT_EQ(1.0, LogDistanceModel::rssiToDistance(txp, exp, LogDistanceModel::distanceToRssi(txp, exp, 1.0)));
ASSERT_EQ(5.0, LogDistanceModel::rssiToDistance(txp, exp, LogDistanceModel::distanceToRssi(txp, exp, 5.0)));
ASSERT_EQ(10.0, LogDistanceModel::rssiToDistance(txp, exp, LogDistanceModel::distanceToRssi(txp, exp, 10.0)));
}
#endif