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);

}
Esempio n. 2
0
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