Welcome to mirror list, hosted at ThFree Co, Russian Federation.

check_model.cpp « generator - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 2788db9aac76d16c6b7d7413e68f9ae7494d1c6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "generator/check_model.hpp"

#include "defines.hpp"

#include "indexer/features_vector.hpp"
#include "indexer/classificator.hpp"
#include "indexer/feature_visibility.hpp"

#include "base/logging.hpp"


using namespace feature;

namespace check_model
{
  void ReadFeatures(string const & fName)
  {
    Classificator const & c = classif();

    FeaturesVectorTest(fName).GetVector().ForEach([&] (FeatureType const & ft, uint32_t)
    {
      TypesHolder types(ft);

      vector<uint32_t> vTypes;
      for (uint32_t t : types)
      {
        CHECK_EQUAL(c.GetTypeForIndex(c.GetIndexForType(t)), t, ());
        vTypes.push_back(t);
      }

      sort(vTypes.begin(), vTypes.end());
      CHECK(unique(vTypes.begin(), vTypes.end()) == vTypes.end(), ());

      m2::RectD const r = ft.GetLimitRect(FeatureType::BEST_GEOMETRY);
      CHECK(r.IsValid(), ());

      EGeomType const type = ft.GetFeatureType();
      if (type == GEOM_LINE)
        CHECK_GREATER(ft.GetPointsCount(), 1, ());

      IsDrawableLike(vTypes, ft.GetFeatureType());
    });

    LOG(LINFO, ("OK"));
  }
}