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
YASMIN/tests/RuntimeTests.h
kazu c7c94cbebe some adjustments to match latest changes in KLib/Indoor
switched from Beacons to real Fingerprint points for fingerprinting
2017-03-14 09:17:50 +01:00

59 lines
1.8 KiB
C++

#ifndef RUNTIMETESTS_H
#define RUNTIMETESTS_H
#include <Indoor/sensors/radio/setup/WiFiFingerprint.h>
#include "ipin/Scaler.h"
class RuntimeTests {
public:
static void run() {
testFingerprint();
testScaler();
}
private:
static void testScaler() {
IPINScaler scaler = IPINScaler(1869, 1869, 40.51312440, -3.34959080, -40.73112000, 0.07596002);
// map center
const float cenX = 1869/2.0*0.07596002;
const float cenY = 1869/2.0*0.07596002;
const IPIN lonlat = scaler.toIPIN3(cenX, cenY, 0);
Assert::isNear(40.51312440, lonlat.lat, 0.000001, "scaler error"); // lat = up/down
Assert::isNear(-3.34959080, lonlat.lon, 0.000001, "scaler error"); // lon = left/right
Assert::isNear(0.0, lonlat.floorNr, 0.1, "scaler error");
const Point3 p3 = scaler.convert3D(lonlat);
Assert::isNear(cenX, p3.x, 0.01f, "scaler error");
Assert::isNear(cenY, p3.y, 0.01f, "scaler error");
Assert::isNear(0.0f, p3.z, 0.01f, "scaler error");
}
static void testFingerprint() {
MACAddress mac1("00:00:00:00:00:01");
MACAddress mac2("00:00:00:00:00:02");
WiFiFingerprint fp;
fp.measurements.entries.push_back( WiFiMeasurement(AccessPoint(mac1), -60));
fp.measurements.entries.push_back( WiFiMeasurement(AccessPoint(mac1), -62));
fp.measurements.entries.push_back( WiFiMeasurement(AccessPoint(mac1), -63));
fp.measurements.entries.push_back( WiFiMeasurement(AccessPoint(mac2), -71));
fp.measurements.entries.push_back( WiFiMeasurement(AccessPoint(mac2), -72));
WiFiMeasurements avg = fp.average();
Assert::equal(2, (int)avg.entries.size(), "size mismatch");
Assert::isNear(-61.666f, avg.entries[1].getRSSI(), 0.01f, "rssi avg mismatch");
Assert::isNear(-71.500f, avg.entries[0].getRSSI(), 0.01f, "rssi avg mismatch");
}
};
#endif // RUNTIMETESTS_H