@eosrio/node-abieos 2.1.0-beta.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (740) hide show
  1. package/README.md +4 -1
  2. package/dist/abieos.node +0 -0
  3. package/lib/abieos.d.ts +19 -0
  4. package/lib/abieos.d.ts.map +1 -0
  5. package/lib/abieos.js +100 -0
  6. package/lib/abieos.ts +107 -0
  7. package/package.json +13 -8
  8. package/.gitmodules +0 -6
  9. package/.idea/misc.xml +0 -6
  10. package/.idea/modules.xml +0 -8
  11. package/.idea/node-abieos.iml +0 -12
  12. package/.idea/vcs.xml +0 -9
  13. package/.idea/workspace.xml +0 -266
  14. package/CMakeLists.txt +0 -35
  15. package/abieos.d.ts +0 -21
  16. package/abieos.js +0 -59
  17. package/eosio.json +0 -1596
  18. package/external/date/CMakeLists.txt +0 -175
  19. package/external/date/LICENSE.txt +0 -31
  20. package/external/date/README.md +0 -61
  21. package/external/date/compile_fail.sh +0 -16
  22. package/external/date/include/date/chrono_io.h +0 -34
  23. package/external/date/include/date/date.h +0 -8335
  24. package/external/date/include/date/ios.h +0 -50
  25. package/external/date/include/date/islamic.h +0 -3031
  26. package/external/date/include/date/iso_week.h +0 -1745
  27. package/external/date/include/date/julian.h +0 -3046
  28. package/external/date/include/date/ptz.h +0 -592
  29. package/external/date/include/date/tz.h +0 -2760
  30. package/external/date/include/date/tz_private.h +0 -318
  31. package/external/date/src/ios.mm +0 -337
  32. package/external/date/src/tz.cpp +0 -3801
  33. package/external/date/test/clock_cast_test/custom_clock.pass.cpp +0 -213
  34. package/external/date/test/clock_cast_test/deprecated.pass.cpp +0 -90
  35. package/external/date/test/clock_cast_test/local_t.pass.cpp +0 -132
  36. package/external/date/test/clock_cast_test/noncastable.pass.cpp +0 -251
  37. package/external/date/test/clock_cast_test/normal_clocks.pass.cpp +0 -102
  38. package/external/date/test/clock_cast_test/to_sys_return_int.fail.cpp +0 -49
  39. package/external/date/test/clock_cast_test/to_sys_return_reference.fail.cpp +0 -51
  40. package/external/date/test/clock_cast_test/to_sys_return_utc_time.fail.cpp +0 -49
  41. package/external/date/test/date_test/day.pass.cpp +0 -143
  42. package/external/date/test/date_test/daypday.fail.cpp +0 -32
  43. package/external/date/test/date_test/daysmday.fail.cpp +0 -32
  44. package/external/date/test/date_test/daysmweekday.fail.cpp +0 -32
  45. package/external/date/test/date_test/detail/decimal_format_seconds.pass.cpp +0 -145
  46. package/external/date/test/date_test/detail/make_precision.pass.cpp +0 -63
  47. package/external/date/test/date_test/detail/static_pow10.pass.cpp +0 -50
  48. package/external/date/test/date_test/detail/width.pass.cpp +0 -64
  49. package/external/date/test/date_test/durations.pass.cpp +0 -62
  50. package/external/date/test/date_test/durations_output.pass.cpp +0 -328
  51. package/external/date/test/date_test/format/century.pass.cpp +0 -117
  52. package/external/date/test/date_test/format/misc.pass.cpp +0 -52
  53. package/external/date/test/date_test/format/range.pass.cpp +0 -78
  54. package/external/date/test/date_test/format/two_dight_year.pass.cpp +0 -121
  55. package/external/date/test/date_test/last.pass.cpp +0 -34
  56. package/external/date/test/date_test/make_time.pass.cpp +0 -164
  57. package/external/date/test/date_test/month.pass.cpp +0 -181
  58. package/external/date/test/date_test/month_day.pass.cpp +0 -82
  59. package/external/date/test/date_test/month_day_last.pass.cpp +0 -75
  60. package/external/date/test/date_test/month_weekday.pass.cpp +0 -77
  61. package/external/date/test/date_test/month_weekday_last.pass.cpp +0 -77
  62. package/external/date/test/date_test/month_weekday_last_less.fail.cpp +0 -34
  63. package/external/date/test/date_test/month_weekday_less.fail.cpp +0 -34
  64. package/external/date/test/date_test/monthpmonth.fail.cpp +0 -32
  65. package/external/date/test/date_test/months_m_year_month.fail.cpp +0 -33
  66. package/external/date/test/date_test/months_m_year_month_day.fail.cpp +0 -33
  67. package/external/date/test/date_test/monthsmmonth.fail.cpp +0 -32
  68. package/external/date/test/date_test/multi_year_duration_addition.pass.cpp +0 -297
  69. package/external/date/test/date_test/op_div_day_day.fail.cpp +0 -33
  70. package/external/date/test/date_test/op_div_int_month.fail.cpp +0 -33
  71. package/external/date/test/date_test/op_div_int_year.fail.cpp +0 -33
  72. package/external/date/test/date_test/op_div_last_last.fail.cpp +0 -33
  73. package/external/date/test/date_test/op_div_month_day.pass.cpp +0 -41
  74. package/external/date/test/date_test/op_div_month_day_last.pass.cpp +0 -39
  75. package/external/date/test/date_test/op_div_month_day_month_day.fail.cpp +0 -33
  76. package/external/date/test/date_test/op_div_month_month.fail.cpp +0 -33
  77. package/external/date/test/date_test/op_div_month_weekday.pass.cpp +0 -39
  78. package/external/date/test/date_test/op_div_month_weekday_last.pass.cpp +0 -39
  79. package/external/date/test/date_test/op_div_month_year.fail.cpp +0 -33
  80. package/external/date/test/date_test/op_div_survey.pass.cpp +0 -437
  81. package/external/date/test/date_test/op_div_weekday_indexed_weekday_indexed.fail.cpp +0 -33
  82. package/external/date/test/date_test/op_div_weekday_last_weekday_last.fail.cpp +0 -33
  83. package/external/date/test/date_test/op_div_year_month.pass.cpp +0 -35
  84. package/external/date/test/date_test/op_div_year_month_day.pass.cpp +0 -43
  85. package/external/date/test/date_test/op_div_year_month_day_last.pass.cpp +0 -41
  86. package/external/date/test/date_test/op_div_year_month_weekday.pass.cpp +0 -41
  87. package/external/date/test/date_test/op_div_year_month_weekday_last.pass.cpp +0 -41
  88. package/external/date/test/date_test/op_div_year_month_year_month.fail.cpp +0 -33
  89. package/external/date/test/date_test/op_div_year_year.fail.cpp +0 -33
  90. package/external/date/test/date_test/parse.pass.cpp +0 -904
  91. package/external/date/test/date_test/sizeof.pass.cpp +0 -62
  92. package/external/date/test/date_test/time_of_day_hours.pass.cpp +0 -104
  93. package/external/date/test/date_test/time_of_day_microfortnights.pass.cpp +0 -119
  94. package/external/date/test/date_test/time_of_day_milliseconds.pass.cpp +0 -126
  95. package/external/date/test/date_test/time_of_day_minutes.pass.cpp +0 -110
  96. package/external/date/test/date_test/time_of_day_nanoseconds.pass.cpp +0 -126
  97. package/external/date/test/date_test/time_of_day_seconds.pass.cpp +0 -116
  98. package/external/date/test/date_test/weekday.pass.cpp +0 -201
  99. package/external/date/test/date_test/weekday_indexed.pass.cpp +0 -70
  100. package/external/date/test/date_test/weekday_last.pass.cpp +0 -66
  101. package/external/date/test/date_test/weekday_lessthan.fail.cpp +0 -32
  102. package/external/date/test/date_test/weekday_sum.fail.cpp +0 -32
  103. package/external/date/test/date_test/year.pass.cpp +0 -146
  104. package/external/date/test/date_test/year_month.pass.cpp +0 -142
  105. package/external/date/test/date_test/year_month_day.pass.cpp +0 -244
  106. package/external/date/test/date_test/year_month_day_last.pass.cpp +0 -177
  107. package/external/date/test/date_test/year_month_day_m_year_month_day.fail.cpp +0 -33
  108. package/external/date/test/date_test/year_month_day_p_year_month_day.fail.cpp +0 -33
  109. package/external/date/test/date_test/year_month_p_year_month.fail.cpp +0 -33
  110. package/external/date/test/date_test/year_month_weekday.pass.cpp +0 -178
  111. package/external/date/test/date_test/year_month_weekday_last.pass.cpp +0 -169
  112. package/external/date/test/date_test/year_p_year.fail.cpp +0 -32
  113. package/external/date/test/date_test/years_m_year.fail.cpp +0 -32
  114. package/external/date/test/date_test/years_m_year_month.fail.cpp +0 -33
  115. package/external/date/test/date_test/years_m_year_month_day.fail.cpp +0 -33
  116. package/external/date/test/iso_week/last.pass.cpp +0 -34
  117. package/external/date/test/iso_week/lastweek_weekday.pass.cpp +0 -82
  118. package/external/date/test/iso_week/op_div_survey.pass.cpp +0 -196
  119. package/external/date/test/iso_week/weekday.pass.cpp +0 -227
  120. package/external/date/test/iso_week/weekday_lessthan.fail.cpp +0 -32
  121. package/external/date/test/iso_week/weekday_sum.fail.cpp +0 -32
  122. package/external/date/test/iso_week/weeknum.pass.cpp +0 -121
  123. package/external/date/test/iso_week/weeknum_p_weeknum.fail.cpp +0 -32
  124. package/external/date/test/iso_week/weeknum_weekday.pass.cpp +0 -86
  125. package/external/date/test/iso_week/year.pass.cpp +0 -120
  126. package/external/date/test/iso_week/year_lastweek.pass.cpp +0 -97
  127. package/external/date/test/iso_week/year_lastweek_weekday.pass.cpp +0 -129
  128. package/external/date/test/iso_week/year_p_year.fail.cpp +0 -32
  129. package/external/date/test/iso_week/year_weeknum.pass.cpp +0 -97
  130. package/external/date/test/iso_week/year_weeknum_weekday.pass.cpp +0 -139
  131. package/external/date/test/iso_week/years_m_year.fail.cpp +0 -32
  132. package/external/date/test/just.pass.cpp +0 -26
  133. package/external/date/test/testit +0 -177
  134. package/external/date/test/tz_test/OffsetZone.pass.cpp +0 -81
  135. package/external/date/test/tz_test/README.md +0 -22
  136. package/external/date/test/tz_test/tzdata2015e.txt.zip +0 -0
  137. package/external/date/test/tz_test/tzdata2015f.txt.zip +0 -0
  138. package/external/date/test/tz_test/tzdata2016c.txt.zip +0 -0
  139. package/external/date/test/tz_test/tzdata2016d.txt.zip +0 -0
  140. package/external/date/test/tz_test/tzdata2016e.txt.zip +0 -0
  141. package/external/date/test/tz_test/tzdata2016f.txt.zip +0 -0
  142. package/external/date/test/tz_test/validate.cpp +0 -165
  143. package/external/date/test/tz_test/zone.pass.cpp +0 -37
  144. package/external/date/test/tz_test/zoned_time.pass.cpp +0 -464
  145. package/external/date/test_fail.sh +0 -10
  146. package/external/rapidjson/.gitattributes +0 -22
  147. package/external/rapidjson/.gitmodules +0 -3
  148. package/external/rapidjson/.travis.yml +0 -99
  149. package/external/rapidjson/CHANGELOG.md +0 -158
  150. package/external/rapidjson/CMakeLists.txt +0 -221
  151. package/external/rapidjson/CMakeModules/FindGTestSrc.cmake +0 -30
  152. package/external/rapidjson/RapidJSON.pc.in +0 -7
  153. package/external/rapidjson/RapidJSONConfig.cmake.in +0 -15
  154. package/external/rapidjson/RapidJSONConfigVersion.cmake.in +0 -10
  155. package/external/rapidjson/appveyor.yml +0 -54
  156. package/external/rapidjson/bin/data/glossary.json +0 -22
  157. package/external/rapidjson/bin/data/menu.json +0 -27
  158. package/external/rapidjson/bin/data/readme.txt +0 -1
  159. package/external/rapidjson/bin/data/sample.json +0 -3315
  160. package/external/rapidjson/bin/data/webapp.json +0 -88
  161. package/external/rapidjson/bin/data/widget.json +0 -26
  162. package/external/rapidjson/bin/encodings/utf16be.json +0 -0
  163. package/external/rapidjson/bin/encodings/utf16bebom.json +0 -0
  164. package/external/rapidjson/bin/encodings/utf16le.json +0 -0
  165. package/external/rapidjson/bin/encodings/utf16lebom.json +0 -0
  166. package/external/rapidjson/bin/encodings/utf32be.json +0 -0
  167. package/external/rapidjson/bin/encodings/utf32bebom.json +0 -0
  168. package/external/rapidjson/bin/encodings/utf32le.json +0 -0
  169. package/external/rapidjson/bin/encodings/utf32lebom.json +0 -0
  170. package/external/rapidjson/bin/encodings/utf8.json +0 -7
  171. package/external/rapidjson/bin/encodings/utf8bom.json +0 -7
  172. package/external/rapidjson/bin/jsonchecker/fail1.json +0 -1
  173. package/external/rapidjson/bin/jsonchecker/fail10.json +0 -1
  174. package/external/rapidjson/bin/jsonchecker/fail11.json +0 -1
  175. package/external/rapidjson/bin/jsonchecker/fail12.json +0 -1
  176. package/external/rapidjson/bin/jsonchecker/fail13.json +0 -1
  177. package/external/rapidjson/bin/jsonchecker/fail14.json +0 -1
  178. package/external/rapidjson/bin/jsonchecker/fail15.json +0 -1
  179. package/external/rapidjson/bin/jsonchecker/fail16.json +0 -1
  180. package/external/rapidjson/bin/jsonchecker/fail17.json +0 -1
  181. package/external/rapidjson/bin/jsonchecker/fail18.json +0 -1
  182. package/external/rapidjson/bin/jsonchecker/fail19.json +0 -1
  183. package/external/rapidjson/bin/jsonchecker/fail2.json +0 -1
  184. package/external/rapidjson/bin/jsonchecker/fail20.json +0 -1
  185. package/external/rapidjson/bin/jsonchecker/fail21.json +0 -1
  186. package/external/rapidjson/bin/jsonchecker/fail22.json +0 -1
  187. package/external/rapidjson/bin/jsonchecker/fail23.json +0 -1
  188. package/external/rapidjson/bin/jsonchecker/fail24.json +0 -1
  189. package/external/rapidjson/bin/jsonchecker/fail25.json +0 -1
  190. package/external/rapidjson/bin/jsonchecker/fail26.json +0 -1
  191. package/external/rapidjson/bin/jsonchecker/fail27.json +0 -2
  192. package/external/rapidjson/bin/jsonchecker/fail28.json +0 -2
  193. package/external/rapidjson/bin/jsonchecker/fail29.json +0 -1
  194. package/external/rapidjson/bin/jsonchecker/fail3.json +0 -1
  195. package/external/rapidjson/bin/jsonchecker/fail30.json +0 -1
  196. package/external/rapidjson/bin/jsonchecker/fail31.json +0 -1
  197. package/external/rapidjson/bin/jsonchecker/fail32.json +0 -1
  198. package/external/rapidjson/bin/jsonchecker/fail33.json +0 -1
  199. package/external/rapidjson/bin/jsonchecker/fail4.json +0 -1
  200. package/external/rapidjson/bin/jsonchecker/fail5.json +0 -1
  201. package/external/rapidjson/bin/jsonchecker/fail6.json +0 -1
  202. package/external/rapidjson/bin/jsonchecker/fail7.json +0 -1
  203. package/external/rapidjson/bin/jsonchecker/fail8.json +0 -1
  204. package/external/rapidjson/bin/jsonchecker/fail9.json +0 -1
  205. package/external/rapidjson/bin/jsonchecker/pass1.json +0 -58
  206. package/external/rapidjson/bin/jsonchecker/pass2.json +0 -1
  207. package/external/rapidjson/bin/jsonchecker/pass3.json +0 -6
  208. package/external/rapidjson/bin/jsonchecker/readme.txt +0 -3
  209. package/external/rapidjson/bin/types/booleans.json +0 -102
  210. package/external/rapidjson/bin/types/floats.json +0 -102
  211. package/external/rapidjson/bin/types/guids.json +0 -102
  212. package/external/rapidjson/bin/types/integers.json +0 -102
  213. package/external/rapidjson/bin/types/mixed.json +0 -592
  214. package/external/rapidjson/bin/types/nulls.json +0 -102
  215. package/external/rapidjson/bin/types/paragraphs.json +0 -102
  216. package/external/rapidjson/bin/types/readme.txt +0 -1
  217. package/external/rapidjson/contrib/natvis/LICENSE +0 -45
  218. package/external/rapidjson/contrib/natvis/README.md +0 -7
  219. package/external/rapidjson/contrib/natvis/rapidjson.natvis +0 -38
  220. package/external/rapidjson/doc/CMakeLists.txt +0 -27
  221. package/external/rapidjson/doc/Doxyfile.in +0 -2369
  222. package/external/rapidjson/doc/Doxyfile.zh-cn.in +0 -2369
  223. package/external/rapidjson/doc/diagram/architecture.dot +0 -50
  224. package/external/rapidjson/doc/diagram/architecture.png +0 -0
  225. package/external/rapidjson/doc/diagram/insituparsing.dot +0 -65
  226. package/external/rapidjson/doc/diagram/insituparsing.png +0 -0
  227. package/external/rapidjson/doc/diagram/iterative-parser-states-diagram.dot +0 -62
  228. package/external/rapidjson/doc/diagram/iterative-parser-states-diagram.png +0 -0
  229. package/external/rapidjson/doc/diagram/move1.dot +0 -47
  230. package/external/rapidjson/doc/diagram/move1.png +0 -0
  231. package/external/rapidjson/doc/diagram/move2.dot +0 -62
  232. package/external/rapidjson/doc/diagram/move2.png +0 -0
  233. package/external/rapidjson/doc/diagram/move3.dot +0 -60
  234. package/external/rapidjson/doc/diagram/move3.png +0 -0
  235. package/external/rapidjson/doc/diagram/normalparsing.dot +0 -56
  236. package/external/rapidjson/doc/diagram/normalparsing.png +0 -0
  237. package/external/rapidjson/doc/diagram/simpledom.dot +0 -54
  238. package/external/rapidjson/doc/diagram/simpledom.png +0 -0
  239. package/external/rapidjson/doc/diagram/tutorial.dot +0 -58
  240. package/external/rapidjson/doc/diagram/tutorial.png +0 -0
  241. package/external/rapidjson/doc/diagram/utilityclass.dot +0 -73
  242. package/external/rapidjson/doc/diagram/utilityclass.png +0 -0
  243. package/external/rapidjson/doc/dom.md +0 -280
  244. package/external/rapidjson/doc/dom.zh-cn.md +0 -284
  245. package/external/rapidjson/doc/encoding.md +0 -146
  246. package/external/rapidjson/doc/encoding.zh-cn.md +0 -152
  247. package/external/rapidjson/doc/faq.md +0 -289
  248. package/external/rapidjson/doc/faq.zh-cn.md +0 -290
  249. package/external/rapidjson/doc/features.md +0 -104
  250. package/external/rapidjson/doc/features.zh-cn.md +0 -103
  251. package/external/rapidjson/doc/internals.md +0 -368
  252. package/external/rapidjson/doc/internals.zh-cn.md +0 -363
  253. package/external/rapidjson/doc/logo/rapidjson.png +0 -0
  254. package/external/rapidjson/doc/logo/rapidjson.svg +0 -119
  255. package/external/rapidjson/doc/misc/DoxygenLayout.xml +0 -194
  256. package/external/rapidjson/doc/misc/doxygenextra.css +0 -274
  257. package/external/rapidjson/doc/misc/footer.html +0 -11
  258. package/external/rapidjson/doc/misc/header.html +0 -24
  259. package/external/rapidjson/doc/npm.md +0 -31
  260. package/external/rapidjson/doc/performance.md +0 -26
  261. package/external/rapidjson/doc/performance.zh-cn.md +0 -26
  262. package/external/rapidjson/doc/pointer.md +0 -234
  263. package/external/rapidjson/doc/pointer.zh-cn.md +0 -234
  264. package/external/rapidjson/doc/sax.md +0 -509
  265. package/external/rapidjson/doc/sax.zh-cn.md +0 -487
  266. package/external/rapidjson/doc/schema.md +0 -505
  267. package/external/rapidjson/doc/schema.zh-cn.md +0 -237
  268. package/external/rapidjson/doc/stream.md +0 -429
  269. package/external/rapidjson/doc/stream.zh-cn.md +0 -429
  270. package/external/rapidjson/doc/tutorial.md +0 -536
  271. package/external/rapidjson/doc/tutorial.zh-cn.md +0 -535
  272. package/external/rapidjson/docker/debian/Dockerfile +0 -8
  273. package/external/rapidjson/example/CMakeLists.txt +0 -45
  274. package/external/rapidjson/example/archiver/archiver.cpp +0 -292
  275. package/external/rapidjson/example/archiver/archiver.h +0 -145
  276. package/external/rapidjson/example/archiver/archivertest.cpp +0 -287
  277. package/external/rapidjson/example/capitalize/capitalize.cpp +0 -67
  278. package/external/rapidjson/example/condense/condense.cpp +0 -32
  279. package/external/rapidjson/example/filterkey/filterkey.cpp +0 -135
  280. package/external/rapidjson/example/filterkeydom/filterkeydom.cpp +0 -170
  281. package/external/rapidjson/example/jsonx/jsonx.cpp +0 -207
  282. package/external/rapidjson/example/lookaheadparser/lookaheadparser.cpp +0 -350
  283. package/external/rapidjson/example/messagereader/messagereader.cpp +0 -105
  284. package/external/rapidjson/example/parsebyparts/parsebyparts.cpp +0 -176
  285. package/external/rapidjson/example/pretty/pretty.cpp +0 -30
  286. package/external/rapidjson/example/prettyauto/prettyauto.cpp +0 -56
  287. package/external/rapidjson/example/schemavalidator/schemavalidator.cpp +0 -78
  288. package/external/rapidjson/example/serialize/serialize.cpp +0 -173
  289. package/external/rapidjson/example/simpledom/simpledom.cpp +0 -29
  290. package/external/rapidjson/example/simplepullreader/simplepullreader.cpp +0 -53
  291. package/external/rapidjson/example/simplereader/simplereader.cpp +0 -42
  292. package/external/rapidjson/example/simplewriter/simplewriter.cpp +0 -36
  293. package/external/rapidjson/example/tutorial/tutorial.cpp +0 -151
  294. package/external/rapidjson/include/rapidjson/allocators.h +0 -284
  295. package/external/rapidjson/include/rapidjson/cursorstreamwrapper.h +0 -78
  296. package/external/rapidjson/include/rapidjson/document.h +0 -2646
  297. package/external/rapidjson/include/rapidjson/encodedstream.h +0 -299
  298. package/external/rapidjson/include/rapidjson/encodings.h +0 -716
  299. package/external/rapidjson/include/rapidjson/error/en.h +0 -74
  300. package/external/rapidjson/include/rapidjson/error/error.h +0 -161
  301. package/external/rapidjson/include/rapidjson/filereadstream.h +0 -99
  302. package/external/rapidjson/include/rapidjson/filewritestream.h +0 -104
  303. package/external/rapidjson/include/rapidjson/fwd.h +0 -151
  304. package/external/rapidjson/include/rapidjson/internal/biginteger.h +0 -290
  305. package/external/rapidjson/include/rapidjson/internal/diyfp.h +0 -271
  306. package/external/rapidjson/include/rapidjson/internal/dtoa.h +0 -245
  307. package/external/rapidjson/include/rapidjson/internal/ieee754.h +0 -78
  308. package/external/rapidjson/include/rapidjson/internal/itoa.h +0 -308
  309. package/external/rapidjson/include/rapidjson/internal/meta.h +0 -186
  310. package/external/rapidjson/include/rapidjson/internal/pow10.h +0 -55
  311. package/external/rapidjson/include/rapidjson/internal/regex.h +0 -732
  312. package/external/rapidjson/include/rapidjson/internal/stack.h +0 -231
  313. package/external/rapidjson/include/rapidjson/internal/strfunc.h +0 -69
  314. package/external/rapidjson/include/rapidjson/internal/strtod.h +0 -290
  315. package/external/rapidjson/include/rapidjson/internal/swap.h +0 -46
  316. package/external/rapidjson/include/rapidjson/istreamwrapper.h +0 -113
  317. package/external/rapidjson/include/rapidjson/memorybuffer.h +0 -70
  318. package/external/rapidjson/include/rapidjson/memorystream.h +0 -71
  319. package/external/rapidjson/include/rapidjson/msinttypes/inttypes.h +0 -316
  320. package/external/rapidjson/include/rapidjson/msinttypes/stdint.h +0 -300
  321. package/external/rapidjson/include/rapidjson/ostreamwrapper.h +0 -81
  322. package/external/rapidjson/include/rapidjson/pointer.h +0 -1357
  323. package/external/rapidjson/include/rapidjson/prettywriter.h +0 -277
  324. package/external/rapidjson/include/rapidjson/rapidjson.h +0 -654
  325. package/external/rapidjson/include/rapidjson/reader.h +0 -2230
  326. package/external/rapidjson/include/rapidjson/schema.h +0 -2494
  327. package/external/rapidjson/include/rapidjson/stream.h +0 -223
  328. package/external/rapidjson/include/rapidjson/stringbuffer.h +0 -121
  329. package/external/rapidjson/include/rapidjson/writer.h +0 -710
  330. package/external/rapidjson/include_dirs.js +0 -2
  331. package/external/rapidjson/library.json +0 -15
  332. package/external/rapidjson/license.txt +0 -57
  333. package/external/rapidjson/package.json +0 -24
  334. package/external/rapidjson/rapidjson.autopkg +0 -77
  335. package/external/rapidjson/readme.md +0 -160
  336. package/external/rapidjson/readme.zh-cn.md +0 -152
  337. package/external/rapidjson/test/CMakeLists.txt +0 -20
  338. package/external/rapidjson/test/perftest/CMakeLists.txt +0 -28
  339. package/external/rapidjson/test/perftest/misctest.cpp +0 -974
  340. package/external/rapidjson/test/perftest/perftest.cpp +0 -24
  341. package/external/rapidjson/test/perftest/perftest.h +0 -185
  342. package/external/rapidjson/test/perftest/platformtest.cpp +0 -166
  343. package/external/rapidjson/test/perftest/rapidjsontest.cpp +0 -472
  344. package/external/rapidjson/test/perftest/schematest.cpp +0 -223
  345. package/external/rapidjson/test/unittest/CMakeLists.txt +0 -92
  346. package/external/rapidjson/test/unittest/allocatorstest.cpp +0 -100
  347. package/external/rapidjson/test/unittest/bigintegertest.cpp +0 -138
  348. package/external/rapidjson/test/unittest/cursorstreamwrappertest.cpp +0 -115
  349. package/external/rapidjson/test/unittest/documenttest.cpp +0 -672
  350. package/external/rapidjson/test/unittest/dtoatest.cpp +0 -98
  351. package/external/rapidjson/test/unittest/encodedstreamtest.cpp +0 -313
  352. package/external/rapidjson/test/unittest/encodingstest.cpp +0 -451
  353. package/external/rapidjson/test/unittest/filestreamtest.cpp +0 -112
  354. package/external/rapidjson/test/unittest/fwdtest.cpp +0 -230
  355. package/external/rapidjson/test/unittest/istreamwrappertest.cpp +0 -181
  356. package/external/rapidjson/test/unittest/itoatest.cpp +0 -160
  357. package/external/rapidjson/test/unittest/jsoncheckertest.cpp +0 -143
  358. package/external/rapidjson/test/unittest/namespacetest.cpp +0 -70
  359. package/external/rapidjson/test/unittest/ostreamwrappertest.cpp +0 -92
  360. package/external/rapidjson/test/unittest/pointertest.cpp +0 -1529
  361. package/external/rapidjson/test/unittest/prettywritertest.cpp +0 -373
  362. package/external/rapidjson/test/unittest/readertest.cpp +0 -2190
  363. package/external/rapidjson/test/unittest/regextest.cpp +0 -638
  364. package/external/rapidjson/test/unittest/schematest.cpp +0 -2072
  365. package/external/rapidjson/test/unittest/simdtest.cpp +0 -219
  366. package/external/rapidjson/test/unittest/strfunctest.cpp +0 -30
  367. package/external/rapidjson/test/unittest/stringbuffertest.cpp +0 -192
  368. package/external/rapidjson/test/unittest/strtodtest.cpp +0 -132
  369. package/external/rapidjson/test/unittest/unittest.cpp +0 -51
  370. package/external/rapidjson/test/unittest/unittest.h +0 -140
  371. package/external/rapidjson/test/unittest/valuetest.cpp +0 -1851
  372. package/external/rapidjson/test/unittest/writertest.cpp +0 -598
  373. package/external/rapidjson/test/valgrind.supp +0 -17
  374. package/external/rapidjson/thirdparty/gtest/.travis.yml +0 -81
  375. package/external/rapidjson/thirdparty/gtest/BUILD.bazel +0 -175
  376. package/external/rapidjson/thirdparty/gtest/CMakeLists.txt +0 -33
  377. package/external/rapidjson/thirdparty/gtest/CONTRIBUTING.md +0 -160
  378. package/external/rapidjson/thirdparty/gtest/LICENSE +0 -28
  379. package/external/rapidjson/thirdparty/gtest/Makefile.am +0 -14
  380. package/external/rapidjson/thirdparty/gtest/README.md +0 -122
  381. package/external/rapidjson/thirdparty/gtest/WORKSPACE +0 -8
  382. package/external/rapidjson/thirdparty/gtest/appveyor.yml +0 -104
  383. package/external/rapidjson/thirdparty/gtest/ci/build-linux-autotools.sh +0 -44
  384. package/external/rapidjson/thirdparty/gtest/ci/build-linux-bazel.sh +0 -36
  385. package/external/rapidjson/thirdparty/gtest/ci/env-linux.sh +0 -41
  386. package/external/rapidjson/thirdparty/gtest/ci/env-osx.sh +0 -40
  387. package/external/rapidjson/thirdparty/gtest/ci/get-nprocessors.sh +0 -48
  388. package/external/rapidjson/thirdparty/gtest/ci/install-linux.sh +0 -49
  389. package/external/rapidjson/thirdparty/gtest/ci/install-osx.sh +0 -39
  390. package/external/rapidjson/thirdparty/gtest/ci/log-config.sh +0 -51
  391. package/external/rapidjson/thirdparty/gtest/ci/travis.sh +0 -44
  392. package/external/rapidjson/thirdparty/gtest/configure.ac +0 -16
  393. package/external/rapidjson/thirdparty/gtest/googlemock/CHANGES +0 -126
  394. package/external/rapidjson/thirdparty/gtest/googlemock/CMakeLists.txt +0 -242
  395. package/external/rapidjson/thirdparty/gtest/googlemock/CONTRIBUTORS +0 -40
  396. package/external/rapidjson/thirdparty/gtest/googlemock/LICENSE +0 -28
  397. package/external/rapidjson/thirdparty/gtest/googlemock/Makefile.am +0 -224
  398. package/external/rapidjson/thirdparty/gtest/googlemock/README.md +0 -344
  399. package/external/rapidjson/thirdparty/gtest/googlemock/build-aux/.keep +0 -0
  400. package/external/rapidjson/thirdparty/gtest/googlemock/cmake/gmock.pc.in +0 -9
  401. package/external/rapidjson/thirdparty/gtest/googlemock/cmake/gmock_main.pc.in +0 -9
  402. package/external/rapidjson/thirdparty/gtest/googlemock/configure.ac +0 -146
  403. package/external/rapidjson/thirdparty/gtest/googlemock/docs/CheatSheet.md +0 -564
  404. package/external/rapidjson/thirdparty/gtest/googlemock/docs/CookBook.md +0 -3660
  405. package/external/rapidjson/thirdparty/gtest/googlemock/docs/DesignDoc.md +0 -280
  406. package/external/rapidjson/thirdparty/gtest/googlemock/docs/Documentation.md +0 -15
  407. package/external/rapidjson/thirdparty/gtest/googlemock/docs/ForDummies.md +0 -447
  408. package/external/rapidjson/thirdparty/gtest/googlemock/docs/FrequentlyAskedQuestions.md +0 -627
  409. package/external/rapidjson/thirdparty/gtest/googlemock/docs/KnownIssues.md +0 -19
  410. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-actions.h +0 -1262
  411. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-cardinalities.h +0 -147
  412. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h +0 -2571
  413. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h.pump +0 -833
  414. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h +0 -1379
  415. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h.pump +0 -347
  416. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h +0 -2258
  417. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h.pump +0 -675
  418. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h +0 -458
  419. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h.pump +0 -178
  420. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-matchers.h +0 -5255
  421. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-more-actions.h +0 -246
  422. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-more-matchers.h +0 -91
  423. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-spec-builders.h +0 -1918
  424. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock.h +0 -95
  425. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h +0 -8
  426. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h.pump +0 -10
  427. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-matchers.h +0 -38
  428. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-port.h +0 -46
  429. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h +0 -286
  430. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h.pump +0 -136
  431. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-internal-utils.h +0 -574
  432. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-port.h +0 -87
  433. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock.sln +0 -32
  434. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock.vcproj +0 -191
  435. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_config.vsprops +0 -15
  436. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_main.vcproj +0 -187
  437. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_test.vcproj +0 -201
  438. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.sln +0 -46
  439. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.vcxproj +0 -145
  440. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_config.props +0 -19
  441. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_main.vcxproj +0 -151
  442. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_test.vcxproj +0 -176
  443. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.sln +0 -46
  444. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.vcxproj +0 -145
  445. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_config.props +0 -19
  446. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_main.vcxproj +0 -151
  447. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_test.vcxproj +0 -176
  448. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/fuse_gmock_files.py +0 -240
  449. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/LICENSE +0 -203
  450. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/README +0 -34
  451. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/README.cppclean +0 -115
  452. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/__init__.py +0 -0
  453. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/ast.py +0 -1733
  454. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/gmock_class.py +0 -227
  455. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/gmock_class_test.py +0 -448
  456. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/keywords.py +0 -59
  457. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/tokenize.py +0 -287
  458. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/utils.py +0 -41
  459. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/gmock_gen.py +0 -31
  460. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/gmock-config.in +0 -303
  461. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/gmock_doctor.py +0 -640
  462. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/upload.py +0 -1387
  463. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/upload_gmock.py +0 -78
  464. package/external/rapidjson/thirdparty/gtest/googlemock/src/gmock-all.cc +0 -47
  465. package/external/rapidjson/thirdparty/gtest/googlemock/src/gmock-cardinalities.cc +0 -156
  466. package/external/rapidjson/thirdparty/gtest/googlemock/src/gmock-internal-utils.cc +0 -204
  467. package/external/rapidjson/thirdparty/gtest/googlemock/src/gmock-matchers.cc +0 -573
  468. package/external/rapidjson/thirdparty/gtest/googlemock/src/gmock-spec-builders.cc +0 -883
  469. package/external/rapidjson/thirdparty/gtest/googlemock/src/gmock.cc +0 -205
  470. package/external/rapidjson/thirdparty/gtest/googlemock/src/gmock_main.cc +0 -54
  471. package/external/rapidjson/thirdparty/gtest/googlemock/test/BUILD.bazel +0 -123
  472. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-actions_test.cc +0 -1575
  473. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-cardinalities_test.cc +0 -428
  474. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-actions_test.cc +0 -1230
  475. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-function-mockers_test.cc +0 -647
  476. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-internal-utils_test.cc +0 -129
  477. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-matchers_test.cc +0 -1341
  478. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-internal-utils_test.cc +0 -718
  479. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-matchers_test.cc +0 -6767
  480. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-more-actions_test.cc +0 -710
  481. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-nice-strict_test.cc +0 -511
  482. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-port_test.cc +0 -43
  483. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-spec-builders_test.cc +0 -2771
  484. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_all_test.cc +0 -51
  485. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_ex_test.cc +0 -81
  486. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_leak_test.py +0 -108
  487. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_leak_test_.cc +0 -100
  488. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_link2_test.cc +0 -40
  489. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.cc +0 -40
  490. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.h +0 -691
  491. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test.py +0 -183
  492. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_.cc +0 -310
  493. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_golden.txt +0 -317
  494. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_stress_test.cc +0 -323
  495. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_test.cc +0 -262
  496. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_test_utils.py +0 -110
  497. package/external/rapidjson/thirdparty/gtest/googletest/CHANGES +0 -157
  498. package/external/rapidjson/thirdparty/gtest/googletest/CMakeLists.txt +0 -312
  499. package/external/rapidjson/thirdparty/gtest/googletest/CONTRIBUTORS +0 -37
  500. package/external/rapidjson/thirdparty/gtest/googletest/LICENSE +0 -28
  501. package/external/rapidjson/thirdparty/gtest/googletest/Makefile.am +0 -339
  502. package/external/rapidjson/thirdparty/gtest/googletest/README.md +0 -341
  503. package/external/rapidjson/thirdparty/gtest/googletest/cmake/gtest.pc.in +0 -9
  504. package/external/rapidjson/thirdparty/gtest/googletest/cmake/gtest_main.pc.in +0 -10
  505. package/external/rapidjson/thirdparty/gtest/googletest/cmake/internal_utils.cmake +0 -280
  506. package/external/rapidjson/thirdparty/gtest/googletest/codegear/gtest.cbproj +0 -138
  507. package/external/rapidjson/thirdparty/gtest/googletest/codegear/gtest.groupproj +0 -54
  508. package/external/rapidjson/thirdparty/gtest/googletest/codegear/gtest_all.cc +0 -38
  509. package/external/rapidjson/thirdparty/gtest/googletest/codegear/gtest_link.cc +0 -40
  510. package/external/rapidjson/thirdparty/gtest/googletest/codegear/gtest_main.cbproj +0 -82
  511. package/external/rapidjson/thirdparty/gtest/googletest/codegear/gtest_unittest.cbproj +0 -88
  512. package/external/rapidjson/thirdparty/gtest/googletest/configure.ac +0 -68
  513. package/external/rapidjson/thirdparty/gtest/googletest/docs/Pkgconfig.md +0 -146
  514. package/external/rapidjson/thirdparty/gtest/googletest/docs/PumpManual.md +0 -177
  515. package/external/rapidjson/thirdparty/gtest/googletest/docs/XcodeGuide.md +0 -93
  516. package/external/rapidjson/thirdparty/gtest/googletest/docs/advanced.md +0 -2416
  517. package/external/rapidjson/thirdparty/gtest/googletest/docs/faq.md +0 -1092
  518. package/external/rapidjson/thirdparty/gtest/googletest/docs/primer.md +0 -536
  519. package/external/rapidjson/thirdparty/gtest/googletest/docs/samples.md +0 -14
  520. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-death-test.h +0 -342
  521. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-message.h +0 -249
  522. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h +0 -1438
  523. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h.pump +0 -501
  524. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-printers.h +0 -1082
  525. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-spi.h +0 -231
  526. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-test-part.h +0 -179
  527. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-typed-test.h +0 -264
  528. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest.h +0 -2332
  529. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_pred_impl.h +0 -357
  530. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_prod.h +0 -61
  531. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest-port.h +0 -70
  532. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest-printers.h +0 -42
  533. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest.h +0 -45
  534. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-death-test-internal.h +0 -275
  535. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-filepath.h +0 -205
  536. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-internal.h +0 -1277
  537. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-linked_ptr.h +0 -243
  538. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h +0 -5139
  539. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +0 -279
  540. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util.h +0 -723
  541. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port-arch.h +0 -100
  542. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port.h +0 -2687
  543. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-string.h +0 -167
  544. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-tuple.h +0 -1020
  545. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-tuple.h.pump +0 -347
  546. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h +0 -3347
  547. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h.pump +0 -313
  548. package/external/rapidjson/thirdparty/gtest/googletest/m4/acx_pthread.m4 +0 -363
  549. package/external/rapidjson/thirdparty/gtest/googletest/m4/gtest.m4 +0 -74
  550. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest-md.sln +0 -55
  551. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest-md.vcxproj +0 -149
  552. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest-md.vcxproj.filters +0 -18
  553. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest.sln +0 -55
  554. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest.vcxproj +0 -149
  555. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest.vcxproj.filters +0 -18
  556. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main-md.vcxproj +0 -154
  557. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main-md.vcxproj.filters +0 -18
  558. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main.vcxproj +0 -162
  559. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main.vcxproj.filters +0 -18
  560. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test-md.vcxproj +0 -199
  561. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test-md.vcxproj.filters +0 -26
  562. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test.vcxproj +0 -191
  563. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test.vcxproj.filters +0 -26
  564. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest-md.vcxproj +0 -188
  565. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest-md.vcxproj.filters +0 -18
  566. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest.vcxproj +0 -180
  567. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest.vcxproj.filters +0 -18
  568. package/external/rapidjson/thirdparty/gtest/googletest/samples/prime_tables.h +0 -127
  569. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample1.cc +0 -68
  570. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample1.h +0 -43
  571. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample10_unittest.cc +0 -140
  572. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample1_unittest.cc +0 -154
  573. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample2.cc +0 -56
  574. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample2.h +0 -85
  575. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample2_unittest.cc +0 -110
  576. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample3-inl.h +0 -172
  577. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample3_unittest.cc +0 -152
  578. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample4.cc +0 -46
  579. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample4.h +0 -53
  580. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample4_unittest.cc +0 -49
  581. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample5_unittest.cc +0 -199
  582. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample6_unittest.cc +0 -225
  583. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample7_unittest.cc +0 -118
  584. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample8_unittest.cc +0 -174
  585. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample9_unittest.cc +0 -157
  586. package/external/rapidjson/thirdparty/gtest/googletest/scripts/common.py +0 -83
  587. package/external/rapidjson/thirdparty/gtest/googletest/scripts/fuse_gtest_files.py +0 -253
  588. package/external/rapidjson/thirdparty/gtest/googletest/scripts/gen_gtest_pred_impl.py +0 -730
  589. package/external/rapidjson/thirdparty/gtest/googletest/scripts/gtest-config.in +0 -274
  590. package/external/rapidjson/thirdparty/gtest/googletest/scripts/pump.py +0 -855
  591. package/external/rapidjson/thirdparty/gtest/googletest/scripts/release_docs.py +0 -158
  592. package/external/rapidjson/thirdparty/gtest/googletest/scripts/upload.py +0 -1387
  593. package/external/rapidjson/thirdparty/gtest/googletest/scripts/upload_gtest.py +0 -78
  594. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest-all.cc +0 -48
  595. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest-death-test.cc +0 -1536
  596. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest-filepath.cc +0 -385
  597. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest-internal-inl.h +0 -1175
  598. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest-port.cc +0 -1277
  599. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest-printers.cc +0 -458
  600. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest-test-part.cc +0 -102
  601. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest-typed-test.cc +0 -119
  602. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest.cc +0 -5846
  603. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest_main.cc +0 -38
  604. package/external/rapidjson/thirdparty/gtest/googletest/test/BUILD.bazel +0 -396
  605. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-death-test_ex_test.cc +0 -93
  606. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-death-test_test.cc +0 -1424
  607. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-filepath_test.cc +0 -652
  608. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-linked_ptr_test.cc +0 -154
  609. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-listener_test.cc +0 -311
  610. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-message_test.cc +0 -159
  611. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-options_test.cc +0 -213
  612. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test2_test.cc +0 -61
  613. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.cc +0 -1110
  614. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.h +0 -53
  615. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-port_test.cc +0 -1303
  616. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-printers_test.cc +0 -1737
  617. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-test-part_test.cc +0 -208
  618. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-tuple_test.cc +0 -320
  619. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test2_test.cc +0 -45
  620. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test_test.cc +0 -380
  621. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test_test.h +0 -66
  622. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-unittest-api_test.cc +0 -341
  623. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_all_test.cc +0 -47
  624. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_assert_by_exception_test.cc +0 -119
  625. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest.py +0 -210
  626. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest_.cc +0 -87
  627. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test.py +0 -235
  628. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test_.cc +0 -311
  629. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test.py +0 -129
  630. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test_.cc +0 -63
  631. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test.py +0 -119
  632. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test_.cc +0 -124
  633. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_environment_test.cc +0 -189
  634. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest.py +0 -638
  635. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest_.cc +0 -138
  636. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_help_test.py +0 -172
  637. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_help_test_.cc +0 -46
  638. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_json_outfiles_test.py +0 -162
  639. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_json_output_unittest.py +0 -611
  640. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_json_test_utils.py +0 -60
  641. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_list_tests_unittest.py +0 -207
  642. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_list_tests_unittest_.cc +0 -157
  643. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_main_unittest.cc +0 -45
  644. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_no_test_unittest.cc +0 -56
  645. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test.py +0 -344
  646. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_.cc +0 -1067
  647. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_golden_lin.txt +0 -781
  648. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_pred_impl_unittest.cc +0 -2427
  649. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_premature_exit_test.cc +0 -127
  650. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_prod_test.cc +0 -57
  651. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_repeat_test.cc +0 -236
  652. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_shuffle_test.py +0 -325
  653. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_shuffle_test_.cc +0 -103
  654. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_sole_header_test.cc +0 -57
  655. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_stress_test.cc +0 -250
  656. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_test_utils.py +0 -318
  657. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_testbridge_test.py +0 -65
  658. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_testbridge_test_.cc +0 -44
  659. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_ex_test.cc +0 -92
  660. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_test.py +0 -171
  661. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_test_.cc +0 -72
  662. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test.py +0 -69
  663. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test_.cc +0 -43
  664. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_unittest.cc +0 -7797
  665. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile1_test_.cc +0 -48
  666. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile2_test_.cc +0 -48
  667. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfiles_test.py +0 -140
  668. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest.py +0 -378
  669. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest_.cc +0 -179
  670. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_test_utils.py +0 -196
  671. package/external/rapidjson/thirdparty/gtest/googletest/test/production.cc +0 -36
  672. package/external/rapidjson/thirdparty/gtest/googletest/test/production.h +0 -55
  673. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Config/DebugProject.xcconfig +0 -30
  674. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Config/FrameworkTarget.xcconfig +0 -17
  675. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Config/General.xcconfig +0 -41
  676. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Config/ReleaseProject.xcconfig +0 -32
  677. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Config/StaticLibraryTarget.xcconfig +0 -18
  678. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Config/TestTarget.xcconfig +0 -8
  679. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Resources/Info.plist +0 -30
  680. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/Info.plist +0 -28
  681. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj +0 -457
  682. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/runtests.sh +0 -62
  683. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget.cc +0 -63
  684. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget.h +0 -59
  685. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget_test.cc +0 -68
  686. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Scripts/runtests.sh +0 -65
  687. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Scripts/versiongenerate.py +0 -100
  688. package/external/rapidjson/thirdparty/gtest/googletest/xcode/gtest.xcodeproj/project.pbxproj +0 -1182
  689. package/external/rapidjson/travis-doxygen.sh +0 -121
  690. package/include/.clang-format +0 -76
  691. package/include/eosio/abi.hpp +0 -286
  692. package/include/eosio/asset.hpp +0 -458
  693. package/include/eosio/bytes.hpp +0 -27
  694. package/include/eosio/chain_conversions.hpp +0 -450
  695. package/include/eosio/chain_types.hpp +0 -14
  696. package/include/eosio/check.hpp +0 -178
  697. package/include/eosio/convert.hpp +0 -95
  698. package/include/eosio/crypto.hpp +0 -147
  699. package/include/eosio/eosio_outcome.hpp +0 -41
  700. package/include/eosio/fixed_bytes.hpp +0 -246
  701. package/include/eosio/float.hpp +0 -35
  702. package/include/eosio/for_each_field.hpp +0 -48
  703. package/include/eosio/fpconv.c +0 -336
  704. package/include/eosio/fpconv.h +0 -41
  705. package/include/eosio/fpconv.license +0 -23
  706. package/include/eosio/from_bin.hpp +0 -272
  707. package/include/eosio/from_json.hpp +0 -737
  708. package/include/eosio/from_string.hpp +0 -28
  709. package/include/eosio/map_macro.h +0 -64
  710. package/include/eosio/murmur.hpp +0 -55
  711. package/include/eosio/name.hpp +0 -174
  712. package/include/eosio/opaque.hpp +0 -108
  713. package/include/eosio/operators.hpp +0 -71
  714. package/include/eosio/powers.h +0 -76
  715. package/include/eosio/reflection.hpp +0 -61
  716. package/include/eosio/ship_protocol.hpp +0 -850
  717. package/include/eosio/stream.hpp +0 -231
  718. package/include/eosio/symbol.hpp +0 -300
  719. package/include/eosio/time.hpp +0 -264
  720. package/include/eosio/to_bin.hpp +0 -189
  721. package/include/eosio/to_json.hpp +0 -279
  722. package/include/eosio/to_key.hpp +0 -298
  723. package/include/eosio/types.hpp +0 -97
  724. package/include/eosio/varint.hpp +0 -452
  725. package/include/outcome-basic.hpp +0 -6836
  726. package/src/abi.cpp +0 -297
  727. package/src/abieos.cpp +0 -263
  728. package/src/abieos.h +0 -76
  729. package/src/abieos.hpp +0 -1010
  730. package/src/abieos_exception.hpp +0 -89
  731. package/src/abieos_numeric.hpp +0 -94
  732. package/src/abieos_ripemd160.hpp +0 -417
  733. package/src/crypto.cpp +0 -215
  734. package/src/key_test.cpp +0 -218
  735. package/src/main.cpp +0 -242
  736. package/src/reflect_test.cpp +0 -28
  737. package/src/template_test.cpp +0 -240
  738. package/src/test.cpp +0 -940
  739. package/tools/CMakeLists.txt +0 -9
  740. package/tools/name.cpp +0 -86
@@ -1,2258 +0,0 @@
1
- // This file was GENERATED by command:
2
- // pump.py gmock-generated-matchers.h.pump
3
- // DO NOT EDIT BY HAND!!!
4
-
5
- // Copyright 2008, Google Inc.
6
- // All rights reserved.
7
- //
8
- // Redistribution and use in source and binary forms, with or without
9
- // modification, are permitted provided that the following conditions are
10
- // met:
11
- //
12
- // * Redistributions of source code must retain the above copyright
13
- // notice, this list of conditions and the following disclaimer.
14
- // * Redistributions in binary form must reproduce the above
15
- // copyright notice, this list of conditions and the following disclaimer
16
- // in the documentation and/or other materials provided with the
17
- // distribution.
18
- // * Neither the name of Google Inc. nor the names of its
19
- // contributors may be used to endorse or promote products derived from
20
- // this software without specific prior written permission.
21
- //
22
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
- // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
- // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25
- // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26
- // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27
- // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28
- // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29
- // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30
- // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
-
34
- // Google Mock - a framework for writing C++ mock classes.
35
- //
36
- // This file implements some commonly used variadic matchers.
37
-
38
- #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_MATCHERS_H_
39
- #define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_MATCHERS_H_
40
-
41
- #include <iterator>
42
- #include <sstream>
43
- #include <string>
44
- #include <vector>
45
- #include "gmock/gmock-matchers.h"
46
-
47
- namespace testing {
48
- namespace internal {
49
-
50
- // The type of the i-th (0-based) field of Tuple.
51
- #define GMOCK_FIELD_TYPE_(Tuple, i) \
52
- typename ::testing::tuple_element<i, Tuple>::type
53
-
54
- // TupleFields<Tuple, k0, ..., kn> is for selecting fields from a
55
- // tuple of type Tuple. It has two members:
56
- //
57
- // type: a tuple type whose i-th field is the ki-th field of Tuple.
58
- // GetSelectedFields(t): returns fields k0, ..., and kn of t as a tuple.
59
- //
60
- // For example, in class TupleFields<tuple<bool, char, int>, 2, 0>, we have:
61
- //
62
- // type is tuple<int, bool>, and
63
- // GetSelectedFields(make_tuple(true, 'a', 42)) is (42, true).
64
-
65
- template <class Tuple, int k0 = -1, int k1 = -1, int k2 = -1, int k3 = -1,
66
- int k4 = -1, int k5 = -1, int k6 = -1, int k7 = -1, int k8 = -1,
67
- int k9 = -1>
68
- class TupleFields;
69
-
70
- // This generic version is used when there are 10 selectors.
71
- template <class Tuple, int k0, int k1, int k2, int k3, int k4, int k5, int k6,
72
- int k7, int k8, int k9>
73
- class TupleFields {
74
- public:
75
- typedef ::testing::tuple<GMOCK_FIELD_TYPE_(Tuple, k0),
76
- GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2),
77
- GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4),
78
- GMOCK_FIELD_TYPE_(Tuple, k5), GMOCK_FIELD_TYPE_(Tuple, k6),
79
- GMOCK_FIELD_TYPE_(Tuple, k7), GMOCK_FIELD_TYPE_(Tuple, k8),
80
- GMOCK_FIELD_TYPE_(Tuple, k9)> type;
81
- static type GetSelectedFields(const Tuple& t) {
82
- return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t),
83
- get<k5>(t), get<k6>(t), get<k7>(t), get<k8>(t), get<k9>(t));
84
- }
85
- };
86
-
87
- // The following specialization is used for 0 ~ 9 selectors.
88
-
89
- template <class Tuple>
90
- class TupleFields<Tuple, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> {
91
- public:
92
- typedef ::testing::tuple<> type;
93
- static type GetSelectedFields(const Tuple& /* t */) {
94
- return type();
95
- }
96
- };
97
-
98
- template <class Tuple, int k0>
99
- class TupleFields<Tuple, k0, -1, -1, -1, -1, -1, -1, -1, -1, -1> {
100
- public:
101
- typedef ::testing::tuple<GMOCK_FIELD_TYPE_(Tuple, k0)> type;
102
- static type GetSelectedFields(const Tuple& t) {
103
- return type(get<k0>(t));
104
- }
105
- };
106
-
107
- template <class Tuple, int k0, int k1>
108
- class TupleFields<Tuple, k0, k1, -1, -1, -1, -1, -1, -1, -1, -1> {
109
- public:
110
- typedef ::testing::tuple<GMOCK_FIELD_TYPE_(Tuple, k0),
111
- GMOCK_FIELD_TYPE_(Tuple, k1)> type;
112
- static type GetSelectedFields(const Tuple& t) {
113
- return type(get<k0>(t), get<k1>(t));
114
- }
115
- };
116
-
117
- template <class Tuple, int k0, int k1, int k2>
118
- class TupleFields<Tuple, k0, k1, k2, -1, -1, -1, -1, -1, -1, -1> {
119
- public:
120
- typedef ::testing::tuple<GMOCK_FIELD_TYPE_(Tuple, k0),
121
- GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2)> type;
122
- static type GetSelectedFields(const Tuple& t) {
123
- return type(get<k0>(t), get<k1>(t), get<k2>(t));
124
- }
125
- };
126
-
127
- template <class Tuple, int k0, int k1, int k2, int k3>
128
- class TupleFields<Tuple, k0, k1, k2, k3, -1, -1, -1, -1, -1, -1> {
129
- public:
130
- typedef ::testing::tuple<GMOCK_FIELD_TYPE_(Tuple, k0),
131
- GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2),
132
- GMOCK_FIELD_TYPE_(Tuple, k3)> type;
133
- static type GetSelectedFields(const Tuple& t) {
134
- return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t));
135
- }
136
- };
137
-
138
- template <class Tuple, int k0, int k1, int k2, int k3, int k4>
139
- class TupleFields<Tuple, k0, k1, k2, k3, k4, -1, -1, -1, -1, -1> {
140
- public:
141
- typedef ::testing::tuple<GMOCK_FIELD_TYPE_(Tuple, k0),
142
- GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2),
143
- GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4)> type;
144
- static type GetSelectedFields(const Tuple& t) {
145
- return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t));
146
- }
147
- };
148
-
149
- template <class Tuple, int k0, int k1, int k2, int k3, int k4, int k5>
150
- class TupleFields<Tuple, k0, k1, k2, k3, k4, k5, -1, -1, -1, -1> {
151
- public:
152
- typedef ::testing::tuple<GMOCK_FIELD_TYPE_(Tuple, k0),
153
- GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2),
154
- GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4),
155
- GMOCK_FIELD_TYPE_(Tuple, k5)> type;
156
- static type GetSelectedFields(const Tuple& t) {
157
- return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t),
158
- get<k5>(t));
159
- }
160
- };
161
-
162
- template <class Tuple, int k0, int k1, int k2, int k3, int k4, int k5, int k6>
163
- class TupleFields<Tuple, k0, k1, k2, k3, k4, k5, k6, -1, -1, -1> {
164
- public:
165
- typedef ::testing::tuple<GMOCK_FIELD_TYPE_(Tuple, k0),
166
- GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2),
167
- GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4),
168
- GMOCK_FIELD_TYPE_(Tuple, k5), GMOCK_FIELD_TYPE_(Tuple, k6)> type;
169
- static type GetSelectedFields(const Tuple& t) {
170
- return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t),
171
- get<k5>(t), get<k6>(t));
172
- }
173
- };
174
-
175
- template <class Tuple, int k0, int k1, int k2, int k3, int k4, int k5, int k6,
176
- int k7>
177
- class TupleFields<Tuple, k0, k1, k2, k3, k4, k5, k6, k7, -1, -1> {
178
- public:
179
- typedef ::testing::tuple<GMOCK_FIELD_TYPE_(Tuple, k0),
180
- GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2),
181
- GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4),
182
- GMOCK_FIELD_TYPE_(Tuple, k5), GMOCK_FIELD_TYPE_(Tuple, k6),
183
- GMOCK_FIELD_TYPE_(Tuple, k7)> type;
184
- static type GetSelectedFields(const Tuple& t) {
185
- return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t),
186
- get<k5>(t), get<k6>(t), get<k7>(t));
187
- }
188
- };
189
-
190
- template <class Tuple, int k0, int k1, int k2, int k3, int k4, int k5, int k6,
191
- int k7, int k8>
192
- class TupleFields<Tuple, k0, k1, k2, k3, k4, k5, k6, k7, k8, -1> {
193
- public:
194
- typedef ::testing::tuple<GMOCK_FIELD_TYPE_(Tuple, k0),
195
- GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2),
196
- GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4),
197
- GMOCK_FIELD_TYPE_(Tuple, k5), GMOCK_FIELD_TYPE_(Tuple, k6),
198
- GMOCK_FIELD_TYPE_(Tuple, k7), GMOCK_FIELD_TYPE_(Tuple, k8)> type;
199
- static type GetSelectedFields(const Tuple& t) {
200
- return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t),
201
- get<k5>(t), get<k6>(t), get<k7>(t), get<k8>(t));
202
- }
203
- };
204
-
205
- #undef GMOCK_FIELD_TYPE_
206
-
207
- // Implements the Args() matcher.
208
- template <class ArgsTuple, int k0 = -1, int k1 = -1, int k2 = -1, int k3 = -1,
209
- int k4 = -1, int k5 = -1, int k6 = -1, int k7 = -1, int k8 = -1,
210
- int k9 = -1>
211
- class ArgsMatcherImpl : public MatcherInterface<ArgsTuple> {
212
- public:
213
- // ArgsTuple may have top-level const or reference modifiers.
214
- typedef GTEST_REMOVE_REFERENCE_AND_CONST_(ArgsTuple) RawArgsTuple;
215
- typedef typename internal::TupleFields<RawArgsTuple, k0, k1, k2, k3, k4, k5,
216
- k6, k7, k8, k9>::type SelectedArgs;
217
- typedef Matcher<const SelectedArgs&> MonomorphicInnerMatcher;
218
-
219
- template <typename InnerMatcher>
220
- explicit ArgsMatcherImpl(const InnerMatcher& inner_matcher)
221
- : inner_matcher_(SafeMatcherCast<const SelectedArgs&>(inner_matcher)) {}
222
-
223
- virtual bool MatchAndExplain(ArgsTuple args,
224
- MatchResultListener* listener) const {
225
- const SelectedArgs& selected_args = GetSelectedArgs(args);
226
- if (!listener->IsInterested())
227
- return inner_matcher_.Matches(selected_args);
228
-
229
- PrintIndices(listener->stream());
230
- *listener << "are " << PrintToString(selected_args);
231
-
232
- StringMatchResultListener inner_listener;
233
- const bool match = inner_matcher_.MatchAndExplain(selected_args,
234
- &inner_listener);
235
- PrintIfNotEmpty(inner_listener.str(), listener->stream());
236
- return match;
237
- }
238
-
239
- virtual void DescribeTo(::std::ostream* os) const {
240
- *os << "are a tuple ";
241
- PrintIndices(os);
242
- inner_matcher_.DescribeTo(os);
243
- }
244
-
245
- virtual void DescribeNegationTo(::std::ostream* os) const {
246
- *os << "are a tuple ";
247
- PrintIndices(os);
248
- inner_matcher_.DescribeNegationTo(os);
249
- }
250
-
251
- private:
252
- static SelectedArgs GetSelectedArgs(ArgsTuple args) {
253
- return TupleFields<RawArgsTuple, k0, k1, k2, k3, k4, k5, k6, k7, k8,
254
- k9>::GetSelectedFields(args);
255
- }
256
-
257
- // Prints the indices of the selected fields.
258
- static void PrintIndices(::std::ostream* os) {
259
- *os << "whose fields (";
260
- const int indices[10] = { k0, k1, k2, k3, k4, k5, k6, k7, k8, k9 };
261
- for (int i = 0; i < 10; i++) {
262
- if (indices[i] < 0)
263
- break;
264
-
265
- if (i >= 1)
266
- *os << ", ";
267
-
268
- *os << "#" << indices[i];
269
- }
270
- *os << ") ";
271
- }
272
-
273
- const MonomorphicInnerMatcher inner_matcher_;
274
-
275
- GTEST_DISALLOW_ASSIGN_(ArgsMatcherImpl);
276
- };
277
-
278
- template <class InnerMatcher, int k0 = -1, int k1 = -1, int k2 = -1,
279
- int k3 = -1, int k4 = -1, int k5 = -1, int k6 = -1, int k7 = -1,
280
- int k8 = -1, int k9 = -1>
281
- class ArgsMatcher {
282
- public:
283
- explicit ArgsMatcher(const InnerMatcher& inner_matcher)
284
- : inner_matcher_(inner_matcher) {}
285
-
286
- template <typename ArgsTuple>
287
- operator Matcher<ArgsTuple>() const {
288
- return MakeMatcher(new ArgsMatcherImpl<ArgsTuple, k0, k1, k2, k3, k4, k5,
289
- k6, k7, k8, k9>(inner_matcher_));
290
- }
291
-
292
- private:
293
- const InnerMatcher inner_matcher_;
294
-
295
- GTEST_DISALLOW_ASSIGN_(ArgsMatcher);
296
- };
297
-
298
- // A set of metafunctions for computing the result type of AllOf.
299
- // AllOf(m1, ..., mN) returns
300
- // AllOfResultN<decltype(m1), ..., decltype(mN)>::type.
301
-
302
- // Although AllOf isn't defined for one argument, AllOfResult1 is defined
303
- // to simplify the implementation.
304
- template <typename M1>
305
- struct AllOfResult1 {
306
- typedef M1 type;
307
- };
308
-
309
- template <typename M1, typename M2>
310
- struct AllOfResult2 {
311
- typedef BothOfMatcher<
312
- typename AllOfResult1<M1>::type,
313
- typename AllOfResult1<M2>::type
314
- > type;
315
- };
316
-
317
- template <typename M1, typename M2, typename M3>
318
- struct AllOfResult3 {
319
- typedef BothOfMatcher<
320
- typename AllOfResult1<M1>::type,
321
- typename AllOfResult2<M2, M3>::type
322
- > type;
323
- };
324
-
325
- template <typename M1, typename M2, typename M3, typename M4>
326
- struct AllOfResult4 {
327
- typedef BothOfMatcher<
328
- typename AllOfResult2<M1, M2>::type,
329
- typename AllOfResult2<M3, M4>::type
330
- > type;
331
- };
332
-
333
- template <typename M1, typename M2, typename M3, typename M4, typename M5>
334
- struct AllOfResult5 {
335
- typedef BothOfMatcher<
336
- typename AllOfResult2<M1, M2>::type,
337
- typename AllOfResult3<M3, M4, M5>::type
338
- > type;
339
- };
340
-
341
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
342
- typename M6>
343
- struct AllOfResult6 {
344
- typedef BothOfMatcher<
345
- typename AllOfResult3<M1, M2, M3>::type,
346
- typename AllOfResult3<M4, M5, M6>::type
347
- > type;
348
- };
349
-
350
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
351
- typename M6, typename M7>
352
- struct AllOfResult7 {
353
- typedef BothOfMatcher<
354
- typename AllOfResult3<M1, M2, M3>::type,
355
- typename AllOfResult4<M4, M5, M6, M7>::type
356
- > type;
357
- };
358
-
359
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
360
- typename M6, typename M7, typename M8>
361
- struct AllOfResult8 {
362
- typedef BothOfMatcher<
363
- typename AllOfResult4<M1, M2, M3, M4>::type,
364
- typename AllOfResult4<M5, M6, M7, M8>::type
365
- > type;
366
- };
367
-
368
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
369
- typename M6, typename M7, typename M8, typename M9>
370
- struct AllOfResult9 {
371
- typedef BothOfMatcher<
372
- typename AllOfResult4<M1, M2, M3, M4>::type,
373
- typename AllOfResult5<M5, M6, M7, M8, M9>::type
374
- > type;
375
- };
376
-
377
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
378
- typename M6, typename M7, typename M8, typename M9, typename M10>
379
- struct AllOfResult10 {
380
- typedef BothOfMatcher<
381
- typename AllOfResult5<M1, M2, M3, M4, M5>::type,
382
- typename AllOfResult5<M6, M7, M8, M9, M10>::type
383
- > type;
384
- };
385
-
386
- // A set of metafunctions for computing the result type of AnyOf.
387
- // AnyOf(m1, ..., mN) returns
388
- // AnyOfResultN<decltype(m1), ..., decltype(mN)>::type.
389
-
390
- // Although AnyOf isn't defined for one argument, AnyOfResult1 is defined
391
- // to simplify the implementation.
392
- template <typename M1>
393
- struct AnyOfResult1 {
394
- typedef M1 type;
395
- };
396
-
397
- template <typename M1, typename M2>
398
- struct AnyOfResult2 {
399
- typedef EitherOfMatcher<
400
- typename AnyOfResult1<M1>::type,
401
- typename AnyOfResult1<M2>::type
402
- > type;
403
- };
404
-
405
- template <typename M1, typename M2, typename M3>
406
- struct AnyOfResult3 {
407
- typedef EitherOfMatcher<
408
- typename AnyOfResult1<M1>::type,
409
- typename AnyOfResult2<M2, M3>::type
410
- > type;
411
- };
412
-
413
- template <typename M1, typename M2, typename M3, typename M4>
414
- struct AnyOfResult4 {
415
- typedef EitherOfMatcher<
416
- typename AnyOfResult2<M1, M2>::type,
417
- typename AnyOfResult2<M3, M4>::type
418
- > type;
419
- };
420
-
421
- template <typename M1, typename M2, typename M3, typename M4, typename M5>
422
- struct AnyOfResult5 {
423
- typedef EitherOfMatcher<
424
- typename AnyOfResult2<M1, M2>::type,
425
- typename AnyOfResult3<M3, M4, M5>::type
426
- > type;
427
- };
428
-
429
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
430
- typename M6>
431
- struct AnyOfResult6 {
432
- typedef EitherOfMatcher<
433
- typename AnyOfResult3<M1, M2, M3>::type,
434
- typename AnyOfResult3<M4, M5, M6>::type
435
- > type;
436
- };
437
-
438
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
439
- typename M6, typename M7>
440
- struct AnyOfResult7 {
441
- typedef EitherOfMatcher<
442
- typename AnyOfResult3<M1, M2, M3>::type,
443
- typename AnyOfResult4<M4, M5, M6, M7>::type
444
- > type;
445
- };
446
-
447
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
448
- typename M6, typename M7, typename M8>
449
- struct AnyOfResult8 {
450
- typedef EitherOfMatcher<
451
- typename AnyOfResult4<M1, M2, M3, M4>::type,
452
- typename AnyOfResult4<M5, M6, M7, M8>::type
453
- > type;
454
- };
455
-
456
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
457
- typename M6, typename M7, typename M8, typename M9>
458
- struct AnyOfResult9 {
459
- typedef EitherOfMatcher<
460
- typename AnyOfResult4<M1, M2, M3, M4>::type,
461
- typename AnyOfResult5<M5, M6, M7, M8, M9>::type
462
- > type;
463
- };
464
-
465
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
466
- typename M6, typename M7, typename M8, typename M9, typename M10>
467
- struct AnyOfResult10 {
468
- typedef EitherOfMatcher<
469
- typename AnyOfResult5<M1, M2, M3, M4, M5>::type,
470
- typename AnyOfResult5<M6, M7, M8, M9, M10>::type
471
- > type;
472
- };
473
-
474
- } // namespace internal
475
-
476
- // Args<N1, N2, ..., Nk>(a_matcher) matches a tuple if the selected
477
- // fields of it matches a_matcher. C++ doesn't support default
478
- // arguments for function templates, so we have to overload it.
479
- template <typename InnerMatcher>
480
- inline internal::ArgsMatcher<InnerMatcher>
481
- Args(const InnerMatcher& matcher) {
482
- return internal::ArgsMatcher<InnerMatcher>(matcher);
483
- }
484
-
485
- template <int k1, typename InnerMatcher>
486
- inline internal::ArgsMatcher<InnerMatcher, k1>
487
- Args(const InnerMatcher& matcher) {
488
- return internal::ArgsMatcher<InnerMatcher, k1>(matcher);
489
- }
490
-
491
- template <int k1, int k2, typename InnerMatcher>
492
- inline internal::ArgsMatcher<InnerMatcher, k1, k2>
493
- Args(const InnerMatcher& matcher) {
494
- return internal::ArgsMatcher<InnerMatcher, k1, k2>(matcher);
495
- }
496
-
497
- template <int k1, int k2, int k3, typename InnerMatcher>
498
- inline internal::ArgsMatcher<InnerMatcher, k1, k2, k3>
499
- Args(const InnerMatcher& matcher) {
500
- return internal::ArgsMatcher<InnerMatcher, k1, k2, k3>(matcher);
501
- }
502
-
503
- template <int k1, int k2, int k3, int k4, typename InnerMatcher>
504
- inline internal::ArgsMatcher<InnerMatcher, k1, k2, k3, k4>
505
- Args(const InnerMatcher& matcher) {
506
- return internal::ArgsMatcher<InnerMatcher, k1, k2, k3, k4>(matcher);
507
- }
508
-
509
- template <int k1, int k2, int k3, int k4, int k5, typename InnerMatcher>
510
- inline internal::ArgsMatcher<InnerMatcher, k1, k2, k3, k4, k5>
511
- Args(const InnerMatcher& matcher) {
512
- return internal::ArgsMatcher<InnerMatcher, k1, k2, k3, k4, k5>(matcher);
513
- }
514
-
515
- template <int k1, int k2, int k3, int k4, int k5, int k6, typename InnerMatcher>
516
- inline internal::ArgsMatcher<InnerMatcher, k1, k2, k3, k4, k5, k6>
517
- Args(const InnerMatcher& matcher) {
518
- return internal::ArgsMatcher<InnerMatcher, k1, k2, k3, k4, k5, k6>(matcher);
519
- }
520
-
521
- template <int k1, int k2, int k3, int k4, int k5, int k6, int k7,
522
- typename InnerMatcher>
523
- inline internal::ArgsMatcher<InnerMatcher, k1, k2, k3, k4, k5, k6, k7>
524
- Args(const InnerMatcher& matcher) {
525
- return internal::ArgsMatcher<InnerMatcher, k1, k2, k3, k4, k5, k6,
526
- k7>(matcher);
527
- }
528
-
529
- template <int k1, int k2, int k3, int k4, int k5, int k6, int k7, int k8,
530
- typename InnerMatcher>
531
- inline internal::ArgsMatcher<InnerMatcher, k1, k2, k3, k4, k5, k6, k7, k8>
532
- Args(const InnerMatcher& matcher) {
533
- return internal::ArgsMatcher<InnerMatcher, k1, k2, k3, k4, k5, k6, k7,
534
- k8>(matcher);
535
- }
536
-
537
- template <int k1, int k2, int k3, int k4, int k5, int k6, int k7, int k8,
538
- int k9, typename InnerMatcher>
539
- inline internal::ArgsMatcher<InnerMatcher, k1, k2, k3, k4, k5, k6, k7, k8, k9>
540
- Args(const InnerMatcher& matcher) {
541
- return internal::ArgsMatcher<InnerMatcher, k1, k2, k3, k4, k5, k6, k7, k8,
542
- k9>(matcher);
543
- }
544
-
545
- template <int k1, int k2, int k3, int k4, int k5, int k6, int k7, int k8,
546
- int k9, int k10, typename InnerMatcher>
547
- inline internal::ArgsMatcher<InnerMatcher, k1, k2, k3, k4, k5, k6, k7, k8, k9,
548
- k10>
549
- Args(const InnerMatcher& matcher) {
550
- return internal::ArgsMatcher<InnerMatcher, k1, k2, k3, k4, k5, k6, k7, k8,
551
- k9, k10>(matcher);
552
- }
553
-
554
- // ElementsAre(e_1, e_2, ... e_n) matches an STL-style container with
555
- // n elements, where the i-th element in the container must
556
- // match the i-th argument in the list. Each argument of
557
- // ElementsAre() can be either a value or a matcher. We support up to
558
- // 10 arguments.
559
- //
560
- // The use of DecayArray in the implementation allows ElementsAre()
561
- // to accept string literals, whose type is const char[N], but we
562
- // want to treat them as const char*.
563
- //
564
- // NOTE: Since ElementsAre() cares about the order of the elements, it
565
- // must not be used with containers whose elements's order is
566
- // undefined (e.g. hash_map).
567
-
568
- inline internal::ElementsAreMatcher<
569
- ::testing::tuple<> >
570
- ElementsAre() {
571
- typedef ::testing::tuple<> Args;
572
- return internal::ElementsAreMatcher<Args>(Args());
573
- }
574
-
575
- template <typename T1>
576
- inline internal::ElementsAreMatcher<
577
- ::testing::tuple<
578
- typename internal::DecayArray<T1>::type> >
579
- ElementsAre(const T1& e1) {
580
- typedef ::testing::tuple<
581
- typename internal::DecayArray<T1>::type> Args;
582
- return internal::ElementsAreMatcher<Args>(Args(e1));
583
- }
584
-
585
- template <typename T1, typename T2>
586
- inline internal::ElementsAreMatcher<
587
- ::testing::tuple<
588
- typename internal::DecayArray<T1>::type,
589
- typename internal::DecayArray<T2>::type> >
590
- ElementsAre(const T1& e1, const T2& e2) {
591
- typedef ::testing::tuple<
592
- typename internal::DecayArray<T1>::type,
593
- typename internal::DecayArray<T2>::type> Args;
594
- return internal::ElementsAreMatcher<Args>(Args(e1, e2));
595
- }
596
-
597
- template <typename T1, typename T2, typename T3>
598
- inline internal::ElementsAreMatcher<
599
- ::testing::tuple<
600
- typename internal::DecayArray<T1>::type,
601
- typename internal::DecayArray<T2>::type,
602
- typename internal::DecayArray<T3>::type> >
603
- ElementsAre(const T1& e1, const T2& e2, const T3& e3) {
604
- typedef ::testing::tuple<
605
- typename internal::DecayArray<T1>::type,
606
- typename internal::DecayArray<T2>::type,
607
- typename internal::DecayArray<T3>::type> Args;
608
- return internal::ElementsAreMatcher<Args>(Args(e1, e2, e3));
609
- }
610
-
611
- template <typename T1, typename T2, typename T3, typename T4>
612
- inline internal::ElementsAreMatcher<
613
- ::testing::tuple<
614
- typename internal::DecayArray<T1>::type,
615
- typename internal::DecayArray<T2>::type,
616
- typename internal::DecayArray<T3>::type,
617
- typename internal::DecayArray<T4>::type> >
618
- ElementsAre(const T1& e1, const T2& e2, const T3& e3, const T4& e4) {
619
- typedef ::testing::tuple<
620
- typename internal::DecayArray<T1>::type,
621
- typename internal::DecayArray<T2>::type,
622
- typename internal::DecayArray<T3>::type,
623
- typename internal::DecayArray<T4>::type> Args;
624
- return internal::ElementsAreMatcher<Args>(Args(e1, e2, e3, e4));
625
- }
626
-
627
- template <typename T1, typename T2, typename T3, typename T4, typename T5>
628
- inline internal::ElementsAreMatcher<
629
- ::testing::tuple<
630
- typename internal::DecayArray<T1>::type,
631
- typename internal::DecayArray<T2>::type,
632
- typename internal::DecayArray<T3>::type,
633
- typename internal::DecayArray<T4>::type,
634
- typename internal::DecayArray<T5>::type> >
635
- ElementsAre(const T1& e1, const T2& e2, const T3& e3, const T4& e4,
636
- const T5& e5) {
637
- typedef ::testing::tuple<
638
- typename internal::DecayArray<T1>::type,
639
- typename internal::DecayArray<T2>::type,
640
- typename internal::DecayArray<T3>::type,
641
- typename internal::DecayArray<T4>::type,
642
- typename internal::DecayArray<T5>::type> Args;
643
- return internal::ElementsAreMatcher<Args>(Args(e1, e2, e3, e4, e5));
644
- }
645
-
646
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
647
- typename T6>
648
- inline internal::ElementsAreMatcher<
649
- ::testing::tuple<
650
- typename internal::DecayArray<T1>::type,
651
- typename internal::DecayArray<T2>::type,
652
- typename internal::DecayArray<T3>::type,
653
- typename internal::DecayArray<T4>::type,
654
- typename internal::DecayArray<T5>::type,
655
- typename internal::DecayArray<T6>::type> >
656
- ElementsAre(const T1& e1, const T2& e2, const T3& e3, const T4& e4,
657
- const T5& e5, const T6& e6) {
658
- typedef ::testing::tuple<
659
- typename internal::DecayArray<T1>::type,
660
- typename internal::DecayArray<T2>::type,
661
- typename internal::DecayArray<T3>::type,
662
- typename internal::DecayArray<T4>::type,
663
- typename internal::DecayArray<T5>::type,
664
- typename internal::DecayArray<T6>::type> Args;
665
- return internal::ElementsAreMatcher<Args>(Args(e1, e2, e3, e4, e5, e6));
666
- }
667
-
668
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
669
- typename T6, typename T7>
670
- inline internal::ElementsAreMatcher<
671
- ::testing::tuple<
672
- typename internal::DecayArray<T1>::type,
673
- typename internal::DecayArray<T2>::type,
674
- typename internal::DecayArray<T3>::type,
675
- typename internal::DecayArray<T4>::type,
676
- typename internal::DecayArray<T5>::type,
677
- typename internal::DecayArray<T6>::type,
678
- typename internal::DecayArray<T7>::type> >
679
- ElementsAre(const T1& e1, const T2& e2, const T3& e3, const T4& e4,
680
- const T5& e5, const T6& e6, const T7& e7) {
681
- typedef ::testing::tuple<
682
- typename internal::DecayArray<T1>::type,
683
- typename internal::DecayArray<T2>::type,
684
- typename internal::DecayArray<T3>::type,
685
- typename internal::DecayArray<T4>::type,
686
- typename internal::DecayArray<T5>::type,
687
- typename internal::DecayArray<T6>::type,
688
- typename internal::DecayArray<T7>::type> Args;
689
- return internal::ElementsAreMatcher<Args>(Args(e1, e2, e3, e4, e5, e6, e7));
690
- }
691
-
692
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
693
- typename T6, typename T7, typename T8>
694
- inline internal::ElementsAreMatcher<
695
- ::testing::tuple<
696
- typename internal::DecayArray<T1>::type,
697
- typename internal::DecayArray<T2>::type,
698
- typename internal::DecayArray<T3>::type,
699
- typename internal::DecayArray<T4>::type,
700
- typename internal::DecayArray<T5>::type,
701
- typename internal::DecayArray<T6>::type,
702
- typename internal::DecayArray<T7>::type,
703
- typename internal::DecayArray<T8>::type> >
704
- ElementsAre(const T1& e1, const T2& e2, const T3& e3, const T4& e4,
705
- const T5& e5, const T6& e6, const T7& e7, const T8& e8) {
706
- typedef ::testing::tuple<
707
- typename internal::DecayArray<T1>::type,
708
- typename internal::DecayArray<T2>::type,
709
- typename internal::DecayArray<T3>::type,
710
- typename internal::DecayArray<T4>::type,
711
- typename internal::DecayArray<T5>::type,
712
- typename internal::DecayArray<T6>::type,
713
- typename internal::DecayArray<T7>::type,
714
- typename internal::DecayArray<T8>::type> Args;
715
- return internal::ElementsAreMatcher<Args>(Args(e1, e2, e3, e4, e5, e6, e7,
716
- e8));
717
- }
718
-
719
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
720
- typename T6, typename T7, typename T8, typename T9>
721
- inline internal::ElementsAreMatcher<
722
- ::testing::tuple<
723
- typename internal::DecayArray<T1>::type,
724
- typename internal::DecayArray<T2>::type,
725
- typename internal::DecayArray<T3>::type,
726
- typename internal::DecayArray<T4>::type,
727
- typename internal::DecayArray<T5>::type,
728
- typename internal::DecayArray<T6>::type,
729
- typename internal::DecayArray<T7>::type,
730
- typename internal::DecayArray<T8>::type,
731
- typename internal::DecayArray<T9>::type> >
732
- ElementsAre(const T1& e1, const T2& e2, const T3& e3, const T4& e4,
733
- const T5& e5, const T6& e6, const T7& e7, const T8& e8, const T9& e9) {
734
- typedef ::testing::tuple<
735
- typename internal::DecayArray<T1>::type,
736
- typename internal::DecayArray<T2>::type,
737
- typename internal::DecayArray<T3>::type,
738
- typename internal::DecayArray<T4>::type,
739
- typename internal::DecayArray<T5>::type,
740
- typename internal::DecayArray<T6>::type,
741
- typename internal::DecayArray<T7>::type,
742
- typename internal::DecayArray<T8>::type,
743
- typename internal::DecayArray<T9>::type> Args;
744
- return internal::ElementsAreMatcher<Args>(Args(e1, e2, e3, e4, e5, e6, e7,
745
- e8, e9));
746
- }
747
-
748
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
749
- typename T6, typename T7, typename T8, typename T9, typename T10>
750
- inline internal::ElementsAreMatcher<
751
- ::testing::tuple<
752
- typename internal::DecayArray<T1>::type,
753
- typename internal::DecayArray<T2>::type,
754
- typename internal::DecayArray<T3>::type,
755
- typename internal::DecayArray<T4>::type,
756
- typename internal::DecayArray<T5>::type,
757
- typename internal::DecayArray<T6>::type,
758
- typename internal::DecayArray<T7>::type,
759
- typename internal::DecayArray<T8>::type,
760
- typename internal::DecayArray<T9>::type,
761
- typename internal::DecayArray<T10>::type> >
762
- ElementsAre(const T1& e1, const T2& e2, const T3& e3, const T4& e4,
763
- const T5& e5, const T6& e6, const T7& e7, const T8& e8, const T9& e9,
764
- const T10& e10) {
765
- typedef ::testing::tuple<
766
- typename internal::DecayArray<T1>::type,
767
- typename internal::DecayArray<T2>::type,
768
- typename internal::DecayArray<T3>::type,
769
- typename internal::DecayArray<T4>::type,
770
- typename internal::DecayArray<T5>::type,
771
- typename internal::DecayArray<T6>::type,
772
- typename internal::DecayArray<T7>::type,
773
- typename internal::DecayArray<T8>::type,
774
- typename internal::DecayArray<T9>::type,
775
- typename internal::DecayArray<T10>::type> Args;
776
- return internal::ElementsAreMatcher<Args>(Args(e1, e2, e3, e4, e5, e6, e7,
777
- e8, e9, e10));
778
- }
779
-
780
- // UnorderedElementsAre(e_1, e_2, ..., e_n) is an ElementsAre extension
781
- // that matches n elements in any order. We support up to n=10 arguments.
782
- //
783
- // If you have >10 elements, consider UnorderedElementsAreArray() or
784
- // UnorderedPointwise() instead.
785
-
786
- inline internal::UnorderedElementsAreMatcher<
787
- ::testing::tuple<> >
788
- UnorderedElementsAre() {
789
- typedef ::testing::tuple<> Args;
790
- return internal::UnorderedElementsAreMatcher<Args>(Args());
791
- }
792
-
793
- template <typename T1>
794
- inline internal::UnorderedElementsAreMatcher<
795
- ::testing::tuple<
796
- typename internal::DecayArray<T1>::type> >
797
- UnorderedElementsAre(const T1& e1) {
798
- typedef ::testing::tuple<
799
- typename internal::DecayArray<T1>::type> Args;
800
- return internal::UnorderedElementsAreMatcher<Args>(Args(e1));
801
- }
802
-
803
- template <typename T1, typename T2>
804
- inline internal::UnorderedElementsAreMatcher<
805
- ::testing::tuple<
806
- typename internal::DecayArray<T1>::type,
807
- typename internal::DecayArray<T2>::type> >
808
- UnorderedElementsAre(const T1& e1, const T2& e2) {
809
- typedef ::testing::tuple<
810
- typename internal::DecayArray<T1>::type,
811
- typename internal::DecayArray<T2>::type> Args;
812
- return internal::UnorderedElementsAreMatcher<Args>(Args(e1, e2));
813
- }
814
-
815
- template <typename T1, typename T2, typename T3>
816
- inline internal::UnorderedElementsAreMatcher<
817
- ::testing::tuple<
818
- typename internal::DecayArray<T1>::type,
819
- typename internal::DecayArray<T2>::type,
820
- typename internal::DecayArray<T3>::type> >
821
- UnorderedElementsAre(const T1& e1, const T2& e2, const T3& e3) {
822
- typedef ::testing::tuple<
823
- typename internal::DecayArray<T1>::type,
824
- typename internal::DecayArray<T2>::type,
825
- typename internal::DecayArray<T3>::type> Args;
826
- return internal::UnorderedElementsAreMatcher<Args>(Args(e1, e2, e3));
827
- }
828
-
829
- template <typename T1, typename T2, typename T3, typename T4>
830
- inline internal::UnorderedElementsAreMatcher<
831
- ::testing::tuple<
832
- typename internal::DecayArray<T1>::type,
833
- typename internal::DecayArray<T2>::type,
834
- typename internal::DecayArray<T3>::type,
835
- typename internal::DecayArray<T4>::type> >
836
- UnorderedElementsAre(const T1& e1, const T2& e2, const T3& e3, const T4& e4) {
837
- typedef ::testing::tuple<
838
- typename internal::DecayArray<T1>::type,
839
- typename internal::DecayArray<T2>::type,
840
- typename internal::DecayArray<T3>::type,
841
- typename internal::DecayArray<T4>::type> Args;
842
- return internal::UnorderedElementsAreMatcher<Args>(Args(e1, e2, e3, e4));
843
- }
844
-
845
- template <typename T1, typename T2, typename T3, typename T4, typename T5>
846
- inline internal::UnorderedElementsAreMatcher<
847
- ::testing::tuple<
848
- typename internal::DecayArray<T1>::type,
849
- typename internal::DecayArray<T2>::type,
850
- typename internal::DecayArray<T3>::type,
851
- typename internal::DecayArray<T4>::type,
852
- typename internal::DecayArray<T5>::type> >
853
- UnorderedElementsAre(const T1& e1, const T2& e2, const T3& e3, const T4& e4,
854
- const T5& e5) {
855
- typedef ::testing::tuple<
856
- typename internal::DecayArray<T1>::type,
857
- typename internal::DecayArray<T2>::type,
858
- typename internal::DecayArray<T3>::type,
859
- typename internal::DecayArray<T4>::type,
860
- typename internal::DecayArray<T5>::type> Args;
861
- return internal::UnorderedElementsAreMatcher<Args>(Args(e1, e2, e3, e4, e5));
862
- }
863
-
864
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
865
- typename T6>
866
- inline internal::UnorderedElementsAreMatcher<
867
- ::testing::tuple<
868
- typename internal::DecayArray<T1>::type,
869
- typename internal::DecayArray<T2>::type,
870
- typename internal::DecayArray<T3>::type,
871
- typename internal::DecayArray<T4>::type,
872
- typename internal::DecayArray<T5>::type,
873
- typename internal::DecayArray<T6>::type> >
874
- UnorderedElementsAre(const T1& e1, const T2& e2, const T3& e3, const T4& e4,
875
- const T5& e5, const T6& e6) {
876
- typedef ::testing::tuple<
877
- typename internal::DecayArray<T1>::type,
878
- typename internal::DecayArray<T2>::type,
879
- typename internal::DecayArray<T3>::type,
880
- typename internal::DecayArray<T4>::type,
881
- typename internal::DecayArray<T5>::type,
882
- typename internal::DecayArray<T6>::type> Args;
883
- return internal::UnorderedElementsAreMatcher<Args>(Args(e1, e2, e3, e4, e5,
884
- e6));
885
- }
886
-
887
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
888
- typename T6, typename T7>
889
- inline internal::UnorderedElementsAreMatcher<
890
- ::testing::tuple<
891
- typename internal::DecayArray<T1>::type,
892
- typename internal::DecayArray<T2>::type,
893
- typename internal::DecayArray<T3>::type,
894
- typename internal::DecayArray<T4>::type,
895
- typename internal::DecayArray<T5>::type,
896
- typename internal::DecayArray<T6>::type,
897
- typename internal::DecayArray<T7>::type> >
898
- UnorderedElementsAre(const T1& e1, const T2& e2, const T3& e3, const T4& e4,
899
- const T5& e5, const T6& e6, const T7& e7) {
900
- typedef ::testing::tuple<
901
- typename internal::DecayArray<T1>::type,
902
- typename internal::DecayArray<T2>::type,
903
- typename internal::DecayArray<T3>::type,
904
- typename internal::DecayArray<T4>::type,
905
- typename internal::DecayArray<T5>::type,
906
- typename internal::DecayArray<T6>::type,
907
- typename internal::DecayArray<T7>::type> Args;
908
- return internal::UnorderedElementsAreMatcher<Args>(Args(e1, e2, e3, e4, e5,
909
- e6, e7));
910
- }
911
-
912
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
913
- typename T6, typename T7, typename T8>
914
- inline internal::UnorderedElementsAreMatcher<
915
- ::testing::tuple<
916
- typename internal::DecayArray<T1>::type,
917
- typename internal::DecayArray<T2>::type,
918
- typename internal::DecayArray<T3>::type,
919
- typename internal::DecayArray<T4>::type,
920
- typename internal::DecayArray<T5>::type,
921
- typename internal::DecayArray<T6>::type,
922
- typename internal::DecayArray<T7>::type,
923
- typename internal::DecayArray<T8>::type> >
924
- UnorderedElementsAre(const T1& e1, const T2& e2, const T3& e3, const T4& e4,
925
- const T5& e5, const T6& e6, const T7& e7, const T8& e8) {
926
- typedef ::testing::tuple<
927
- typename internal::DecayArray<T1>::type,
928
- typename internal::DecayArray<T2>::type,
929
- typename internal::DecayArray<T3>::type,
930
- typename internal::DecayArray<T4>::type,
931
- typename internal::DecayArray<T5>::type,
932
- typename internal::DecayArray<T6>::type,
933
- typename internal::DecayArray<T7>::type,
934
- typename internal::DecayArray<T8>::type> Args;
935
- return internal::UnorderedElementsAreMatcher<Args>(Args(e1, e2, e3, e4, e5,
936
- e6, e7, e8));
937
- }
938
-
939
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
940
- typename T6, typename T7, typename T8, typename T9>
941
- inline internal::UnorderedElementsAreMatcher<
942
- ::testing::tuple<
943
- typename internal::DecayArray<T1>::type,
944
- typename internal::DecayArray<T2>::type,
945
- typename internal::DecayArray<T3>::type,
946
- typename internal::DecayArray<T4>::type,
947
- typename internal::DecayArray<T5>::type,
948
- typename internal::DecayArray<T6>::type,
949
- typename internal::DecayArray<T7>::type,
950
- typename internal::DecayArray<T8>::type,
951
- typename internal::DecayArray<T9>::type> >
952
- UnorderedElementsAre(const T1& e1, const T2& e2, const T3& e3, const T4& e4,
953
- const T5& e5, const T6& e6, const T7& e7, const T8& e8, const T9& e9) {
954
- typedef ::testing::tuple<
955
- typename internal::DecayArray<T1>::type,
956
- typename internal::DecayArray<T2>::type,
957
- typename internal::DecayArray<T3>::type,
958
- typename internal::DecayArray<T4>::type,
959
- typename internal::DecayArray<T5>::type,
960
- typename internal::DecayArray<T6>::type,
961
- typename internal::DecayArray<T7>::type,
962
- typename internal::DecayArray<T8>::type,
963
- typename internal::DecayArray<T9>::type> Args;
964
- return internal::UnorderedElementsAreMatcher<Args>(Args(e1, e2, e3, e4, e5,
965
- e6, e7, e8, e9));
966
- }
967
-
968
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
969
- typename T6, typename T7, typename T8, typename T9, typename T10>
970
- inline internal::UnorderedElementsAreMatcher<
971
- ::testing::tuple<
972
- typename internal::DecayArray<T1>::type,
973
- typename internal::DecayArray<T2>::type,
974
- typename internal::DecayArray<T3>::type,
975
- typename internal::DecayArray<T4>::type,
976
- typename internal::DecayArray<T5>::type,
977
- typename internal::DecayArray<T6>::type,
978
- typename internal::DecayArray<T7>::type,
979
- typename internal::DecayArray<T8>::type,
980
- typename internal::DecayArray<T9>::type,
981
- typename internal::DecayArray<T10>::type> >
982
- UnorderedElementsAre(const T1& e1, const T2& e2, const T3& e3, const T4& e4,
983
- const T5& e5, const T6& e6, const T7& e7, const T8& e8, const T9& e9,
984
- const T10& e10) {
985
- typedef ::testing::tuple<
986
- typename internal::DecayArray<T1>::type,
987
- typename internal::DecayArray<T2>::type,
988
- typename internal::DecayArray<T3>::type,
989
- typename internal::DecayArray<T4>::type,
990
- typename internal::DecayArray<T5>::type,
991
- typename internal::DecayArray<T6>::type,
992
- typename internal::DecayArray<T7>::type,
993
- typename internal::DecayArray<T8>::type,
994
- typename internal::DecayArray<T9>::type,
995
- typename internal::DecayArray<T10>::type> Args;
996
- return internal::UnorderedElementsAreMatcher<Args>(Args(e1, e2, e3, e4, e5,
997
- e6, e7, e8, e9, e10));
998
- }
999
-
1000
- // AllOf(m1, m2, ..., mk) matches any value that matches all of the given
1001
- // sub-matchers. AllOf is called fully qualified to prevent ADL from firing.
1002
-
1003
- template <typename M1, typename M2>
1004
- inline typename internal::AllOfResult2<M1, M2>::type
1005
- AllOf(M1 m1, M2 m2) {
1006
- return typename internal::AllOfResult2<M1, M2>::type(
1007
- m1,
1008
- m2);
1009
- }
1010
-
1011
- template <typename M1, typename M2, typename M3>
1012
- inline typename internal::AllOfResult3<M1, M2, M3>::type
1013
- AllOf(M1 m1, M2 m2, M3 m3) {
1014
- return typename internal::AllOfResult3<M1, M2, M3>::type(
1015
- m1,
1016
- ::testing::AllOf(m2, m3));
1017
- }
1018
-
1019
- template <typename M1, typename M2, typename M3, typename M4>
1020
- inline typename internal::AllOfResult4<M1, M2, M3, M4>::type
1021
- AllOf(M1 m1, M2 m2, M3 m3, M4 m4) {
1022
- return typename internal::AllOfResult4<M1, M2, M3, M4>::type(
1023
- ::testing::AllOf(m1, m2),
1024
- ::testing::AllOf(m3, m4));
1025
- }
1026
-
1027
- template <typename M1, typename M2, typename M3, typename M4, typename M5>
1028
- inline typename internal::AllOfResult5<M1, M2, M3, M4, M5>::type
1029
- AllOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5) {
1030
- return typename internal::AllOfResult5<M1, M2, M3, M4, M5>::type(
1031
- ::testing::AllOf(m1, m2),
1032
- ::testing::AllOf(m3, m4, m5));
1033
- }
1034
-
1035
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
1036
- typename M6>
1037
- inline typename internal::AllOfResult6<M1, M2, M3, M4, M5, M6>::type
1038
- AllOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6) {
1039
- return typename internal::AllOfResult6<M1, M2, M3, M4, M5, M6>::type(
1040
- ::testing::AllOf(m1, m2, m3),
1041
- ::testing::AllOf(m4, m5, m6));
1042
- }
1043
-
1044
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
1045
- typename M6, typename M7>
1046
- inline typename internal::AllOfResult7<M1, M2, M3, M4, M5, M6, M7>::type
1047
- AllOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6, M7 m7) {
1048
- return typename internal::AllOfResult7<M1, M2, M3, M4, M5, M6, M7>::type(
1049
- ::testing::AllOf(m1, m2, m3),
1050
- ::testing::AllOf(m4, m5, m6, m7));
1051
- }
1052
-
1053
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
1054
- typename M6, typename M7, typename M8>
1055
- inline typename internal::AllOfResult8<M1, M2, M3, M4, M5, M6, M7, M8>::type
1056
- AllOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6, M7 m7, M8 m8) {
1057
- return typename internal::AllOfResult8<M1, M2, M3, M4, M5, M6, M7, M8>::type(
1058
- ::testing::AllOf(m1, m2, m3, m4),
1059
- ::testing::AllOf(m5, m6, m7, m8));
1060
- }
1061
-
1062
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
1063
- typename M6, typename M7, typename M8, typename M9>
1064
- inline typename internal::AllOfResult9<M1, M2, M3, M4, M5, M6, M7, M8, M9>::type
1065
- AllOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6, M7 m7, M8 m8, M9 m9) {
1066
- return typename internal::AllOfResult9<M1, M2, M3, M4, M5, M6, M7, M8,
1067
- M9>::type(
1068
- ::testing::AllOf(m1, m2, m3, m4),
1069
- ::testing::AllOf(m5, m6, m7, m8, m9));
1070
- }
1071
-
1072
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
1073
- typename M6, typename M7, typename M8, typename M9, typename M10>
1074
- inline typename internal::AllOfResult10<M1, M2, M3, M4, M5, M6, M7, M8, M9,
1075
- M10>::type
1076
- AllOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6, M7 m7, M8 m8, M9 m9, M10 m10) {
1077
- return typename internal::AllOfResult10<M1, M2, M3, M4, M5, M6, M7, M8, M9,
1078
- M10>::type(
1079
- ::testing::AllOf(m1, m2, m3, m4, m5),
1080
- ::testing::AllOf(m6, m7, m8, m9, m10));
1081
- }
1082
-
1083
- // AnyOf(m1, m2, ..., mk) matches any value that matches any of the given
1084
- // sub-matchers. AnyOf is called fully qualified to prevent ADL from firing.
1085
-
1086
- template <typename M1, typename M2>
1087
- inline typename internal::AnyOfResult2<M1, M2>::type
1088
- AnyOf(M1 m1, M2 m2) {
1089
- return typename internal::AnyOfResult2<M1, M2>::type(
1090
- m1,
1091
- m2);
1092
- }
1093
-
1094
- template <typename M1, typename M2, typename M3>
1095
- inline typename internal::AnyOfResult3<M1, M2, M3>::type
1096
- AnyOf(M1 m1, M2 m2, M3 m3) {
1097
- return typename internal::AnyOfResult3<M1, M2, M3>::type(
1098
- m1,
1099
- ::testing::AnyOf(m2, m3));
1100
- }
1101
-
1102
- template <typename M1, typename M2, typename M3, typename M4>
1103
- inline typename internal::AnyOfResult4<M1, M2, M3, M4>::type
1104
- AnyOf(M1 m1, M2 m2, M3 m3, M4 m4) {
1105
- return typename internal::AnyOfResult4<M1, M2, M3, M4>::type(
1106
- ::testing::AnyOf(m1, m2),
1107
- ::testing::AnyOf(m3, m4));
1108
- }
1109
-
1110
- template <typename M1, typename M2, typename M3, typename M4, typename M5>
1111
- inline typename internal::AnyOfResult5<M1, M2, M3, M4, M5>::type
1112
- AnyOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5) {
1113
- return typename internal::AnyOfResult5<M1, M2, M3, M4, M5>::type(
1114
- ::testing::AnyOf(m1, m2),
1115
- ::testing::AnyOf(m3, m4, m5));
1116
- }
1117
-
1118
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
1119
- typename M6>
1120
- inline typename internal::AnyOfResult6<M1, M2, M3, M4, M5, M6>::type
1121
- AnyOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6) {
1122
- return typename internal::AnyOfResult6<M1, M2, M3, M4, M5, M6>::type(
1123
- ::testing::AnyOf(m1, m2, m3),
1124
- ::testing::AnyOf(m4, m5, m6));
1125
- }
1126
-
1127
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
1128
- typename M6, typename M7>
1129
- inline typename internal::AnyOfResult7<M1, M2, M3, M4, M5, M6, M7>::type
1130
- AnyOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6, M7 m7) {
1131
- return typename internal::AnyOfResult7<M1, M2, M3, M4, M5, M6, M7>::type(
1132
- ::testing::AnyOf(m1, m2, m3),
1133
- ::testing::AnyOf(m4, m5, m6, m7));
1134
- }
1135
-
1136
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
1137
- typename M6, typename M7, typename M8>
1138
- inline typename internal::AnyOfResult8<M1, M2, M3, M4, M5, M6, M7, M8>::type
1139
- AnyOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6, M7 m7, M8 m8) {
1140
- return typename internal::AnyOfResult8<M1, M2, M3, M4, M5, M6, M7, M8>::type(
1141
- ::testing::AnyOf(m1, m2, m3, m4),
1142
- ::testing::AnyOf(m5, m6, m7, m8));
1143
- }
1144
-
1145
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
1146
- typename M6, typename M7, typename M8, typename M9>
1147
- inline typename internal::AnyOfResult9<M1, M2, M3, M4, M5, M6, M7, M8, M9>::type
1148
- AnyOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6, M7 m7, M8 m8, M9 m9) {
1149
- return typename internal::AnyOfResult9<M1, M2, M3, M4, M5, M6, M7, M8,
1150
- M9>::type(
1151
- ::testing::AnyOf(m1, m2, m3, m4),
1152
- ::testing::AnyOf(m5, m6, m7, m8, m9));
1153
- }
1154
-
1155
- template <typename M1, typename M2, typename M3, typename M4, typename M5,
1156
- typename M6, typename M7, typename M8, typename M9, typename M10>
1157
- inline typename internal::AnyOfResult10<M1, M2, M3, M4, M5, M6, M7, M8, M9,
1158
- M10>::type
1159
- AnyOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6, M7 m7, M8 m8, M9 m9, M10 m10) {
1160
- return typename internal::AnyOfResult10<M1, M2, M3, M4, M5, M6, M7, M8, M9,
1161
- M10>::type(
1162
- ::testing::AnyOf(m1, m2, m3, m4, m5),
1163
- ::testing::AnyOf(m6, m7, m8, m9, m10));
1164
- }
1165
-
1166
- } // namespace testing
1167
-
1168
-
1169
- // The MATCHER* family of macros can be used in a namespace scope to
1170
- // define custom matchers easily.
1171
- //
1172
- // Basic Usage
1173
- // ===========
1174
- //
1175
- // The syntax
1176
- //
1177
- // MATCHER(name, description_string) { statements; }
1178
- //
1179
- // defines a matcher with the given name that executes the statements,
1180
- // which must return a bool to indicate if the match succeeds. Inside
1181
- // the statements, you can refer to the value being matched by 'arg',
1182
- // and refer to its type by 'arg_type'.
1183
- //
1184
- // The description string documents what the matcher does, and is used
1185
- // to generate the failure message when the match fails. Since a
1186
- // MATCHER() is usually defined in a header file shared by multiple
1187
- // C++ source files, we require the description to be a C-string
1188
- // literal to avoid possible side effects. It can be empty, in which
1189
- // case we'll use the sequence of words in the matcher name as the
1190
- // description.
1191
- //
1192
- // For example:
1193
- //
1194
- // MATCHER(IsEven, "") { return (arg % 2) == 0; }
1195
- //
1196
- // allows you to write
1197
- //
1198
- // // Expects mock_foo.Bar(n) to be called where n is even.
1199
- // EXPECT_CALL(mock_foo, Bar(IsEven()));
1200
- //
1201
- // or,
1202
- //
1203
- // // Verifies that the value of some_expression is even.
1204
- // EXPECT_THAT(some_expression, IsEven());
1205
- //
1206
- // If the above assertion fails, it will print something like:
1207
- //
1208
- // Value of: some_expression
1209
- // Expected: is even
1210
- // Actual: 7
1211
- //
1212
- // where the description "is even" is automatically calculated from the
1213
- // matcher name IsEven.
1214
- //
1215
- // Argument Type
1216
- // =============
1217
- //
1218
- // Note that the type of the value being matched (arg_type) is
1219
- // determined by the context in which you use the matcher and is
1220
- // supplied to you by the compiler, so you don't need to worry about
1221
- // declaring it (nor can you). This allows the matcher to be
1222
- // polymorphic. For example, IsEven() can be used to match any type
1223
- // where the value of "(arg % 2) == 0" can be implicitly converted to
1224
- // a bool. In the "Bar(IsEven())" example above, if method Bar()
1225
- // takes an int, 'arg_type' will be int; if it takes an unsigned long,
1226
- // 'arg_type' will be unsigned long; and so on.
1227
- //
1228
- // Parameterizing Matchers
1229
- // =======================
1230
- //
1231
- // Sometimes you'll want to parameterize the matcher. For that you
1232
- // can use another macro:
1233
- //
1234
- // MATCHER_P(name, param_name, description_string) { statements; }
1235
- //
1236
- // For example:
1237
- //
1238
- // MATCHER_P(HasAbsoluteValue, value, "") { return abs(arg) == value; }
1239
- //
1240
- // will allow you to write:
1241
- //
1242
- // EXPECT_THAT(Blah("a"), HasAbsoluteValue(n));
1243
- //
1244
- // which may lead to this message (assuming n is 10):
1245
- //
1246
- // Value of: Blah("a")
1247
- // Expected: has absolute value 10
1248
- // Actual: -9
1249
- //
1250
- // Note that both the matcher description and its parameter are
1251
- // printed, making the message human-friendly.
1252
- //
1253
- // In the matcher definition body, you can write 'foo_type' to
1254
- // reference the type of a parameter named 'foo'. For example, in the
1255
- // body of MATCHER_P(HasAbsoluteValue, value) above, you can write
1256
- // 'value_type' to refer to the type of 'value'.
1257
- //
1258
- // We also provide MATCHER_P2, MATCHER_P3, ..., up to MATCHER_P10 to
1259
- // support multi-parameter matchers.
1260
- //
1261
- // Describing Parameterized Matchers
1262
- // =================================
1263
- //
1264
- // The last argument to MATCHER*() is a string-typed expression. The
1265
- // expression can reference all of the matcher's parameters and a
1266
- // special bool-typed variable named 'negation'. When 'negation' is
1267
- // false, the expression should evaluate to the matcher's description;
1268
- // otherwise it should evaluate to the description of the negation of
1269
- // the matcher. For example,
1270
- //
1271
- // using testing::PrintToString;
1272
- //
1273
- // MATCHER_P2(InClosedRange, low, hi,
1274
- // std::string(negation ? "is not" : "is") + " in range [" +
1275
- // PrintToString(low) + ", " + PrintToString(hi) + "]") {
1276
- // return low <= arg && arg <= hi;
1277
- // }
1278
- // ...
1279
- // EXPECT_THAT(3, InClosedRange(4, 6));
1280
- // EXPECT_THAT(3, Not(InClosedRange(2, 4)));
1281
- //
1282
- // would generate two failures that contain the text:
1283
- //
1284
- // Expected: is in range [4, 6]
1285
- // ...
1286
- // Expected: is not in range [2, 4]
1287
- //
1288
- // If you specify "" as the description, the failure message will
1289
- // contain the sequence of words in the matcher name followed by the
1290
- // parameter values printed as a tuple. For example,
1291
- //
1292
- // MATCHER_P2(InClosedRange, low, hi, "") { ... }
1293
- // ...
1294
- // EXPECT_THAT(3, InClosedRange(4, 6));
1295
- // EXPECT_THAT(3, Not(InClosedRange(2, 4)));
1296
- //
1297
- // would generate two failures that contain the text:
1298
- //
1299
- // Expected: in closed range (4, 6)
1300
- // ...
1301
- // Expected: not (in closed range (2, 4))
1302
- //
1303
- // Types of Matcher Parameters
1304
- // ===========================
1305
- //
1306
- // For the purpose of typing, you can view
1307
- //
1308
- // MATCHER_Pk(Foo, p1, ..., pk, description_string) { ... }
1309
- //
1310
- // as shorthand for
1311
- //
1312
- // template <typename p1_type, ..., typename pk_type>
1313
- // FooMatcherPk<p1_type, ..., pk_type>
1314
- // Foo(p1_type p1, ..., pk_type pk) { ... }
1315
- //
1316
- // When you write Foo(v1, ..., vk), the compiler infers the types of
1317
- // the parameters v1, ..., and vk for you. If you are not happy with
1318
- // the result of the type inference, you can specify the types by
1319
- // explicitly instantiating the template, as in Foo<long, bool>(5,
1320
- // false). As said earlier, you don't get to (or need to) specify
1321
- // 'arg_type' as that's determined by the context in which the matcher
1322
- // is used. You can assign the result of expression Foo(p1, ..., pk)
1323
- // to a variable of type FooMatcherPk<p1_type, ..., pk_type>. This
1324
- // can be useful when composing matchers.
1325
- //
1326
- // While you can instantiate a matcher template with reference types,
1327
- // passing the parameters by pointer usually makes your code more
1328
- // readable. If, however, you still want to pass a parameter by
1329
- // reference, be aware that in the failure message generated by the
1330
- // matcher you will see the value of the referenced object but not its
1331
- // address.
1332
- //
1333
- // Explaining Match Results
1334
- // ========================
1335
- //
1336
- // Sometimes the matcher description alone isn't enough to explain why
1337
- // the match has failed or succeeded. For example, when expecting a
1338
- // long string, it can be very helpful to also print the diff between
1339
- // the expected string and the actual one. To achieve that, you can
1340
- // optionally stream additional information to a special variable
1341
- // named result_listener, whose type is a pointer to class
1342
- // MatchResultListener:
1343
- //
1344
- // MATCHER_P(EqualsLongString, str, "") {
1345
- // if (arg == str) return true;
1346
- //
1347
- // *result_listener << "the difference: "
1348
- /// << DiffStrings(str, arg);
1349
- // return false;
1350
- // }
1351
- //
1352
- // Overloading Matchers
1353
- // ====================
1354
- //
1355
- // You can overload matchers with different numbers of parameters:
1356
- //
1357
- // MATCHER_P(Blah, a, description_string1) { ... }
1358
- // MATCHER_P2(Blah, a, b, description_string2) { ... }
1359
- //
1360
- // Caveats
1361
- // =======
1362
- //
1363
- // When defining a new matcher, you should also consider implementing
1364
- // MatcherInterface or using MakePolymorphicMatcher(). These
1365
- // approaches require more work than the MATCHER* macros, but also
1366
- // give you more control on the types of the value being matched and
1367
- // the matcher parameters, which may leads to better compiler error
1368
- // messages when the matcher is used wrong. They also allow
1369
- // overloading matchers based on parameter types (as opposed to just
1370
- // based on the number of parameters).
1371
- //
1372
- // MATCHER*() can only be used in a namespace scope. The reason is
1373
- // that C++ doesn't yet allow function-local types to be used to
1374
- // instantiate templates. The up-coming C++0x standard will fix this.
1375
- // Once that's done, we'll consider supporting using MATCHER*() inside
1376
- // a function.
1377
- //
1378
- // More Information
1379
- // ================
1380
- //
1381
- // To learn more about using these macros, please search for 'MATCHER'
1382
- // on https://github.com/google/googletest/blob/master/googlemock/docs/
1383
- // CookBook.md
1384
-
1385
- #define MATCHER(name, description)\
1386
- class name##Matcher {\
1387
- public:\
1388
- template <typename arg_type>\
1389
- class gmock_Impl : public ::testing::MatcherInterface<\
1390
- GTEST_REFERENCE_TO_CONST_(arg_type)> {\
1391
- public:\
1392
- gmock_Impl()\
1393
- {}\
1394
- virtual bool MatchAndExplain(\
1395
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
1396
- ::testing::MatchResultListener* result_listener) const;\
1397
- virtual void DescribeTo(::std::ostream* gmock_os) const {\
1398
- *gmock_os << FormatDescription(false);\
1399
- }\
1400
- virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\
1401
- *gmock_os << FormatDescription(true);\
1402
- }\
1403
- private:\
1404
- ::std::string FormatDescription(bool negation) const {\
1405
- ::std::string gmock_description = (description);\
1406
- if (!gmock_description.empty())\
1407
- return gmock_description;\
1408
- return ::testing::internal::FormatMatcherDescription(\
1409
- negation, #name, \
1410
- ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
1411
- ::testing::tuple<>()));\
1412
- }\
1413
- };\
1414
- template <typename arg_type>\
1415
- operator ::testing::Matcher<arg_type>() const {\
1416
- return ::testing::Matcher<arg_type>(\
1417
- new gmock_Impl<arg_type>());\
1418
- }\
1419
- name##Matcher() {\
1420
- }\
1421
- private:\
1422
- };\
1423
- inline name##Matcher name() {\
1424
- return name##Matcher();\
1425
- }\
1426
- template <typename arg_type>\
1427
- bool name##Matcher::gmock_Impl<arg_type>::MatchAndExplain(\
1428
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
1429
- ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
1430
- const
1431
-
1432
- #define MATCHER_P(name, p0, description)\
1433
- template <typename p0##_type>\
1434
- class name##MatcherP {\
1435
- public:\
1436
- template <typename arg_type>\
1437
- class gmock_Impl : public ::testing::MatcherInterface<\
1438
- GTEST_REFERENCE_TO_CONST_(arg_type)> {\
1439
- public:\
1440
- explicit gmock_Impl(p0##_type gmock_p0)\
1441
- : p0(::testing::internal::move(gmock_p0)) {}\
1442
- virtual bool MatchAndExplain(\
1443
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
1444
- ::testing::MatchResultListener* result_listener) const;\
1445
- virtual void DescribeTo(::std::ostream* gmock_os) const {\
1446
- *gmock_os << FormatDescription(false);\
1447
- }\
1448
- virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\
1449
- *gmock_os << FormatDescription(true);\
1450
- }\
1451
- p0##_type const p0;\
1452
- private:\
1453
- ::std::string FormatDescription(bool negation) const {\
1454
- ::std::string gmock_description = (description);\
1455
- if (!gmock_description.empty())\
1456
- return gmock_description;\
1457
- return ::testing::internal::FormatMatcherDescription(\
1458
- negation, #name, \
1459
- ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
1460
- ::testing::tuple<p0##_type>(p0)));\
1461
- }\
1462
- };\
1463
- template <typename arg_type>\
1464
- operator ::testing::Matcher<arg_type>() const {\
1465
- return ::testing::Matcher<arg_type>(\
1466
- new gmock_Impl<arg_type>(p0));\
1467
- }\
1468
- explicit name##MatcherP(p0##_type gmock_p0) : \
1469
- p0(::testing::internal::move(gmock_p0)) {\
1470
- }\
1471
- p0##_type const p0;\
1472
- private:\
1473
- };\
1474
- template <typename p0##_type>\
1475
- inline name##MatcherP<p0##_type> name(p0##_type p0) {\
1476
- return name##MatcherP<p0##_type>(p0);\
1477
- }\
1478
- template <typename p0##_type>\
1479
- template <typename arg_type>\
1480
- bool name##MatcherP<p0##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
1481
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
1482
- ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
1483
- const
1484
-
1485
- #define MATCHER_P2(name, p0, p1, description)\
1486
- template <typename p0##_type, typename p1##_type>\
1487
- class name##MatcherP2 {\
1488
- public:\
1489
- template <typename arg_type>\
1490
- class gmock_Impl : public ::testing::MatcherInterface<\
1491
- GTEST_REFERENCE_TO_CONST_(arg_type)> {\
1492
- public:\
1493
- gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1)\
1494
- : p0(::testing::internal::move(gmock_p0)), \
1495
- p1(::testing::internal::move(gmock_p1)) {}\
1496
- virtual bool MatchAndExplain(\
1497
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
1498
- ::testing::MatchResultListener* result_listener) const;\
1499
- virtual void DescribeTo(::std::ostream* gmock_os) const {\
1500
- *gmock_os << FormatDescription(false);\
1501
- }\
1502
- virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\
1503
- *gmock_os << FormatDescription(true);\
1504
- }\
1505
- p0##_type const p0;\
1506
- p1##_type const p1;\
1507
- private:\
1508
- ::std::string FormatDescription(bool negation) const {\
1509
- ::std::string gmock_description = (description);\
1510
- if (!gmock_description.empty())\
1511
- return gmock_description;\
1512
- return ::testing::internal::FormatMatcherDescription(\
1513
- negation, #name, \
1514
- ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
1515
- ::testing::tuple<p0##_type, p1##_type>(p0, p1)));\
1516
- }\
1517
- };\
1518
- template <typename arg_type>\
1519
- operator ::testing::Matcher<arg_type>() const {\
1520
- return ::testing::Matcher<arg_type>(\
1521
- new gmock_Impl<arg_type>(p0, p1));\
1522
- }\
1523
- name##MatcherP2(p0##_type gmock_p0, \
1524
- p1##_type gmock_p1) : p0(::testing::internal::move(gmock_p0)), \
1525
- p1(::testing::internal::move(gmock_p1)) {\
1526
- }\
1527
- p0##_type const p0;\
1528
- p1##_type const p1;\
1529
- private:\
1530
- };\
1531
- template <typename p0##_type, typename p1##_type>\
1532
- inline name##MatcherP2<p0##_type, p1##_type> name(p0##_type p0, \
1533
- p1##_type p1) {\
1534
- return name##MatcherP2<p0##_type, p1##_type>(p0, p1);\
1535
- }\
1536
- template <typename p0##_type, typename p1##_type>\
1537
- template <typename arg_type>\
1538
- bool name##MatcherP2<p0##_type, \
1539
- p1##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
1540
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
1541
- ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
1542
- const
1543
-
1544
- #define MATCHER_P3(name, p0, p1, p2, description)\
1545
- template <typename p0##_type, typename p1##_type, typename p2##_type>\
1546
- class name##MatcherP3 {\
1547
- public:\
1548
- template <typename arg_type>\
1549
- class gmock_Impl : public ::testing::MatcherInterface<\
1550
- GTEST_REFERENCE_TO_CONST_(arg_type)> {\
1551
- public:\
1552
- gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2)\
1553
- : p0(::testing::internal::move(gmock_p0)), \
1554
- p1(::testing::internal::move(gmock_p1)), \
1555
- p2(::testing::internal::move(gmock_p2)) {}\
1556
- virtual bool MatchAndExplain(\
1557
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
1558
- ::testing::MatchResultListener* result_listener) const;\
1559
- virtual void DescribeTo(::std::ostream* gmock_os) const {\
1560
- *gmock_os << FormatDescription(false);\
1561
- }\
1562
- virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\
1563
- *gmock_os << FormatDescription(true);\
1564
- }\
1565
- p0##_type const p0;\
1566
- p1##_type const p1;\
1567
- p2##_type const p2;\
1568
- private:\
1569
- ::std::string FormatDescription(bool negation) const {\
1570
- ::std::string gmock_description = (description);\
1571
- if (!gmock_description.empty())\
1572
- return gmock_description;\
1573
- return ::testing::internal::FormatMatcherDescription(\
1574
- negation, #name, \
1575
- ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
1576
- ::testing::tuple<p0##_type, p1##_type, p2##_type>(p0, p1, \
1577
- p2)));\
1578
- }\
1579
- };\
1580
- template <typename arg_type>\
1581
- operator ::testing::Matcher<arg_type>() const {\
1582
- return ::testing::Matcher<arg_type>(\
1583
- new gmock_Impl<arg_type>(p0, p1, p2));\
1584
- }\
1585
- name##MatcherP3(p0##_type gmock_p0, p1##_type gmock_p1, \
1586
- p2##_type gmock_p2) : p0(::testing::internal::move(gmock_p0)), \
1587
- p1(::testing::internal::move(gmock_p1)), \
1588
- p2(::testing::internal::move(gmock_p2)) {\
1589
- }\
1590
- p0##_type const p0;\
1591
- p1##_type const p1;\
1592
- p2##_type const p2;\
1593
- private:\
1594
- };\
1595
- template <typename p0##_type, typename p1##_type, typename p2##_type>\
1596
- inline name##MatcherP3<p0##_type, p1##_type, p2##_type> name(p0##_type p0, \
1597
- p1##_type p1, p2##_type p2) {\
1598
- return name##MatcherP3<p0##_type, p1##_type, p2##_type>(p0, p1, p2);\
1599
- }\
1600
- template <typename p0##_type, typename p1##_type, typename p2##_type>\
1601
- template <typename arg_type>\
1602
- bool name##MatcherP3<p0##_type, p1##_type, \
1603
- p2##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
1604
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
1605
- ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
1606
- const
1607
-
1608
- #define MATCHER_P4(name, p0, p1, p2, p3, description)\
1609
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
1610
- typename p3##_type>\
1611
- class name##MatcherP4 {\
1612
- public:\
1613
- template <typename arg_type>\
1614
- class gmock_Impl : public ::testing::MatcherInterface<\
1615
- GTEST_REFERENCE_TO_CONST_(arg_type)> {\
1616
- public:\
1617
- gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1618
- p3##_type gmock_p3)\
1619
- : p0(::testing::internal::move(gmock_p0)), \
1620
- p1(::testing::internal::move(gmock_p1)), \
1621
- p2(::testing::internal::move(gmock_p2)), \
1622
- p3(::testing::internal::move(gmock_p3)) {}\
1623
- virtual bool MatchAndExplain(\
1624
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
1625
- ::testing::MatchResultListener* result_listener) const;\
1626
- virtual void DescribeTo(::std::ostream* gmock_os) const {\
1627
- *gmock_os << FormatDescription(false);\
1628
- }\
1629
- virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\
1630
- *gmock_os << FormatDescription(true);\
1631
- }\
1632
- p0##_type const p0;\
1633
- p1##_type const p1;\
1634
- p2##_type const p2;\
1635
- p3##_type const p3;\
1636
- private:\
1637
- ::std::string FormatDescription(bool negation) const {\
1638
- ::std::string gmock_description = (description);\
1639
- if (!gmock_description.empty())\
1640
- return gmock_description;\
1641
- return ::testing::internal::FormatMatcherDescription(\
1642
- negation, #name, \
1643
- ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
1644
- ::testing::tuple<p0##_type, p1##_type, p2##_type, \
1645
- p3##_type>(p0, p1, p2, p3)));\
1646
- }\
1647
- };\
1648
- template <typename arg_type>\
1649
- operator ::testing::Matcher<arg_type>() const {\
1650
- return ::testing::Matcher<arg_type>(\
1651
- new gmock_Impl<arg_type>(p0, p1, p2, p3));\
1652
- }\
1653
- name##MatcherP4(p0##_type gmock_p0, p1##_type gmock_p1, \
1654
- p2##_type gmock_p2, \
1655
- p3##_type gmock_p3) : p0(::testing::internal::move(gmock_p0)), \
1656
- p1(::testing::internal::move(gmock_p1)), \
1657
- p2(::testing::internal::move(gmock_p2)), \
1658
- p3(::testing::internal::move(gmock_p3)) {\
1659
- }\
1660
- p0##_type const p0;\
1661
- p1##_type const p1;\
1662
- p2##_type const p2;\
1663
- p3##_type const p3;\
1664
- private:\
1665
- };\
1666
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
1667
- typename p3##_type>\
1668
- inline name##MatcherP4<p0##_type, p1##_type, p2##_type, \
1669
- p3##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \
1670
- p3##_type p3) {\
1671
- return name##MatcherP4<p0##_type, p1##_type, p2##_type, p3##_type>(p0, \
1672
- p1, p2, p3);\
1673
- }\
1674
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
1675
- typename p3##_type>\
1676
- template <typename arg_type>\
1677
- bool name##MatcherP4<p0##_type, p1##_type, p2##_type, \
1678
- p3##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
1679
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
1680
- ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
1681
- const
1682
-
1683
- #define MATCHER_P5(name, p0, p1, p2, p3, p4, description)\
1684
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
1685
- typename p3##_type, typename p4##_type>\
1686
- class name##MatcherP5 {\
1687
- public:\
1688
- template <typename arg_type>\
1689
- class gmock_Impl : public ::testing::MatcherInterface<\
1690
- GTEST_REFERENCE_TO_CONST_(arg_type)> {\
1691
- public:\
1692
- gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1693
- p3##_type gmock_p3, p4##_type gmock_p4)\
1694
- : p0(::testing::internal::move(gmock_p0)), \
1695
- p1(::testing::internal::move(gmock_p1)), \
1696
- p2(::testing::internal::move(gmock_p2)), \
1697
- p3(::testing::internal::move(gmock_p3)), \
1698
- p4(::testing::internal::move(gmock_p4)) {}\
1699
- virtual bool MatchAndExplain(\
1700
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
1701
- ::testing::MatchResultListener* result_listener) const;\
1702
- virtual void DescribeTo(::std::ostream* gmock_os) const {\
1703
- *gmock_os << FormatDescription(false);\
1704
- }\
1705
- virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\
1706
- *gmock_os << FormatDescription(true);\
1707
- }\
1708
- p0##_type const p0;\
1709
- p1##_type const p1;\
1710
- p2##_type const p2;\
1711
- p3##_type const p3;\
1712
- p4##_type const p4;\
1713
- private:\
1714
- ::std::string FormatDescription(bool negation) const {\
1715
- ::std::string gmock_description = (description);\
1716
- if (!gmock_description.empty())\
1717
- return gmock_description;\
1718
- return ::testing::internal::FormatMatcherDescription(\
1719
- negation, #name, \
1720
- ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
1721
- ::testing::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
1722
- p4##_type>(p0, p1, p2, p3, p4)));\
1723
- }\
1724
- };\
1725
- template <typename arg_type>\
1726
- operator ::testing::Matcher<arg_type>() const {\
1727
- return ::testing::Matcher<arg_type>(\
1728
- new gmock_Impl<arg_type>(p0, p1, p2, p3, p4));\
1729
- }\
1730
- name##MatcherP5(p0##_type gmock_p0, p1##_type gmock_p1, \
1731
- p2##_type gmock_p2, p3##_type gmock_p3, \
1732
- p4##_type gmock_p4) : p0(::testing::internal::move(gmock_p0)), \
1733
- p1(::testing::internal::move(gmock_p1)), \
1734
- p2(::testing::internal::move(gmock_p2)), \
1735
- p3(::testing::internal::move(gmock_p3)), \
1736
- p4(::testing::internal::move(gmock_p4)) {\
1737
- }\
1738
- p0##_type const p0;\
1739
- p1##_type const p1;\
1740
- p2##_type const p2;\
1741
- p3##_type const p3;\
1742
- p4##_type const p4;\
1743
- private:\
1744
- };\
1745
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
1746
- typename p3##_type, typename p4##_type>\
1747
- inline name##MatcherP5<p0##_type, p1##_type, p2##_type, p3##_type, \
1748
- p4##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \
1749
- p4##_type p4) {\
1750
- return name##MatcherP5<p0##_type, p1##_type, p2##_type, p3##_type, \
1751
- p4##_type>(p0, p1, p2, p3, p4);\
1752
- }\
1753
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
1754
- typename p3##_type, typename p4##_type>\
1755
- template <typename arg_type>\
1756
- bool name##MatcherP5<p0##_type, p1##_type, p2##_type, p3##_type, \
1757
- p4##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
1758
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
1759
- ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
1760
- const
1761
-
1762
- #define MATCHER_P6(name, p0, p1, p2, p3, p4, p5, description)\
1763
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
1764
- typename p3##_type, typename p4##_type, typename p5##_type>\
1765
- class name##MatcherP6 {\
1766
- public:\
1767
- template <typename arg_type>\
1768
- class gmock_Impl : public ::testing::MatcherInterface<\
1769
- GTEST_REFERENCE_TO_CONST_(arg_type)> {\
1770
- public:\
1771
- gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1772
- p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5)\
1773
- : p0(::testing::internal::move(gmock_p0)), \
1774
- p1(::testing::internal::move(gmock_p1)), \
1775
- p2(::testing::internal::move(gmock_p2)), \
1776
- p3(::testing::internal::move(gmock_p3)), \
1777
- p4(::testing::internal::move(gmock_p4)), \
1778
- p5(::testing::internal::move(gmock_p5)) {}\
1779
- virtual bool MatchAndExplain(\
1780
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
1781
- ::testing::MatchResultListener* result_listener) const;\
1782
- virtual void DescribeTo(::std::ostream* gmock_os) const {\
1783
- *gmock_os << FormatDescription(false);\
1784
- }\
1785
- virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\
1786
- *gmock_os << FormatDescription(true);\
1787
- }\
1788
- p0##_type const p0;\
1789
- p1##_type const p1;\
1790
- p2##_type const p2;\
1791
- p3##_type const p3;\
1792
- p4##_type const p4;\
1793
- p5##_type const p5;\
1794
- private:\
1795
- ::std::string FormatDescription(bool negation) const {\
1796
- ::std::string gmock_description = (description);\
1797
- if (!gmock_description.empty())\
1798
- return gmock_description;\
1799
- return ::testing::internal::FormatMatcherDescription(\
1800
- negation, #name, \
1801
- ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
1802
- ::testing::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
1803
- p4##_type, p5##_type>(p0, p1, p2, p3, p4, p5)));\
1804
- }\
1805
- };\
1806
- template <typename arg_type>\
1807
- operator ::testing::Matcher<arg_type>() const {\
1808
- return ::testing::Matcher<arg_type>(\
1809
- new gmock_Impl<arg_type>(p0, p1, p2, p3, p4, p5));\
1810
- }\
1811
- name##MatcherP6(p0##_type gmock_p0, p1##_type gmock_p1, \
1812
- p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
1813
- p5##_type gmock_p5) : p0(::testing::internal::move(gmock_p0)), \
1814
- p1(::testing::internal::move(gmock_p1)), \
1815
- p2(::testing::internal::move(gmock_p2)), \
1816
- p3(::testing::internal::move(gmock_p3)), \
1817
- p4(::testing::internal::move(gmock_p4)), \
1818
- p5(::testing::internal::move(gmock_p5)) {\
1819
- }\
1820
- p0##_type const p0;\
1821
- p1##_type const p1;\
1822
- p2##_type const p2;\
1823
- p3##_type const p3;\
1824
- p4##_type const p4;\
1825
- p5##_type const p5;\
1826
- private:\
1827
- };\
1828
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
1829
- typename p3##_type, typename p4##_type, typename p5##_type>\
1830
- inline name##MatcherP6<p0##_type, p1##_type, p2##_type, p3##_type, \
1831
- p4##_type, p5##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \
1832
- p3##_type p3, p4##_type p4, p5##_type p5) {\
1833
- return name##MatcherP6<p0##_type, p1##_type, p2##_type, p3##_type, \
1834
- p4##_type, p5##_type>(p0, p1, p2, p3, p4, p5);\
1835
- }\
1836
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
1837
- typename p3##_type, typename p4##_type, typename p5##_type>\
1838
- template <typename arg_type>\
1839
- bool name##MatcherP6<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
1840
- p5##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
1841
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
1842
- ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
1843
- const
1844
-
1845
- #define MATCHER_P7(name, p0, p1, p2, p3, p4, p5, p6, description)\
1846
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
1847
- typename p3##_type, typename p4##_type, typename p5##_type, \
1848
- typename p6##_type>\
1849
- class name##MatcherP7 {\
1850
- public:\
1851
- template <typename arg_type>\
1852
- class gmock_Impl : public ::testing::MatcherInterface<\
1853
- GTEST_REFERENCE_TO_CONST_(arg_type)> {\
1854
- public:\
1855
- gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1856
- p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1857
- p6##_type gmock_p6)\
1858
- : p0(::testing::internal::move(gmock_p0)), \
1859
- p1(::testing::internal::move(gmock_p1)), \
1860
- p2(::testing::internal::move(gmock_p2)), \
1861
- p3(::testing::internal::move(gmock_p3)), \
1862
- p4(::testing::internal::move(gmock_p4)), \
1863
- p5(::testing::internal::move(gmock_p5)), \
1864
- p6(::testing::internal::move(gmock_p6)) {}\
1865
- virtual bool MatchAndExplain(\
1866
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
1867
- ::testing::MatchResultListener* result_listener) const;\
1868
- virtual void DescribeTo(::std::ostream* gmock_os) const {\
1869
- *gmock_os << FormatDescription(false);\
1870
- }\
1871
- virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\
1872
- *gmock_os << FormatDescription(true);\
1873
- }\
1874
- p0##_type const p0;\
1875
- p1##_type const p1;\
1876
- p2##_type const p2;\
1877
- p3##_type const p3;\
1878
- p4##_type const p4;\
1879
- p5##_type const p5;\
1880
- p6##_type const p6;\
1881
- private:\
1882
- ::std::string FormatDescription(bool negation) const {\
1883
- ::std::string gmock_description = (description);\
1884
- if (!gmock_description.empty())\
1885
- return gmock_description;\
1886
- return ::testing::internal::FormatMatcherDescription(\
1887
- negation, #name, \
1888
- ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
1889
- ::testing::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
1890
- p4##_type, p5##_type, p6##_type>(p0, p1, p2, p3, p4, p5, \
1891
- p6)));\
1892
- }\
1893
- };\
1894
- template <typename arg_type>\
1895
- operator ::testing::Matcher<arg_type>() const {\
1896
- return ::testing::Matcher<arg_type>(\
1897
- new gmock_Impl<arg_type>(p0, p1, p2, p3, p4, p5, p6));\
1898
- }\
1899
- name##MatcherP7(p0##_type gmock_p0, p1##_type gmock_p1, \
1900
- p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
1901
- p5##_type gmock_p5, \
1902
- p6##_type gmock_p6) : p0(::testing::internal::move(gmock_p0)), \
1903
- p1(::testing::internal::move(gmock_p1)), \
1904
- p2(::testing::internal::move(gmock_p2)), \
1905
- p3(::testing::internal::move(gmock_p3)), \
1906
- p4(::testing::internal::move(gmock_p4)), \
1907
- p5(::testing::internal::move(gmock_p5)), \
1908
- p6(::testing::internal::move(gmock_p6)) {\
1909
- }\
1910
- p0##_type const p0;\
1911
- p1##_type const p1;\
1912
- p2##_type const p2;\
1913
- p3##_type const p3;\
1914
- p4##_type const p4;\
1915
- p5##_type const p5;\
1916
- p6##_type const p6;\
1917
- private:\
1918
- };\
1919
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
1920
- typename p3##_type, typename p4##_type, typename p5##_type, \
1921
- typename p6##_type>\
1922
- inline name##MatcherP7<p0##_type, p1##_type, p2##_type, p3##_type, \
1923
- p4##_type, p5##_type, p6##_type> name(p0##_type p0, p1##_type p1, \
1924
- p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \
1925
- p6##_type p6) {\
1926
- return name##MatcherP7<p0##_type, p1##_type, p2##_type, p3##_type, \
1927
- p4##_type, p5##_type, p6##_type>(p0, p1, p2, p3, p4, p5, p6);\
1928
- }\
1929
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
1930
- typename p3##_type, typename p4##_type, typename p5##_type, \
1931
- typename p6##_type>\
1932
- template <typename arg_type>\
1933
- bool name##MatcherP7<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
1934
- p5##_type, p6##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
1935
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
1936
- ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
1937
- const
1938
-
1939
- #define MATCHER_P8(name, p0, p1, p2, p3, p4, p5, p6, p7, description)\
1940
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
1941
- typename p3##_type, typename p4##_type, typename p5##_type, \
1942
- typename p6##_type, typename p7##_type>\
1943
- class name##MatcherP8 {\
1944
- public:\
1945
- template <typename arg_type>\
1946
- class gmock_Impl : public ::testing::MatcherInterface<\
1947
- GTEST_REFERENCE_TO_CONST_(arg_type)> {\
1948
- public:\
1949
- gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1950
- p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1951
- p6##_type gmock_p6, p7##_type gmock_p7)\
1952
- : p0(::testing::internal::move(gmock_p0)), \
1953
- p1(::testing::internal::move(gmock_p1)), \
1954
- p2(::testing::internal::move(gmock_p2)), \
1955
- p3(::testing::internal::move(gmock_p3)), \
1956
- p4(::testing::internal::move(gmock_p4)), \
1957
- p5(::testing::internal::move(gmock_p5)), \
1958
- p6(::testing::internal::move(gmock_p6)), \
1959
- p7(::testing::internal::move(gmock_p7)) {}\
1960
- virtual bool MatchAndExplain(\
1961
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
1962
- ::testing::MatchResultListener* result_listener) const;\
1963
- virtual void DescribeTo(::std::ostream* gmock_os) const {\
1964
- *gmock_os << FormatDescription(false);\
1965
- }\
1966
- virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\
1967
- *gmock_os << FormatDescription(true);\
1968
- }\
1969
- p0##_type const p0;\
1970
- p1##_type const p1;\
1971
- p2##_type const p2;\
1972
- p3##_type const p3;\
1973
- p4##_type const p4;\
1974
- p5##_type const p5;\
1975
- p6##_type const p6;\
1976
- p7##_type const p7;\
1977
- private:\
1978
- ::std::string FormatDescription(bool negation) const {\
1979
- ::std::string gmock_description = (description);\
1980
- if (!gmock_description.empty())\
1981
- return gmock_description;\
1982
- return ::testing::internal::FormatMatcherDescription(\
1983
- negation, #name, \
1984
- ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
1985
- ::testing::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
1986
- p4##_type, p5##_type, p6##_type, p7##_type>(p0, p1, p2, \
1987
- p3, p4, p5, p6, p7)));\
1988
- }\
1989
- };\
1990
- template <typename arg_type>\
1991
- operator ::testing::Matcher<arg_type>() const {\
1992
- return ::testing::Matcher<arg_type>(\
1993
- new gmock_Impl<arg_type>(p0, p1, p2, p3, p4, p5, p6, p7));\
1994
- }\
1995
- name##MatcherP8(p0##_type gmock_p0, p1##_type gmock_p1, \
1996
- p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
1997
- p5##_type gmock_p5, p6##_type gmock_p6, \
1998
- p7##_type gmock_p7) : p0(::testing::internal::move(gmock_p0)), \
1999
- p1(::testing::internal::move(gmock_p1)), \
2000
- p2(::testing::internal::move(gmock_p2)), \
2001
- p3(::testing::internal::move(gmock_p3)), \
2002
- p4(::testing::internal::move(gmock_p4)), \
2003
- p5(::testing::internal::move(gmock_p5)), \
2004
- p6(::testing::internal::move(gmock_p6)), \
2005
- p7(::testing::internal::move(gmock_p7)) {\
2006
- }\
2007
- p0##_type const p0;\
2008
- p1##_type const p1;\
2009
- p2##_type const p2;\
2010
- p3##_type const p3;\
2011
- p4##_type const p4;\
2012
- p5##_type const p5;\
2013
- p6##_type const p6;\
2014
- p7##_type const p7;\
2015
- private:\
2016
- };\
2017
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
2018
- typename p3##_type, typename p4##_type, typename p5##_type, \
2019
- typename p6##_type, typename p7##_type>\
2020
- inline name##MatcherP8<p0##_type, p1##_type, p2##_type, p3##_type, \
2021
- p4##_type, p5##_type, p6##_type, p7##_type> name(p0##_type p0, \
2022
- p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \
2023
- p6##_type p6, p7##_type p7) {\
2024
- return name##MatcherP8<p0##_type, p1##_type, p2##_type, p3##_type, \
2025
- p4##_type, p5##_type, p6##_type, p7##_type>(p0, p1, p2, p3, p4, p5, \
2026
- p6, p7);\
2027
- }\
2028
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
2029
- typename p3##_type, typename p4##_type, typename p5##_type, \
2030
- typename p6##_type, typename p7##_type>\
2031
- template <typename arg_type>\
2032
- bool name##MatcherP8<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
2033
- p5##_type, p6##_type, \
2034
- p7##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
2035
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
2036
- ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
2037
- const
2038
-
2039
- #define MATCHER_P9(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, description)\
2040
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
2041
- typename p3##_type, typename p4##_type, typename p5##_type, \
2042
- typename p6##_type, typename p7##_type, typename p8##_type>\
2043
- class name##MatcherP9 {\
2044
- public:\
2045
- template <typename arg_type>\
2046
- class gmock_Impl : public ::testing::MatcherInterface<\
2047
- GTEST_REFERENCE_TO_CONST_(arg_type)> {\
2048
- public:\
2049
- gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
2050
- p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
2051
- p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8)\
2052
- : p0(::testing::internal::move(gmock_p0)), \
2053
- p1(::testing::internal::move(gmock_p1)), \
2054
- p2(::testing::internal::move(gmock_p2)), \
2055
- p3(::testing::internal::move(gmock_p3)), \
2056
- p4(::testing::internal::move(gmock_p4)), \
2057
- p5(::testing::internal::move(gmock_p5)), \
2058
- p6(::testing::internal::move(gmock_p6)), \
2059
- p7(::testing::internal::move(gmock_p7)), \
2060
- p8(::testing::internal::move(gmock_p8)) {}\
2061
- virtual bool MatchAndExplain(\
2062
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
2063
- ::testing::MatchResultListener* result_listener) const;\
2064
- virtual void DescribeTo(::std::ostream* gmock_os) const {\
2065
- *gmock_os << FormatDescription(false);\
2066
- }\
2067
- virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\
2068
- *gmock_os << FormatDescription(true);\
2069
- }\
2070
- p0##_type const p0;\
2071
- p1##_type const p1;\
2072
- p2##_type const p2;\
2073
- p3##_type const p3;\
2074
- p4##_type const p4;\
2075
- p5##_type const p5;\
2076
- p6##_type const p6;\
2077
- p7##_type const p7;\
2078
- p8##_type const p8;\
2079
- private:\
2080
- ::std::string FormatDescription(bool negation) const {\
2081
- ::std::string gmock_description = (description);\
2082
- if (!gmock_description.empty())\
2083
- return gmock_description;\
2084
- return ::testing::internal::FormatMatcherDescription(\
2085
- negation, #name, \
2086
- ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
2087
- ::testing::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
2088
- p4##_type, p5##_type, p6##_type, p7##_type, \
2089
- p8##_type>(p0, p1, p2, p3, p4, p5, p6, p7, p8)));\
2090
- }\
2091
- };\
2092
- template <typename arg_type>\
2093
- operator ::testing::Matcher<arg_type>() const {\
2094
- return ::testing::Matcher<arg_type>(\
2095
- new gmock_Impl<arg_type>(p0, p1, p2, p3, p4, p5, p6, p7, p8));\
2096
- }\
2097
- name##MatcherP9(p0##_type gmock_p0, p1##_type gmock_p1, \
2098
- p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
2099
- p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \
2100
- p8##_type gmock_p8) : p0(::testing::internal::move(gmock_p0)), \
2101
- p1(::testing::internal::move(gmock_p1)), \
2102
- p2(::testing::internal::move(gmock_p2)), \
2103
- p3(::testing::internal::move(gmock_p3)), \
2104
- p4(::testing::internal::move(gmock_p4)), \
2105
- p5(::testing::internal::move(gmock_p5)), \
2106
- p6(::testing::internal::move(gmock_p6)), \
2107
- p7(::testing::internal::move(gmock_p7)), \
2108
- p8(::testing::internal::move(gmock_p8)) {\
2109
- }\
2110
- p0##_type const p0;\
2111
- p1##_type const p1;\
2112
- p2##_type const p2;\
2113
- p3##_type const p3;\
2114
- p4##_type const p4;\
2115
- p5##_type const p5;\
2116
- p6##_type const p6;\
2117
- p7##_type const p7;\
2118
- p8##_type const p8;\
2119
- private:\
2120
- };\
2121
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
2122
- typename p3##_type, typename p4##_type, typename p5##_type, \
2123
- typename p6##_type, typename p7##_type, typename p8##_type>\
2124
- inline name##MatcherP9<p0##_type, p1##_type, p2##_type, p3##_type, \
2125
- p4##_type, p5##_type, p6##_type, p7##_type, \
2126
- p8##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \
2127
- p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, \
2128
- p8##_type p8) {\
2129
- return name##MatcherP9<p0##_type, p1##_type, p2##_type, p3##_type, \
2130
- p4##_type, p5##_type, p6##_type, p7##_type, p8##_type>(p0, p1, p2, \
2131
- p3, p4, p5, p6, p7, p8);\
2132
- }\
2133
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
2134
- typename p3##_type, typename p4##_type, typename p5##_type, \
2135
- typename p6##_type, typename p7##_type, typename p8##_type>\
2136
- template <typename arg_type>\
2137
- bool name##MatcherP9<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
2138
- p5##_type, p6##_type, p7##_type, \
2139
- p8##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
2140
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
2141
- ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
2142
- const
2143
-
2144
- #define MATCHER_P10(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, description)\
2145
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
2146
- typename p3##_type, typename p4##_type, typename p5##_type, \
2147
- typename p6##_type, typename p7##_type, typename p8##_type, \
2148
- typename p9##_type>\
2149
- class name##MatcherP10 {\
2150
- public:\
2151
- template <typename arg_type>\
2152
- class gmock_Impl : public ::testing::MatcherInterface<\
2153
- GTEST_REFERENCE_TO_CONST_(arg_type)> {\
2154
- public:\
2155
- gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
2156
- p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
2157
- p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \
2158
- p9##_type gmock_p9)\
2159
- : p0(::testing::internal::move(gmock_p0)), \
2160
- p1(::testing::internal::move(gmock_p1)), \
2161
- p2(::testing::internal::move(gmock_p2)), \
2162
- p3(::testing::internal::move(gmock_p3)), \
2163
- p4(::testing::internal::move(gmock_p4)), \
2164
- p5(::testing::internal::move(gmock_p5)), \
2165
- p6(::testing::internal::move(gmock_p6)), \
2166
- p7(::testing::internal::move(gmock_p7)), \
2167
- p8(::testing::internal::move(gmock_p8)), \
2168
- p9(::testing::internal::move(gmock_p9)) {}\
2169
- virtual bool MatchAndExplain(\
2170
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
2171
- ::testing::MatchResultListener* result_listener) const;\
2172
- virtual void DescribeTo(::std::ostream* gmock_os) const {\
2173
- *gmock_os << FormatDescription(false);\
2174
- }\
2175
- virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\
2176
- *gmock_os << FormatDescription(true);\
2177
- }\
2178
- p0##_type const p0;\
2179
- p1##_type const p1;\
2180
- p2##_type const p2;\
2181
- p3##_type const p3;\
2182
- p4##_type const p4;\
2183
- p5##_type const p5;\
2184
- p6##_type const p6;\
2185
- p7##_type const p7;\
2186
- p8##_type const p8;\
2187
- p9##_type const p9;\
2188
- private:\
2189
- ::std::string FormatDescription(bool negation) const {\
2190
- ::std::string gmock_description = (description);\
2191
- if (!gmock_description.empty())\
2192
- return gmock_description;\
2193
- return ::testing::internal::FormatMatcherDescription(\
2194
- negation, #name, \
2195
- ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
2196
- ::testing::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
2197
- p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \
2198
- p9##_type>(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)));\
2199
- }\
2200
- };\
2201
- template <typename arg_type>\
2202
- operator ::testing::Matcher<arg_type>() const {\
2203
- return ::testing::Matcher<arg_type>(\
2204
- new gmock_Impl<arg_type>(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9));\
2205
- }\
2206
- name##MatcherP10(p0##_type gmock_p0, p1##_type gmock_p1, \
2207
- p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
2208
- p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \
2209
- p8##_type gmock_p8, \
2210
- p9##_type gmock_p9) : p0(::testing::internal::move(gmock_p0)), \
2211
- p1(::testing::internal::move(gmock_p1)), \
2212
- p2(::testing::internal::move(gmock_p2)), \
2213
- p3(::testing::internal::move(gmock_p3)), \
2214
- p4(::testing::internal::move(gmock_p4)), \
2215
- p5(::testing::internal::move(gmock_p5)), \
2216
- p6(::testing::internal::move(gmock_p6)), \
2217
- p7(::testing::internal::move(gmock_p7)), \
2218
- p8(::testing::internal::move(gmock_p8)), \
2219
- p9(::testing::internal::move(gmock_p9)) {\
2220
- }\
2221
- p0##_type const p0;\
2222
- p1##_type const p1;\
2223
- p2##_type const p2;\
2224
- p3##_type const p3;\
2225
- p4##_type const p4;\
2226
- p5##_type const p5;\
2227
- p6##_type const p6;\
2228
- p7##_type const p7;\
2229
- p8##_type const p8;\
2230
- p9##_type const p9;\
2231
- private:\
2232
- };\
2233
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
2234
- typename p3##_type, typename p4##_type, typename p5##_type, \
2235
- typename p6##_type, typename p7##_type, typename p8##_type, \
2236
- typename p9##_type>\
2237
- inline name##MatcherP10<p0##_type, p1##_type, p2##_type, p3##_type, \
2238
- p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \
2239
- p9##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \
2240
- p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8, \
2241
- p9##_type p9) {\
2242
- return name##MatcherP10<p0##_type, p1##_type, p2##_type, p3##_type, \
2243
- p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, p9##_type>(p0, \
2244
- p1, p2, p3, p4, p5, p6, p7, p8, p9);\
2245
- }\
2246
- template <typename p0##_type, typename p1##_type, typename p2##_type, \
2247
- typename p3##_type, typename p4##_type, typename p5##_type, \
2248
- typename p6##_type, typename p7##_type, typename p8##_type, \
2249
- typename p9##_type>\
2250
- template <typename arg_type>\
2251
- bool name##MatcherP10<p0##_type, p1##_type, p2##_type, p3##_type, \
2252
- p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \
2253
- p9##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
2254
- GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
2255
- ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
2256
- const
2257
-
2258
- #endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_MATCHERS_H_