cppjieba_rb 0.3.3 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +3 -0
  3. data/README.md +1 -1
  4. data/Rakefile +2 -2
  5. data/cppjieba_rb.gemspec +4 -4
  6. data/lib/cppjieba_rb/version.rb +1 -1
  7. metadata +17 -135
  8. data/ext/cppjieba/.gitignore +0 -17
  9. data/ext/cppjieba/.travis.yml +0 -21
  10. data/ext/cppjieba/CMakeLists.txt +0 -28
  11. data/ext/cppjieba/ChangeLog.md +0 -236
  12. data/ext/cppjieba/README.md +0 -292
  13. data/ext/cppjieba/README_EN.md +0 -113
  14. data/ext/cppjieba/appveyor.yml +0 -32
  15. data/ext/cppjieba/deps/CMakeLists.txt +0 -1
  16. data/ext/cppjieba/deps/gtest/CMakeLists.txt +0 -5
  17. data/ext/cppjieba/deps/gtest/include/gtest/gtest-death-test.h +0 -283
  18. data/ext/cppjieba/deps/gtest/include/gtest/gtest-message.h +0 -230
  19. data/ext/cppjieba/deps/gtest/include/gtest/gtest-param-test.h +0 -1421
  20. data/ext/cppjieba/deps/gtest/include/gtest/gtest-param-test.h.pump +0 -487
  21. data/ext/cppjieba/deps/gtest/include/gtest/gtest-printers.h +0 -796
  22. data/ext/cppjieba/deps/gtest/include/gtest/gtest-spi.h +0 -232
  23. data/ext/cppjieba/deps/gtest/include/gtest/gtest-test-part.h +0 -176
  24. data/ext/cppjieba/deps/gtest/include/gtest/gtest-typed-test.h +0 -259
  25. data/ext/cppjieba/deps/gtest/include/gtest/gtest.h +0 -2155
  26. data/ext/cppjieba/deps/gtest/include/gtest/gtest_pred_impl.h +0 -358
  27. data/ext/cppjieba/deps/gtest/include/gtest/gtest_prod.h +0 -58
  28. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-death-test-internal.h +0 -308
  29. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-filepath.h +0 -210
  30. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-internal.h +0 -1226
  31. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-linked_ptr.h +0 -233
  32. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-param-util-generated.h +0 -4822
  33. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-param-util-generated.h.pump +0 -301
  34. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-param-util.h +0 -619
  35. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-port.h +0 -1788
  36. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-string.h +0 -350
  37. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-tuple.h +0 -968
  38. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-tuple.h.pump +0 -336
  39. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-type-util.h +0 -3330
  40. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-type-util.h.pump +0 -296
  41. data/ext/cppjieba/deps/gtest/src/.deps/.dirstamp +0 -0
  42. data/ext/cppjieba/deps/gtest/src/.deps/gtest-all.Plo +0 -681
  43. data/ext/cppjieba/deps/gtest/src/.deps/gtest_main.Plo +0 -509
  44. data/ext/cppjieba/deps/gtest/src/.dirstamp +0 -0
  45. data/ext/cppjieba/deps/gtest/src/gtest-all.cc +0 -48
  46. data/ext/cppjieba/deps/gtest/src/gtest-death-test.cc +0 -1234
  47. data/ext/cppjieba/deps/gtest/src/gtest-filepath.cc +0 -380
  48. data/ext/cppjieba/deps/gtest/src/gtest-internal-inl.h +0 -1038
  49. data/ext/cppjieba/deps/gtest/src/gtest-port.cc +0 -746
  50. data/ext/cppjieba/deps/gtest/src/gtest-printers.cc +0 -356
  51. data/ext/cppjieba/deps/gtest/src/gtest-test-part.cc +0 -110
  52. data/ext/cppjieba/deps/gtest/src/gtest-typed-test.cc +0 -110
  53. data/ext/cppjieba/deps/gtest/src/gtest.cc +0 -4898
  54. data/ext/cppjieba/deps/gtest/src/gtest_main.cc +0 -39
  55. data/ext/cppjieba/deps/limonp/ArgvContext.hpp +0 -70
  56. data/ext/cppjieba/deps/limonp/BlockingQueue.hpp +0 -49
  57. data/ext/cppjieba/deps/limonp/BoundedBlockingQueue.hpp +0 -67
  58. data/ext/cppjieba/deps/limonp/BoundedQueue.hpp +0 -65
  59. data/ext/cppjieba/deps/limonp/Closure.hpp +0 -206
  60. data/ext/cppjieba/deps/limonp/Colors.hpp +0 -31
  61. data/ext/cppjieba/deps/limonp/Condition.hpp +0 -38
  62. data/ext/cppjieba/deps/limonp/Config.hpp +0 -103
  63. data/ext/cppjieba/deps/limonp/FileLock.hpp +0 -74
  64. data/ext/cppjieba/deps/limonp/ForcePublic.hpp +0 -7
  65. data/ext/cppjieba/deps/limonp/LocalVector.hpp +0 -139
  66. data/ext/cppjieba/deps/limonp/Logging.hpp +0 -76
  67. data/ext/cppjieba/deps/limonp/Md5.hpp +0 -411
  68. data/ext/cppjieba/deps/limonp/MutexLock.hpp +0 -51
  69. data/ext/cppjieba/deps/limonp/NonCopyable.hpp +0 -21
  70. data/ext/cppjieba/deps/limonp/StdExtension.hpp +0 -159
  71. data/ext/cppjieba/deps/limonp/StringUtil.hpp +0 -365
  72. data/ext/cppjieba/deps/limonp/Thread.hpp +0 -44
  73. data/ext/cppjieba/deps/limonp/ThreadPool.hpp +0 -86
  74. data/ext/cppjieba/dict/README.md +0 -31
  75. data/ext/cppjieba/dict/hmm_model.utf8 +0 -34
  76. data/ext/cppjieba/dict/idf.utf8 +0 -258826
  77. data/ext/cppjieba/dict/jieba.dict.utf8 +0 -348982
  78. data/ext/cppjieba/dict/pos_dict/char_state_tab.utf8 +0 -6653
  79. data/ext/cppjieba/dict/pos_dict/prob_emit.utf8 +0 -166
  80. data/ext/cppjieba/dict/pos_dict/prob_start.utf8 +0 -259
  81. data/ext/cppjieba/dict/pos_dict/prob_trans.utf8 +0 -5222
  82. data/ext/cppjieba/dict/stop_words.utf8 +0 -1534
  83. data/ext/cppjieba/dict/user.dict.utf8 +0 -4
  84. data/ext/cppjieba/include/cppjieba/DictTrie.hpp +0 -277
  85. data/ext/cppjieba/include/cppjieba/FullSegment.hpp +0 -93
  86. data/ext/cppjieba/include/cppjieba/HMMModel.hpp +0 -129
  87. data/ext/cppjieba/include/cppjieba/HMMSegment.hpp +0 -190
  88. data/ext/cppjieba/include/cppjieba/Jieba.hpp +0 -130
  89. data/ext/cppjieba/include/cppjieba/KeywordExtractor.hpp +0 -153
  90. data/ext/cppjieba/include/cppjieba/MPSegment.hpp +0 -137
  91. data/ext/cppjieba/include/cppjieba/MixSegment.hpp +0 -109
  92. data/ext/cppjieba/include/cppjieba/PosTagger.hpp +0 -77
  93. data/ext/cppjieba/include/cppjieba/PreFilter.hpp +0 -54
  94. data/ext/cppjieba/include/cppjieba/QuerySegment.hpp +0 -90
  95. data/ext/cppjieba/include/cppjieba/SegmentBase.hpp +0 -46
  96. data/ext/cppjieba/include/cppjieba/SegmentTagged.hpp +0 -23
  97. data/ext/cppjieba/include/cppjieba/TextRankExtractor.hpp +0 -190
  98. data/ext/cppjieba/include/cppjieba/Trie.hpp +0 -174
  99. data/ext/cppjieba/include/cppjieba/Unicode.hpp +0 -227
  100. data/ext/cppjieba/test/CMakeLists.txt +0 -5
  101. data/ext/cppjieba/test/demo.cpp +0 -80
  102. data/ext/cppjieba/test/load_test.cpp +0 -54
  103. data/ext/cppjieba/test/testdata/curl.res +0 -1
  104. data/ext/cppjieba/test/testdata/extra_dict/jieba.dict.small.utf8 +0 -109750
  105. data/ext/cppjieba/test/testdata/gbk_dict/hmm_model.gbk +0 -34
  106. data/ext/cppjieba/test/testdata/gbk_dict/jieba.dict.gbk +0 -348982
  107. data/ext/cppjieba/test/testdata/jieba.dict.0.1.utf8 +0 -93
  108. data/ext/cppjieba/test/testdata/jieba.dict.0.utf8 +0 -93
  109. data/ext/cppjieba/test/testdata/jieba.dict.1.utf8 +0 -67
  110. data/ext/cppjieba/test/testdata/jieba.dict.2.utf8 +0 -64
  111. data/ext/cppjieba/test/testdata/load_test.urls +0 -2
  112. data/ext/cppjieba/test/testdata/review.100 +0 -100
  113. data/ext/cppjieba/test/testdata/review.100.res +0 -200
  114. data/ext/cppjieba/test/testdata/server.conf +0 -19
  115. data/ext/cppjieba/test/testdata/testlines.gbk +0 -9
  116. data/ext/cppjieba/test/testdata/testlines.utf8 +0 -8
  117. data/ext/cppjieba/test/testdata/userdict.2.utf8 +0 -1
  118. data/ext/cppjieba/test/testdata/userdict.english +0 -2
  119. data/ext/cppjieba/test/testdata/userdict.utf8 +0 -8
  120. data/ext/cppjieba/test/testdata/weicheng.utf8 +0 -247
  121. data/ext/cppjieba/test/unittest/CMakeLists.txt +0 -24
  122. data/ext/cppjieba/test/unittest/gtest_main.cpp +0 -39
  123. data/ext/cppjieba/test/unittest/jieba_test.cpp +0 -133
  124. data/ext/cppjieba/test/unittest/keyword_extractor_test.cpp +0 -79
  125. data/ext/cppjieba/test/unittest/pos_tagger_test.cpp +0 -41
  126. data/ext/cppjieba/test/unittest/pre_filter_test.cpp +0 -43
  127. data/ext/cppjieba/test/unittest/segments_test.cpp +0 -256
  128. data/ext/cppjieba/test/unittest/textrank_test.cpp +0 -86
  129. data/ext/cppjieba/test/unittest/trie_test.cpp +0 -177
  130. data/ext/cppjieba/test/unittest/unicode_test.cpp +0 -43
@@ -1,487 +0,0 @@
1
- $$ -*- mode: c++; -*-
2
- $var n = 50 $$ Maximum length of Values arguments we want to support.
3
- $var maxtuple = 10 $$ Maximum number of Combine arguments we want to support.
4
- // Copyright 2008, Google Inc.
5
- // All rights reserved.
6
- //
7
- // Redistribution and use in source and binary forms, with or without
8
- // modification, are permitted provided that the following conditions are
9
- // met:
10
- //
11
- // * Redistributions of source code must retain the above copyright
12
- // notice, this list of conditions and the following disclaimer.
13
- // * Redistributions in binary form must reproduce the above
14
- // copyright notice, this list of conditions and the following disclaimer
15
- // in the documentation and/or other materials provided with the
16
- // distribution.
17
- // * Neither the name of Google Inc. nor the names of its
18
- // contributors may be used to endorse or promote products derived from
19
- // this software without specific prior written permission.
20
- //
21
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
- // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
- // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24
- // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25
- // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26
- // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27
- // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28
- // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29
- // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
- //
33
- // Authors: vladl@google.com (Vlad Losev)
34
- //
35
- // Macros and functions for implementing parameterized tests
36
- // in Google C++ Testing Framework (Google Test)
37
- //
38
- // This file is generated by a SCRIPT. DO NOT EDIT BY HAND!
39
- //
40
- #ifndef GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
41
- #define GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
42
-
43
-
44
- // Value-parameterized tests allow you to test your code with different
45
- // parameters without writing multiple copies of the same test.
46
- //
47
- // Here is how you use value-parameterized tests:
48
-
49
- #if 0
50
-
51
- // To write value-parameterized tests, first you should define a fixture
52
- // class. It is usually derived from testing::TestWithParam<T> (see below for
53
- // another inheritance scheme that's sometimes useful in more complicated
54
- // class hierarchies), where the type of your parameter values.
55
- // TestWithParam<T> is itself derived from testing::Test. T can be any
56
- // copyable type. If it's a raw pointer, you are responsible for managing the
57
- // lifespan of the pointed values.
58
-
59
- class FooTest : public ::testing::TestWithParam<const char*> {
60
- // You can implement all the usual class fixture members here.
61
- };
62
-
63
- // Then, use the TEST_P macro to define as many parameterized tests
64
- // for this fixture as you want. The _P suffix is for "parameterized"
65
- // or "pattern", whichever you prefer to think.
66
-
67
- TEST_P(FooTest, DoesBlah) {
68
- // Inside a test, access the test parameter with the GetParam() method
69
- // of the TestWithParam<T> class:
70
- EXPECT_TRUE(foo.Blah(GetParam()));
71
- ...
72
- }
73
-
74
- TEST_P(FooTest, HasBlahBlah) {
75
- ...
76
- }
77
-
78
- // Finally, you can use INSTANTIATE_TEST_CASE_P to instantiate the test
79
- // case with any set of parameters you want. Google Test defines a number
80
- // of functions for generating test parameters. They return what we call
81
- // (surprise!) parameter generators. Here is a summary of them, which
82
- // are all in the testing namespace:
83
- //
84
- //
85
- // Range(begin, end [, step]) - Yields values {begin, begin+step,
86
- // begin+step+step, ...}. The values do not
87
- // include end. step defaults to 1.
88
- // Values(v1, v2, ..., vN) - Yields values {v1, v2, ..., vN}.
89
- // ValuesIn(container) - Yields values from a C-style array, an STL
90
- // ValuesIn(begin,end) container, or an iterator range [begin, end).
91
- // Bool() - Yields sequence {false, true}.
92
- // Combine(g1, g2, ..., gN) - Yields all combinations (the Cartesian product
93
- // for the math savvy) of the values generated
94
- // by the N generators.
95
- //
96
- // For more details, see comments at the definitions of these functions below
97
- // in this file.
98
- //
99
- // The following statement will instantiate tests from the FooTest test case
100
- // each with parameter values "meeny", "miny", and "moe".
101
-
102
- INSTANTIATE_TEST_CASE_P(InstantiationName,
103
- FooTest,
104
- Values("meeny", "miny", "moe"));
105
-
106
- // To distinguish different instances of the pattern, (yes, you
107
- // can instantiate it more then once) the first argument to the
108
- // INSTANTIATE_TEST_CASE_P macro is a prefix that will be added to the
109
- // actual test case name. Remember to pick unique prefixes for different
110
- // instantiations. The tests from the instantiation above will have
111
- // these names:
112
- //
113
- // * InstantiationName/FooTest.DoesBlah/0 for "meeny"
114
- // * InstantiationName/FooTest.DoesBlah/1 for "miny"
115
- // * InstantiationName/FooTest.DoesBlah/2 for "moe"
116
- // * InstantiationName/FooTest.HasBlahBlah/0 for "meeny"
117
- // * InstantiationName/FooTest.HasBlahBlah/1 for "miny"
118
- // * InstantiationName/FooTest.HasBlahBlah/2 for "moe"
119
- //
120
- // You can use these names in --gtest_filter.
121
- //
122
- // This statement will instantiate all tests from FooTest again, each
123
- // with parameter values "cat" and "dog":
124
-
125
- const char* pets[] = {"cat", "dog"};
126
- INSTANTIATE_TEST_CASE_P(AnotherInstantiationName, FooTest, ValuesIn(pets));
127
-
128
- // The tests from the instantiation above will have these names:
129
- //
130
- // * AnotherInstantiationName/FooTest.DoesBlah/0 for "cat"
131
- // * AnotherInstantiationName/FooTest.DoesBlah/1 for "dog"
132
- // * AnotherInstantiationName/FooTest.HasBlahBlah/0 for "cat"
133
- // * AnotherInstantiationName/FooTest.HasBlahBlah/1 for "dog"
134
- //
135
- // Please note that INSTANTIATE_TEST_CASE_P will instantiate all tests
136
- // in the given test case, whether their definitions come before or
137
- // AFTER the INSTANTIATE_TEST_CASE_P statement.
138
- //
139
- // Please also note that generator expressions (including parameters to the
140
- // generators) are evaluated in InitGoogleTest(), after main() has started.
141
- // This allows the user on one hand, to adjust generator parameters in order
142
- // to dynamically determine a set of tests to run and on the other hand,
143
- // give the user a chance to inspect the generated tests with Google Test
144
- // reflection API before RUN_ALL_TESTS() is executed.
145
- //
146
- // You can see samples/sample7_unittest.cc and samples/sample8_unittest.cc
147
- // for more examples.
148
- //
149
- // In the future, we plan to publish the API for defining new parameter
150
- // generators. But for now this interface remains part of the internal
151
- // implementation and is subject to change.
152
- //
153
- //
154
- // A parameterized test fixture must be derived from testing::Test and from
155
- // testing::WithParamInterface<T>, where T is the type of the parameter
156
- // values. Inheriting from TestWithParam<T> satisfies that requirement because
157
- // TestWithParam<T> inherits from both Test and WithParamInterface. In more
158
- // complicated hierarchies, however, it is occasionally useful to inherit
159
- // separately from Test and WithParamInterface. For example:
160
-
161
- class BaseTest : public ::testing::Test {
162
- // You can inherit all the usual members for a non-parameterized test
163
- // fixture here.
164
- };
165
-
166
- class DerivedTest : public BaseTest, public ::testing::WithParamInterface<int> {
167
- // The usual test fixture members go here too.
168
- };
169
-
170
- TEST_F(BaseTest, HasFoo) {
171
- // This is an ordinary non-parameterized test.
172
- }
173
-
174
- TEST_P(DerivedTest, DoesBlah) {
175
- // GetParam works just the same here as if you inherit from TestWithParam.
176
- EXPECT_TRUE(foo.Blah(GetParam()));
177
- }
178
-
179
- #endif // 0
180
-
181
- #include "gtest/internal/gtest-port.h"
182
-
183
- #if !GTEST_OS_SYMBIAN
184
- # include <utility>
185
- #endif
186
-
187
- // scripts/fuse_gtest.py depends on gtest's own header being #included
188
- // *unconditionally*. Therefore these #includes cannot be moved
189
- // inside #if GTEST_HAS_PARAM_TEST.
190
- #include "gtest/internal/gtest-internal.h"
191
- #include "gtest/internal/gtest-param-util.h"
192
- #include "gtest/internal/gtest-param-util-generated.h"
193
-
194
- #if GTEST_HAS_PARAM_TEST
195
-
196
- namespace testing {
197
-
198
- // Functions producing parameter generators.
199
- //
200
- // Google Test uses these generators to produce parameters for value-
201
- // parameterized tests. When a parameterized test case is instantiated
202
- // with a particular generator, Google Test creates and runs tests
203
- // for each element in the sequence produced by the generator.
204
- //
205
- // In the following sample, tests from test case FooTest are instantiated
206
- // each three times with parameter values 3, 5, and 8:
207
- //
208
- // class FooTest : public TestWithParam<int> { ... };
209
- //
210
- // TEST_P(FooTest, TestThis) {
211
- // }
212
- // TEST_P(FooTest, TestThat) {
213
- // }
214
- // INSTANTIATE_TEST_CASE_P(TestSequence, FooTest, Values(3, 5, 8));
215
- //
216
-
217
- // Range() returns generators providing sequences of values in a range.
218
- //
219
- // Synopsis:
220
- // Range(start, end)
221
- // - returns a generator producing a sequence of values {start, start+1,
222
- // start+2, ..., }.
223
- // Range(start, end, step)
224
- // - returns a generator producing a sequence of values {start, start+step,
225
- // start+step+step, ..., }.
226
- // Notes:
227
- // * The generated sequences never include end. For example, Range(1, 5)
228
- // returns a generator producing a sequence {1, 2, 3, 4}. Range(1, 9, 2)
229
- // returns a generator producing {1, 3, 5, 7}.
230
- // * start and end must have the same type. That type may be any integral or
231
- // floating-point type or a user defined type satisfying these conditions:
232
- // * It must be assignable (have operator=() defined).
233
- // * It must have operator+() (operator+(int-compatible type) for
234
- // two-operand version).
235
- // * It must have operator<() defined.
236
- // Elements in the resulting sequences will also have that type.
237
- // * Condition start < end must be satisfied in order for resulting sequences
238
- // to contain any elements.
239
- //
240
- template <typename T, typename IncrementT>
241
- internal::ParamGenerator<T> Range(T start, T end, IncrementT step) {
242
- return internal::ParamGenerator<T>(
243
- new internal::RangeGenerator<T, IncrementT>(start, end, step));
244
- }
245
-
246
- template <typename T>
247
- internal::ParamGenerator<T> Range(T start, T end) {
248
- return Range(start, end, 1);
249
- }
250
-
251
- // ValuesIn() function allows generation of tests with parameters coming from
252
- // a container.
253
- //
254
- // Synopsis:
255
- // ValuesIn(const T (&array)[N])
256
- // - returns a generator producing sequences with elements from
257
- // a C-style array.
258
- // ValuesIn(const Container& container)
259
- // - returns a generator producing sequences with elements from
260
- // an STL-style container.
261
- // ValuesIn(Iterator begin, Iterator end)
262
- // - returns a generator producing sequences with elements from
263
- // a range [begin, end) defined by a pair of STL-style iterators. These
264
- // iterators can also be plain C pointers.
265
- //
266
- // Please note that ValuesIn copies the values from the containers
267
- // passed in and keeps them to generate tests in RUN_ALL_TESTS().
268
- //
269
- // Examples:
270
- //
271
- // This instantiates tests from test case StringTest
272
- // each with C-string values of "foo", "bar", and "baz":
273
- //
274
- // const char* strings[] = {"foo", "bar", "baz"};
275
- // INSTANTIATE_TEST_CASE_P(StringSequence, SrtingTest, ValuesIn(strings));
276
- //
277
- // This instantiates tests from test case StlStringTest
278
- // each with STL strings with values "a" and "b":
279
- //
280
- // ::std::vector< ::std::string> GetParameterStrings() {
281
- // ::std::vector< ::std::string> v;
282
- // v.push_back("a");
283
- // v.push_back("b");
284
- // return v;
285
- // }
286
- //
287
- // INSTANTIATE_TEST_CASE_P(CharSequence,
288
- // StlStringTest,
289
- // ValuesIn(GetParameterStrings()));
290
- //
291
- //
292
- // This will also instantiate tests from CharTest
293
- // each with parameter values 'a' and 'b':
294
- //
295
- // ::std::list<char> GetParameterChars() {
296
- // ::std::list<char> list;
297
- // list.push_back('a');
298
- // list.push_back('b');
299
- // return list;
300
- // }
301
- // ::std::list<char> l = GetParameterChars();
302
- // INSTANTIATE_TEST_CASE_P(CharSequence2,
303
- // CharTest,
304
- // ValuesIn(l.begin(), l.end()));
305
- //
306
- template <typename ForwardIterator>
307
- internal::ParamGenerator<
308
- typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type>
309
- ValuesIn(ForwardIterator begin, ForwardIterator end) {
310
- typedef typename ::testing::internal::IteratorTraits<ForwardIterator>
311
- ::value_type ParamType;
312
- return internal::ParamGenerator<ParamType>(
313
- new internal::ValuesInIteratorRangeGenerator<ParamType>(begin, end));
314
- }
315
-
316
- template <typename T, size_t N>
317
- internal::ParamGenerator<T> ValuesIn(const T (&array)[N]) {
318
- return ValuesIn(array, array + N);
319
- }
320
-
321
- template <class Container>
322
- internal::ParamGenerator<typename Container::value_type> ValuesIn(
323
- const Container& container) {
324
- return ValuesIn(container.begin(), container.end());
325
- }
326
-
327
- // Values() allows generating tests from explicitly specified list of
328
- // parameters.
329
- //
330
- // Synopsis:
331
- // Values(T v1, T v2, ..., T vN)
332
- // - returns a generator producing sequences with elements v1, v2, ..., vN.
333
- //
334
- // For example, this instantiates tests from test case BarTest each
335
- // with values "one", "two", and "three":
336
- //
337
- // INSTANTIATE_TEST_CASE_P(NumSequence, BarTest, Values("one", "two", "three"));
338
- //
339
- // This instantiates tests from test case BazTest each with values 1, 2, 3.5.
340
- // The exact type of values will depend on the type of parameter in BazTest.
341
- //
342
- // INSTANTIATE_TEST_CASE_P(FloatingNumbers, BazTest, Values(1, 2, 3.5));
343
- //
344
- // Currently, Values() supports from 1 to $n parameters.
345
- //
346
- $range i 1..n
347
- $for i [[
348
- $range j 1..i
349
-
350
- template <$for j, [[typename T$j]]>
351
- internal::ValueArray$i<$for j, [[T$j]]> Values($for j, [[T$j v$j]]) {
352
- return internal::ValueArray$i<$for j, [[T$j]]>($for j, [[v$j]]);
353
- }
354
-
355
- ]]
356
-
357
- // Bool() allows generating tests with parameters in a set of (false, true).
358
- //
359
- // Synopsis:
360
- // Bool()
361
- // - returns a generator producing sequences with elements {false, true}.
362
- //
363
- // It is useful when testing code that depends on Boolean flags. Combinations
364
- // of multiple flags can be tested when several Bool()'s are combined using
365
- // Combine() function.
366
- //
367
- // In the following example all tests in the test case FlagDependentTest
368
- // will be instantiated twice with parameters false and true.
369
- //
370
- // class FlagDependentTest : public testing::TestWithParam<bool> {
371
- // virtual void SetUp() {
372
- // external_flag = GetParam();
373
- // }
374
- // }
375
- // INSTANTIATE_TEST_CASE_P(BoolSequence, FlagDependentTest, Bool());
376
- //
377
- inline internal::ParamGenerator<bool> Bool() {
378
- return Values(false, true);
379
- }
380
-
381
- # if GTEST_HAS_COMBINE
382
- // Combine() allows the user to combine two or more sequences to produce
383
- // values of a Cartesian product of those sequences' elements.
384
- //
385
- // Synopsis:
386
- // Combine(gen1, gen2, ..., genN)
387
- // - returns a generator producing sequences with elements coming from
388
- // the Cartesian product of elements from the sequences generated by
389
- // gen1, gen2, ..., genN. The sequence elements will have a type of
390
- // tuple<T1, T2, ..., TN> where T1, T2, ..., TN are the types
391
- // of elements from sequences produces by gen1, gen2, ..., genN.
392
- //
393
- // Combine can have up to $maxtuple arguments. This number is currently limited
394
- // by the maximum number of elements in the tuple implementation used by Google
395
- // Test.
396
- //
397
- // Example:
398
- //
399
- // This will instantiate tests in test case AnimalTest each one with
400
- // the parameter values tuple("cat", BLACK), tuple("cat", WHITE),
401
- // tuple("dog", BLACK), and tuple("dog", WHITE):
402
- //
403
- // enum Color { BLACK, GRAY, WHITE };
404
- // class AnimalTest
405
- // : public testing::TestWithParam<tuple<const char*, Color> > {...};
406
- //
407
- // TEST_P(AnimalTest, AnimalLooksNice) {...}
408
- //
409
- // INSTANTIATE_TEST_CASE_P(AnimalVariations, AnimalTest,
410
- // Combine(Values("cat", "dog"),
411
- // Values(BLACK, WHITE)));
412
- //
413
- // This will instantiate tests in FlagDependentTest with all variations of two
414
- // Boolean flags:
415
- //
416
- // class FlagDependentTest
417
- // : public testing::TestWithParam<tuple(bool, bool)> > {
418
- // virtual void SetUp() {
419
- // // Assigns external_flag_1 and external_flag_2 values from the tuple.
420
- // tie(external_flag_1, external_flag_2) = GetParam();
421
- // }
422
- // };
423
- //
424
- // TEST_P(FlagDependentTest, TestFeature1) {
425
- // // Test your code using external_flag_1 and external_flag_2 here.
426
- // }
427
- // INSTANTIATE_TEST_CASE_P(TwoBoolSequence, FlagDependentTest,
428
- // Combine(Bool(), Bool()));
429
- //
430
- $range i 2..maxtuple
431
- $for i [[
432
- $range j 1..i
433
-
434
- template <$for j, [[typename Generator$j]]>
435
- internal::CartesianProductHolder$i<$for j, [[Generator$j]]> Combine(
436
- $for j, [[const Generator$j& g$j]]) {
437
- return internal::CartesianProductHolder$i<$for j, [[Generator$j]]>(
438
- $for j, [[g$j]]);
439
- }
440
-
441
- ]]
442
- # endif // GTEST_HAS_COMBINE
443
-
444
-
445
-
446
- # define TEST_P(test_case_name, test_name) \
447
- class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \
448
- : public test_case_name { \
449
- public: \
450
- GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {} \
451
- virtual void TestBody(); \
452
- private: \
453
- static int AddToRegistry() { \
454
- ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \
455
- GetTestCasePatternHolder<test_case_name>(\
456
- #test_case_name, __FILE__, __LINE__)->AddTestPattern(\
457
- #test_case_name, \
458
- #test_name, \
459
- new ::testing::internal::TestMetaFactory< \
460
- GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>()); \
461
- return 0; \
462
- } \
463
- static int gtest_registering_dummy_; \
464
- GTEST_DISALLOW_COPY_AND_ASSIGN_(\
465
- GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \
466
- }; \
467
- int GTEST_TEST_CLASS_NAME_(test_case_name, \
468
- test_name)::gtest_registering_dummy_ = \
469
- GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \
470
- void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody()
471
-
472
- # define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator) \
473
- ::testing::internal::ParamGenerator<test_case_name::ParamType> \
474
- gtest_##prefix##test_case_name##_EvalGenerator_() { return generator; } \
475
- int gtest_##prefix##test_case_name##_dummy_ = \
476
- ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \
477
- GetTestCasePatternHolder<test_case_name>(\
478
- #test_case_name, __FILE__, __LINE__)->AddTestCaseInstantiation(\
479
- #prefix, \
480
- &gtest_##prefix##test_case_name##_EvalGenerator_, \
481
- __FILE__, __LINE__)
482
-
483
- } // namespace testing
484
-
485
- #endif // GTEST_HAS_PARAM_TEST
486
-
487
- #endif // GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_