osrm-backend/unit_tests/contractor/files.cpp

65 lines
2.6 KiB
C++
Raw Normal View History

#include "contractor/files.hpp"
#include "contractor/graph_contractor_adaptors.hpp"
#include "../common/range_tools.hpp"
#include "../common/temporary_file.hpp"
#include "helper.hpp"
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_SUITE(tar)
using namespace osrm;
using namespace osrm::contractor;
using namespace osrm::unit_test;
BOOST_AUTO_TEST_CASE(read_write_hsgr)
{
auto reference_checksum = 0xFF00FF00;
auto reference_connectivity_checksum = 0xDEADBEEF;
std::vector<TestEdge> edges = {TestEdge{0, 1, 3},
TestEdge{0, 5, 1},
TestEdge{1, 3, 3},
TestEdge{1, 4, 1},
TestEdge{3, 1, 1},
TestEdge{4, 3, 1},
TestEdge{5, 1, 1}};
2018-03-22 14:26:40 -04:00
auto reference_graph = QueryGraph{6, toEdges<QueryEdge>(makeGraph(edges))};
std::vector<std::vector<bool>> reference_filters = {
{false, false, true, true, false, false, true},
{true, false, true, false, true, false, true},
{false, false, false, false, false, false, false},
{true, true, true, true, true, true, true},
};
2018-03-27 05:44:13 -04:00
std::unordered_map<std::string, ContractedMetric> reference_metrics = {
{"duration", {std::move(reference_graph), std::move(reference_filters)}}};
2018-03-22 14:26:40 -04:00
TemporaryFile tmp{TEST_DATA_DIR "/read_write_hsgr_test.osrm.hsgr"};
2018-03-27 05:44:13 -04:00
contractor::files::writeGraph(
tmp.path, reference_checksum, reference_metrics, reference_connectivity_checksum);
unsigned checksum;
unsigned connectivity_checksum;
2018-03-27 05:44:13 -04:00
std::unordered_map<std::string, ContractedMetric> metrics = {
{"duration", {}}
};
contractor::files::readGraph(tmp.path, checksum, metrics, connectivity_checksum);
BOOST_CHECK_EQUAL(checksum, reference_checksum);
BOOST_CHECK_EQUAL(connectivity_checksum, reference_connectivity_checksum);
2018-03-27 05:44:13 -04:00
BOOST_CHECK_EQUAL(metrics["duration"].edge_filter.size(),
reference_metrics["duration"].edge_filter.size());
CHECK_EQUAL_COLLECTIONS(metrics["duration"].edge_filter[0],
reference_metrics["duration"].edge_filter[0]);
CHECK_EQUAL_COLLECTIONS(metrics["duration"].edge_filter[1],
reference_metrics["duration"].edge_filter[1]);
CHECK_EQUAL_COLLECTIONS(metrics["duration"].edge_filter[2],
reference_metrics["duration"].edge_filter[2]);
CHECK_EQUAL_COLLECTIONS(metrics["duration"].edge_filter[3],
reference_metrics["duration"].edge_filter[3]);
}
BOOST_AUTO_TEST_SUITE_END()