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

helpers.hpp « search_tests_support « search - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 76d5387f2e15626bed7f8ad9c34665711c115f28 (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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#pragma once

#include "search/search_tests_support/test_results_matching.hpp"
#include "search/search_tests_support/test_search_engine.hpp"
#include "search/search_tests_support/test_search_request.hpp"
#include "search/search_tests_support/test_with_custom_mwms.hpp"

#include "generator/generator_tests_support/test_feature.hpp"

#include "geometry/rect2d.hpp"

#include <cstddef>
#include <memory>
#include <string>
#include <vector>

namespace search
{
class SearchTest : public tests_support::TestWithCustomMwms
{
public:
  using Rule = std::shared_ptr<tests_support::MatchingRule>;
  using Rules = std::vector<Rule>;

  SearchTest();
  ~SearchTest() override = default;

  // Registers country in internal records. Note that physical country
  // file may be absent.
  void RegisterCountry(std::string const & name, m2::RectD const & rect);

  inline void SetViewport(m2::RectD const & viewport) { m_viewport = viewport; }

  bool ResultsMatch(std::string const & query, Rules const & rules);

  bool ResultsMatch(std::string const & query, std::string const & locale, Rules const & rules);

  bool ResultsMatch(std::string const & query, Mode mode, Rules const & rules);

  bool ResultsMatch(std::vector<search::Result> const & results, Rules const & rules);

  bool ResultsMatch(SearchParams const & params, Rules const & rules);

  bool ResultMatches(search::Result const & result, Rule const & rule);

  size_t GetResultsNumber(std::string const & query, std::string const & locale);

  std::unique_ptr<tests_support::TestSearchRequest> MakeRequest(std::string const & query,
                                                                std::string const & locale = "en");

  size_t CountFeatures(m2::RectD const & rect);

protected:
  void OnMwmBuilt(MwmInfo const & /* info */) override;

  base::ScopedLogLevelChanger m_scopedLog;

  tests_support::TestSearchEngine m_engine;

  m2::RectD m_viewport;
};

class TestCafe : public generator::tests_support::TestPOI
{
public:
  TestCafe(m2::PointD const & center, std::string const & name, std::string const & lang)
    : TestPOI(center, name, lang)
  {
    SetTypes({{"amenity", "cafe"}});
  }

  explicit TestCafe(m2::PointD const & center) : TestCafe(center, "cafe", "en") {}
};

class TestHotel : public generator::tests_support::TestPOI
{
public:
  TestHotel(m2::PointD const & center, std::string const & name, std::string const & lang)
    : TestPOI(center, name, lang)
  {
    SetTypes({{"tourism", "hotel"}});
  }

  explicit TestHotel(m2::PointD const & center) : TestHotel(center, "hotel", "en") {}
};
}  // namespace search