1 #include "catch.hpp" 2 3 #include <osmium/memory/item_iterator.hpp> 4 #include <osmium/osm.hpp> 5 6 static_assert(osmium::memory::detail::type_is_compatible<osmium::Node>(osmium::item_type::node), ""); 7 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Way>(osmium::item_type::node), ""); 8 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Relation>(osmium::item_type::node), ""); 9 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Area>(osmium::item_type::node), ""); 10 static_assert(osmium::memory::detail::type_is_compatible<osmium::OSMObject>(osmium::item_type::node), ""); 11 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Changeset>(osmium::item_type::node), ""); 12 static_assert(osmium::memory::detail::type_is_compatible<osmium::OSMEntity>(osmium::item_type::node), ""); 13 static_assert(osmium::memory::detail::type_is_compatible<osmium::memory::Item>(osmium::item_type::node), ""); 14 15 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Node>(osmium::item_type::way), ""); 16 static_assert(osmium::memory::detail::type_is_compatible<osmium::Way>(osmium::item_type::way), ""); 17 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Relation>(osmium::item_type::way), ""); 18 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Area>(osmium::item_type::way), ""); 19 static_assert(osmium::memory::detail::type_is_compatible<osmium::OSMObject>(osmium::item_type::way), ""); 20 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Changeset>(osmium::item_type::way), ""); 21 static_assert(osmium::memory::detail::type_is_compatible<osmium::OSMEntity>(osmium::item_type::way), ""); 22 static_assert(osmium::memory::detail::type_is_compatible<osmium::memory::Item>(osmium::item_type::way), ""); 23 24 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Node>(osmium::item_type::relation), ""); 25 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Way>(osmium::item_type::relation), ""); 26 static_assert(osmium::memory::detail::type_is_compatible<osmium::Relation>(osmium::item_type::relation), ""); 27 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Area>(osmium::item_type::relation), ""); 28 static_assert(osmium::memory::detail::type_is_compatible<osmium::OSMObject>(osmium::item_type::relation), ""); 29 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Changeset>(osmium::item_type::relation), ""); 30 static_assert(osmium::memory::detail::type_is_compatible<osmium::OSMEntity>(osmium::item_type::relation), ""); 31 static_assert(osmium::memory::detail::type_is_compatible<osmium::memory::Item>(osmium::item_type::relation), ""); 32 33 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Node>(osmium::item_type::area), ""); 34 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Way>(osmium::item_type::area), ""); 35 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Relation>(osmium::item_type::area), ""); 36 static_assert(osmium::memory::detail::type_is_compatible<osmium::Area>(osmium::item_type::area), ""); 37 static_assert(osmium::memory::detail::type_is_compatible<osmium::OSMObject>(osmium::item_type::area), ""); 38 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Changeset>(osmium::item_type::area), ""); 39 static_assert(osmium::memory::detail::type_is_compatible<osmium::OSMEntity>(osmium::item_type::area), ""); 40 static_assert(osmium::memory::detail::type_is_compatible<osmium::memory::Item>(osmium::item_type::area), ""); 41 42 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Node>(osmium::item_type::changeset), ""); 43 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Way>(osmium::item_type::changeset), ""); 44 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Relation>(osmium::item_type::changeset), ""); 45 static_assert(!osmium::memory::detail::type_is_compatible<osmium::Area>(osmium::item_type::changeset), ""); 46 static_assert(!osmium::memory::detail::type_is_compatible<osmium::OSMObject>(osmium::item_type::changeset), ""); 47 static_assert(osmium::memory::detail::type_is_compatible<osmium::Changeset>(osmium::item_type::changeset), ""); 48 static_assert(osmium::memory::detail::type_is_compatible<osmium::OSMEntity>(osmium::item_type::changeset), ""); 49 static_assert(osmium::memory::detail::type_is_compatible<osmium::memory::Item>(osmium::item_type::changeset), ""); 50 51 static_assert(osmium::memory::detail::type_is_compatible<osmium::OuterRing>(osmium::item_type::outer_ring), ""); 52 static_assert(osmium::memory::detail::type_is_compatible<osmium::InnerRing>(osmium::item_type::inner_ring), ""); 53 static_assert(osmium::memory::detail::type_is_compatible<osmium::WayNodeList>(osmium::item_type::way_node_list), ""); 54 55 static_assert(!osmium::memory::detail::type_is_compatible<osmium::OuterRing>(osmium::item_type::inner_ring), ""); 56 static_assert(!osmium::memory::detail::type_is_compatible<osmium::InnerRing>(osmium::item_type::outer_ring), ""); 57 static_assert(!osmium::memory::detail::type_is_compatible<osmium::WayNodeList>(osmium::item_type::outer_ring), ""); 58 59 static_assert(osmium::memory::detail::type_is_compatible<osmium::TagList>(osmium::item_type::tag_list), ""); 60 static_assert(osmium::memory::detail::type_is_compatible<osmium::InnerRing>(osmium::item_type::inner_ring), ""); 61 62 static_assert(!osmium::memory::detail::type_is_compatible<osmium::TagList>(osmium::item_type::inner_ring), ""); 63 static_assert(!osmium::memory::detail::type_is_compatible<osmium::InnerRing>(osmium::item_type::tag_list), ""); 64 65 static_assert(osmium::memory::detail::type_is_compatible<osmium::RelationMemberList>(osmium::item_type::relation_member_list), ""); 66 static_assert(osmium::memory::detail::type_is_compatible<osmium::RelationMemberList>(osmium::item_type::relation_member_list_with_full_members), ""); 67 static_assert(!osmium::memory::detail::type_is_compatible<osmium::RelationMemberList>(osmium::item_type::tag_list), ""); 68 69 static_assert(osmium::memory::detail::type_is_compatible<osmium::ChangesetDiscussion>(osmium::item_type::changeset_discussion), ""); 70 static_assert(!osmium::memory::detail::type_is_compatible<osmium::ChangesetDiscussion>(osmium::item_type::relation_member_list), ""); 71 72