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/floorplan/TestNewFloorplan.cpp
FrankE 34e52cd7f0 worked on floorplan (v2)
worked on grid-generation (v2)
new helper methods for geometry
new test cases
2016-07-13 19:11:18 +02:00

123 lines
3.4 KiB
C++

#ifdef WITH_TESTS
#include "../Tests.h"
#include "../../floorplan/v2/Floorplan.h"
#include "../../floorplan/v2/FloorplanReader.h"
#include "../../floorplan/v2/FloorplanWriter.h"
#include <cstdlib>
TEST(NewFloorplan, saveAndLoad) {
Floorplan::Reader r;
Floorplan::Writer w;
}
/*
TEST(NewFloorplan, saveAndLoad) {
std::string xml;
float f1AtHeight = 1.1f;
float f2AtHeight = 3.3f;
Floorplan::AccessPoint ap0("ap0", "11:11:11:22:22:22", Point3(1,1,1));
Floorplan::AccessPoint ap1("ap1", "01:23:45:67:89:ab", Point3(1,2,3));
Floorplan::AccessPoint ap2("ap2", "22:33:44:55:66:77", Point3(4,5,6));
Floorplan::Beacon b0("b0", "22:22:22:11:11:11", Point3(2,2,2));
Floorplan::Beacon b1("b1", "aa:bb:cc:dd:ee:ff", Point3(3,2,1));
Floorplan::Beacon b2("b2", "77:66:55:44:33:22", Point3(6,5,4));
Floorplan::FloorObstacle fo0(Floorplan::ObstacleType::WALL, Floorplan::Material::CONCRETE, Point2(3,2), Point2(1,2));
Floorplan::FloorObstacle fo1(Floorplan::ObstacleType::DOOR, Floorplan::Material::WOOD, Point2(4,5), Point2(7,8));
Floorplan::FloorOutlinePolygon pa0("pa0", {Point2(1,2), Point2(4,5), Point2(7,8)});
Floorplan::FloorOutlinePolygon pr0("pr0", {Point2(3,2), Point2(6,5), Point2(9,8)});
Floorplan::FloorOutlinePolygon pa1("pa1", {Point2(1,2), Point2(7,8)});
Floorplan::FloorOutlinePolygon pa2("pa2", {Point2(4,5), Point2(7,8)});
// create and export
{
Floorplan::IndoorMap im;
im.width = 123;
im.depth = 456;
// floor1
Floorplan::Floor f1;
f1.atHeight = f1AtHeight;
f1.accesspoints.push_back(ap0);
f1.beacons.push_back(b0);
f1.obstacles.push_back(fo0);
f1.obstacles.push_back(fo1);
f1.outline.add.push_back(pa0);
f1.outline.remove.push_back(pr0);
im.floors.push_back(f1);
// floor2
Floorplan::Floor f2;
f2.atHeight = f2AtHeight;
f2.accesspoints.push_back(ap1);
f2.accesspoints.push_back(ap2);
f2.beacons.push_back(b1);
f2.beacons.push_back(b2);
f2.outline.add.push_back(pa1);
f2.outline.add.push_back(pa2);
im.floors.push_back(f2);
xml = Floorplan::Writer::writeToString(im);
}
// load and check
{
const float delta = 0.0001;
Floorplan::IndoorMap im = Floorplan::Reader::readFromString(xml);
ASSERT_NEAR(123, im.width, delta);
ASSERT_NEAR(456, im.depth, delta);
ASSERT_EQ(2, im.floors.size());
// floor1
ASSERT_NEAR(f1AtHeight, im.floors[0].atHeight, delta);
ASSERT_EQ(1, im.floors[0].accesspoints.size());
ASSERT_EQ(1, im.floors[0].beacons.size());
ASSERT_EQ(2, im.floors[0].obstacles.size());
ASSERT_EQ(1, im.floors[0].outline.add.size());
ASSERT_EQ(1, im.floors[0].outline.remove.size());
ASSERT_EQ(ap0, im.floors[0].accesspoints[0]);
ASSERT_EQ(b0, im.floors[0].beacons[0]);
ASSERT_EQ(fo0, im.floors[0].obstacles[0]);
ASSERT_EQ(fo1, im.floors[0].obstacles[1]);
ASSERT_EQ(pa0, im.floors[0].outline.add[0]);
ASSERT_EQ(pr0, im.floors[0].outline.remove[0]);
// floor2
ASSERT_NEAR(f2AtHeight, im.floors[1].atHeight, delta);
ASSERT_EQ(2, im.floors[1].accesspoints.size());
ASSERT_EQ(2, im.floors[1].beacons.size());
ASSERT_EQ(0, im.floors[1].obstacles.size());
ASSERT_EQ(2, im.floors[1].outline.add.size());
ASSERT_EQ(0, im.floors[1].outline.remove.size());
ASSERT_EQ(ap1, im.floors[1].accesspoints[0]);
ASSERT_EQ(ap2, im.floors[1].accesspoints[1]);
ASSERT_EQ(b1, im.floors[1].beacons[0]);
ASSERT_EQ(b2, im.floors[1].beacons[1]);
ASSERT_EQ(pa1, im.floors[1].outline.add[0]);
ASSERT_EQ(pa2, im.floors[1].outline.add[1]);
}
}
*/
#endif