| 51 | }; |
| 52 | |
| 53 | feature::FeatureBuilder MakeFbForTest(generator_tests::Tags const & tags, OsmElement::EntityType t, |
| 54 | std::vector<m2::PointD> && points) |
| 55 | { |
| 56 | auto element = generator_tests::MakeOsmElement(GetIdGen().GetId(), tags, t); |
| 57 | feature::FeatureBuilder result; |
| 58 | ftype::GetNameAndType(&element, result.GetParams()); |
| 59 | if (element.IsNode()) |
| 60 | { |
| 61 | CHECK_EQUAL(points.size(), 1, ()); |
| 62 | result.SetOsmId(base::MakeOsmNode(element.m_id)); |
| 63 | result.SetCenter(points.front()); |
| 64 | } |
| 65 | else if (element.IsRelation() || element.IsWay()) |
| 66 | { |
| 67 | result.AssignPoints(std::move(points)); |
| 68 | CHECK(result.IsGeometryClosed(), ()); |
| 69 | result.SetArea(); |
| 70 | |
| 71 | result.SetOsmId(element.IsRelation() ? base::MakeOsmRelation(element.m_id) : base::MakeOsmWay(element.m_id)); |
| 72 | } |
| 73 | return result; |
| 74 | } |
| 75 | |
| 76 | bool TestTable(generator::OsmIdToBoundariesTable & table, |
| 77 | std::set<std::pair<std::vector<base::GeoObjectId>, size_t>> const & answer) |
no test coverage detected