summaryrefslogtreecommitdiff
path: root/extractor/mocks/mock_rule_extractor_helper.h
blob: b5ab323fcf2b1324224b942b901d1992fd8e52e0 (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
#include <gmock/gmock.h>

#include <vector>

#include "rule_extractor_helper.h"

using namespace std;

namespace extractor {

typedef unordered_map<int, int> Indexes;

class MockRuleExtractorHelper : public RuleExtractorHelper {
 public:
  MOCK_CONST_METHOD5(GetLinksSpans, void(vector<int>&, vector<int>&,
      vector<int>&, vector<int>&, int));
  MOCK_CONST_METHOD4(CheckAlignedTerminals, bool(const vector<int>&,
      const vector<int>&, const vector<int>&, int));
  MOCK_CONST_METHOD4(CheckTightPhrases, bool(const vector<int>&,
      const vector<int>&, const vector<int>&, int));
  MOCK_CONST_METHOD1(GetGapOrder, vector<int>(const vector<pair<int, int>>&));
  MOCK_CONST_METHOD4(GetSourceIndexes, Indexes(const vector<int>&,
      const vector<int>&, int, int));

  // We need to implement these methods, because Google Mock doesn't support
  // methods with more than 10 arguments.
  bool FindFixPoint(
      int, int, const vector<int>&, const vector<int>&, int& target_phrase_low,
      int& target_phrase_high, const vector<int>&, const vector<int>&,
      int& source_back_low, int& source_back_high, int, int, int, int, bool,
      bool, bool) const {
    target_phrase_low = this->target_phrase_low;
    target_phrase_high = this->target_phrase_high;
    source_back_low = this->source_back_low;
    source_back_high = this->source_back_high;
    return find_fix_point;
  }

  bool GetGaps(vector<pair<int, int>>& source_gaps,
               vector<pair<int, int>>& target_gaps,
               const vector<int>&, const vector<int>&, const vector<int>&,
               const vector<int>&, const vector<int>&, const vector<int>&,
               int, int, int, int, int, int, int& num_symbols,
               bool& met_constraints) const {
    source_gaps = this->source_gaps;
    target_gaps = this->target_gaps;
    num_symbols = this->num_symbols;
    met_constraints = this->met_constraints;
    return get_gaps;
  }

  void SetUp(
      int target_phrase_low, int target_phrase_high, int source_back_low,
      int source_back_high, bool find_fix_point,
      vector<pair<int, int>> source_gaps, vector<pair<int, int>> target_gaps,
      int num_symbols, bool met_constraints, bool get_gaps) {
    this->target_phrase_low = target_phrase_low;
    this->target_phrase_high = target_phrase_high;
    this->source_back_low = source_back_low;
    this->source_back_high = source_back_high;
    this->find_fix_point = find_fix_point;
    this->source_gaps = source_gaps;
    this->target_gaps = target_gaps;
    this->num_symbols = num_symbols;
    this->met_constraints = met_constraints;
    this->get_gaps = get_gaps;
  }

 private:
  int target_phrase_low;
  int target_phrase_high;
  int source_back_low;
  int source_back_high;
  bool find_fix_point;
  vector<pair<int, int>> source_gaps;
  vector<pair<int, int>> target_gaps;
  int num_symbols;
  bool met_constraints;
  bool get_gaps;
};

} // namespace extractor