rj_schema 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (614) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rj_schema/rapidjson/CHANGELOG.md +158 -0
  3. data/ext/rj_schema/rapidjson/CMakeLists.txt +226 -0
  4. data/ext/rj_schema/rapidjson/CMakeModules/FindGTestSrc.cmake +30 -0
  5. data/ext/rj_schema/rapidjson/RapidJSON.pc.in +7 -0
  6. data/ext/rj_schema/rapidjson/RapidJSONConfig.cmake.in +25 -0
  7. data/ext/rj_schema/rapidjson/RapidJSONConfigVersion.cmake.in +10 -0
  8. data/ext/rj_schema/rapidjson/appveyor.yml +54 -0
  9. data/ext/rj_schema/rapidjson/bin/data/abcde.txt +1 -0
  10. data/ext/rj_schema/rapidjson/bin/data/glossary.json +22 -0
  11. data/ext/rj_schema/rapidjson/bin/data/menu.json +27 -0
  12. data/ext/rj_schema/rapidjson/bin/data/readme.txt +1 -0
  13. data/ext/rj_schema/rapidjson/bin/data/sample.json +3315 -0
  14. data/ext/rj_schema/rapidjson/bin/data/webapp.json +88 -0
  15. data/ext/rj_schema/rapidjson/bin/data/widget.json +26 -0
  16. data/ext/rj_schema/rapidjson/bin/draft-04/schema +150 -0
  17. data/ext/rj_schema/rapidjson/bin/encodings/utf16be.json +0 -0
  18. data/ext/rj_schema/rapidjson/bin/encodings/utf16bebom.json +0 -0
  19. data/ext/rj_schema/rapidjson/bin/encodings/utf16le.json +0 -0
  20. data/ext/rj_schema/rapidjson/bin/encodings/utf16lebom.json +0 -0
  21. data/ext/rj_schema/rapidjson/bin/encodings/utf32be.json +0 -0
  22. data/ext/rj_schema/rapidjson/bin/encodings/utf32bebom.json +0 -0
  23. data/ext/rj_schema/rapidjson/bin/encodings/utf32le.json +0 -0
  24. data/ext/rj_schema/rapidjson/bin/encodings/utf32lebom.json +0 -0
  25. data/ext/rj_schema/rapidjson/bin/encodings/utf8.json +7 -0
  26. data/ext/rj_schema/rapidjson/bin/encodings/utf8bom.json +7 -0
  27. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail1.json +1 -0
  28. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail10.json +1 -0
  29. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail11.json +1 -0
  30. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail12.json +1 -0
  31. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail13.json +1 -0
  32. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail14.json +1 -0
  33. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail15.json +1 -0
  34. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail16.json +1 -0
  35. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail17.json +1 -0
  36. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail18.json +1 -0
  37. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail19.json +1 -0
  38. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail2.json +1 -0
  39. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail20.json +1 -0
  40. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail21.json +1 -0
  41. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail22.json +1 -0
  42. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail23.json +1 -0
  43. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail24.json +1 -0
  44. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail25.json +1 -0
  45. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail26.json +1 -0
  46. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail27.json +2 -0
  47. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail28.json +2 -0
  48. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail29.json +1 -0
  49. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail3.json +1 -0
  50. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail30.json +1 -0
  51. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail31.json +1 -0
  52. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail32.json +1 -0
  53. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail33.json +1 -0
  54. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail4.json +1 -0
  55. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail5.json +1 -0
  56. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail6.json +1 -0
  57. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail7.json +1 -0
  58. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail8.json +1 -0
  59. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail9.json +1 -0
  60. data/ext/rj_schema/rapidjson/bin/jsonchecker/pass1.json +58 -0
  61. data/ext/rj_schema/rapidjson/bin/jsonchecker/pass2.json +1 -0
  62. data/ext/rj_schema/rapidjson/bin/jsonchecker/pass3.json +6 -0
  63. data/ext/rj_schema/rapidjson/bin/jsonchecker/readme.txt +3 -0
  64. data/ext/rj_schema/rapidjson/bin/jsonschema/LICENSE +19 -0
  65. data/ext/rj_schema/rapidjson/bin/jsonschema/README.md +148 -0
  66. data/ext/rj_schema/rapidjson/bin/jsonschema/bin/jsonschema_suite +283 -0
  67. data/ext/rj_schema/rapidjson/bin/jsonschema/remotes/folder/folderInteger.json +3 -0
  68. data/ext/rj_schema/rapidjson/bin/jsonschema/remotes/integer.json +3 -0
  69. data/ext/rj_schema/rapidjson/bin/jsonschema/remotes/subSchemas.json +8 -0
  70. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/additionalItems.json +82 -0
  71. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/additionalProperties.json +88 -0
  72. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/default.json +49 -0
  73. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/dependencies.json +108 -0
  74. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/disallow.json +80 -0
  75. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/divisibleBy.json +60 -0
  76. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/enum.json +71 -0
  77. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/extends.json +94 -0
  78. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/items.json +46 -0
  79. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/maxItems.json +28 -0
  80. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/maxLength.json +33 -0
  81. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/maximum.json +42 -0
  82. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/minItems.json +28 -0
  83. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/minLength.json +33 -0
  84. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/minimum.json +42 -0
  85. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/bignum.json +107 -0
  86. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/format.json +222 -0
  87. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/jsregex.json +18 -0
  88. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/zeroTerminatedFloats.json +15 -0
  89. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/pattern.json +34 -0
  90. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/patternProperties.json +110 -0
  91. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/properties.json +92 -0
  92. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/ref.json +159 -0
  93. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/refRemote.json +74 -0
  94. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/required.json +53 -0
  95. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/type.json +474 -0
  96. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/uniqueItems.json +79 -0
  97. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/additionalItems.json +82 -0
  98. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/additionalProperties.json +88 -0
  99. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/allOf.json +112 -0
  100. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/anyOf.json +68 -0
  101. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/default.json +49 -0
  102. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/definitions.json +32 -0
  103. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/dependencies.json +113 -0
  104. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/enum.json +72 -0
  105. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/items.json +46 -0
  106. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maxItems.json +28 -0
  107. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maxLength.json +33 -0
  108. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maxProperties.json +28 -0
  109. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maximum.json +42 -0
  110. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minItems.json +28 -0
  111. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minLength.json +33 -0
  112. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minProperties.json +28 -0
  113. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minimum.json +42 -0
  114. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/multipleOf.json +60 -0
  115. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/not.json +96 -0
  116. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/oneOf.json +68 -0
  117. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/optional/bignum.json +107 -0
  118. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/optional/format.json +148 -0
  119. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/optional/zeroTerminatedFloats.json +15 -0
  120. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/pattern.json +34 -0
  121. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/patternProperties.json +110 -0
  122. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/properties.json +92 -0
  123. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/ref.json +159 -0
  124. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/refRemote.json +74 -0
  125. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/required.json +39 -0
  126. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/type.json +330 -0
  127. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/uniqueItems.json +79 -0
  128. data/ext/rj_schema/rapidjson/bin/jsonschema/tox.ini +8 -0
  129. data/ext/rj_schema/rapidjson/bin/types/booleans.json +102 -0
  130. data/ext/rj_schema/rapidjson/bin/types/floats.json +102 -0
  131. data/ext/rj_schema/rapidjson/bin/types/guids.json +102 -0
  132. data/ext/rj_schema/rapidjson/bin/types/integers.json +102 -0
  133. data/ext/rj_schema/rapidjson/bin/types/mixed.json +592 -0
  134. data/ext/rj_schema/rapidjson/bin/types/nulls.json +102 -0
  135. data/ext/rj_schema/rapidjson/bin/types/paragraphs.json +102 -0
  136. data/ext/rj_schema/rapidjson/bin/types/readme.txt +1 -0
  137. data/ext/rj_schema/rapidjson/contrib/natvis/LICENSE +45 -0
  138. data/ext/rj_schema/rapidjson/contrib/natvis/README.md +7 -0
  139. data/ext/rj_schema/rapidjson/contrib/natvis/rapidjson.natvis +38 -0
  140. data/ext/rj_schema/rapidjson/doc/CMakeLists.txt +27 -0
  141. data/ext/rj_schema/rapidjson/doc/Doxyfile.in +2369 -0
  142. data/ext/rj_schema/rapidjson/doc/Doxyfile.zh-cn.in +2369 -0
  143. data/ext/rj_schema/rapidjson/doc/diagram/architecture.dot +50 -0
  144. data/ext/rj_schema/rapidjson/doc/diagram/architecture.png +0 -0
  145. data/ext/rj_schema/rapidjson/doc/diagram/insituparsing.dot +65 -0
  146. data/ext/rj_schema/rapidjson/doc/diagram/insituparsing.png +0 -0
  147. data/ext/rj_schema/rapidjson/doc/diagram/iterative-parser-states-diagram.dot +62 -0
  148. data/ext/rj_schema/rapidjson/doc/diagram/iterative-parser-states-diagram.png +0 -0
  149. data/ext/rj_schema/rapidjson/doc/diagram/makefile +8 -0
  150. data/ext/rj_schema/rapidjson/doc/diagram/move1.dot +47 -0
  151. data/ext/rj_schema/rapidjson/doc/diagram/move1.png +0 -0
  152. data/ext/rj_schema/rapidjson/doc/diagram/move2.dot +62 -0
  153. data/ext/rj_schema/rapidjson/doc/diagram/move2.png +0 -0
  154. data/ext/rj_schema/rapidjson/doc/diagram/move3.dot +60 -0
  155. data/ext/rj_schema/rapidjson/doc/diagram/move3.png +0 -0
  156. data/ext/rj_schema/rapidjson/doc/diagram/normalparsing.dot +56 -0
  157. data/ext/rj_schema/rapidjson/doc/diagram/normalparsing.png +0 -0
  158. data/ext/rj_schema/rapidjson/doc/diagram/simpledom.dot +54 -0
  159. data/ext/rj_schema/rapidjson/doc/diagram/simpledom.png +0 -0
  160. data/ext/rj_schema/rapidjson/doc/diagram/tutorial.dot +58 -0
  161. data/ext/rj_schema/rapidjson/doc/diagram/tutorial.png +0 -0
  162. data/ext/rj_schema/rapidjson/doc/diagram/utilityclass.dot +73 -0
  163. data/ext/rj_schema/rapidjson/doc/diagram/utilityclass.png +0 -0
  164. data/ext/rj_schema/rapidjson/doc/dom.md +281 -0
  165. data/ext/rj_schema/rapidjson/doc/dom.zh-cn.md +285 -0
  166. data/ext/rj_schema/rapidjson/doc/encoding.md +146 -0
  167. data/ext/rj_schema/rapidjson/doc/encoding.zh-cn.md +152 -0
  168. data/ext/rj_schema/rapidjson/doc/faq.md +289 -0
  169. data/ext/rj_schema/rapidjson/doc/faq.zh-cn.md +290 -0
  170. data/ext/rj_schema/rapidjson/doc/features.md +104 -0
  171. data/ext/rj_schema/rapidjson/doc/features.zh-cn.md +103 -0
  172. data/ext/rj_schema/rapidjson/doc/internals.md +368 -0
  173. data/ext/rj_schema/rapidjson/doc/internals.zh-cn.md +363 -0
  174. data/ext/rj_schema/rapidjson/doc/logo/rapidjson.png +0 -0
  175. data/ext/rj_schema/rapidjson/doc/logo/rapidjson.svg +119 -0
  176. data/ext/rj_schema/rapidjson/doc/misc/DoxygenLayout.xml +194 -0
  177. data/ext/rj_schema/rapidjson/doc/misc/doxygenextra.css +274 -0
  178. data/ext/rj_schema/rapidjson/doc/misc/footer.html +11 -0
  179. data/ext/rj_schema/rapidjson/doc/misc/header.html +24 -0
  180. data/ext/rj_schema/rapidjson/doc/npm.md +31 -0
  181. data/ext/rj_schema/rapidjson/doc/performance.md +26 -0
  182. data/ext/rj_schema/rapidjson/doc/performance.zh-cn.md +26 -0
  183. data/ext/rj_schema/rapidjson/doc/pointer.md +234 -0
  184. data/ext/rj_schema/rapidjson/doc/pointer.zh-cn.md +234 -0
  185. data/ext/rj_schema/rapidjson/doc/sax.md +509 -0
  186. data/ext/rj_schema/rapidjson/doc/sax.zh-cn.md +487 -0
  187. data/ext/rj_schema/rapidjson/doc/schema.md +505 -0
  188. data/ext/rj_schema/rapidjson/doc/schema.zh-cn.md +237 -0
  189. data/ext/rj_schema/rapidjson/doc/stream.md +429 -0
  190. data/ext/rj_schema/rapidjson/doc/stream.zh-cn.md +429 -0
  191. data/ext/rj_schema/rapidjson/doc/tutorial.md +536 -0
  192. data/ext/rj_schema/rapidjson/doc/tutorial.zh-cn.md +535 -0
  193. data/ext/rj_schema/rapidjson/docker/debian/Dockerfile +8 -0
  194. data/ext/rj_schema/rapidjson/example/CMakeLists.txt +46 -0
  195. data/ext/rj_schema/rapidjson/example/archiver/archiver.cpp +292 -0
  196. data/ext/rj_schema/rapidjson/example/archiver/archiver.h +145 -0
  197. data/ext/rj_schema/rapidjson/example/archiver/archivertest.cpp +287 -0
  198. data/ext/rj_schema/rapidjson/example/capitalize/capitalize.cpp +67 -0
  199. data/ext/rj_schema/rapidjson/example/condense/condense.cpp +32 -0
  200. data/ext/rj_schema/rapidjson/example/filterkey/filterkey.cpp +135 -0
  201. data/ext/rj_schema/rapidjson/example/filterkeydom/filterkeydom.cpp +170 -0
  202. data/ext/rj_schema/rapidjson/example/jsonx/jsonx.cpp +207 -0
  203. data/ext/rj_schema/rapidjson/example/lookaheadparser/lookaheadparser.cpp +350 -0
  204. data/ext/rj_schema/rapidjson/example/messagereader/messagereader.cpp +105 -0
  205. data/ext/rj_schema/rapidjson/example/parsebyparts/parsebyparts.cpp +176 -0
  206. data/ext/rj_schema/rapidjson/example/pretty/pretty.cpp +30 -0
  207. data/ext/rj_schema/rapidjson/example/prettyauto/prettyauto.cpp +56 -0
  208. data/ext/rj_schema/rapidjson/example/schemavalidator/schemavalidator.cpp +78 -0
  209. data/ext/rj_schema/rapidjson/example/serialize/serialize.cpp +173 -0
  210. data/ext/rj_schema/rapidjson/example/simpledom/simpledom.cpp +29 -0
  211. data/ext/rj_schema/rapidjson/example/simplepullreader/simplepullreader.cpp +53 -0
  212. data/ext/rj_schema/rapidjson/example/simplereader/simplereader.cpp +42 -0
  213. data/ext/rj_schema/rapidjson/example/simplewriter/simplewriter.cpp +36 -0
  214. data/ext/rj_schema/rapidjson/example/sortkeys/sortkeys.cpp +62 -0
  215. data/ext/rj_schema/rapidjson/example/tutorial/tutorial.cpp +151 -0
  216. data/ext/rj_schema/rapidjson/include/rapidjson/allocators.h +284 -0
  217. data/ext/rj_schema/rapidjson/include/rapidjson/cursorstreamwrapper.h +78 -0
  218. data/ext/rj_schema/rapidjson/include/rapidjson/document.h +2732 -0
  219. data/ext/rj_schema/rapidjson/include/rapidjson/encodedstream.h +299 -0
  220. data/ext/rj_schema/rapidjson/include/rapidjson/encodings.h +716 -0
  221. data/ext/rj_schema/rapidjson/include/rapidjson/error/en.h +74 -0
  222. data/ext/rj_schema/rapidjson/include/rapidjson/error/error.h +161 -0
  223. data/ext/rj_schema/rapidjson/include/rapidjson/filereadstream.h +99 -0
  224. data/ext/rj_schema/rapidjson/include/rapidjson/filewritestream.h +104 -0
  225. data/ext/rj_schema/rapidjson/include/rapidjson/fwd.h +151 -0
  226. data/ext/rj_schema/rapidjson/include/rapidjson/internal/biginteger.h +290 -0
  227. data/ext/rj_schema/rapidjson/include/rapidjson/internal/clzll.h +71 -0
  228. data/ext/rj_schema/rapidjson/include/rapidjson/internal/diyfp.h +257 -0
  229. data/ext/rj_schema/rapidjson/include/rapidjson/internal/dtoa.h +245 -0
  230. data/ext/rj_schema/rapidjson/include/rapidjson/internal/ieee754.h +78 -0
  231. data/ext/rj_schema/rapidjson/include/rapidjson/internal/itoa.h +308 -0
  232. data/ext/rj_schema/rapidjson/include/rapidjson/internal/meta.h +186 -0
  233. data/ext/rj_schema/rapidjson/include/rapidjson/internal/pow10.h +55 -0
  234. data/ext/rj_schema/rapidjson/include/rapidjson/internal/regex.h +739 -0
  235. data/ext/rj_schema/rapidjson/include/rapidjson/internal/stack.h +232 -0
  236. data/ext/rj_schema/rapidjson/include/rapidjson/internal/strfunc.h +69 -0
  237. data/ext/rj_schema/rapidjson/include/rapidjson/internal/strtod.h +290 -0
  238. data/ext/rj_schema/rapidjson/include/rapidjson/internal/swap.h +46 -0
  239. data/ext/rj_schema/rapidjson/include/rapidjson/istreamwrapper.h +128 -0
  240. data/ext/rj_schema/rapidjson/include/rapidjson/memorybuffer.h +70 -0
  241. data/ext/rj_schema/rapidjson/include/rapidjson/memorystream.h +71 -0
  242. data/ext/rj_schema/rapidjson/include/rapidjson/msinttypes/inttypes.h +316 -0
  243. data/ext/rj_schema/rapidjson/include/rapidjson/msinttypes/stdint.h +300 -0
  244. data/ext/rj_schema/rapidjson/include/rapidjson/ostreamwrapper.h +81 -0
  245. data/ext/rj_schema/rapidjson/include/rapidjson/pointer.h +1415 -0
  246. data/ext/rj_schema/rapidjson/include/rapidjson/prettywriter.h +277 -0
  247. data/ext/rj_schema/rapidjson/include/rapidjson/rapidjson.h +676 -0
  248. data/ext/rj_schema/rapidjson/include/rapidjson/reader.h +2236 -0
  249. data/ext/rj_schema/rapidjson/include/rapidjson/schema.h +2496 -0
  250. data/ext/rj_schema/rapidjson/include/rapidjson/stream.h +223 -0
  251. data/ext/rj_schema/rapidjson/include/rapidjson/stringbuffer.h +121 -0
  252. data/ext/rj_schema/rapidjson/include/rapidjson/writer.h +710 -0
  253. data/ext/rj_schema/rapidjson/include_dirs.js +2 -0
  254. data/ext/rj_schema/rapidjson/library.json +15 -0
  255. data/ext/rj_schema/rapidjson/license.txt +57 -0
  256. data/ext/rj_schema/rapidjson/package.json +24 -0
  257. data/ext/rj_schema/rapidjson/rapidjson.autopkg +77 -0
  258. data/ext/rj_schema/rapidjson/readme.md +210 -0
  259. data/ext/rj_schema/rapidjson/readme.zh-cn.md +152 -0
  260. data/ext/rj_schema/rapidjson/test/CMakeLists.txt +20 -0
  261. data/ext/rj_schema/rapidjson/test/perftest/CMakeLists.txt +28 -0
  262. data/ext/rj_schema/rapidjson/test/perftest/misctest.cpp +974 -0
  263. data/ext/rj_schema/rapidjson/test/perftest/perftest.cpp +24 -0
  264. data/ext/rj_schema/rapidjson/test/perftest/perftest.h +185 -0
  265. data/ext/rj_schema/rapidjson/test/perftest/platformtest.cpp +166 -0
  266. data/ext/rj_schema/rapidjson/test/perftest/rapidjsontest.cpp +546 -0
  267. data/ext/rj_schema/rapidjson/test/perftest/schematest.cpp +223 -0
  268. data/ext/rj_schema/rapidjson/test/unittest/CMakeLists.txt +92 -0
  269. data/ext/rj_schema/rapidjson/test/unittest/allocatorstest.cpp +100 -0
  270. data/ext/rj_schema/rapidjson/test/unittest/bigintegertest.cpp +138 -0
  271. data/ext/rj_schema/rapidjson/test/unittest/cursorstreamwrappertest.cpp +115 -0
  272. data/ext/rj_schema/rapidjson/test/unittest/documenttest.cpp +672 -0
  273. data/ext/rj_schema/rapidjson/test/unittest/dtoatest.cpp +98 -0
  274. data/ext/rj_schema/rapidjson/test/unittest/encodedstreamtest.cpp +313 -0
  275. data/ext/rj_schema/rapidjson/test/unittest/encodingstest.cpp +451 -0
  276. data/ext/rj_schema/rapidjson/test/unittest/filestreamtest.cpp +155 -0
  277. data/ext/rj_schema/rapidjson/test/unittest/fwdtest.cpp +230 -0
  278. data/ext/rj_schema/rapidjson/test/unittest/istreamwrappertest.cpp +181 -0
  279. data/ext/rj_schema/rapidjson/test/unittest/itoatest.cpp +160 -0
  280. data/ext/rj_schema/rapidjson/test/unittest/jsoncheckertest.cpp +143 -0
  281. data/ext/rj_schema/rapidjson/test/unittest/namespacetest.cpp +70 -0
  282. data/ext/rj_schema/rapidjson/test/unittest/ostreamwrappertest.cpp +92 -0
  283. data/ext/rj_schema/rapidjson/test/unittest/pointertest.cpp +1638 -0
  284. data/ext/rj_schema/rapidjson/test/unittest/prettywritertest.cpp +373 -0
  285. data/ext/rj_schema/rapidjson/test/unittest/readertest.cpp +2225 -0
  286. data/ext/rj_schema/rapidjson/test/unittest/regextest.cpp +639 -0
  287. data/ext/rj_schema/rapidjson/test/unittest/schematest.cpp +2072 -0
  288. data/ext/rj_schema/rapidjson/test/unittest/simdtest.cpp +219 -0
  289. data/ext/rj_schema/rapidjson/test/unittest/strfunctest.cpp +30 -0
  290. data/ext/rj_schema/rapidjson/test/unittest/stringbuffertest.cpp +192 -0
  291. data/ext/rj_schema/rapidjson/test/unittest/strtodtest.cpp +132 -0
  292. data/ext/rj_schema/rapidjson/test/unittest/unittest.cpp +51 -0
  293. data/ext/rj_schema/rapidjson/test/unittest/unittest.h +143 -0
  294. data/ext/rj_schema/rapidjson/test/unittest/valuetest.cpp +1851 -0
  295. data/ext/rj_schema/rapidjson/test/unittest/writertest.cpp +598 -0
  296. data/ext/rj_schema/rapidjson/test/valgrind.supp +17 -0
  297. data/ext/rj_schema/rapidjson/thirdparty/gtest/BUILD.bazel +175 -0
  298. data/ext/rj_schema/rapidjson/thirdparty/gtest/CMakeLists.txt +33 -0
  299. data/ext/rj_schema/rapidjson/thirdparty/gtest/CONTRIBUTING.md +160 -0
  300. data/ext/rj_schema/rapidjson/thirdparty/gtest/LICENSE +28 -0
  301. data/ext/rj_schema/rapidjson/thirdparty/gtest/Makefile.am +14 -0
  302. data/ext/rj_schema/rapidjson/thirdparty/gtest/README.md +122 -0
  303. data/ext/rj_schema/rapidjson/thirdparty/gtest/WORKSPACE +8 -0
  304. data/ext/rj_schema/rapidjson/thirdparty/gtest/appveyor.yml +104 -0
  305. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/build-linux-autotools.sh +44 -0
  306. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/build-linux-bazel.sh +36 -0
  307. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/env-linux.sh +41 -0
  308. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/env-osx.sh +40 -0
  309. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/get-nprocessors.sh +48 -0
  310. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/install-linux.sh +49 -0
  311. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/install-osx.sh +39 -0
  312. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/log-config.sh +51 -0
  313. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/travis.sh +44 -0
  314. data/ext/rj_schema/rapidjson/thirdparty/gtest/configure.ac +16 -0
  315. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/CHANGES +126 -0
  316. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/CMakeLists.txt +242 -0
  317. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/CONTRIBUTORS +40 -0
  318. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/LICENSE +28 -0
  319. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/Makefile.am +224 -0
  320. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/README.md +344 -0
  321. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/cmake/gmock.pc.in +9 -0
  322. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/cmake/gmock_main.pc.in +9 -0
  323. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/configure.ac +146 -0
  324. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/CheatSheet.md +564 -0
  325. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/CookBook.md +3660 -0
  326. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/DesignDoc.md +280 -0
  327. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/Documentation.md +15 -0
  328. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/ForDummies.md +447 -0
  329. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/FrequentlyAskedQuestions.md +627 -0
  330. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/KnownIssues.md +19 -0
  331. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-actions.h +1262 -0
  332. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-cardinalities.h +147 -0
  333. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h +2571 -0
  334. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h.pump +833 -0
  335. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h +1379 -0
  336. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h.pump +347 -0
  337. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h +2258 -0
  338. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h.pump +675 -0
  339. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h +458 -0
  340. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h.pump +178 -0
  341. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-matchers.h +5255 -0
  342. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-more-actions.h +246 -0
  343. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-more-matchers.h +91 -0
  344. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-spec-builders.h +1918 -0
  345. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock.h +95 -0
  346. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h +8 -0
  347. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h.pump +10 -0
  348. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-matchers.h +38 -0
  349. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-port.h +46 -0
  350. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h +286 -0
  351. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h.pump +136 -0
  352. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-internal-utils.h +574 -0
  353. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-port.h +87 -0
  354. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/make/Makefile +101 -0
  355. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock.sln +32 -0
  356. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock.vcproj +191 -0
  357. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_config.vsprops +15 -0
  358. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_main.vcproj +187 -0
  359. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_test.vcproj +201 -0
  360. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.sln +46 -0
  361. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.vcxproj +145 -0
  362. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_config.props +19 -0
  363. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_main.vcxproj +151 -0
  364. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_test.vcxproj +176 -0
  365. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.sln +46 -0
  366. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.vcxproj +145 -0
  367. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_config.props +19 -0
  368. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_main.vcxproj +151 -0
  369. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_test.vcxproj +176 -0
  370. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/fuse_gmock_files.py +240 -0
  371. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/LICENSE +203 -0
  372. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/README +34 -0
  373. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/README.cppclean +115 -0
  374. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/__init__.py +0 -0
  375. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/ast.py +1733 -0
  376. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/gmock_class.py +227 -0
  377. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/gmock_class_test.py +448 -0
  378. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/keywords.py +59 -0
  379. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/tokenize.py +287 -0
  380. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/utils.py +41 -0
  381. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/gmock_gen.py +31 -0
  382. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/gmock-config.in +303 -0
  383. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/gmock_doctor.py +640 -0
  384. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/upload.py +1387 -0
  385. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/upload_gmock.py +78 -0
  386. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-all.cc +47 -0
  387. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-cardinalities.cc +156 -0
  388. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-internal-utils.cc +204 -0
  389. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-matchers.cc +573 -0
  390. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-spec-builders.cc +883 -0
  391. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock.cc +205 -0
  392. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock_main.cc +54 -0
  393. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/BUILD.bazel +123 -0
  394. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-actions_test.cc +1575 -0
  395. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-cardinalities_test.cc +428 -0
  396. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-actions_test.cc +1230 -0
  397. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-function-mockers_test.cc +647 -0
  398. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-internal-utils_test.cc +129 -0
  399. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-matchers_test.cc +1341 -0
  400. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-internal-utils_test.cc +718 -0
  401. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-matchers_test.cc +6767 -0
  402. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-more-actions_test.cc +710 -0
  403. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-nice-strict_test.cc +511 -0
  404. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-port_test.cc +43 -0
  405. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-spec-builders_test.cc +2771 -0
  406. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_all_test.cc +51 -0
  407. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_ex_test.cc +81 -0
  408. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_leak_test.py +108 -0
  409. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_leak_test_.cc +100 -0
  410. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link2_test.cc +40 -0
  411. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.cc +40 -0
  412. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.h +691 -0
  413. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test.py +183 -0
  414. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_.cc +310 -0
  415. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_golden.txt +317 -0
  416. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_stress_test.cc +323 -0
  417. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_test.cc +262 -0
  418. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_test_utils.py +110 -0
  419. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/CHANGES +157 -0
  420. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/CMakeLists.txt +312 -0
  421. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/CONTRIBUTORS +37 -0
  422. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/LICENSE +28 -0
  423. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/Makefile.am +339 -0
  424. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/README.md +341 -0
  425. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/cmake/gtest.pc.in +9 -0
  426. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/cmake/gtest_main.pc.in +10 -0
  427. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/cmake/internal_utils.cmake +280 -0
  428. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest.cbproj +138 -0
  429. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest.groupproj +54 -0
  430. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_all.cc +38 -0
  431. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_link.cc +40 -0
  432. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_main.cbproj +82 -0
  433. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_unittest.cbproj +88 -0
  434. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/configure.ac +68 -0
  435. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/Pkgconfig.md +146 -0
  436. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/PumpManual.md +177 -0
  437. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/XcodeGuide.md +93 -0
  438. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/advanced.md +2416 -0
  439. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/faq.md +1092 -0
  440. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/primer.md +536 -0
  441. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/samples.md +14 -0
  442. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-death-test.h +342 -0
  443. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-message.h +249 -0
  444. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h +1438 -0
  445. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h.pump +501 -0
  446. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-printers.h +1082 -0
  447. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-spi.h +231 -0
  448. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-test-part.h +179 -0
  449. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-typed-test.h +264 -0
  450. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest.h +2332 -0
  451. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_pred_impl.h +357 -0
  452. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_prod.h +61 -0
  453. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest-port.h +70 -0
  454. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest-printers.h +42 -0
  455. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest.h +45 -0
  456. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-death-test-internal.h +275 -0
  457. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-filepath.h +205 -0
  458. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-internal.h +1277 -0
  459. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-linked_ptr.h +243 -0
  460. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h +5139 -0
  461. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +279 -0
  462. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util.h +723 -0
  463. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port-arch.h +100 -0
  464. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port.h +2687 -0
  465. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-string.h +167 -0
  466. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-tuple.h +1020 -0
  467. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-tuple.h.pump +347 -0
  468. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h +3347 -0
  469. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h.pump +313 -0
  470. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/m4/acx_pthread.m4 +363 -0
  471. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/m4/gtest.m4 +74 -0
  472. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/make/Makefile +82 -0
  473. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest-md.sln +55 -0
  474. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest-md.vcxproj +149 -0
  475. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest-md.vcxproj.filters +18 -0
  476. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest.sln +55 -0
  477. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest.vcxproj +149 -0
  478. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest.vcxproj.filters +18 -0
  479. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main-md.vcxproj +154 -0
  480. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main-md.vcxproj.filters +18 -0
  481. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main.vcxproj +162 -0
  482. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main.vcxproj.filters +18 -0
  483. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test-md.vcxproj +199 -0
  484. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test-md.vcxproj.filters +26 -0
  485. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test.vcxproj +191 -0
  486. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test.vcxproj.filters +26 -0
  487. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest-md.vcxproj +188 -0
  488. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest-md.vcxproj.filters +18 -0
  489. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest.vcxproj +180 -0
  490. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest.vcxproj.filters +18 -0
  491. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/prime_tables.h +127 -0
  492. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample1.cc +68 -0
  493. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample1.h +43 -0
  494. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample10_unittest.cc +140 -0
  495. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample1_unittest.cc +154 -0
  496. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample2.cc +56 -0
  497. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample2.h +85 -0
  498. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample2_unittest.cc +110 -0
  499. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample3-inl.h +172 -0
  500. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample3_unittest.cc +152 -0
  501. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample4.cc +46 -0
  502. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample4.h +53 -0
  503. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample4_unittest.cc +49 -0
  504. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample5_unittest.cc +199 -0
  505. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample6_unittest.cc +225 -0
  506. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample7_unittest.cc +118 -0
  507. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample8_unittest.cc +174 -0
  508. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample9_unittest.cc +157 -0
  509. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/common.py +83 -0
  510. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/fuse_gtest_files.py +253 -0
  511. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/gen_gtest_pred_impl.py +730 -0
  512. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/gtest-config.in +274 -0
  513. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/pump.py +855 -0
  514. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/release_docs.py +158 -0
  515. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/test/Makefile +59 -0
  516. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/upload.py +1387 -0
  517. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/upload_gtest.py +78 -0
  518. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-all.cc +48 -0
  519. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-death-test.cc +1536 -0
  520. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-filepath.cc +385 -0
  521. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-internal-inl.h +1175 -0
  522. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-port.cc +1277 -0
  523. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-printers.cc +458 -0
  524. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-test-part.cc +102 -0
  525. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-typed-test.cc +119 -0
  526. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest.cc +5846 -0
  527. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest_main.cc +38 -0
  528. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/BUILD.bazel +396 -0
  529. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-death-test_ex_test.cc +93 -0
  530. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-death-test_test.cc +1424 -0
  531. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-filepath_test.cc +652 -0
  532. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-linked_ptr_test.cc +154 -0
  533. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-listener_test.cc +311 -0
  534. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-message_test.cc +159 -0
  535. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-options_test.cc +213 -0
  536. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test2_test.cc +61 -0
  537. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.cc +1110 -0
  538. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.h +53 -0
  539. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-port_test.cc +1303 -0
  540. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-printers_test.cc +1737 -0
  541. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-test-part_test.cc +208 -0
  542. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-tuple_test.cc +320 -0
  543. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test2_test.cc +45 -0
  544. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test_test.cc +380 -0
  545. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test_test.h +66 -0
  546. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-unittest-api_test.cc +341 -0
  547. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_all_test.cc +47 -0
  548. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_assert_by_exception_test.cc +119 -0
  549. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest.py +210 -0
  550. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest_.cc +87 -0
  551. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test.py +235 -0
  552. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test_.cc +311 -0
  553. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test.py +129 -0
  554. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test_.cc +63 -0
  555. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test.py +119 -0
  556. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test_.cc +124 -0
  557. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_environment_test.cc +189 -0
  558. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest.py +638 -0
  559. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest_.cc +138 -0
  560. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_help_test.py +172 -0
  561. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_help_test_.cc +46 -0
  562. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_json_outfiles_test.py +162 -0
  563. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_json_output_unittest.py +611 -0
  564. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_json_test_utils.py +60 -0
  565. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_list_tests_unittest.py +207 -0
  566. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_list_tests_unittest_.cc +157 -0
  567. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_main_unittest.cc +45 -0
  568. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_no_test_unittest.cc +56 -0
  569. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test.py +344 -0
  570. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_.cc +1067 -0
  571. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_golden_lin.txt +781 -0
  572. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_pred_impl_unittest.cc +2427 -0
  573. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_premature_exit_test.cc +127 -0
  574. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_prod_test.cc +57 -0
  575. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_repeat_test.cc +236 -0
  576. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_shuffle_test.py +325 -0
  577. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_shuffle_test_.cc +103 -0
  578. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_sole_header_test.cc +57 -0
  579. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_stress_test.cc +250 -0
  580. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_test_utils.py +318 -0
  581. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_testbridge_test.py +65 -0
  582. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_testbridge_test_.cc +44 -0
  583. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_ex_test.cc +92 -0
  584. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_test.py +171 -0
  585. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_test_.cc +72 -0
  586. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test.py +69 -0
  587. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test_.cc +43 -0
  588. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_unittest.cc +7797 -0
  589. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile1_test_.cc +48 -0
  590. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile2_test_.cc +48 -0
  591. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfiles_test.py +140 -0
  592. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest.py +378 -0
  593. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest_.cc +179 -0
  594. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_test_utils.py +196 -0
  595. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/production.cc +36 -0
  596. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/production.h +55 -0
  597. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/DebugProject.xcconfig +30 -0
  598. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/FrameworkTarget.xcconfig +17 -0
  599. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/General.xcconfig +41 -0
  600. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/ReleaseProject.xcconfig +32 -0
  601. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/StaticLibraryTarget.xcconfig +18 -0
  602. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/TestTarget.xcconfig +8 -0
  603. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Resources/Info.plist +30 -0
  604. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/Info.plist +28 -0
  605. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj +457 -0
  606. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/runtests.sh +62 -0
  607. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget.cc +63 -0
  608. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget.h +59 -0
  609. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget_test.cc +68 -0
  610. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Scripts/runtests.sh +65 -0
  611. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Scripts/versiongenerate.py +100 -0
  612. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/gtest.xcodeproj/project.pbxproj +1182 -0
  613. data/ext/rj_schema/rapidjson/travis-doxygen.sh +128 -0
  614. metadata +613 -1
@@ -0,0 +1,1438 @@
1
+ // This file was GENERATED by command:
2
+ // pump.py gtest-param-test.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
+ // Authors: vladl@google.com (Vlad Losev)
35
+ //
36
+ // Macros and functions for implementing parameterized tests
37
+ // in Google C++ Testing and Mocking Framework (Google Test)
38
+ //
39
+ // This file is generated by a SCRIPT. DO NOT EDIT BY HAND!
40
+ //
41
+
42
+ #ifndef GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
43
+ #define GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
44
+
45
+
46
+ // Value-parameterized tests allow you to test your code with different
47
+ // parameters without writing multiple copies of the same test.
48
+ //
49
+ // Here is how you use value-parameterized tests:
50
+
51
+ #if 0
52
+
53
+ // To write value-parameterized tests, first you should define a fixture
54
+ // class. It is usually derived from testing::TestWithParam<T> (see below for
55
+ // another inheritance scheme that's sometimes useful in more complicated
56
+ // class hierarchies), where the type of your parameter values.
57
+ // TestWithParam<T> is itself derived from testing::Test. T can be any
58
+ // copyable type. If it's a raw pointer, you are responsible for managing the
59
+ // lifespan of the pointed values.
60
+
61
+ class FooTest : public ::testing::TestWithParam<const char*> {
62
+ // You can implement all the usual class fixture members here.
63
+ };
64
+
65
+ // Then, use the TEST_P macro to define as many parameterized tests
66
+ // for this fixture as you want. The _P suffix is for "parameterized"
67
+ // or "pattern", whichever you prefer to think.
68
+
69
+ TEST_P(FooTest, DoesBlah) {
70
+ // Inside a test, access the test parameter with the GetParam() method
71
+ // of the TestWithParam<T> class:
72
+ EXPECT_TRUE(foo.Blah(GetParam()));
73
+ ...
74
+ }
75
+
76
+ TEST_P(FooTest, HasBlahBlah) {
77
+ ...
78
+ }
79
+
80
+ // Finally, you can use INSTANTIATE_TEST_CASE_P to instantiate the test
81
+ // case with any set of parameters you want. Google Test defines a number
82
+ // of functions for generating test parameters. They return what we call
83
+ // (surprise!) parameter generators. Here is a summary of them, which
84
+ // are all in the testing namespace:
85
+ //
86
+ //
87
+ // Range(begin, end [, step]) - Yields values {begin, begin+step,
88
+ // begin+step+step, ...}. The values do not
89
+ // include end. step defaults to 1.
90
+ // Values(v1, v2, ..., vN) - Yields values {v1, v2, ..., vN}.
91
+ // ValuesIn(container) - Yields values from a C-style array, an STL
92
+ // ValuesIn(begin,end) container, or an iterator range [begin, end).
93
+ // Bool() - Yields sequence {false, true}.
94
+ // Combine(g1, g2, ..., gN) - Yields all combinations (the Cartesian product
95
+ // for the math savvy) of the values generated
96
+ // by the N generators.
97
+ //
98
+ // For more details, see comments at the definitions of these functions below
99
+ // in this file.
100
+ //
101
+ // The following statement will instantiate tests from the FooTest test case
102
+ // each with parameter values "meeny", "miny", and "moe".
103
+
104
+ INSTANTIATE_TEST_CASE_P(InstantiationName,
105
+ FooTest,
106
+ Values("meeny", "miny", "moe"));
107
+
108
+ // To distinguish different instances of the pattern, (yes, you
109
+ // can instantiate it more then once) the first argument to the
110
+ // INSTANTIATE_TEST_CASE_P macro is a prefix that will be added to the
111
+ // actual test case name. Remember to pick unique prefixes for different
112
+ // instantiations. The tests from the instantiation above will have
113
+ // these names:
114
+ //
115
+ // * InstantiationName/FooTest.DoesBlah/0 for "meeny"
116
+ // * InstantiationName/FooTest.DoesBlah/1 for "miny"
117
+ // * InstantiationName/FooTest.DoesBlah/2 for "moe"
118
+ // * InstantiationName/FooTest.HasBlahBlah/0 for "meeny"
119
+ // * InstantiationName/FooTest.HasBlahBlah/1 for "miny"
120
+ // * InstantiationName/FooTest.HasBlahBlah/2 for "moe"
121
+ //
122
+ // You can use these names in --gtest_filter.
123
+ //
124
+ // This statement will instantiate all tests from FooTest again, each
125
+ // with parameter values "cat" and "dog":
126
+
127
+ const char* pets[] = {"cat", "dog"};
128
+ INSTANTIATE_TEST_CASE_P(AnotherInstantiationName, FooTest, ValuesIn(pets));
129
+
130
+ // The tests from the instantiation above will have these names:
131
+ //
132
+ // * AnotherInstantiationName/FooTest.DoesBlah/0 for "cat"
133
+ // * AnotherInstantiationName/FooTest.DoesBlah/1 for "dog"
134
+ // * AnotherInstantiationName/FooTest.HasBlahBlah/0 for "cat"
135
+ // * AnotherInstantiationName/FooTest.HasBlahBlah/1 for "dog"
136
+ //
137
+ // Please note that INSTANTIATE_TEST_CASE_P will instantiate all tests
138
+ // in the given test case, whether their definitions come before or
139
+ // AFTER the INSTANTIATE_TEST_CASE_P statement.
140
+ //
141
+ // Please also note that generator expressions (including parameters to the
142
+ // generators) are evaluated in InitGoogleTest(), after main() has started.
143
+ // This allows the user on one hand, to adjust generator parameters in order
144
+ // to dynamically determine a set of tests to run and on the other hand,
145
+ // give the user a chance to inspect the generated tests with Google Test
146
+ // reflection API before RUN_ALL_TESTS() is executed.
147
+ //
148
+ // You can see samples/sample7_unittest.cc and samples/sample8_unittest.cc
149
+ // for more examples.
150
+ //
151
+ // In the future, we plan to publish the API for defining new parameter
152
+ // generators. But for now this interface remains part of the internal
153
+ // implementation and is subject to change.
154
+ //
155
+ //
156
+ // A parameterized test fixture must be derived from testing::Test and from
157
+ // testing::WithParamInterface<T>, where T is the type of the parameter
158
+ // values. Inheriting from TestWithParam<T> satisfies that requirement because
159
+ // TestWithParam<T> inherits from both Test and WithParamInterface. In more
160
+ // complicated hierarchies, however, it is occasionally useful to inherit
161
+ // separately from Test and WithParamInterface. For example:
162
+
163
+ class BaseTest : public ::testing::Test {
164
+ // You can inherit all the usual members for a non-parameterized test
165
+ // fixture here.
166
+ };
167
+
168
+ class DerivedTest : public BaseTest, public ::testing::WithParamInterface<int> {
169
+ // The usual test fixture members go here too.
170
+ };
171
+
172
+ TEST_F(BaseTest, HasFoo) {
173
+ // This is an ordinary non-parameterized test.
174
+ }
175
+
176
+ TEST_P(DerivedTest, DoesBlah) {
177
+ // GetParam works just the same here as if you inherit from TestWithParam.
178
+ EXPECT_TRUE(foo.Blah(GetParam()));
179
+ }
180
+
181
+ #endif // 0
182
+
183
+ #include "gtest/internal/gtest-port.h"
184
+
185
+ #if !GTEST_OS_SYMBIAN
186
+ # include <utility>
187
+ #endif
188
+
189
+ #include "gtest/internal/gtest-internal.h"
190
+ #include "gtest/internal/gtest-param-util.h"
191
+ #include "gtest/internal/gtest-param-util-generated.h"
192
+
193
+ namespace testing {
194
+
195
+ // Functions producing parameter generators.
196
+ //
197
+ // Google Test uses these generators to produce parameters for value-
198
+ // parameterized tests. When a parameterized test case is instantiated
199
+ // with a particular generator, Google Test creates and runs tests
200
+ // for each element in the sequence produced by the generator.
201
+ //
202
+ // In the following sample, tests from test case FooTest are instantiated
203
+ // each three times with parameter values 3, 5, and 8:
204
+ //
205
+ // class FooTest : public TestWithParam<int> { ... };
206
+ //
207
+ // TEST_P(FooTest, TestThis) {
208
+ // }
209
+ // TEST_P(FooTest, TestThat) {
210
+ // }
211
+ // INSTANTIATE_TEST_CASE_P(TestSequence, FooTest, Values(3, 5, 8));
212
+ //
213
+
214
+ // Range() returns generators providing sequences of values in a range.
215
+ //
216
+ // Synopsis:
217
+ // Range(start, end)
218
+ // - returns a generator producing a sequence of values {start, start+1,
219
+ // start+2, ..., }.
220
+ // Range(start, end, step)
221
+ // - returns a generator producing a sequence of values {start, start+step,
222
+ // start+step+step, ..., }.
223
+ // Notes:
224
+ // * The generated sequences never include end. For example, Range(1, 5)
225
+ // returns a generator producing a sequence {1, 2, 3, 4}. Range(1, 9, 2)
226
+ // returns a generator producing {1, 3, 5, 7}.
227
+ // * start and end must have the same type. That type may be any integral or
228
+ // floating-point type or a user defined type satisfying these conditions:
229
+ // * It must be assignable (have operator=() defined).
230
+ // * It must have operator+() (operator+(int-compatible type) for
231
+ // two-operand version).
232
+ // * It must have operator<() defined.
233
+ // Elements in the resulting sequences will also have that type.
234
+ // * Condition start < end must be satisfied in order for resulting sequences
235
+ // to contain any elements.
236
+ //
237
+ template <typename T, typename IncrementT>
238
+ internal::ParamGenerator<T> Range(T start, T end, IncrementT step) {
239
+ return internal::ParamGenerator<T>(
240
+ new internal::RangeGenerator<T, IncrementT>(start, end, step));
241
+ }
242
+
243
+ template <typename T>
244
+ internal::ParamGenerator<T> Range(T start, T end) {
245
+ return Range(start, end, 1);
246
+ }
247
+
248
+ // ValuesIn() function allows generation of tests with parameters coming from
249
+ // a container.
250
+ //
251
+ // Synopsis:
252
+ // ValuesIn(const T (&array)[N])
253
+ // - returns a generator producing sequences with elements from
254
+ // a C-style array.
255
+ // ValuesIn(const Container& container)
256
+ // - returns a generator producing sequences with elements from
257
+ // an STL-style container.
258
+ // ValuesIn(Iterator begin, Iterator end)
259
+ // - returns a generator producing sequences with elements from
260
+ // a range [begin, end) defined by a pair of STL-style iterators. These
261
+ // iterators can also be plain C pointers.
262
+ //
263
+ // Please note that ValuesIn copies the values from the containers
264
+ // passed in and keeps them to generate tests in RUN_ALL_TESTS().
265
+ //
266
+ // Examples:
267
+ //
268
+ // This instantiates tests from test case StringTest
269
+ // each with C-string values of "foo", "bar", and "baz":
270
+ //
271
+ // const char* strings[] = {"foo", "bar", "baz"};
272
+ // INSTANTIATE_TEST_CASE_P(StringSequence, StringTest, ValuesIn(strings));
273
+ //
274
+ // This instantiates tests from test case StlStringTest
275
+ // each with STL strings with values "a" and "b":
276
+ //
277
+ // ::std::vector< ::std::string> GetParameterStrings() {
278
+ // ::std::vector< ::std::string> v;
279
+ // v.push_back("a");
280
+ // v.push_back("b");
281
+ // return v;
282
+ // }
283
+ //
284
+ // INSTANTIATE_TEST_CASE_P(CharSequence,
285
+ // StlStringTest,
286
+ // ValuesIn(GetParameterStrings()));
287
+ //
288
+ //
289
+ // This will also instantiate tests from CharTest
290
+ // each with parameter values 'a' and 'b':
291
+ //
292
+ // ::std::list<char> GetParameterChars() {
293
+ // ::std::list<char> list;
294
+ // list.push_back('a');
295
+ // list.push_back('b');
296
+ // return list;
297
+ // }
298
+ // ::std::list<char> l = GetParameterChars();
299
+ // INSTANTIATE_TEST_CASE_P(CharSequence2,
300
+ // CharTest,
301
+ // ValuesIn(l.begin(), l.end()));
302
+ //
303
+ template <typename ForwardIterator>
304
+ internal::ParamGenerator<
305
+ typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type>
306
+ ValuesIn(ForwardIterator begin, ForwardIterator end) {
307
+ typedef typename ::testing::internal::IteratorTraits<ForwardIterator>
308
+ ::value_type ParamType;
309
+ return internal::ParamGenerator<ParamType>(
310
+ new internal::ValuesInIteratorRangeGenerator<ParamType>(begin, end));
311
+ }
312
+
313
+ template <typename T, size_t N>
314
+ internal::ParamGenerator<T> ValuesIn(const T (&array)[N]) {
315
+ return ValuesIn(array, array + N);
316
+ }
317
+
318
+ template <class Container>
319
+ internal::ParamGenerator<typename Container::value_type> ValuesIn(
320
+ const Container& container) {
321
+ return ValuesIn(container.begin(), container.end());
322
+ }
323
+
324
+ // Values() allows generating tests from explicitly specified list of
325
+ // parameters.
326
+ //
327
+ // Synopsis:
328
+ // Values(T v1, T v2, ..., T vN)
329
+ // - returns a generator producing sequences with elements v1, v2, ..., vN.
330
+ //
331
+ // For example, this instantiates tests from test case BarTest each
332
+ // with values "one", "two", and "three":
333
+ //
334
+ // INSTANTIATE_TEST_CASE_P(NumSequence, BarTest, Values("one", "two", "three"));
335
+ //
336
+ // This instantiates tests from test case BazTest each with values 1, 2, 3.5.
337
+ // The exact type of values will depend on the type of parameter in BazTest.
338
+ //
339
+ // INSTANTIATE_TEST_CASE_P(FloatingNumbers, BazTest, Values(1, 2, 3.5));
340
+ //
341
+ // Currently, Values() supports from 1 to 50 parameters.
342
+ //
343
+ template <typename T1>
344
+ internal::ValueArray1<T1> Values(T1 v1) {
345
+ return internal::ValueArray1<T1>(v1);
346
+ }
347
+
348
+ template <typename T1, typename T2>
349
+ internal::ValueArray2<T1, T2> Values(T1 v1, T2 v2) {
350
+ return internal::ValueArray2<T1, T2>(v1, v2);
351
+ }
352
+
353
+ template <typename T1, typename T2, typename T3>
354
+ internal::ValueArray3<T1, T2, T3> Values(T1 v1, T2 v2, T3 v3) {
355
+ return internal::ValueArray3<T1, T2, T3>(v1, v2, v3);
356
+ }
357
+
358
+ template <typename T1, typename T2, typename T3, typename T4>
359
+ internal::ValueArray4<T1, T2, T3, T4> Values(T1 v1, T2 v2, T3 v3, T4 v4) {
360
+ return internal::ValueArray4<T1, T2, T3, T4>(v1, v2, v3, v4);
361
+ }
362
+
363
+ template <typename T1, typename T2, typename T3, typename T4, typename T5>
364
+ internal::ValueArray5<T1, T2, T3, T4, T5> Values(T1 v1, T2 v2, T3 v3, T4 v4,
365
+ T5 v5) {
366
+ return internal::ValueArray5<T1, T2, T3, T4, T5>(v1, v2, v3, v4, v5);
367
+ }
368
+
369
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
370
+ typename T6>
371
+ internal::ValueArray6<T1, T2, T3, T4, T5, T6> Values(T1 v1, T2 v2, T3 v3,
372
+ T4 v4, T5 v5, T6 v6) {
373
+ return internal::ValueArray6<T1, T2, T3, T4, T5, T6>(v1, v2, v3, v4, v5, v6);
374
+ }
375
+
376
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
377
+ typename T6, typename T7>
378
+ internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7> Values(T1 v1, T2 v2, T3 v3,
379
+ T4 v4, T5 v5, T6 v6, T7 v7) {
380
+ return internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7>(v1, v2, v3, v4, v5,
381
+ v6, v7);
382
+ }
383
+
384
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
385
+ typename T6, typename T7, typename T8>
386
+ internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8> Values(T1 v1, T2 v2,
387
+ T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8) {
388
+ return internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8>(v1, v2, v3, v4,
389
+ v5, v6, v7, v8);
390
+ }
391
+
392
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
393
+ typename T6, typename T7, typename T8, typename T9>
394
+ internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9> Values(T1 v1, T2 v2,
395
+ T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9) {
396
+ return internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9>(v1, v2, v3,
397
+ v4, v5, v6, v7, v8, v9);
398
+ }
399
+
400
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
401
+ typename T6, typename T7, typename T8, typename T9, typename T10>
402
+ internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Values(T1 v1,
403
+ T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10) {
404
+ return internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(v1,
405
+ v2, v3, v4, v5, v6, v7, v8, v9, v10);
406
+ }
407
+
408
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
409
+ typename T6, typename T7, typename T8, typename T9, typename T10,
410
+ typename T11>
411
+ internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
412
+ T11> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
413
+ T10 v10, T11 v11) {
414
+ return internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
415
+ T11>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11);
416
+ }
417
+
418
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
419
+ typename T6, typename T7, typename T8, typename T9, typename T10,
420
+ typename T11, typename T12>
421
+ internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
422
+ T12> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
423
+ T10 v10, T11 v11, T12 v12) {
424
+ return internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
425
+ T12>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12);
426
+ }
427
+
428
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
429
+ typename T6, typename T7, typename T8, typename T9, typename T10,
430
+ typename T11, typename T12, typename T13>
431
+ internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
432
+ T13> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
433
+ T10 v10, T11 v11, T12 v12, T13 v13) {
434
+ return internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
435
+ T12, T13>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13);
436
+ }
437
+
438
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
439
+ typename T6, typename T7, typename T8, typename T9, typename T10,
440
+ typename T11, typename T12, typename T13, typename T14>
441
+ internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
442
+ T14> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
443
+ T10 v10, T11 v11, T12 v12, T13 v13, T14 v14) {
444
+ return internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
445
+ T12, T13, T14>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
446
+ v14);
447
+ }
448
+
449
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
450
+ typename T6, typename T7, typename T8, typename T9, typename T10,
451
+ typename T11, typename T12, typename T13, typename T14, typename T15>
452
+ internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
453
+ T14, T15> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
454
+ T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15) {
455
+ return internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
456
+ T12, T13, T14, T15>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
457
+ v13, v14, v15);
458
+ }
459
+
460
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
461
+ typename T6, typename T7, typename T8, typename T9, typename T10,
462
+ typename T11, typename T12, typename T13, typename T14, typename T15,
463
+ typename T16>
464
+ internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
465
+ T14, T15, T16> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
466
+ T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
467
+ T16 v16) {
468
+ return internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
469
+ T12, T13, T14, T15, T16>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
470
+ v12, v13, v14, v15, v16);
471
+ }
472
+
473
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
474
+ typename T6, typename T7, typename T8, typename T9, typename T10,
475
+ typename T11, typename T12, typename T13, typename T14, typename T15,
476
+ typename T16, typename T17>
477
+ internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
478
+ T14, T15, T16, T17> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
479
+ T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
480
+ T16 v16, T17 v17) {
481
+ return internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
482
+ T12, T13, T14, T15, T16, T17>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
483
+ v11, v12, v13, v14, v15, v16, v17);
484
+ }
485
+
486
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
487
+ typename T6, typename T7, typename T8, typename T9, typename T10,
488
+ typename T11, typename T12, typename T13, typename T14, typename T15,
489
+ typename T16, typename T17, typename T18>
490
+ internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
491
+ T14, T15, T16, T17, T18> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
492
+ T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
493
+ T16 v16, T17 v17, T18 v18) {
494
+ return internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
495
+ T12, T13, T14, T15, T16, T17, T18>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
496
+ v10, v11, v12, v13, v14, v15, v16, v17, v18);
497
+ }
498
+
499
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
500
+ typename T6, typename T7, typename T8, typename T9, typename T10,
501
+ typename T11, typename T12, typename T13, typename T14, typename T15,
502
+ typename T16, typename T17, typename T18, typename T19>
503
+ internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
504
+ T14, T15, T16, T17, T18, T19> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
505
+ T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
506
+ T15 v15, T16 v16, T17 v17, T18 v18, T19 v19) {
507
+ return internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
508
+ T12, T13, T14, T15, T16, T17, T18, T19>(v1, v2, v3, v4, v5, v6, v7, v8,
509
+ v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19);
510
+ }
511
+
512
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
513
+ typename T6, typename T7, typename T8, typename T9, typename T10,
514
+ typename T11, typename T12, typename T13, typename T14, typename T15,
515
+ typename T16, typename T17, typename T18, typename T19, typename T20>
516
+ internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
517
+ T14, T15, T16, T17, T18, T19, T20> Values(T1 v1, T2 v2, T3 v3, T4 v4,
518
+ T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
519
+ T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20) {
520
+ return internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
521
+ T12, T13, T14, T15, T16, T17, T18, T19, T20>(v1, v2, v3, v4, v5, v6, v7,
522
+ v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20);
523
+ }
524
+
525
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
526
+ typename T6, typename T7, typename T8, typename T9, typename T10,
527
+ typename T11, typename T12, typename T13, typename T14, typename T15,
528
+ typename T16, typename T17, typename T18, typename T19, typename T20,
529
+ typename T21>
530
+ internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
531
+ T14, T15, T16, T17, T18, T19, T20, T21> Values(T1 v1, T2 v2, T3 v3, T4 v4,
532
+ T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
533
+ T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21) {
534
+ return internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
535
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>(v1, v2, v3, v4, v5, v6,
536
+ v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21);
537
+ }
538
+
539
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
540
+ typename T6, typename T7, typename T8, typename T9, typename T10,
541
+ typename T11, typename T12, typename T13, typename T14, typename T15,
542
+ typename T16, typename T17, typename T18, typename T19, typename T20,
543
+ typename T21, typename T22>
544
+ internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
545
+ T14, T15, T16, T17, T18, T19, T20, T21, T22> Values(T1 v1, T2 v2, T3 v3,
546
+ T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
547
+ T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
548
+ T21 v21, T22 v22) {
549
+ return internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
550
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>(v1, v2, v3, v4,
551
+ v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
552
+ v20, v21, v22);
553
+ }
554
+
555
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
556
+ typename T6, typename T7, typename T8, typename T9, typename T10,
557
+ typename T11, typename T12, typename T13, typename T14, typename T15,
558
+ typename T16, typename T17, typename T18, typename T19, typename T20,
559
+ typename T21, typename T22, typename T23>
560
+ internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
561
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> Values(T1 v1, T2 v2,
562
+ T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
563
+ T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
564
+ T21 v21, T22 v22, T23 v23) {
565
+ return internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
566
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>(v1, v2, v3,
567
+ v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
568
+ v20, v21, v22, v23);
569
+ }
570
+
571
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
572
+ typename T6, typename T7, typename T8, typename T9, typename T10,
573
+ typename T11, typename T12, typename T13, typename T14, typename T15,
574
+ typename T16, typename T17, typename T18, typename T19, typename T20,
575
+ typename T21, typename T22, typename T23, typename T24>
576
+ internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
577
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> Values(T1 v1, T2 v2,
578
+ T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
579
+ T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
580
+ T21 v21, T22 v22, T23 v23, T24 v24) {
581
+ return internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
582
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>(v1, v2,
583
+ v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18,
584
+ v19, v20, v21, v22, v23, v24);
585
+ }
586
+
587
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
588
+ typename T6, typename T7, typename T8, typename T9, typename T10,
589
+ typename T11, typename T12, typename T13, typename T14, typename T15,
590
+ typename T16, typename T17, typename T18, typename T19, typename T20,
591
+ typename T21, typename T22, typename T23, typename T24, typename T25>
592
+ internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
593
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Values(T1 v1,
594
+ T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11,
595
+ T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19,
596
+ T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25) {
597
+ return internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
598
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>(v1,
599
+ v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17,
600
+ v18, v19, v20, v21, v22, v23, v24, v25);
601
+ }
602
+
603
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
604
+ typename T6, typename T7, typename T8, typename T9, typename T10,
605
+ typename T11, typename T12, typename T13, typename T14, typename T15,
606
+ typename T16, typename T17, typename T18, typename T19, typename T20,
607
+ typename T21, typename T22, typename T23, typename T24, typename T25,
608
+ typename T26>
609
+ internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
610
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
611
+ T26> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
612
+ T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
613
+ T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
614
+ T26 v26) {
615
+ return internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
616
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
617
+ T26>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,
618
+ v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26);
619
+ }
620
+
621
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
622
+ typename T6, typename T7, typename T8, typename T9, typename T10,
623
+ typename T11, typename T12, typename T13, typename T14, typename T15,
624
+ typename T16, typename T17, typename T18, typename T19, typename T20,
625
+ typename T21, typename T22, typename T23, typename T24, typename T25,
626
+ typename T26, typename T27>
627
+ internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
628
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
629
+ T27> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
630
+ T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
631
+ T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
632
+ T26 v26, T27 v27) {
633
+ return internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
634
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
635
+ T26, T27>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14,
636
+ v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27);
637
+ }
638
+
639
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
640
+ typename T6, typename T7, typename T8, typename T9, typename T10,
641
+ typename T11, typename T12, typename T13, typename T14, typename T15,
642
+ typename T16, typename T17, typename T18, typename T19, typename T20,
643
+ typename T21, typename T22, typename T23, typename T24, typename T25,
644
+ typename T26, typename T27, typename T28>
645
+ internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
646
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
647
+ T28> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
648
+ T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
649
+ T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
650
+ T26 v26, T27 v27, T28 v28) {
651
+ return internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
652
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
653
+ T26, T27, T28>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
654
+ v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27,
655
+ v28);
656
+ }
657
+
658
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
659
+ typename T6, typename T7, typename T8, typename T9, typename T10,
660
+ typename T11, typename T12, typename T13, typename T14, typename T15,
661
+ typename T16, typename T17, typename T18, typename T19, typename T20,
662
+ typename T21, typename T22, typename T23, typename T24, typename T25,
663
+ typename T26, typename T27, typename T28, typename T29>
664
+ internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
665
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
666
+ T29> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
667
+ T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
668
+ T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
669
+ T26 v26, T27 v27, T28 v28, T29 v29) {
670
+ return internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
671
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
672
+ T26, T27, T28, T29>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
673
+ v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
674
+ v27, v28, v29);
675
+ }
676
+
677
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
678
+ typename T6, typename T7, typename T8, typename T9, typename T10,
679
+ typename T11, typename T12, typename T13, typename T14, typename T15,
680
+ typename T16, typename T17, typename T18, typename T19, typename T20,
681
+ typename T21, typename T22, typename T23, typename T24, typename T25,
682
+ typename T26, typename T27, typename T28, typename T29, typename T30>
683
+ internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
684
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
685
+ T29, T30> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
686
+ T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
687
+ T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
688
+ T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30) {
689
+ return internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
690
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
691
+ T26, T27, T28, T29, T30>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
692
+ v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25,
693
+ v26, v27, v28, v29, v30);
694
+ }
695
+
696
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
697
+ typename T6, typename T7, typename T8, typename T9, typename T10,
698
+ typename T11, typename T12, typename T13, typename T14, typename T15,
699
+ typename T16, typename T17, typename T18, typename T19, typename T20,
700
+ typename T21, typename T22, typename T23, typename T24, typename T25,
701
+ typename T26, typename T27, typename T28, typename T29, typename T30,
702
+ typename T31>
703
+ internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
704
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
705
+ T29, T30, T31> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
706
+ T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
707
+ T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
708
+ T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31) {
709
+ return internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
710
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
711
+ T26, T27, T28, T29, T30, T31>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
712
+ v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24,
713
+ v25, v26, v27, v28, v29, v30, v31);
714
+ }
715
+
716
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
717
+ typename T6, typename T7, typename T8, typename T9, typename T10,
718
+ typename T11, typename T12, typename T13, typename T14, typename T15,
719
+ typename T16, typename T17, typename T18, typename T19, typename T20,
720
+ typename T21, typename T22, typename T23, typename T24, typename T25,
721
+ typename T26, typename T27, typename T28, typename T29, typename T30,
722
+ typename T31, typename T32>
723
+ internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
724
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
725
+ T29, T30, T31, T32> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
726
+ T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
727
+ T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
728
+ T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
729
+ T32 v32) {
730
+ return internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
731
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
732
+ T26, T27, T28, T29, T30, T31, T32>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
733
+ v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
734
+ v24, v25, v26, v27, v28, v29, v30, v31, v32);
735
+ }
736
+
737
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
738
+ typename T6, typename T7, typename T8, typename T9, typename T10,
739
+ typename T11, typename T12, typename T13, typename T14, typename T15,
740
+ typename T16, typename T17, typename T18, typename T19, typename T20,
741
+ typename T21, typename T22, typename T23, typename T24, typename T25,
742
+ typename T26, typename T27, typename T28, typename T29, typename T30,
743
+ typename T31, typename T32, typename T33>
744
+ internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
745
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
746
+ T29, T30, T31, T32, T33> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
747
+ T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
748
+ T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
749
+ T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
750
+ T32 v32, T33 v33) {
751
+ return internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
752
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
753
+ T26, T27, T28, T29, T30, T31, T32, T33>(v1, v2, v3, v4, v5, v6, v7, v8,
754
+ v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
755
+ v24, v25, v26, v27, v28, v29, v30, v31, v32, v33);
756
+ }
757
+
758
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
759
+ typename T6, typename T7, typename T8, typename T9, typename T10,
760
+ typename T11, typename T12, typename T13, typename T14, typename T15,
761
+ typename T16, typename T17, typename T18, typename T19, typename T20,
762
+ typename T21, typename T22, typename T23, typename T24, typename T25,
763
+ typename T26, typename T27, typename T28, typename T29, typename T30,
764
+ typename T31, typename T32, typename T33, typename T34>
765
+ internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
766
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
767
+ T29, T30, T31, T32, T33, T34> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
768
+ T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
769
+ T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22,
770
+ T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30,
771
+ T31 v31, T32 v32, T33 v33, T34 v34) {
772
+ return internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
773
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
774
+ T26, T27, T28, T29, T30, T31, T32, T33, T34>(v1, v2, v3, v4, v5, v6, v7,
775
+ v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22,
776
+ v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34);
777
+ }
778
+
779
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
780
+ typename T6, typename T7, typename T8, typename T9, typename T10,
781
+ typename T11, typename T12, typename T13, typename T14, typename T15,
782
+ typename T16, typename T17, typename T18, typename T19, typename T20,
783
+ typename T21, typename T22, typename T23, typename T24, typename T25,
784
+ typename T26, typename T27, typename T28, typename T29, typename T30,
785
+ typename T31, typename T32, typename T33, typename T34, typename T35>
786
+ internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
787
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
788
+ T29, T30, T31, T32, T33, T34, T35> Values(T1 v1, T2 v2, T3 v3, T4 v4,
789
+ T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
790
+ T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
791
+ T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
792
+ T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35) {
793
+ return internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
794
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
795
+ T26, T27, T28, T29, T30, T31, T32, T33, T34, T35>(v1, v2, v3, v4, v5, v6,
796
+ v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21,
797
+ v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35);
798
+ }
799
+
800
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
801
+ typename T6, typename T7, typename T8, typename T9, typename T10,
802
+ typename T11, typename T12, typename T13, typename T14, typename T15,
803
+ typename T16, typename T17, typename T18, typename T19, typename T20,
804
+ typename T21, typename T22, typename T23, typename T24, typename T25,
805
+ typename T26, typename T27, typename T28, typename T29, typename T30,
806
+ typename T31, typename T32, typename T33, typename T34, typename T35,
807
+ typename T36>
808
+ internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
809
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
810
+ T29, T30, T31, T32, T33, T34, T35, T36> Values(T1 v1, T2 v2, T3 v3, T4 v4,
811
+ T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
812
+ T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
813
+ T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
814
+ T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36) {
815
+ return internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
816
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
817
+ T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36>(v1, v2, v3, v4,
818
+ v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
819
+ v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
820
+ v34, v35, v36);
821
+ }
822
+
823
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
824
+ typename T6, typename T7, typename T8, typename T9, typename T10,
825
+ typename T11, typename T12, typename T13, typename T14, typename T15,
826
+ typename T16, typename T17, typename T18, typename T19, typename T20,
827
+ typename T21, typename T22, typename T23, typename T24, typename T25,
828
+ typename T26, typename T27, typename T28, typename T29, typename T30,
829
+ typename T31, typename T32, typename T33, typename T34, typename T35,
830
+ typename T36, typename T37>
831
+ internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
832
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
833
+ T29, T30, T31, T32, T33, T34, T35, T36, T37> Values(T1 v1, T2 v2, T3 v3,
834
+ T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
835
+ T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
836
+ T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
837
+ T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
838
+ T37 v37) {
839
+ return internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
840
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
841
+ T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37>(v1, v2, v3,
842
+ v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
843
+ v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
844
+ v34, v35, v36, v37);
845
+ }
846
+
847
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
848
+ typename T6, typename T7, typename T8, typename T9, typename T10,
849
+ typename T11, typename T12, typename T13, typename T14, typename T15,
850
+ typename T16, typename T17, typename T18, typename T19, typename T20,
851
+ typename T21, typename T22, typename T23, typename T24, typename T25,
852
+ typename T26, typename T27, typename T28, typename T29, typename T30,
853
+ typename T31, typename T32, typename T33, typename T34, typename T35,
854
+ typename T36, typename T37, typename T38>
855
+ internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
856
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
857
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> Values(T1 v1, T2 v2,
858
+ T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
859
+ T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
860
+ T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
861
+ T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
862
+ T37 v37, T38 v38) {
863
+ return internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
864
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
865
+ T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>(v1, v2,
866
+ v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18,
867
+ v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32,
868
+ v33, v34, v35, v36, v37, v38);
869
+ }
870
+
871
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
872
+ typename T6, typename T7, typename T8, typename T9, typename T10,
873
+ typename T11, typename T12, typename T13, typename T14, typename T15,
874
+ typename T16, typename T17, typename T18, typename T19, typename T20,
875
+ typename T21, typename T22, typename T23, typename T24, typename T25,
876
+ typename T26, typename T27, typename T28, typename T29, typename T30,
877
+ typename T31, typename T32, typename T33, typename T34, typename T35,
878
+ typename T36, typename T37, typename T38, typename T39>
879
+ internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
880
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
881
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Values(T1 v1, T2 v2,
882
+ T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
883
+ T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
884
+ T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
885
+ T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
886
+ T37 v37, T38 v38, T39 v39) {
887
+ return internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
888
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
889
+ T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>(v1,
890
+ v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17,
891
+ v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31,
892
+ v32, v33, v34, v35, v36, v37, v38, v39);
893
+ }
894
+
895
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
896
+ typename T6, typename T7, typename T8, typename T9, typename T10,
897
+ typename T11, typename T12, typename T13, typename T14, typename T15,
898
+ typename T16, typename T17, typename T18, typename T19, typename T20,
899
+ typename T21, typename T22, typename T23, typename T24, typename T25,
900
+ typename T26, typename T27, typename T28, typename T29, typename T30,
901
+ typename T31, typename T32, typename T33, typename T34, typename T35,
902
+ typename T36, typename T37, typename T38, typename T39, typename T40>
903
+ internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
904
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
905
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Values(T1 v1,
906
+ T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11,
907
+ T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19,
908
+ T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27,
909
+ T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35,
910
+ T36 v36, T37 v37, T38 v38, T39 v39, T40 v40) {
911
+ return internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
912
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
913
+ T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
914
+ T40>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,
915
+ v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29,
916
+ v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40);
917
+ }
918
+
919
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
920
+ typename T6, typename T7, typename T8, typename T9, typename T10,
921
+ typename T11, typename T12, typename T13, typename T14, typename T15,
922
+ typename T16, typename T17, typename T18, typename T19, typename T20,
923
+ typename T21, typename T22, typename T23, typename T24, typename T25,
924
+ typename T26, typename T27, typename T28, typename T29, typename T30,
925
+ typename T31, typename T32, typename T33, typename T34, typename T35,
926
+ typename T36, typename T37, typename T38, typename T39, typename T40,
927
+ typename T41>
928
+ internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
929
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
930
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
931
+ T41> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
932
+ T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
933
+ T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
934
+ T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
935
+ T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41) {
936
+ return internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
937
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
938
+ T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
939
+ T40, T41>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14,
940
+ v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28,
941
+ v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41);
942
+ }
943
+
944
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
945
+ typename T6, typename T7, typename T8, typename T9, typename T10,
946
+ typename T11, typename T12, typename T13, typename T14, typename T15,
947
+ typename T16, typename T17, typename T18, typename T19, typename T20,
948
+ typename T21, typename T22, typename T23, typename T24, typename T25,
949
+ typename T26, typename T27, typename T28, typename T29, typename T30,
950
+ typename T31, typename T32, typename T33, typename T34, typename T35,
951
+ typename T36, typename T37, typename T38, typename T39, typename T40,
952
+ typename T41, typename T42>
953
+ internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
954
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
955
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
956
+ T42> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
957
+ T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
958
+ T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
959
+ T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
960
+ T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
961
+ T42 v42) {
962
+ return internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
963
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
964
+ T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
965
+ T40, T41, T42>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
966
+ v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27,
967
+ v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41,
968
+ v42);
969
+ }
970
+
971
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
972
+ typename T6, typename T7, typename T8, typename T9, typename T10,
973
+ typename T11, typename T12, typename T13, typename T14, typename T15,
974
+ typename T16, typename T17, typename T18, typename T19, typename T20,
975
+ typename T21, typename T22, typename T23, typename T24, typename T25,
976
+ typename T26, typename T27, typename T28, typename T29, typename T30,
977
+ typename T31, typename T32, typename T33, typename T34, typename T35,
978
+ typename T36, typename T37, typename T38, typename T39, typename T40,
979
+ typename T41, typename T42, typename T43>
980
+ internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
981
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
982
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
983
+ T43> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
984
+ T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
985
+ T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
986
+ T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
987
+ T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
988
+ T42 v42, T43 v43) {
989
+ return internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
990
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
991
+ T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
992
+ T40, T41, T42, T43>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
993
+ v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
994
+ v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40,
995
+ v41, v42, v43);
996
+ }
997
+
998
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
999
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1000
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1001
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1002
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1003
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1004
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1005
+ typename T36, typename T37, typename T38, typename T39, typename T40,
1006
+ typename T41, typename T42, typename T43, typename T44>
1007
+ internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1008
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1009
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1010
+ T44> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
1011
+ T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
1012
+ T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
1013
+ T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
1014
+ T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
1015
+ T42 v42, T43 v43, T44 v44) {
1016
+ return internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1017
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1018
+ T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1019
+ T40, T41, T42, T43, T44>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
1020
+ v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25,
1021
+ v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39,
1022
+ v40, v41, v42, v43, v44);
1023
+ }
1024
+
1025
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1026
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1027
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1028
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1029
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1030
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1031
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1032
+ typename T36, typename T37, typename T38, typename T39, typename T40,
1033
+ typename T41, typename T42, typename T43, typename T44, typename T45>
1034
+ internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1035
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1036
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1037
+ T44, T45> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
1038
+ T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
1039
+ T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
1040
+ T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32,
1041
+ T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40,
1042
+ T41 v41, T42 v42, T43 v43, T44 v44, T45 v45) {
1043
+ return internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1044
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1045
+ T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1046
+ T40, T41, T42, T43, T44, T45>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
1047
+ v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24,
1048
+ v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38,
1049
+ v39, v40, v41, v42, v43, v44, v45);
1050
+ }
1051
+
1052
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1053
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1054
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1055
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1056
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1057
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1058
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1059
+ typename T36, typename T37, typename T38, typename T39, typename T40,
1060
+ typename T41, typename T42, typename T43, typename T44, typename T45,
1061
+ typename T46>
1062
+ internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1063
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1064
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1065
+ T44, T45, T46> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
1066
+ T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
1067
+ T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
1068
+ T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
1069
+ T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
1070
+ T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46) {
1071
+ return internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1072
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1073
+ T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1074
+ T40, T41, T42, T43, T44, T45, T46>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
1075
+ v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
1076
+ v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37,
1077
+ v38, v39, v40, v41, v42, v43, v44, v45, v46);
1078
+ }
1079
+
1080
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1081
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1082
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1083
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1084
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1085
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1086
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1087
+ typename T36, typename T37, typename T38, typename T39, typename T40,
1088
+ typename T41, typename T42, typename T43, typename T44, typename T45,
1089
+ typename T46, typename T47>
1090
+ internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1091
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1092
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1093
+ T44, T45, T46, T47> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
1094
+ T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
1095
+ T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
1096
+ T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
1097
+ T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
1098
+ T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47) {
1099
+ return internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1100
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1101
+ T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1102
+ T40, T41, T42, T43, T44, T45, T46, T47>(v1, v2, v3, v4, v5, v6, v7, v8,
1103
+ v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
1104
+ v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37,
1105
+ v38, v39, v40, v41, v42, v43, v44, v45, v46, v47);
1106
+ }
1107
+
1108
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1109
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1110
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1111
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1112
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1113
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1114
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1115
+ typename T36, typename T37, typename T38, typename T39, typename T40,
1116
+ typename T41, typename T42, typename T43, typename T44, typename T45,
1117
+ typename T46, typename T47, typename T48>
1118
+ internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1119
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1120
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1121
+ T44, T45, T46, T47, T48> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
1122
+ T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
1123
+ T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
1124
+ T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
1125
+ T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
1126
+ T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47,
1127
+ T48 v48) {
1128
+ return internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1129
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1130
+ T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1131
+ T40, T41, T42, T43, T44, T45, T46, T47, T48>(v1, v2, v3, v4, v5, v6, v7,
1132
+ v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22,
1133
+ v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36,
1134
+ v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48);
1135
+ }
1136
+
1137
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1138
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1139
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1140
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1141
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1142
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1143
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1144
+ typename T36, typename T37, typename T38, typename T39, typename T40,
1145
+ typename T41, typename T42, typename T43, typename T44, typename T45,
1146
+ typename T46, typename T47, typename T48, typename T49>
1147
+ internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1148
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1149
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1150
+ T44, T45, T46, T47, T48, T49> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
1151
+ T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
1152
+ T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22,
1153
+ T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30,
1154
+ T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38,
1155
+ T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46,
1156
+ T47 v47, T48 v48, T49 v49) {
1157
+ return internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1158
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1159
+ T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1160
+ T40, T41, T42, T43, T44, T45, T46, T47, T48, T49>(v1, v2, v3, v4, v5, v6,
1161
+ v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21,
1162
+ v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35,
1163
+ v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49);
1164
+ }
1165
+
1166
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1167
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1168
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1169
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1170
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1171
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1172
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1173
+ typename T36, typename T37, typename T38, typename T39, typename T40,
1174
+ typename T41, typename T42, typename T43, typename T44, typename T45,
1175
+ typename T46, typename T47, typename T48, typename T49, typename T50>
1176
+ internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1177
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1178
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1179
+ T44, T45, T46, T47, T48, T49, T50> Values(T1 v1, T2 v2, T3 v3, T4 v4,
1180
+ T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
1181
+ T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
1182
+ T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
1183
+ T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37,
1184
+ T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45,
1185
+ T46 v46, T47 v47, T48 v48, T49 v49, T50 v50) {
1186
+ return internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1187
+ T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1188
+ T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1189
+ T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>(v1, v2, v3, v4,
1190
+ v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
1191
+ v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
1192
+ v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47,
1193
+ v48, v49, v50);
1194
+ }
1195
+
1196
+ // Bool() allows generating tests with parameters in a set of (false, true).
1197
+ //
1198
+ // Synopsis:
1199
+ // Bool()
1200
+ // - returns a generator producing sequences with elements {false, true}.
1201
+ //
1202
+ // It is useful when testing code that depends on Boolean flags. Combinations
1203
+ // of multiple flags can be tested when several Bool()'s are combined using
1204
+ // Combine() function.
1205
+ //
1206
+ // In the following example all tests in the test case FlagDependentTest
1207
+ // will be instantiated twice with parameters false and true.
1208
+ //
1209
+ // class FlagDependentTest : public testing::TestWithParam<bool> {
1210
+ // virtual void SetUp() {
1211
+ // external_flag = GetParam();
1212
+ // }
1213
+ // }
1214
+ // INSTANTIATE_TEST_CASE_P(BoolSequence, FlagDependentTest, Bool());
1215
+ //
1216
+ inline internal::ParamGenerator<bool> Bool() {
1217
+ return Values(false, true);
1218
+ }
1219
+
1220
+ # if GTEST_HAS_COMBINE
1221
+ // Combine() allows the user to combine two or more sequences to produce
1222
+ // values of a Cartesian product of those sequences' elements.
1223
+ //
1224
+ // Synopsis:
1225
+ // Combine(gen1, gen2, ..., genN)
1226
+ // - returns a generator producing sequences with elements coming from
1227
+ // the Cartesian product of elements from the sequences generated by
1228
+ // gen1, gen2, ..., genN. The sequence elements will have a type of
1229
+ // tuple<T1, T2, ..., TN> where T1, T2, ..., TN are the types
1230
+ // of elements from sequences produces by gen1, gen2, ..., genN.
1231
+ //
1232
+ // Combine can have up to 10 arguments. This number is currently limited
1233
+ // by the maximum number of elements in the tuple implementation used by Google
1234
+ // Test.
1235
+ //
1236
+ // Example:
1237
+ //
1238
+ // This will instantiate tests in test case AnimalTest each one with
1239
+ // the parameter values tuple("cat", BLACK), tuple("cat", WHITE),
1240
+ // tuple("dog", BLACK), and tuple("dog", WHITE):
1241
+ //
1242
+ // enum Color { BLACK, GRAY, WHITE };
1243
+ // class AnimalTest
1244
+ // : public testing::TestWithParam<tuple<const char*, Color> > {...};
1245
+ //
1246
+ // TEST_P(AnimalTest, AnimalLooksNice) {...}
1247
+ //
1248
+ // INSTANTIATE_TEST_CASE_P(AnimalVariations, AnimalTest,
1249
+ // Combine(Values("cat", "dog"),
1250
+ // Values(BLACK, WHITE)));
1251
+ //
1252
+ // This will instantiate tests in FlagDependentTest with all variations of two
1253
+ // Boolean flags:
1254
+ //
1255
+ // class FlagDependentTest
1256
+ // : public testing::TestWithParam<tuple<bool, bool> > {
1257
+ // virtual void SetUp() {
1258
+ // // Assigns external_flag_1 and external_flag_2 values from the tuple.
1259
+ // tie(external_flag_1, external_flag_2) = GetParam();
1260
+ // }
1261
+ // };
1262
+ //
1263
+ // TEST_P(FlagDependentTest, TestFeature1) {
1264
+ // // Test your code using external_flag_1 and external_flag_2 here.
1265
+ // }
1266
+ // INSTANTIATE_TEST_CASE_P(TwoBoolSequence, FlagDependentTest,
1267
+ // Combine(Bool(), Bool()));
1268
+ //
1269
+ template <typename Generator1, typename Generator2>
1270
+ internal::CartesianProductHolder2<Generator1, Generator2> Combine(
1271
+ const Generator1& g1, const Generator2& g2) {
1272
+ return internal::CartesianProductHolder2<Generator1, Generator2>(
1273
+ g1, g2);
1274
+ }
1275
+
1276
+ template <typename Generator1, typename Generator2, typename Generator3>
1277
+ internal::CartesianProductHolder3<Generator1, Generator2, Generator3> Combine(
1278
+ const Generator1& g1, const Generator2& g2, const Generator3& g3) {
1279
+ return internal::CartesianProductHolder3<Generator1, Generator2, Generator3>(
1280
+ g1, g2, g3);
1281
+ }
1282
+
1283
+ template <typename Generator1, typename Generator2, typename Generator3,
1284
+ typename Generator4>
1285
+ internal::CartesianProductHolder4<Generator1, Generator2, Generator3,
1286
+ Generator4> Combine(
1287
+ const Generator1& g1, const Generator2& g2, const Generator3& g3,
1288
+ const Generator4& g4) {
1289
+ return internal::CartesianProductHolder4<Generator1, Generator2, Generator3,
1290
+ Generator4>(
1291
+ g1, g2, g3, g4);
1292
+ }
1293
+
1294
+ template <typename Generator1, typename Generator2, typename Generator3,
1295
+ typename Generator4, typename Generator5>
1296
+ internal::CartesianProductHolder5<Generator1, Generator2, Generator3,
1297
+ Generator4, Generator5> Combine(
1298
+ const Generator1& g1, const Generator2& g2, const Generator3& g3,
1299
+ const Generator4& g4, const Generator5& g5) {
1300
+ return internal::CartesianProductHolder5<Generator1, Generator2, Generator3,
1301
+ Generator4, Generator5>(
1302
+ g1, g2, g3, g4, g5);
1303
+ }
1304
+
1305
+ template <typename Generator1, typename Generator2, typename Generator3,
1306
+ typename Generator4, typename Generator5, typename Generator6>
1307
+ internal::CartesianProductHolder6<Generator1, Generator2, Generator3,
1308
+ Generator4, Generator5, Generator6> Combine(
1309
+ const Generator1& g1, const Generator2& g2, const Generator3& g3,
1310
+ const Generator4& g4, const Generator5& g5, const Generator6& g6) {
1311
+ return internal::CartesianProductHolder6<Generator1, Generator2, Generator3,
1312
+ Generator4, Generator5, Generator6>(
1313
+ g1, g2, g3, g4, g5, g6);
1314
+ }
1315
+
1316
+ template <typename Generator1, typename Generator2, typename Generator3,
1317
+ typename Generator4, typename Generator5, typename Generator6,
1318
+ typename Generator7>
1319
+ internal::CartesianProductHolder7<Generator1, Generator2, Generator3,
1320
+ Generator4, Generator5, Generator6, Generator7> Combine(
1321
+ const Generator1& g1, const Generator2& g2, const Generator3& g3,
1322
+ const Generator4& g4, const Generator5& g5, const Generator6& g6,
1323
+ const Generator7& g7) {
1324
+ return internal::CartesianProductHolder7<Generator1, Generator2, Generator3,
1325
+ Generator4, Generator5, Generator6, Generator7>(
1326
+ g1, g2, g3, g4, g5, g6, g7);
1327
+ }
1328
+
1329
+ template <typename Generator1, typename Generator2, typename Generator3,
1330
+ typename Generator4, typename Generator5, typename Generator6,
1331
+ typename Generator7, typename Generator8>
1332
+ internal::CartesianProductHolder8<Generator1, Generator2, Generator3,
1333
+ Generator4, Generator5, Generator6, Generator7, Generator8> Combine(
1334
+ const Generator1& g1, const Generator2& g2, const Generator3& g3,
1335
+ const Generator4& g4, const Generator5& g5, const Generator6& g6,
1336
+ const Generator7& g7, const Generator8& g8) {
1337
+ return internal::CartesianProductHolder8<Generator1, Generator2, Generator3,
1338
+ Generator4, Generator5, Generator6, Generator7, Generator8>(
1339
+ g1, g2, g3, g4, g5, g6, g7, g8);
1340
+ }
1341
+
1342
+ template <typename Generator1, typename Generator2, typename Generator3,
1343
+ typename Generator4, typename Generator5, typename Generator6,
1344
+ typename Generator7, typename Generator8, typename Generator9>
1345
+ internal::CartesianProductHolder9<Generator1, Generator2, Generator3,
1346
+ Generator4, Generator5, Generator6, Generator7, Generator8,
1347
+ Generator9> Combine(
1348
+ const Generator1& g1, const Generator2& g2, const Generator3& g3,
1349
+ const Generator4& g4, const Generator5& g5, const Generator6& g6,
1350
+ const Generator7& g7, const Generator8& g8, const Generator9& g9) {
1351
+ return internal::CartesianProductHolder9<Generator1, Generator2, Generator3,
1352
+ Generator4, Generator5, Generator6, Generator7, Generator8, Generator9>(
1353
+ g1, g2, g3, g4, g5, g6, g7, g8, g9);
1354
+ }
1355
+
1356
+ template <typename Generator1, typename Generator2, typename Generator3,
1357
+ typename Generator4, typename Generator5, typename Generator6,
1358
+ typename Generator7, typename Generator8, typename Generator9,
1359
+ typename Generator10>
1360
+ internal::CartesianProductHolder10<Generator1, Generator2, Generator3,
1361
+ Generator4, Generator5, Generator6, Generator7, Generator8, Generator9,
1362
+ Generator10> Combine(
1363
+ const Generator1& g1, const Generator2& g2, const Generator3& g3,
1364
+ const Generator4& g4, const Generator5& g5, const Generator6& g6,
1365
+ const Generator7& g7, const Generator8& g8, const Generator9& g9,
1366
+ const Generator10& g10) {
1367
+ return internal::CartesianProductHolder10<Generator1, Generator2, Generator3,
1368
+ Generator4, Generator5, Generator6, Generator7, Generator8, Generator9,
1369
+ Generator10>(
1370
+ g1, g2, g3, g4, g5, g6, g7, g8, g9, g10);
1371
+ }
1372
+ # endif // GTEST_HAS_COMBINE
1373
+
1374
+ # define TEST_P(test_case_name, test_name) \
1375
+ class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \
1376
+ : public test_case_name { \
1377
+ public: \
1378
+ GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {} \
1379
+ virtual void TestBody(); \
1380
+ private: \
1381
+ static int AddToRegistry() { \
1382
+ ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \
1383
+ GetTestCasePatternHolder<test_case_name>(\
1384
+ #test_case_name, \
1385
+ ::testing::internal::CodeLocation(\
1386
+ __FILE__, __LINE__))->AddTestPattern(\
1387
+ GTEST_STRINGIFY_(test_case_name), \
1388
+ GTEST_STRINGIFY_(test_name), \
1389
+ new ::testing::internal::TestMetaFactory< \
1390
+ GTEST_TEST_CLASS_NAME_(\
1391
+ test_case_name, test_name)>()); \
1392
+ return 0; \
1393
+ } \
1394
+ static int gtest_registering_dummy_ GTEST_ATTRIBUTE_UNUSED_; \
1395
+ GTEST_DISALLOW_COPY_AND_ASSIGN_(\
1396
+ GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \
1397
+ }; \
1398
+ int GTEST_TEST_CLASS_NAME_(test_case_name, \
1399
+ test_name)::gtest_registering_dummy_ = \
1400
+ GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \
1401
+ void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody()
1402
+
1403
+ // The optional last argument to INSTANTIATE_TEST_CASE_P allows the user
1404
+ // to specify a function or functor that generates custom test name suffixes
1405
+ // based on the test parameters. The function should accept one argument of
1406
+ // type testing::TestParamInfo<class ParamType>, and return std::string.
1407
+ //
1408
+ // testing::PrintToStringParamName is a builtin test suffix generator that
1409
+ // returns the value of testing::PrintToString(GetParam()).
1410
+ //
1411
+ // Note: test names must be non-empty, unique, and may only contain ASCII
1412
+ // alphanumeric characters or underscore. Because PrintToString adds quotes
1413
+ // to std::string and C strings, it won't work for these types.
1414
+
1415
+ #define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator, ...) \
1416
+ static ::testing::internal::ParamGenerator<test_case_name::ParamType> \
1417
+ gtest_##prefix##test_case_name##_EvalGenerator_() { \
1418
+ return generator; \
1419
+ } \
1420
+ static ::std::string gtest_##prefix##test_case_name##_EvalGenerateName_( \
1421
+ const ::testing::TestParamInfo<test_case_name::ParamType>& info) { \
1422
+ return ::testing::internal::GetParamNameGen<test_case_name::ParamType>( \
1423
+ __VA_ARGS__)(info); \
1424
+ } \
1425
+ static int gtest_##prefix##test_case_name##_dummy_ GTEST_ATTRIBUTE_UNUSED_ = \
1426
+ ::testing::UnitTest::GetInstance() \
1427
+ ->parameterized_test_registry() \
1428
+ .GetTestCasePatternHolder<test_case_name>( \
1429
+ #test_case_name, \
1430
+ ::testing::internal::CodeLocation(__FILE__, __LINE__)) \
1431
+ ->AddTestCaseInstantiation( \
1432
+ #prefix, &gtest_##prefix##test_case_name##_EvalGenerator_, \
1433
+ &gtest_##prefix##test_case_name##_EvalGenerateName_, __FILE__, \
1434
+ __LINE__)
1435
+
1436
+ } // namespace testing
1437
+
1438
+ #endif // GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_