int main(void) { char *test_snippet = "<pseudocode>\n" "store _a_ + _b_ in _c_\n" "</pseudocode>\n" "<code>\n" "c = a + b;\n" "</code>\n"; tag_list *list = make_tag_list(); snippet *parsed_snippet = parse_snippet(test_snippet, list); print_snippet(parsed_snippet, list); free_snippet(parsed_snippet); }
const osmium::TagList& make_tag_list(osmium::memory::Buffer& buffer, std::initializer_list<std::pair<const char*, const char*>> tags) { const auto pos = osmium::builder::add_tag_list(buffer, osmium::builder::attr::_tags(tags)); return buffer.get<osmium::TagList>(pos); } TEST_CASE("Filter") { SECTION("KeyFilter_matches_some_tags") { osmium::tags::KeyFilter filter(false); filter.add(true, "highway").add(true, "railway"); osmium::memory::Buffer buffer(10240); const osmium::TagList& tag_list = make_tag_list(buffer, { { "highway", "primary" }, // match { "name", "Main Street" }, // no match { "source", "GPS" } // no match }); const std::vector<bool> results = { true, false, false }; check_filter(tag_list, filter, results); } SECTION("KeyFilter_iterator_filters_tags") { osmium::tags::KeyFilter filter(false); filter.add(true, "highway").add(true, "source"); osmium::memory::Buffer buffer(10240); const osmium::TagList& tl = make_tag_list(buffer, { { "highway", "primary" }, // match