2016-01-02 11:13:44 -05:00
|
|
|
#include "extractor/compressed_edge_container.hpp"
|
|
|
|
#include "util/typedefs.hpp"
|
2015-06-24 13:55:36 -04:00
|
|
|
|
2016-05-27 15:05:04 -04:00
|
|
|
#include <boost/test/unit_test.hpp>
|
2015-06-24 13:55:36 -04:00
|
|
|
|
|
|
|
BOOST_AUTO_TEST_SUITE(compressed_edge_container)
|
|
|
|
|
2016-01-05 10:51:13 -05:00
|
|
|
using namespace osrm;
|
|
|
|
using namespace osrm::extractor;
|
|
|
|
|
2015-06-24 13:55:36 -04:00
|
|
|
BOOST_AUTO_TEST_CASE(long_road_test)
|
|
|
|
{
|
|
|
|
// 0 1 2 3
|
|
|
|
// 0---1----2----3----4
|
|
|
|
CompressedEdgeContainer container;
|
|
|
|
|
|
|
|
// compress 0---1---2 to 0---2
|
2022-10-28 10:16:12 -04:00
|
|
|
container.CompressEdge(0, 1, 1, 2, {1}, {1}, {11}, {11});
|
2015-06-24 13:55:36 -04:00
|
|
|
BOOST_CHECK(container.HasEntryForID(0));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(1));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(2));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(3));
|
|
|
|
BOOST_CHECK_EQUAL(container.GetFirstEdgeTargetID(0), 1);
|
|
|
|
BOOST_CHECK_EQUAL(container.GetLastEdgeSourceID(0), 1);
|
|
|
|
|
|
|
|
// compress 2---3---4 to 2---4
|
2022-10-28 10:16:12 -04:00
|
|
|
container.CompressEdge(2, 3, 3, 4, {1}, {1}, {11}, {11});
|
2015-06-24 13:55:36 -04:00
|
|
|
BOOST_CHECK(container.HasEntryForID(0));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(1));
|
|
|
|
BOOST_CHECK(container.HasEntryForID(2));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(3));
|
|
|
|
BOOST_CHECK_EQUAL(container.GetFirstEdgeTargetID(2), 3);
|
|
|
|
BOOST_CHECK_EQUAL(container.GetLastEdgeSourceID(2), 3);
|
|
|
|
|
|
|
|
// compress 0---2---4 to 0---4
|
2022-10-28 10:16:12 -04:00
|
|
|
container.CompressEdge(0, 2, 2, 4, {2}, {2}, {22}, {22});
|
2015-06-24 13:55:36 -04:00
|
|
|
BOOST_CHECK(container.HasEntryForID(0));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(1));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(2));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(3));
|
|
|
|
BOOST_CHECK_EQUAL(container.GetFirstEdgeTargetID(0), 1);
|
|
|
|
BOOST_CHECK_EQUAL(container.GetLastEdgeSourceID(0), 3);
|
|
|
|
}
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(t_crossing)
|
|
|
|
{
|
|
|
|
// 0 1 2 3
|
|
|
|
// 0---1---2---3---4
|
|
|
|
// | 4
|
|
|
|
// 5
|
|
|
|
// | 5
|
|
|
|
// 6
|
|
|
|
CompressedEdgeContainer container;
|
|
|
|
|
|
|
|
// compress 0---1---2 to 0---2
|
2022-10-28 10:16:12 -04:00
|
|
|
container.CompressEdge(0, 1, 1, 2, {1}, {1}, {11}, {11});
|
2015-06-24 13:55:36 -04:00
|
|
|
BOOST_CHECK(container.HasEntryForID(0));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(1));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(2));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(3));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(4));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(5));
|
|
|
|
BOOST_CHECK_EQUAL(container.GetFirstEdgeTargetID(0), 1);
|
|
|
|
BOOST_CHECK_EQUAL(container.GetLastEdgeSourceID(0), 1);
|
|
|
|
|
|
|
|
// compress 2---5---6 to 2---6
|
2022-10-28 10:16:12 -04:00
|
|
|
container.CompressEdge(4, 5, 5, 6, {1}, {1}, {11}, {11});
|
2015-06-24 13:55:36 -04:00
|
|
|
BOOST_CHECK(container.HasEntryForID(0));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(1));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(2));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(3));
|
|
|
|
BOOST_CHECK(container.HasEntryForID(4));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(5));
|
|
|
|
BOOST_CHECK_EQUAL(container.GetFirstEdgeTargetID(4), 5);
|
|
|
|
BOOST_CHECK_EQUAL(container.GetLastEdgeSourceID(4), 5);
|
|
|
|
|
|
|
|
// compress 2---3---4 to 2---4
|
2022-10-28 10:16:12 -04:00
|
|
|
container.CompressEdge(2, 3, 3, 4, {1}, {1}, {11}, {11});
|
2015-06-24 13:55:36 -04:00
|
|
|
BOOST_CHECK(container.HasEntryForID(0));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(1));
|
|
|
|
BOOST_CHECK(container.HasEntryForID(2));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(3));
|
|
|
|
BOOST_CHECK(container.HasEntryForID(4));
|
|
|
|
BOOST_CHECK(!container.HasEntryForID(5));
|
|
|
|
BOOST_CHECK_EQUAL(container.GetFirstEdgeTargetID(2), 3);
|
|
|
|
BOOST_CHECK_EQUAL(container.GetLastEdgeSourceID(2), 3);
|
|
|
|
}
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|