aboutsummaryrefslogtreecommitdiffstats
path: root/searchsummary/src/tests/juniper/mcandTest.h
blob: 37613c6b9ab35100524a48ebf7f7b5f48a6a63dd (plain) (blame)
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
/*
 * Author Knut Omang
 */
#pragma once

#include "testenv.h"
#include "test.h"
#include <vespa/juniper/mcand.h>
#include <map>

/**
 * The MatchCandidateTest class holds
 * the unit tests for the MatchCandidate class.
 *
 * @sa      MatchCandidate
 * @author  Knut Omang
 */
class MatchCandidateTest : public Test {

    /*************************************************************************
     *                      Test methods
     *
     * This section contains boolean methods for testing each public method
     * in the class ing tested
     *************************************************************************/

    /**
     * Test of the SetDocid method.
     */
    void testSetDocid();


    /**
     * Test of the log method.
     */
    void testLog();


    /**
     * Test of the dump method.
     */
    void testDump();


    /**
     * Test of the (order method.
     */
    void testorder();


    /**
     * Test of the matches_limit method.
     */
    void testMatches_limit();


    /**
     * Test of the accept method.
     */
    void testAccept();


    /**
     * Test of the rank method.
     */
    void testRank();


    /**
     * Test of the make_keylist method.
     */
    void testMake_keylist();


    /**
     * Test of the add_to_keylist method.
     */
    void testAdd_to_keylist();


    /**
     * Test of the length method.
     */
    void testLength();

    /**
     * Test that the max number of match candidates can be controlled.
     */
    void requireThatMaxNumberOfMatchCandidatesCanBeControlled();

    /**
     * Test of the order method.
     */
    void testOrder();


    /**
     * Test of the size method.
     */
    void testSize();


    /**
     * Test of the endpos method.
     */
    void testEndpos();


    /**
     * Test of the ctxt_startpos method.
     */
    void testCtxt_startpos();


    /**
     * Test of the starttoken method.
     */
    void testStarttoken();


    /**
     * Test of the word_distance method.
     */
    void testWord_distance();


    /**
     * Test of the distance method.
     */
    void testDistance();


    /**
     * Test of the elem_store_sz method.
     */
    void testElem_store_sz();


    /**
     * Test of the elems method.
     */
    void testElems();


    /**
     * Test of the distance method.
     */
    void testDistance1();


    /**
     * Test of the set_valid method.
     */
    void testSet_valid();


    /*************************************************************************
     *                      Test administration methods
     *************************************************************************/

    /**
     * Set up common stuff for all test methods.
     * This method is called immediately before each test method is called
     */
    bool setUp();

    /**
     * Tear down common stuff for all test methods.
     * This method is called immediately after each test method is called
     */
    void tearDown();

    typedef void(MatchCandidateTest::* tst_method_ptr) ();
    using MethodContainer = std::map<std::string, tst_method_ptr>;
    MethodContainer test_methods_;
    void init();
protected:

    /**
     * Since we are running within Emacs, the default behavior of
     * print_progress which includes backspace does not work.
     * We'll use a single '.' instead.
     */
    void print_progress() override { *m_osptr << '.' << std::flush; }

public:

    MatchCandidateTest();
    ~MatchCandidateTest() {}

    /*************************************************************************
     *                         main entry points
     *************************************************************************/
    void Run(MethodContainer::iterator &itr);
    void Run() override;
    void Run(const char *method);
    void Run(int argc, char* argv[]);
};


// Local Variables:
// mode:c++
// End: