- changed the wifi-estimation api - adjusted test-cases - worked on grid-bulding and grid-importance - new walking modules - fixed some minor issues
82 lines
2.8 KiB
C++
82 lines
2.8 KiB
C++
#ifdef WITH_TESTS
|
|
|
|
#include "../../Tests.h"
|
|
|
|
#include "../../../sensors/radio/model/WiFiModelLogDistCeiling.h"
|
|
|
|
TEST(LogDistanceCeilingModel, calc) {
|
|
|
|
// dummy floorplan
|
|
Floorplan::Floor* f0 = new Floorplan::Floor(); f0->atHeight = 0;
|
|
Floorplan::Floor* f1 = new Floorplan::Floor(); f1->atHeight = 3;
|
|
Floorplan::Floor* f2 = new Floorplan::Floor(); f2->atHeight = 7;
|
|
|
|
Floorplan::IndoorMap map;
|
|
map.floors.push_back(f0);
|
|
map.floors.push_back(f1);
|
|
map.floors.push_back(f2);
|
|
|
|
//LocatedAccessPoint ap0("00:00:00:00:00:00", Point3(0,0,0));
|
|
//LocatedAccessPoint ap25("00:00:00:00:00:00", Point3(0,0,2.5));
|
|
|
|
WiFiModelLogDistCeiling model(&map);
|
|
|
|
const MACAddress ap0 = MACAddress("00:00:00:00:00:00");
|
|
const MACAddress ap25 = MACAddress("00:00:00:00:00:01");
|
|
|
|
model.addAP(ap0, WiFiModelLogDistCeiling::APEntry( Point3(0,0,0), -40, 1.0, -8.0 ));
|
|
model.addAP(ap25, WiFiModelLogDistCeiling::APEntry( Point3(0,0,2.5), -40, 1.0, -8.0 ));
|
|
|
|
|
|
ASSERT_EQ(-40, model.getRSSI(ap0, Point3(1,0,0)));
|
|
ASSERT_EQ(-40, model.getRSSI(ap0, Point3(0,1,0)));
|
|
ASSERT_EQ(-40, model.getRSSI(ap0, Point3(0,0,1)));
|
|
|
|
ASSERT_EQ(-40, model.getRSSI(ap25, Point3(1,0,2.5)));
|
|
ASSERT_EQ(-40, model.getRSSI(ap25, Point3(0,1,2.5)));
|
|
ASSERT_EQ(-40-8, model.getRSSI(ap25, Point3(0,0,3.5))); // one floor within
|
|
|
|
ASSERT_EQ(model.getRSSI(ap0, Point3(8,0,0)), model.getRSSI(ap0, Point3(0,8,0)));
|
|
ASSERT_EQ(model.getRSSI(ap0, Point3(8,0,0)), model.getRSSI(ap0, Point3(0,0,8))+8+8); // two ceilings within
|
|
|
|
}
|
|
|
|
TEST(LogDistanceCeilingModel, numCeilings) {
|
|
|
|
// dummy floorplan
|
|
Floorplan::Floor* f0 = new Floorplan::Floor(); f0->atHeight = 0;
|
|
Floorplan::Floor* f1 = new Floorplan::Floor(); f1->atHeight = 3;
|
|
Floorplan::Floor* f2 = new Floorplan::Floor(); f2->atHeight = 7;
|
|
|
|
Floorplan::IndoorMap map;
|
|
map.floors.push_back(f0);
|
|
map.floors.push_back(f1);
|
|
map.floors.push_back(f2);
|
|
|
|
WiFiModelLogDistCeiling model(&map);
|
|
|
|
ASSERT_EQ(0, model.numCeilingsBetween(Point3(0,0,-1), Point3(0,0,0)) );
|
|
ASSERT_EQ(0, model.numCeilingsBetween(Point3(0,0,0), Point3(0,0,-1)) );
|
|
|
|
ASSERT_EQ(0, model.numCeilingsBetween(Point3(0,0,0), Point3(0,0,1)) );
|
|
ASSERT_EQ(0, model.numCeilingsBetween(Point3(0,0,1), Point3(0,0,0)) );
|
|
|
|
ASSERT_EQ(1, model.numCeilingsBetween(Point3(0,0,-0.01), Point3(0,0,+0.01)) );
|
|
ASSERT_EQ(1, model.numCeilingsBetween(Point3(0,0,+0.01), Point3(0,0,-0.01)) );
|
|
|
|
ASSERT_EQ(1, model.numCeilingsBetween(Point3(0,0,2.99), Point3(0,0,3.01)) );
|
|
ASSERT_EQ(1, model.numCeilingsBetween(Point3(0,0,3.01), Point3(0,0,2.99)) );
|
|
|
|
ASSERT_EQ(1, model.numCeilingsBetween(Point3(0,0,6.99), Point3(0,0,7.01)) );
|
|
ASSERT_EQ(1, model.numCeilingsBetween(Point3(0,0,7.01), Point3(0,0,6.99)) );
|
|
|
|
ASSERT_EQ(0, model.numCeilingsBetween(Point3(0,0,7.00), Point3(0,0,99)) );
|
|
|
|
ASSERT_EQ(1, model.numCeilingsBetween(Point3(0,0,0), Point3(0,0,7)) );
|
|
ASSERT_EQ(3, model.numCeilingsBetween(Point3(0,0,-1), Point3(0,0,8)) );
|
|
|
|
}
|
|
|
|
|
|
#endif
|