MCPcopy Create free account
hub / github.com/Project-OSRM/osrm-backend / PrepareStringTableData

Function PrepareStringTableData

unit_tests/extractor/string_table.cpp:18–61  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

16using namespace osrm::extractor;
17
18StringTable::IndexedData PrepareStringTableData(std::vector<std::string> &data, bool fill_all)
19{
20 StringTable::IndexedData indexed_data;
21 std::vector<unsigned char> name_char_data;
22 std::vector<std::uint32_t> name_offsets;
23
24 for (auto s : data)
25 {
26 name_offsets.push_back(name_char_data.size());
27 std::copy(s.begin(), s.end(), std::back_inserter(name_char_data));
28
29 if (fill_all)
30 {
31 std::string tmp;
32
33 tmp = s + "_des";
34 name_offsets.push_back(name_char_data.size());
35 std::copy(tmp.begin(), tmp.end(), std::back_inserter(name_char_data));
36
37 tmp = s + "_pro";
38 name_offsets.push_back(name_char_data.size());
39 std::copy(tmp.begin(), tmp.end(), std::back_inserter(name_char_data));
40
41 tmp = s + "_ref";
42 name_offsets.push_back(name_char_data.size());
43 std::copy(tmp.begin(), tmp.end(), std::back_inserter(name_char_data));
44
45 tmp = s + "_ext";
46 name_offsets.push_back(name_char_data.size());
47 std::copy(tmp.begin(), tmp.end(), std::back_inserter(name_char_data));
48 }
49 else
50 {
51 name_offsets.push_back(name_char_data.size());
52 name_offsets.push_back(name_char_data.size());
53 name_offsets.push_back(name_char_data.size());
54 name_offsets.push_back(name_char_data.size());
55 }
56 }
57 name_offsets.push_back(name_char_data.size());
58
59 return StringTable::IndexedData(
60 name_offsets.begin(), name_offsets.end(), name_char_data.begin());
61}
62
63BOOST_AUTO_TEST_CASE(check_string_table_fill)
64{

Callers 1

BOOST_AUTO_TEST_CASEFunction · 0.85

Calls 5

copyFunction · 0.85
push_backMethod · 0.45
sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected