trackler 2.2.1.107 → 2.2.1.108

Sign up to get free protection for your applications and to get access to all the features.
Files changed (397) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/pig-latin/description.md +4 -4
  4. data/tracks/c/config.json +42 -0
  5. data/tracks/c/exercises/bracket-push/README.md +3 -0
  6. data/tracks/c/exercises/bracket-push/makefile +25 -0
  7. data/tracks/c/exercises/bracket-push/src/example.c +52 -0
  8. data/tracks/c/exercises/bracket-push/src/example.h +7 -0
  9. data/tracks/c/exercises/bracket-push/test/test_bracket_push.c +132 -0
  10. data/tracks/c/exercises/bracket-push/test/vendor/unity.c +1300 -0
  11. data/tracks/c/exercises/bracket-push/test/vendor/unity.h +274 -0
  12. data/tracks/c/exercises/bracket-push/test/vendor/unity_internals.h +701 -0
  13. data/tracks/c/exercises/etl/README.md +46 -0
  14. data/tracks/c/exercises/etl/makefile +25 -0
  15. data/tracks/c/exercises/etl/src/example.c +44 -0
  16. data/tracks/c/exercises/etl/src/example.h +18 -0
  17. data/tracks/c/exercises/etl/test/test_etl.c +120 -0
  18. data/tracks/c/exercises/etl/test/vendor/unity.c +1300 -0
  19. data/tracks/c/exercises/etl/test/vendor/unity.h +274 -0
  20. data/tracks/c/exercises/etl/test/vendor/unity_internals.h +701 -0
  21. data/tracks/c/exercises/luhn/README.md +64 -0
  22. data/tracks/c/exercises/luhn/makefile +25 -0
  23. data/tracks/c/exercises/luhn/src/example.c +38 -0
  24. data/tracks/c/exercises/luhn/src/example.h +7 -0
  25. data/tracks/c/exercises/luhn/test/test_luhn.c +109 -0
  26. data/tracks/c/exercises/luhn/test/vendor/unity.c +1300 -0
  27. data/tracks/c/exercises/luhn/test/vendor/unity.h +274 -0
  28. data/tracks/c/exercises/luhn/test/vendor/unity_internals.h +701 -0
  29. data/tracks/c/exercises/prime-factors/README.md +29 -0
  30. data/tracks/c/exercises/prime-factors/makefile +25 -0
  31. data/tracks/c/exercises/prime-factors/src/example.c +28 -0
  32. data/tracks/c/exercises/prime-factors/src/example.h +11 -0
  33. data/tracks/c/exercises/prime-factors/test/test_prime_factors.c +96 -0
  34. data/tracks/c/exercises/prime-factors/test/vendor/unity.c +1300 -0
  35. data/tracks/c/exercises/prime-factors/test/vendor/unity.h +274 -0
  36. data/tracks/c/exercises/prime-factors/test/vendor/unity_internals.h +701 -0
  37. data/tracks/clojure/exercises/hello-world/src/example.clj +2 -3
  38. data/tracks/clojure/exercises/hello-world/test/hello_world_test.clj +0 -6
  39. data/tracks/common-lisp/README.md +3 -8
  40. data/tracks/common-lisp/config/exercise_readme.go.tmpl +1 -1
  41. data/tracks/common-lisp/exercises/acronym/README.md +1 -1
  42. data/tracks/common-lisp/exercises/acronym/acronym-test.lisp +0 -5
  43. data/tracks/common-lisp/exercises/allergies/README.md +1 -1
  44. data/tracks/common-lisp/exercises/anagram/README.md +1 -1
  45. data/tracks/common-lisp/exercises/atbash-cipher/README.md +1 -1
  46. data/tracks/common-lisp/exercises/beer-song/README.md +1 -1
  47. data/tracks/common-lisp/exercises/binary/README.md +1 -1
  48. data/tracks/common-lisp/exercises/bob/README.md +1 -1
  49. data/tracks/common-lisp/exercises/collatz-conjecture/README.md +1 -1
  50. data/tracks/common-lisp/exercises/crypto-square/README.md +1 -1
  51. data/tracks/common-lisp/exercises/difference-of-squares/README.md +1 -1
  52. data/tracks/common-lisp/exercises/etl/README.md +1 -1
  53. data/tracks/common-lisp/exercises/gigasecond/README.md +1 -1
  54. data/tracks/common-lisp/exercises/grade-school/README.md +1 -1
  55. data/tracks/common-lisp/exercises/grains/README.md +1 -1
  56. data/tracks/common-lisp/exercises/hamming/README.md +1 -1
  57. data/tracks/common-lisp/exercises/hello-world/README.md +1 -1
  58. data/tracks/common-lisp/exercises/isogram/README.md +1 -1
  59. data/tracks/common-lisp/exercises/leap/README.md +1 -1
  60. data/tracks/common-lisp/exercises/meetup/README.md +1 -1
  61. data/tracks/common-lisp/exercises/nucleotide-count/README.md +1 -1
  62. data/tracks/common-lisp/exercises/pascals-triangle/README.md +1 -1
  63. data/tracks/common-lisp/exercises/perfect-numbers/README.md +1 -1
  64. data/tracks/common-lisp/exercises/phone-number/README.md +1 -1
  65. data/tracks/common-lisp/exercises/prime-factors/README.md +1 -1
  66. data/tracks/common-lisp/exercises/raindrops/README.md +1 -1
  67. data/tracks/common-lisp/exercises/rna-transcription/README.md +1 -1
  68. data/tracks/common-lisp/exercises/robot-name/README.md +1 -1
  69. data/tracks/common-lisp/exercises/roman-numerals/README.md +1 -1
  70. data/tracks/common-lisp/exercises/scrabble-score/README.md +1 -1
  71. data/tracks/common-lisp/exercises/sieve/README.md +1 -1
  72. data/tracks/common-lisp/exercises/space-age/README.md +1 -1
  73. data/tracks/common-lisp/exercises/strain/README.md +1 -1
  74. data/tracks/common-lisp/exercises/sublist/README.md +1 -1
  75. data/tracks/common-lisp/exercises/triangle/README.md +1 -1
  76. data/tracks/common-lisp/exercises/trinary/README.md +1 -1
  77. data/tracks/common-lisp/exercises/word-count/README.md +1 -1
  78. data/tracks/csharp/exercises/meetup/MeetupTest.cs +177 -177
  79. data/tracks/csharp/exercises/robot-simulator/Example.cs +27 -27
  80. data/tracks/csharp/exercises/robot-simulator/RobotSimulator.cs +3 -3
  81. data/tracks/csharp/exercises/robot-simulator/RobotSimulatorTest.cs +152 -31
  82. data/tracks/csharp/generators/Exercises/Meetup.cs +8 -9
  83. data/tracks/csharp/generators/Exercises/RobotSimulator.cs +116 -0
  84. data/tracks/delphi/exercises/allergies/uAllergyTests.pas +28 -0
  85. data/tracks/delphi/exercises/binary-search/uBinarySearchExample.pas +6 -0
  86. data/tracks/delphi/exercises/binary-search/uBinarySearchTest.pas +53 -37
  87. data/tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureTest.pas +3 -0
  88. data/tracks/delphi/exercises/etl/uETLtests.pas +13 -10
  89. data/tracks/delphi/exercises/grains/uGrainsTests.pas +5 -2
  90. data/tracks/delphi/exercises/hamming/uHammingTests.pas +3 -0
  91. data/tracks/delphi/exercises/hello-world/uTestHelloWorld.pas +3 -0
  92. data/tracks/delphi/exercises/leap/uLeapTests.pas +3 -0
  93. data/tracks/delphi/exercises/minesweeper/uMineSweeperTest.pas +3 -0
  94. data/tracks/delphi/exercises/nucleotide-count/uNucleotideCountTest.pas +5 -17
  95. data/tracks/delphi/exercises/perfect-numbers/uPerfectNumbersExample.pas +6 -0
  96. data/tracks/delphi/exercises/perfect-numbers/uPerfectNumbersTest.pas +77 -26
  97. data/tracks/delphi/exercises/pig-latin/README.md +4 -4
  98. data/tracks/delphi/exercises/pig-latin/uTestPigLatin.pas +12 -9
  99. data/tracks/delphi/exercises/poker/uPokerExample.pas +81 -26
  100. data/tracks/delphi/exercises/poker/uPokerTest.pas +343 -121
  101. data/tracks/delphi/exercises/raindrops/uRaindropsTest.pas +3 -0
  102. data/tracks/delphi/exercises/saddle-points/uSaddlePointsExample.pas +4 -3
  103. data/tracks/delphi/exercises/saddle-points/uSaddlePointsTests.pas +25 -47
  104. data/tracks/delphi/exercises/triangle/uTestTriangle.pas +4 -2
  105. data/tracks/delphi/exercises/two-fer/utwoferTest.pas +3 -0
  106. data/tracks/delphi/exercises/wordy/uWordyTests.pas +3 -0
  107. data/tracks/ecmascript/.travis.yml +2 -1
  108. data/tracks/ecmascript/config.json +14 -0
  109. data/tracks/ecmascript/exercises/accumulate/package.json +1 -2
  110. data/tracks/ecmascript/exercises/acronym/package.json +1 -2
  111. data/tracks/ecmascript/exercises/all-your-base/package.json +1 -2
  112. data/tracks/ecmascript/exercises/allergies/package.json +1 -2
  113. data/tracks/ecmascript/exercises/alphametics/package.json +1 -2
  114. data/tracks/ecmascript/exercises/anagram/package.json +1 -2
  115. data/tracks/ecmascript/exercises/atbash-cipher/package.json +1 -2
  116. data/tracks/ecmascript/exercises/beer-song/package.json +1 -2
  117. data/tracks/ecmascript/exercises/binary-search-tree/package.json +1 -2
  118. data/tracks/ecmascript/exercises/binary-search/package.json +1 -2
  119. data/tracks/ecmascript/exercises/binary/package.json +1 -2
  120. data/tracks/ecmascript/exercises/bob/README.md +2 -0
  121. data/tracks/ecmascript/exercises/bob/bob.spec.js +5 -5
  122. data/tracks/ecmascript/exercises/bob/example.js +7 -2
  123. data/tracks/ecmascript/exercises/bob/package.json +1 -2
  124. data/tracks/ecmascript/exercises/bowling/package.json +1 -2
  125. data/tracks/ecmascript/exercises/bracket-push/package.json +1 -2
  126. data/tracks/ecmascript/exercises/change/package.json +1 -2
  127. data/tracks/ecmascript/exercises/circular-buffer/package.json +1 -2
  128. data/tracks/ecmascript/exercises/clock/package.json +1 -2
  129. data/tracks/ecmascript/exercises/collatz-conjecture/package.json +1 -2
  130. data/tracks/ecmascript/exercises/complex-numbers/package.json +1 -2
  131. data/tracks/ecmascript/exercises/connect/package.json +1 -2
  132. data/tracks/ecmascript/exercises/crypto-square/package.json +1 -2
  133. data/tracks/ecmascript/exercises/custom-set/package.json +1 -2
  134. data/tracks/ecmascript/exercises/diamond/package.json +1 -2
  135. data/tracks/ecmascript/exercises/difference-of-squares/package.json +1 -2
  136. data/tracks/ecmascript/exercises/diffie-hellman/package.json +1 -2
  137. data/tracks/ecmascript/exercises/etl/package.json +1 -2
  138. data/tracks/ecmascript/exercises/flatten-array/package.json +1 -2
  139. data/tracks/ecmascript/exercises/food-chain/package.json +1 -2
  140. data/tracks/ecmascript/exercises/gigasecond/package.json +1 -2
  141. data/tracks/ecmascript/exercises/grade-school/package.json +1 -2
  142. data/tracks/ecmascript/exercises/grains/package.json +1 -2
  143. data/tracks/ecmascript/exercises/hamming/package.json +1 -2
  144. data/tracks/ecmascript/exercises/hello-world/package.json +1 -2
  145. data/tracks/ecmascript/exercises/hexadecimal/package.json +1 -2
  146. data/tracks/ecmascript/exercises/house/package.json +1 -2
  147. data/tracks/ecmascript/exercises/isbn-verifier/package.json +1 -2
  148. data/tracks/ecmascript/exercises/isogram/package.json +1 -2
  149. data/tracks/ecmascript/exercises/kindergarten-garden/package.json +1 -2
  150. data/tracks/ecmascript/exercises/largest-series-product/package.json +1 -2
  151. data/tracks/ecmascript/exercises/leap/package.json +1 -2
  152. data/tracks/ecmascript/exercises/linked-list/package.json +1 -2
  153. data/tracks/ecmascript/exercises/list-ops/package.json +1 -2
  154. data/tracks/ecmascript/exercises/luhn/package.json +1 -2
  155. data/tracks/ecmascript/exercises/matrix/package.json +1 -2
  156. data/tracks/ecmascript/exercises/meetup/package.json +1 -2
  157. data/tracks/ecmascript/exercises/minesweeper/package.json +1 -2
  158. data/tracks/ecmascript/exercises/nth-prime/package.json +1 -2
  159. data/tracks/ecmascript/exercises/nucleotide-count/README.md +60 -0
  160. data/tracks/ecmascript/exercises/nucleotide-count/example.js +13 -0
  161. data/tracks/ecmascript/exercises/nucleotide-count/nucleotide-count.spec.js +23 -0
  162. data/tracks/ecmascript/exercises/nucleotide-count/package.json +70 -0
  163. data/tracks/ecmascript/exercises/ocr-numbers/package.json +1 -2
  164. data/tracks/ecmascript/exercises/octal/package.json +1 -2
  165. data/tracks/ecmascript/exercises/palindrome-products/package.json +1 -2
  166. data/tracks/ecmascript/exercises/pangram/package.json +1 -2
  167. data/tracks/ecmascript/exercises/pascals-triangle/package.json +1 -2
  168. data/tracks/ecmascript/exercises/perfect-numbers/package.json +1 -2
  169. data/tracks/ecmascript/exercises/phone-number/package.json +1 -2
  170. data/tracks/ecmascript/exercises/pig-latin/package.json +1 -2
  171. data/tracks/ecmascript/exercises/prime-factors/package.json +1 -2
  172. data/tracks/ecmascript/exercises/protein-translation/package.json +1 -2
  173. data/tracks/ecmascript/exercises/proverb/package.json +1 -2
  174. data/tracks/ecmascript/exercises/pythagorean-triplet/package.json +1 -2
  175. data/tracks/ecmascript/exercises/queen-attack/package.json +1 -2
  176. data/tracks/ecmascript/exercises/raindrops/package.json +1 -2
  177. data/tracks/ecmascript/exercises/react/package.json +1 -2
  178. data/tracks/ecmascript/exercises/rectangles/package.json +1 -2
  179. data/tracks/ecmascript/exercises/rna-transcription/package.json +1 -2
  180. data/tracks/ecmascript/exercises/robot-name/package.json +1 -2
  181. data/tracks/ecmascript/exercises/robot-simulator/package.json +1 -2
  182. data/tracks/ecmascript/exercises/roman-numerals/package.json +1 -2
  183. data/tracks/ecmascript/exercises/rotational-cipher/package.json +1 -2
  184. data/tracks/ecmascript/exercises/run-length-encoding/package.json +1 -2
  185. data/tracks/ecmascript/exercises/saddle-points/package.json +1 -2
  186. data/tracks/ecmascript/exercises/say/package.json +1 -2
  187. data/tracks/ecmascript/exercises/scrabble-score/package.json +1 -2
  188. data/tracks/ecmascript/exercises/secret-handshake/package.json +1 -2
  189. data/tracks/ecmascript/exercises/series/package.json +1 -2
  190. data/tracks/ecmascript/exercises/sieve/package.json +1 -2
  191. data/tracks/ecmascript/exercises/simple-cipher/package.json +1 -2
  192. data/tracks/ecmascript/exercises/simple-linked-list/package.json +1 -2
  193. data/tracks/ecmascript/exercises/space-age/package.json +1 -2
  194. data/tracks/ecmascript/exercises/spiral-matrix/package.json +1 -2
  195. data/tracks/ecmascript/exercises/strain/package.json +1 -2
  196. data/tracks/ecmascript/exercises/sublist/package.json +1 -2
  197. data/tracks/ecmascript/exercises/sum-of-multiples/package.json +1 -2
  198. data/tracks/ecmascript/exercises/transpose/package.json +1 -2
  199. data/tracks/ecmascript/exercises/triangle/package.json +1 -2
  200. data/tracks/ecmascript/exercises/trinary/package.json +1 -2
  201. data/tracks/ecmascript/exercises/twelve-days/package.json +1 -2
  202. data/tracks/ecmascript/exercises/two-bucket/package.json +1 -2
  203. data/tracks/ecmascript/exercises/two-fer/package.json +1 -2
  204. data/tracks/ecmascript/exercises/word-count/package.json +1 -2
  205. data/tracks/ecmascript/exercises/word-search/package.json +1 -2
  206. data/tracks/ecmascript/exercises/wordy/package.json +1 -2
  207. data/tracks/ecmascript/package.json +1 -2
  208. data/tracks/elm/config.json +13 -1
  209. data/tracks/elm/exercises/binary-search/BinarySearch.elm +9 -0
  210. data/tracks/elm/exercises/binary-search/BinarySearch.example.elm +36 -0
  211. data/tracks/elm/exercises/binary-search/README.md +71 -0
  212. data/tracks/elm/exercises/binary-search/elm-package.json +15 -0
  213. data/tracks/elm/exercises/binary-search/tests/Tests.elm +66 -0
  214. data/tracks/elm/exercises/binary-search/tests/elm-package.json +17 -0
  215. data/tracks/elm/exercises/hamming/Hamming.example.elm +3 -3
  216. data/tracks/elm/exercises/hamming/tests/Tests.elm +14 -14
  217. data/tracks/go/exercises/word-search/.meta/gen.go +9 -7
  218. data/tracks/go/exercises/word-search/cases_test.go +2 -2
  219. data/tracks/groovy/config.json +12 -0
  220. data/tracks/groovy/exercises/bank-account/BankAccount.groovy +30 -0
  221. data/tracks/groovy/exercises/bank-account/BankAccountSpec.groovy +200 -0
  222. data/tracks/groovy/exercises/bank-account/Example.groovy +47 -0
  223. data/tracks/groovy/exercises/bank-account/README.md +75 -0
  224. data/tracks/groovy/exercises/phone-number/Example.groovy +10 -14
  225. data/tracks/groovy/exercises/phone-number/PhoneNumber.groovy +2 -14
  226. data/tracks/groovy/exercises/phone-number/PhoneNumberSpec.groovy +39 -26
  227. data/tracks/groovy/exercises/phone-number/README.md +1 -1
  228. data/tracks/java/config.json +13 -0
  229. data/tracks/java/exercises/forth/README.md +10 -0
  230. data/tracks/java/exercises/rna-transcription/.meta/version +1 -1
  231. data/tracks/java/exercises/settings.gradle +1 -0
  232. data/tracks/java/exercises/sieve/.meta/version +1 -1
  233. data/tracks/java/exercises/spiral-matrix/.meta/version +1 -1
  234. data/tracks/java/exercises/triangle/.meta/version +1 -1
  235. data/tracks/java/exercises/two-bucket/README.md +1 -1
  236. data/tracks/java/exercises/zipper/.meta/src/reference/java/Zipper.java +199 -0
  237. data/tracks/java/exercises/zipper/.meta/version +1 -0
  238. data/tracks/java/exercises/zipper/README.md +42 -0
  239. data/tracks/java/exercises/zipper/build.gradle +18 -0
  240. data/tracks/java/exercises/zipper/src/main/java/.keep +0 -0
  241. data/tracks/java/exercises/zipper/src/test/java/ZipperTest.java +204 -0
  242. data/tracks/javascript/package.json +10 -0
  243. data/tracks/ocaml/.travis-ci.sh +1 -1
  244. data/tracks/ocaml/.travis.yml +1 -1
  245. data/tracks/ocaml/README.md +1 -1
  246. data/tracks/ocaml/config/exercise_readme.go.tmpl +2 -0
  247. data/tracks/python/config.json +13 -0
  248. data/tracks/python/exercises/all-your-base/all_your_base.py +1 -1
  249. data/tracks/python/exercises/all-your-base/all_your_base_test.py +8 -8
  250. data/tracks/python/exercises/alphametics/alphametics_test.py +49 -9
  251. data/tracks/python/exercises/binary-search-tree/binary_search_tree.py +11 -5
  252. data/tracks/python/exercises/binary-search-tree/binary_search_tree_test.py +89 -48
  253. data/tracks/python/exercises/binary-search-tree/example.py +42 -52
  254. data/tracks/python/exercises/binary-search/binary_search_test.py +1 -1
  255. data/tracks/python/exercises/book-store/book_store_test.py +18 -39
  256. data/tracks/python/exercises/book-store/example.py +1 -1
  257. data/tracks/python/exercises/bowling/bowling.py +0 -2
  258. data/tracks/python/exercises/bowling/bowling_test.py +49 -13
  259. data/tracks/python/exercises/bowling/example.py +85 -135
  260. data/tracks/python/exercises/bracket-push/bracket_push.py +1 -1
  261. data/tracks/python/exercises/bracket-push/bracket_push_test.py +16 -16
  262. data/tracks/python/exercises/bracket-push/example.py +2 -2
  263. data/tracks/python/exercises/change/change_test.py +17 -4
  264. data/tracks/python/exercises/change/example.py +2 -2
  265. data/tracks/python/exercises/circular-buffer/circular_buffer.py +12 -0
  266. data/tracks/python/exercises/circular-buffer/circular_buffer_test.py +4 -11
  267. data/tracks/python/exercises/clock/clock.py +10 -1
  268. data/tracks/python/exercises/clock/clock_test.py +9 -9
  269. data/tracks/python/exercises/clock/example.py +4 -1
  270. data/tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py +15 -5
  271. data/tracks/python/exercises/collatz-conjecture/example.py +1 -1
  272. data/tracks/python/exercises/complex-numbers/complex_numbers_test.py +37 -26
  273. data/tracks/python/exercises/custom-set/custom_set_test.py +1 -1
  274. data/tracks/python/exercises/diamond/diamond_test.py +1 -1
  275. data/tracks/python/exercises/dominoes/dominoes_test.py +1 -1
  276. data/tracks/python/exercises/forth/forth_test.py +1 -1
  277. data/tracks/python/exercises/house/example.py +11 -3
  278. data/tracks/python/exercises/house/house.py +1 -5
  279. data/tracks/python/exercises/house/house_test.py +269 -116
  280. data/tracks/python/exercises/list-ops/list_ops_test.py +1 -1
  281. data/tracks/python/exercises/luhn/luhn.py +3 -0
  282. data/tracks/python/exercises/luhn/luhn_test.py +1 -1
  283. data/tracks/python/exercises/markdown/markdown_test.py +2 -3
  284. data/tracks/python/exercises/minesweeper/minesweeper_test.py +1 -1
  285. data/tracks/python/exercises/nth-prime/nth_prime_test.py +1 -1
  286. data/tracks/python/exercises/ocr-numbers/ocr_numbers_test.py +1 -1
  287. data/tracks/python/exercises/palindrome-products/palindrome_products_test.py +14 -6
  288. data/tracks/python/exercises/perfect-numbers/perfect_numbers_test.py +1 -24
  289. data/tracks/python/exercises/phone-number/phone_number_test.py +11 -3
  290. data/tracks/python/exercises/poker/example.py +4 -3
  291. data/tracks/python/exercises/poker/poker.py +1 -1
  292. data/tracks/python/exercises/poker/poker_test.py +196 -119
  293. data/tracks/python/exercises/pov/example.py +3 -3
  294. data/tracks/python/exercises/pov/pov.py +2 -2
  295. data/tracks/python/exercises/pov/pov_test.py +19 -18
  296. data/tracks/python/exercises/protein-translation/protein_translation_test.py +14 -24
  297. data/tracks/python/exercises/rail-fence-cipher/rail_fence_cipher_test.py +1 -1
  298. data/tracks/python/exercises/rational-numbers/README.md +59 -0
  299. data/tracks/python/exercises/rational-numbers/example.py +58 -0
  300. data/tracks/python/exercises/rational-numbers/rational_numbers.py +34 -0
  301. data/tracks/python/exercises/rational-numbers/rational_numbers_test.py +132 -0
  302. data/tracks/python/exercises/rectangles/rectangles_test.py +1 -1
  303. data/tracks/python/exercises/roman-numerals/roman_numerals_test.py +2 -1
  304. data/tracks/python/exercises/run-length-encoding/run_length_encoding_test.py +2 -2
  305. data/tracks/python/exercises/saddle-points/saddle_points_test.py +18 -18
  306. data/tracks/python/exercises/scale-generator/example.py +4 -5
  307. data/tracks/python/exercises/scale-generator/scale_generator.py +2 -2
  308. data/tracks/python/exercises/scale-generator/scale_generator_test.py +38 -73
  309. data/tracks/python/exercises/secret-handshake/secret_handshake_test.py +1 -1
  310. data/tracks/python/exercises/tournament/tournament_test.py +1 -1
  311. data/tracks/python/exercises/twelve-days/example.py +3 -8
  312. data/tracks/python/exercises/twelve-days/twelve_days.py +1 -9
  313. data/tracks/python/exercises/twelve-days/twelve_days_test.py +51 -50
  314. data/tracks/python/exercises/two-bucket/example.py +3 -4
  315. data/tracks/python/exercises/two-bucket/two_bucket.py +1 -1
  316. data/tracks/python/exercises/two-bucket/two_bucket_test.py +8 -13
  317. data/tracks/python/exercises/two-fer/two_fer_test.py +8 -9
  318. data/tracks/python/exercises/variable-length-quantity/variable_length_quantity_test.py +1 -1
  319. data/tracks/python/exercises/word-count/word_count_test.py +8 -14
  320. data/tracks/python/exercises/word-search/word_search.py +3 -15
  321. data/tracks/python/exercises/word-search/word_search_test.py +1 -1
  322. data/tracks/python/exercises/wordy/wordy_test.py +1 -1
  323. data/tracks/python/exercises/zebra-puzzle/example.py +11 -2
  324. data/tracks/python/exercises/zebra-puzzle/zebra_puzzle.py +5 -1
  325. data/tracks/python/exercises/zebra-puzzle/zebra_puzzle_test.py +8 -5
  326. data/tracks/python/exercises/zipper/zipper_test.py +24 -30
  327. data/tracks/scala/exercises/dominoes/src/test/scala/DominoesTest.scala +2 -2
  328. data/tracks/scala/exercises/flatten-array/src/test/scala/FlattenArrayTest.scala +1 -1
  329. data/tracks/scala/exercises/food-chain/example.scala +3 -3
  330. data/tracks/scala/exercises/food-chain/src/test/scala/FoodChainTest.scala +12 -12
  331. data/tracks/scala/exercises/forth/src/test/scala/ForthTest.scala +35 -10
  332. data/tracks/scala/exercises/gigasecond/src/test/scala/GigasecondTest.scala +2 -2
  333. data/tracks/scala/exercises/hamming/src/test/scala/HammingTest.scala +4 -4
  334. data/tracks/scala/exercises/hello-world/src/test/scala/HelloWorldTest.scala +2 -3
  335. data/tracks/scala/exercises/house/example.scala +4 -5
  336. data/tracks/scala/exercises/house/src/test/scala/HouseTest.scala +16 -17
  337. data/tracks/scala/exercises/isogram/src/test/scala/IsogramTest.scala +3 -3
  338. data/tracks/scala/exercises/kindergarten-garden/src/test/scala/GardenTest.scala +1 -29
  339. data/tracks/scala/exercises/largest-series-product/src/test/scala/SeriesTest.scala +20 -17
  340. data/tracks/scala/exercises/leap/src/test/scala/LeapTest.scala +3 -3
  341. data/tracks/scala/exercises/luhn/src/test/scala/LuhnTest.scala +3 -3
  342. data/tracks/scala/exercises/matrix/example.scala +5 -1
  343. data/tracks/scala/exercises/matrix/src/test/scala/MatrixTest.scala +48 -12
  344. data/tracks/scala/exercises/meetup/src/test/scala/MeetupTest.scala +2 -1
  345. data/tracks/scala/exercises/minesweeper/src/test/scala/MinesweeperTest.scala +9 -9
  346. data/tracks/scala/testgen/src/main/scala/DominoesTestGenerator.scala +6 -6
  347. data/tracks/scala/testgen/src/main/scala/FlattenArrayTestGenerator.scala +6 -6
  348. data/tracks/scala/testgen/src/main/scala/FoodChainTestGenerator.scala +10 -12
  349. data/tracks/scala/testgen/src/main/scala/ForthTestGenerator.scala +6 -6
  350. data/tracks/scala/testgen/src/main/scala/GigasecondTestGenerator.scala +6 -4
  351. data/tracks/scala/testgen/src/main/scala/HammingTestGenerator.scala +3 -3
  352. data/tracks/scala/testgen/src/main/scala/HouseTestGenerator.scala +10 -16
  353. data/tracks/scala/testgen/src/main/scala/IsogramTestGenerator.scala +1 -1
  354. data/tracks/scala/testgen/src/main/scala/KindergartenGardenTestGenerator.scala +6 -5
  355. data/tracks/scala/testgen/src/main/scala/LeapTestGenerator.scala +3 -3
  356. data/tracks/scala/testgen/src/main/scala/LuhnTestGenerator.scala +1 -1
  357. data/tracks/scala/testgen/src/main/scala/MatrixTestGenerator.scala +35 -0
  358. data/tracks/scala/testgen/src/main/scala/MeetupTestGenerator.scala +14 -11
  359. data/tracks/scala/testgen/src/main/scala/MinesweeperTestGenerator.scala +1 -1
  360. data/tracks/scala/testgen/src/main/scala/SeriesTestGenerator.scala +3 -3
  361. data/tracks/typescript/config/exercise_readme.go.tmpl +25 -4
  362. data/tracks/typescript/exercises/acronym/README.md +7 -2
  363. data/tracks/typescript/exercises/atbash-cipher/README.md +2 -1
  364. data/tracks/typescript/exercises/beer-song/README.md +2 -2
  365. data/tracks/typescript/exercises/binary-search-tree/README.md +2 -0
  366. data/tracks/typescript/exercises/circular-buffer/README.md +16 -7
  367. data/tracks/typescript/exercises/clock/README.md +6 -0
  368. data/tracks/typescript/exercises/diamond/README.md +8 -7
  369. data/tracks/typescript/exercises/etl/README.md +3 -1
  370. data/tracks/typescript/exercises/food-chain/README.md +1 -1
  371. data/tracks/typescript/exercises/grade-school/README.md +0 -1
  372. data/tracks/typescript/exercises/hello-world/.meta/hints.md +378 -0
  373. data/tracks/typescript/exercises/hello-world/README.md +37 -11
  374. data/tracks/typescript/exercises/largest-series-product/README.md +1 -6
  375. data/tracks/typescript/exercises/leap/README.md +1 -1
  376. data/tracks/typescript/exercises/linked-list/README.md +20 -15
  377. data/tracks/typescript/exercises/nth-prime/README.md +7 -2
  378. data/tracks/typescript/exercises/ocr-numbers/README.md +7 -6
  379. data/tracks/typescript/exercises/pangram/README.md +1 -1
  380. data/tracks/typescript/exercises/pascals-triangle/README.md +1 -1
  381. data/tracks/typescript/exercises/phone-number/README.md +4 -3
  382. data/tracks/typescript/exercises/prime-factors/README.md +1 -12
  383. data/tracks/typescript/exercises/pythagorean-triplet/README.md +3 -7
  384. data/tracks/typescript/exercises/rna-transcription/README.md +2 -2
  385. data/tracks/typescript/exercises/robot-simulator/README.md +3 -1
  386. data/tracks/typescript/exercises/scrabble-score/README.md +3 -1
  387. data/tracks/typescript/exercises/series/README.md +0 -4
  388. data/tracks/typescript/exercises/space-age/README.md +1 -1
  389. data/tracks/typescript/exercises/strain/README.md +6 -0
  390. data/tracks/typescript/exercises/sum-of-multiples/README.md +4 -7
  391. data/tracks/typescript/exercises/two-bucket/README.md +15 -19
  392. data/tracks/typescript/exercises/word-count/README.md +1 -2
  393. data/tracks/typescript/exercises/wordy/README.md +0 -5
  394. metadata +61 -5
  395. data/tracks/common-lisp/exercises/bob/.meta/description.md +0 -10
  396. data/tracks/javascript/.eslintrc.json +0 -10
  397. data/tracks/typescript/docs/EXERCISE_README_INSERT.md +0 -24
@@ -0,0 +1,274 @@
1
+ /* ==========================================
2
+ Unity Project - A Test Framework for C
3
+ Copyright (c) 2007-14 Mike Karlesky, Mark VanderVoord, Greg Williams
4
+ [Released under MIT License. Please refer to license.txt for details]
5
+ ========================================== */
6
+
7
+ #ifndef UNITY_FRAMEWORK_H
8
+ #define UNITY_FRAMEWORK_H
9
+ #define UNITY
10
+
11
+ #include "unity_internals.h"
12
+
13
+ //-------------------------------------------------------
14
+ // Configuration Options
15
+ //-------------------------------------------------------
16
+ // All options described below should be passed as a compiler flag to all files using Unity. If you must add #defines, place them BEFORE the #include above.
17
+
18
+ // Integers/longs/pointers
19
+ // - Unity attempts to automatically discover your integer sizes
20
+ // - define UNITY_EXCLUDE_STDINT_H to stop attempting to look in <stdint.h>
21
+ // - define UNITY_EXCLUDE_LIMITS_H to stop attempting to look in <limits.h>
22
+ // - define UNITY_EXCLUDE_SIZEOF to stop attempting to use sizeof in macros
23
+ // - If you cannot use the automatic methods above, you can force Unity by using these options:
24
+ // - define UNITY_SUPPORT_64
25
+ // - define UNITY_INT_WIDTH
26
+ // - UNITY_LONG_WIDTH
27
+ // - UNITY_POINTER_WIDTH
28
+
29
+ // Floats
30
+ // - define UNITY_EXCLUDE_FLOAT to disallow floating point comparisons
31
+ // - define UNITY_FLOAT_PRECISION to specify the precision to use when doing TEST_ASSERT_EQUAL_FLOAT
32
+ // - define UNITY_FLOAT_TYPE to specify doubles instead of single precision floats
33
+ // - define UNITY_FLOAT_VERBOSE to print floating point values in errors (uses sprintf)
34
+ // - define UNITY_INCLUDE_DOUBLE to allow double floating point comparisons
35
+ // - define UNITY_EXCLUDE_DOUBLE to disallow double floating point comparisons (default)
36
+ // - define UNITY_DOUBLE_PRECISION to specify the precision to use when doing TEST_ASSERT_EQUAL_DOUBLE
37
+ // - define UNITY_DOUBLE_TYPE to specify something other than double
38
+ // - define UNITY_DOUBLE_VERBOSE to print floating point values in errors (uses sprintf)
39
+
40
+ // Output
41
+ // - by default, Unity prints to standard out with putchar. define UNITY_OUTPUT_CHAR(a) with a different function if desired
42
+
43
+ // Optimization
44
+ // - by default, line numbers are stored in unsigned shorts. Define UNITY_LINE_TYPE with a different type if your files are huge
45
+ // - by default, test and failure counters are unsigned shorts. Define UNITY_COUNTER_TYPE with a different type if you want to save space or have more than 65535 Tests.
46
+
47
+ // Test Cases
48
+ // - define UNITY_SUPPORT_TEST_CASES to include the TEST_CASE macro, though really it's mostly about the runner generator script
49
+
50
+ // Parameterized Tests
51
+ // - you'll want to create a define of TEST_CASE(...) which basically evaluates to nothing
52
+
53
+ //-------------------------------------------------------
54
+ // Basic Fail and Ignore
55
+ //-------------------------------------------------------
56
+
57
+ #define TEST_FAIL_MESSAGE(message) UNITY_TEST_FAIL(__LINE__, message)
58
+ #define TEST_FAIL() UNITY_TEST_FAIL(__LINE__, NULL)
59
+ #define TEST_IGNORE_MESSAGE(message) UNITY_TEST_IGNORE(__LINE__, message)
60
+ #define TEST_IGNORE() UNITY_TEST_IGNORE(__LINE__, NULL)
61
+ #define TEST_ONLY()
62
+
63
+ //-------------------------------------------------------
64
+ // Test Asserts (simple)
65
+ //-------------------------------------------------------
66
+
67
+ //Boolean
68
+ #define TEST_ASSERT(condition) UNITY_TEST_ASSERT( (condition), __LINE__, " Expression Evaluated To FALSE")
69
+ #define TEST_ASSERT_TRUE(condition) UNITY_TEST_ASSERT( (condition), __LINE__, " Expected TRUE Was FALSE")
70
+ #define TEST_ASSERT_UNLESS(condition) UNITY_TEST_ASSERT( !(condition), __LINE__, " Expression Evaluated To TRUE")
71
+ #define TEST_ASSERT_FALSE(condition) UNITY_TEST_ASSERT( !(condition), __LINE__, " Expected FALSE Was TRUE")
72
+ #define TEST_ASSERT_NULL(pointer) UNITY_TEST_ASSERT_NULL( (pointer), __LINE__, " Expected NULL")
73
+ #define TEST_ASSERT_NOT_NULL(pointer) UNITY_TEST_ASSERT_NOT_NULL((pointer), __LINE__, " Expected Non-NULL")
74
+
75
+ //Integers (of all sizes)
76
+ #define TEST_ASSERT_EQUAL_INT(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, NULL)
77
+ #define TEST_ASSERT_EQUAL_INT8(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT8((expected), (actual), __LINE__, NULL)
78
+ #define TEST_ASSERT_EQUAL_INT16(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT16((expected), (actual), __LINE__, NULL)
79
+ #define TEST_ASSERT_EQUAL_INT32(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT32((expected), (actual), __LINE__, NULL)
80
+ #define TEST_ASSERT_EQUAL_INT64(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT64((expected), (actual), __LINE__, NULL)
81
+ #define TEST_ASSERT_EQUAL(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, NULL)
82
+ #define TEST_ASSERT_NOT_EQUAL(expected, actual) UNITY_TEST_ASSERT(((expected) != (actual)), __LINE__, " Expected Not-Equal")
83
+ #define TEST_ASSERT_EQUAL_UINT(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT( (expected), (actual), __LINE__, NULL)
84
+ #define TEST_ASSERT_EQUAL_UINT8(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT8( (expected), (actual), __LINE__, NULL)
85
+ #define TEST_ASSERT_EQUAL_UINT16(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT16( (expected), (actual), __LINE__, NULL)
86
+ #define TEST_ASSERT_EQUAL_UINT32(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT32( (expected), (actual), __LINE__, NULL)
87
+ #define TEST_ASSERT_EQUAL_UINT64(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT64( (expected), (actual), __LINE__, NULL)
88
+ #define TEST_ASSERT_EQUAL_HEX(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, NULL)
89
+ #define TEST_ASSERT_EQUAL_HEX8(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX8( (expected), (actual), __LINE__, NULL)
90
+ #define TEST_ASSERT_EQUAL_HEX16(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX16((expected), (actual), __LINE__, NULL)
91
+ #define TEST_ASSERT_EQUAL_HEX32(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, NULL)
92
+ #define TEST_ASSERT_EQUAL_HEX64(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX64((expected), (actual), __LINE__, NULL)
93
+ #define TEST_ASSERT_BITS(mask, expected, actual) UNITY_TEST_ASSERT_BITS((mask), (expected), (actual), __LINE__, NULL)
94
+ #define TEST_ASSERT_BITS_HIGH(mask, actual) UNITY_TEST_ASSERT_BITS((mask), (_UU32)(-1), (actual), __LINE__, NULL)
95
+ #define TEST_ASSERT_BITS_LOW(mask, actual) UNITY_TEST_ASSERT_BITS((mask), (_UU32)(0), (actual), __LINE__, NULL)
96
+ #define TEST_ASSERT_BIT_HIGH(bit, actual) UNITY_TEST_ASSERT_BITS(((_UU32)1 << bit), (_UU32)(-1), (actual), __LINE__, NULL)
97
+ #define TEST_ASSERT_BIT_LOW(bit, actual) UNITY_TEST_ASSERT_BITS(((_UU32)1 << bit), (_UU32)(0), (actual), __LINE__, NULL)
98
+
99
+ //Integer Ranges (of all sizes)
100
+ #define TEST_ASSERT_INT_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT_WITHIN(delta, expected, actual, __LINE__, NULL)
101
+ #define TEST_ASSERT_INT8_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT8_WITHIN(delta, expected, actual, __LINE__, NULL)
102
+ #define TEST_ASSERT_INT16_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT16_WITHIN(delta, expected, actual, __LINE__, NULL)
103
+ #define TEST_ASSERT_INT32_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT32_WITHIN(delta, expected, actual, __LINE__, NULL)
104
+ #define TEST_ASSERT_INT64_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT64_WITHIN(delta, expected, actual, __LINE__, NULL)
105
+ #define TEST_ASSERT_UINT_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT_WITHIN(delta, expected, actual, __LINE__, NULL)
106
+ #define TEST_ASSERT_UINT8_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT8_WITHIN(delta, expected, actual, __LINE__, NULL)
107
+ #define TEST_ASSERT_UINT16_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT16_WITHIN(delta, expected, actual, __LINE__, NULL)
108
+ #define TEST_ASSERT_UINT32_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT32_WITHIN(delta, expected, actual, __LINE__, NULL)
109
+ #define TEST_ASSERT_UINT64_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT64_WITHIN(delta, expected, actual, __LINE__, NULL)
110
+ #define TEST_ASSERT_HEX_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX32_WITHIN(delta, expected, actual, __LINE__, NULL)
111
+ #define TEST_ASSERT_HEX8_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX8_WITHIN(delta, expected, actual, __LINE__, NULL)
112
+ #define TEST_ASSERT_HEX16_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX16_WITHIN(delta, expected, actual, __LINE__, NULL)
113
+ #define TEST_ASSERT_HEX32_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX32_WITHIN(delta, expected, actual, __LINE__, NULL)
114
+ #define TEST_ASSERT_HEX64_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, __LINE__, NULL)
115
+
116
+ //Structs and Strings
117
+ #define TEST_ASSERT_EQUAL_PTR(expected, actual) UNITY_TEST_ASSERT_EQUAL_PTR((expected), (actual), __LINE__, NULL)
118
+ #define TEST_ASSERT_EQUAL_STRING(expected, actual) UNITY_TEST_ASSERT_EQUAL_STRING(expected, actual, __LINE__, NULL)
119
+ #define TEST_ASSERT_EQUAL_STRING_LEN(expected, actual, len) UNITY_TEST_ASSERT_EQUAL_STRING_LEN(expected, actual, len, __LINE__, NULL)
120
+ #define TEST_ASSERT_EQUAL_MEMORY(expected, actual, len) UNITY_TEST_ASSERT_EQUAL_MEMORY(expected, actual, len, __LINE__, NULL)
121
+
122
+ //Arrays
123
+ #define TEST_ASSERT_EQUAL_INT_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT_ARRAY(expected, actual, num_elements, __LINE__, NULL)
124
+ #define TEST_ASSERT_EQUAL_INT8_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT8_ARRAY(expected, actual, num_elements, __LINE__, NULL)
125
+ #define TEST_ASSERT_EQUAL_INT16_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT16_ARRAY(expected, actual, num_elements, __LINE__, NULL)
126
+ #define TEST_ASSERT_EQUAL_INT32_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT32_ARRAY(expected, actual, num_elements, __LINE__, NULL)
127
+ #define TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, __LINE__, NULL)
128
+ #define TEST_ASSERT_EQUAL_UINT_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY(expected, actual, num_elements, __LINE__, NULL)
129
+ #define TEST_ASSERT_EQUAL_UINT8_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT8_ARRAY(expected, actual, num_elements, __LINE__, NULL)
130
+ #define TEST_ASSERT_EQUAL_UINT16_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT16_ARRAY(expected, actual, num_elements, __LINE__, NULL)
131
+ #define TEST_ASSERT_EQUAL_UINT32_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT32_ARRAY(expected, actual, num_elements, __LINE__, NULL)
132
+ #define TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, __LINE__, NULL)
133
+ #define TEST_ASSERT_EQUAL_HEX_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements, __LINE__, NULL)
134
+ #define TEST_ASSERT_EQUAL_HEX8_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX8_ARRAY(expected, actual, num_elements, __LINE__, NULL)
135
+ #define TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements, __LINE__, NULL)
136
+ #define TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements, __LINE__, NULL)
137
+ #define TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, __LINE__, NULL)
138
+ #define TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements, __LINE__, NULL)
139
+ #define TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements, __LINE__, NULL)
140
+ #define TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements) UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements, __LINE__, NULL)
141
+
142
+ //Floating Point (If Enabled)
143
+ #define TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, __LINE__, NULL)
144
+ #define TEST_ASSERT_EQUAL_FLOAT(expected, actual) UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, __LINE__, NULL)
145
+ #define TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements, __LINE__, NULL)
146
+ #define TEST_ASSERT_FLOAT_IS_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, __LINE__, NULL)
147
+ #define TEST_ASSERT_FLOAT_IS_NEG_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, __LINE__, NULL)
148
+ #define TEST_ASSERT_FLOAT_IS_NAN(actual) UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, __LINE__, NULL)
149
+ #define TEST_ASSERT_FLOAT_IS_DETERMINATE(actual) UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, __LINE__, NULL)
150
+ #define TEST_ASSERT_FLOAT_IS_NOT_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, __LINE__, NULL)
151
+ #define TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, __LINE__, NULL)
152
+ #define TEST_ASSERT_FLOAT_IS_NOT_NAN(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, __LINE__, NULL)
153
+ #define TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, __LINE__, NULL)
154
+
155
+ //Double (If Enabled)
156
+ #define TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, __LINE__, NULL)
157
+ #define TEST_ASSERT_EQUAL_DOUBLE(expected, actual) UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, __LINE__, NULL)
158
+ #define TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, __LINE__, NULL)
159
+ #define TEST_ASSERT_DOUBLE_IS_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, __LINE__, NULL)
160
+ #define TEST_ASSERT_DOUBLE_IS_NEG_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, __LINE__, NULL)
161
+ #define TEST_ASSERT_DOUBLE_IS_NAN(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, __LINE__, NULL)
162
+ #define TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual) UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, __LINE__, NULL)
163
+ #define TEST_ASSERT_DOUBLE_IS_NOT_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, __LINE__, NULL)
164
+ #define TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, __LINE__, NULL)
165
+ #define TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, __LINE__, NULL)
166
+ #define TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, __LINE__, NULL)
167
+
168
+ //-------------------------------------------------------
169
+ // Test Asserts (with additional messages)
170
+ //-------------------------------------------------------
171
+
172
+ //Boolean
173
+ #define TEST_ASSERT_MESSAGE(condition, message) UNITY_TEST_ASSERT( (condition), __LINE__, message)
174
+ #define TEST_ASSERT_TRUE_MESSAGE(condition, message) UNITY_TEST_ASSERT( (condition), __LINE__, message)
175
+ #define TEST_ASSERT_UNLESS_MESSAGE(condition, message) UNITY_TEST_ASSERT( !(condition), __LINE__, message)
176
+ #define TEST_ASSERT_FALSE_MESSAGE(condition, message) UNITY_TEST_ASSERT( !(condition), __LINE__, message)
177
+ #define TEST_ASSERT_NULL_MESSAGE(pointer, message) UNITY_TEST_ASSERT_NULL( (pointer), __LINE__, message)
178
+ #define TEST_ASSERT_NOT_NULL_MESSAGE(pointer, message) UNITY_TEST_ASSERT_NOT_NULL((pointer), __LINE__, message)
179
+
180
+ //Integers (of all sizes)
181
+ #define TEST_ASSERT_EQUAL_INT_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, message)
182
+ #define TEST_ASSERT_EQUAL_INT8_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT8((expected), (actual), __LINE__, message)
183
+ #define TEST_ASSERT_EQUAL_INT16_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT16((expected), (actual), __LINE__, message)
184
+ #define TEST_ASSERT_EQUAL_INT32_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT32((expected), (actual), __LINE__, message)
185
+ #define TEST_ASSERT_EQUAL_INT64_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT64((expected), (actual), __LINE__, message)
186
+ #define TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, message)
187
+ #define TEST_ASSERT_NOT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT(((expected) != (actual)), __LINE__, message)
188
+ #define TEST_ASSERT_EQUAL_UINT_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT( (expected), (actual), __LINE__, message)
189
+ #define TEST_ASSERT_EQUAL_UINT8_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT8( (expected), (actual), __LINE__, message)
190
+ #define TEST_ASSERT_EQUAL_UINT16_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT16( (expected), (actual), __LINE__, message)
191
+ #define TEST_ASSERT_EQUAL_UINT32_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT32( (expected), (actual), __LINE__, message)
192
+ #define TEST_ASSERT_EQUAL_UINT64_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT64( (expected), (actual), __LINE__, message)
193
+ #define TEST_ASSERT_EQUAL_HEX_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, message)
194
+ #define TEST_ASSERT_EQUAL_HEX8_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX8( (expected), (actual), __LINE__, message)
195
+ #define TEST_ASSERT_EQUAL_HEX16_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX16((expected), (actual), __LINE__, message)
196
+ #define TEST_ASSERT_EQUAL_HEX32_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, message)
197
+ #define TEST_ASSERT_EQUAL_HEX64_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX64((expected), (actual), __LINE__, message)
198
+ #define TEST_ASSERT_BITS_MESSAGE(mask, expected, actual, message) UNITY_TEST_ASSERT_BITS((mask), (expected), (actual), __LINE__, message)
199
+ #define TEST_ASSERT_BITS_HIGH_MESSAGE(mask, actual, message) UNITY_TEST_ASSERT_BITS((mask), (_UU32)(-1), (actual), __LINE__, message)
200
+ #define TEST_ASSERT_BITS_LOW_MESSAGE(mask, actual, message) UNITY_TEST_ASSERT_BITS((mask), (_UU32)(0), (actual), __LINE__, message)
201
+ #define TEST_ASSERT_BIT_HIGH_MESSAGE(bit, actual, message) UNITY_TEST_ASSERT_BITS(((_UU32)1 << bit), (_UU32)(-1), (actual), __LINE__, message)
202
+ #define TEST_ASSERT_BIT_LOW_MESSAGE(bit, actual, message) UNITY_TEST_ASSERT_BITS(((_UU32)1 << bit), (_UU32)(0), (actual), __LINE__, message)
203
+
204
+ //Integer Ranges (of all sizes)
205
+ #define TEST_ASSERT_INT_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT_WITHIN(delta, expected, actual, __LINE__, message)
206
+ #define TEST_ASSERT_INT8_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT8_WITHIN(delta, expected, actual, __LINE__, message)
207
+ #define TEST_ASSERT_INT16_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT16_WITHIN(delta, expected, actual, __LINE__, message)
208
+ #define TEST_ASSERT_INT32_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT32_WITHIN(delta, expected, actual, __LINE__, message)
209
+ #define TEST_ASSERT_INT64_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT64_WITHIN(delta, expected, actual, __LINE__, message)
210
+ #define TEST_ASSERT_UINT_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT_WITHIN(delta, expected, actual, __LINE__, message)
211
+ #define TEST_ASSERT_UINT8_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT8_WITHIN(delta, expected, actual, __LINE__, message)
212
+ #define TEST_ASSERT_UINT16_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT16_WITHIN(delta, expected, actual, __LINE__, message)
213
+ #define TEST_ASSERT_UINT32_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT32_WITHIN(delta, expected, actual, __LINE__, message)
214
+ #define TEST_ASSERT_UINT64_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT64_WITHIN(delta, expected, actual, __LINE__, message)
215
+ #define TEST_ASSERT_HEX_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX32_WITHIN(delta, expected, actual, __LINE__, message)
216
+ #define TEST_ASSERT_HEX8_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX8_WITHIN(delta, expected, actual, __LINE__, message)
217
+ #define TEST_ASSERT_HEX16_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX16_WITHIN(delta, expected, actual, __LINE__, message)
218
+ #define TEST_ASSERT_HEX32_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX32_WITHIN(delta, expected, actual, __LINE__, message)
219
+ #define TEST_ASSERT_HEX64_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, __LINE__, message)
220
+
221
+ //Structs and Strings
222
+ #define TEST_ASSERT_EQUAL_PTR_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_PTR(expected, actual, __LINE__, message)
223
+ #define TEST_ASSERT_EQUAL_STRING_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_STRING(expected, actual, __LINE__, message)
224
+ #define TEST_ASSERT_EQUAL_STRING_LEN_MESSAGE(expected, actual, len, message) UNITY_TEST_ASSERT_EQUAL_STRING_LEN(expected, actual, len, __LINE__, message)
225
+ #define TEST_ASSERT_EQUAL_MEMORY_MESSAGE(expected, actual, len, message) UNITY_TEST_ASSERT_EQUAL_MEMORY(expected, actual, len, __LINE__, message)
226
+
227
+ //Arrays
228
+ #define TEST_ASSERT_EQUAL_INT_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT_ARRAY(expected, actual, num_elements, __LINE__, message)
229
+ #define TEST_ASSERT_EQUAL_INT8_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT8_ARRAY(expected, actual, num_elements, __LINE__, message)
230
+ #define TEST_ASSERT_EQUAL_INT16_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT16_ARRAY(expected, actual, num_elements, __LINE__, message)
231
+ #define TEST_ASSERT_EQUAL_INT32_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT32_ARRAY(expected, actual, num_elements, __LINE__, message)
232
+ #define TEST_ASSERT_EQUAL_INT64_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, __LINE__, message)
233
+ #define TEST_ASSERT_EQUAL_UINT_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY(expected, actual, num_elements, __LINE__, message)
234
+ #define TEST_ASSERT_EQUAL_UINT8_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT8_ARRAY(expected, actual, num_elements, __LINE__, message)
235
+ #define TEST_ASSERT_EQUAL_UINT16_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT16_ARRAY(expected, actual, num_elements, __LINE__, message)
236
+ #define TEST_ASSERT_EQUAL_UINT32_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT32_ARRAY(expected, actual, num_elements, __LINE__, message)
237
+ #define TEST_ASSERT_EQUAL_UINT64_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, __LINE__, message)
238
+ #define TEST_ASSERT_EQUAL_HEX_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements, __LINE__, message)
239
+ #define TEST_ASSERT_EQUAL_HEX8_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX8_ARRAY(expected, actual, num_elements, __LINE__, message)
240
+ #define TEST_ASSERT_EQUAL_HEX16_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements, __LINE__, message)
241
+ #define TEST_ASSERT_EQUAL_HEX32_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements, __LINE__, message)
242
+ #define TEST_ASSERT_EQUAL_HEX64_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, __LINE__, message)
243
+ #define TEST_ASSERT_EQUAL_PTR_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements, __LINE__, message)
244
+ #define TEST_ASSERT_EQUAL_STRING_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements, __LINE__, message)
245
+ #define TEST_ASSERT_EQUAL_MEMORY_ARRAY_MESSAGE(expected, actual, len, num_elements, message) UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements, __LINE__, message)
246
+
247
+ //Floating Point (If Enabled)
248
+ #define TEST_ASSERT_FLOAT_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, __LINE__, message)
249
+ #define TEST_ASSERT_EQUAL_FLOAT_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, __LINE__, message)
250
+ #define TEST_ASSERT_EQUAL_FLOAT_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements, __LINE__, message)
251
+ #define TEST_ASSERT_FLOAT_IS_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, __LINE__, message)
252
+ #define TEST_ASSERT_FLOAT_IS_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, __LINE__, message)
253
+ #define TEST_ASSERT_FLOAT_IS_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, __LINE__, message)
254
+ #define TEST_ASSERT_FLOAT_IS_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, __LINE__, message)
255
+ #define TEST_ASSERT_FLOAT_IS_NOT_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, __LINE__, message)
256
+ #define TEST_ASSERT_FLOAT_IS_NOT_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, __LINE__, message)
257
+ #define TEST_ASSERT_FLOAT_IS_NOT_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, __LINE__, message)
258
+ #define TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, __LINE__, message)
259
+
260
+ //Double (If Enabled)
261
+ #define TEST_ASSERT_DOUBLE_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, __LINE__, message)
262
+ #define TEST_ASSERT_EQUAL_DOUBLE_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, __LINE__, message)
263
+ #define TEST_ASSERT_EQUAL_DOUBLE_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, __LINE__, message)
264
+ #define TEST_ASSERT_DOUBLE_IS_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, __LINE__, message)
265
+ #define TEST_ASSERT_DOUBLE_IS_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, __LINE__, message)
266
+ #define TEST_ASSERT_DOUBLE_IS_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, __LINE__, message)
267
+ #define TEST_ASSERT_DOUBLE_IS_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, __LINE__, message)
268
+ #define TEST_ASSERT_DOUBLE_IS_NOT_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, __LINE__, message)
269
+ #define TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, __LINE__, message)
270
+ #define TEST_ASSERT_DOUBLE_IS_NOT_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, __LINE__, message)
271
+ #define TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, __LINE__, message)
272
+
273
+ //end of UNITY_FRAMEWORK_H
274
+ #endif
@@ -0,0 +1,701 @@
1
+ /* ==========================================
2
+ Unity Project - A Test Framework for C
3
+ Copyright (c) 2007-14 Mike Karlesky, Mark VanderVoord, Greg Williams
4
+ [Released under MIT License. Please refer to license.txt for details]
5
+ ========================================== */
6
+
7
+ #ifndef UNITY_INTERNALS_H
8
+ #define UNITY_INTERNALS_H
9
+
10
+ #ifdef UNITY_INCLUDE_CONFIG_H
11
+ #include "unity_config.h"
12
+ #endif
13
+
14
+ #include <setjmp.h>
15
+
16
+ // Unity Attempts to Auto-Detect Integer Types
17
+ // Attempt 1: UINT_MAX, ULONG_MAX, etc in <stdint.h>
18
+ // Attempt 2: UINT_MAX, ULONG_MAX, etc in <limits.h>
19
+ // Attempt 3: Deduced from sizeof() macros
20
+ #ifndef UNITY_EXCLUDE_STDINT_H
21
+ #include <stdint.h>
22
+ #endif
23
+
24
+ #ifndef UNITY_EXCLUDE_LIMITS_H
25
+ #include <limits.h>
26
+ #endif
27
+
28
+ #ifndef UNITY_EXCLUDE_SIZEOF
29
+ #ifndef UINT_MAX
30
+ #define UINT_MAX (sizeof(unsigned int) * 256 - 1)
31
+ #endif
32
+ #ifndef ULONG_MAX
33
+ #define ULONG_MAX (sizeof(unsigned long) * 256 - 1)
34
+ #endif
35
+ #ifndef UINTPTR_MAX
36
+ //apparently this is not a constant expression: (sizeof(unsigned int *) * 256 - 1) so we have to just let this fall through
37
+ #endif
38
+ #endif
39
+ //-------------------------------------------------------
40
+ // Guess Widths If Not Specified
41
+ //-------------------------------------------------------
42
+
43
+ // Determine the size of an int, if not already specificied.
44
+ // We cannot use sizeof(int), because it is not yet defined
45
+ // at this stage in the trnslation of the C program.
46
+ // Therefore, infer it from UINT_MAX if possible.
47
+ #ifndef UNITY_INT_WIDTH
48
+ #ifdef UINT_MAX
49
+ #if (UINT_MAX == 0xFFFF)
50
+ #define UNITY_INT_WIDTH (16)
51
+ #elif (UINT_MAX == 0xFFFFFFFF)
52
+ #define UNITY_INT_WIDTH (32)
53
+ #elif (UINT_MAX == 0xFFFFFFFFFFFFFFFF)
54
+ #define UNITY_INT_WIDTH (64)
55
+ #endif
56
+ #endif
57
+ #endif
58
+ #ifndef UNITY_INT_WIDTH
59
+ #define UNITY_INT_WIDTH (32)
60
+ #endif
61
+
62
+ // Determine the size of a long, if not already specified,
63
+ // by following the process used above to define
64
+ // UNITY_INT_WIDTH.
65
+ #ifndef UNITY_LONG_WIDTH
66
+ #ifdef ULONG_MAX
67
+ #if (ULONG_MAX == 0xFFFF)
68
+ #define UNITY_LONG_WIDTH (16)
69
+ #elif (ULONG_MAX == 0xFFFFFFFF)
70
+ #define UNITY_LONG_WIDTH (32)
71
+ #elif (ULONG_MAX == 0xFFFFFFFFFFFFFFFF)
72
+ #define UNITY_LONG_WIDTH (64)
73
+ #endif
74
+ #endif
75
+ #endif
76
+ #ifndef UNITY_LONG_WIDTH
77
+ #define UNITY_LONG_WIDTH (32)
78
+ #endif
79
+
80
+ // Determine the size of a pointer, if not already specified,
81
+ // by following the process used above to define
82
+ // UNITY_INT_WIDTH.
83
+ #ifndef UNITY_POINTER_WIDTH
84
+ #ifdef UINTPTR_MAX
85
+ #if (UINTPTR_MAX+0 <= 0xFFFF)
86
+ #define UNITY_POINTER_WIDTH (16)
87
+ #elif (UINTPTR_MAX+0 <= 0xFFFFFFFF)
88
+ #define UNITY_POINTER_WIDTH (32)
89
+ #elif (UINTPTR_MAX+0 <= 0xFFFFFFFFFFFFFFFF)
90
+ #define UNITY_POINTER_WIDTH (64)
91
+ #endif
92
+ #endif
93
+ #endif
94
+ #ifndef UNITY_POINTER_WIDTH
95
+ #ifdef INTPTR_MAX
96
+ #if (INTPTR_MAX+0 <= 0x7FFF)
97
+ #define UNITY_POINTER_WIDTH (16)
98
+ #elif (INTPTR_MAX+0 <= 0x7FFFFFFF)
99
+ #define UNITY_POINTER_WIDTH (32)
100
+ #elif (INTPTR_MAX+0 <= 0x7FFFFFFFFFFFFFFF)
101
+ #define UNITY_POINTER_WIDTH (64)
102
+ #endif
103
+ #endif
104
+ #endif
105
+ #ifndef UNITY_POINTER_WIDTH
106
+ #define UNITY_POINTER_WIDTH UNITY_LONG_WIDTH
107
+ #endif
108
+
109
+ //-------------------------------------------------------
110
+ // Int Support (Define types based on detected sizes)
111
+ //-------------------------------------------------------
112
+
113
+ #if (UNITY_INT_WIDTH == 32)
114
+ typedef unsigned char _UU8;
115
+ typedef unsigned short _UU16;
116
+ typedef unsigned int _UU32;
117
+ typedef signed char _US8;
118
+ typedef signed short _US16;
119
+ typedef signed int _US32;
120
+ #elif (UNITY_INT_WIDTH == 16)
121
+ typedef unsigned char _UU8;
122
+ typedef unsigned int _UU16;
123
+ typedef unsigned long _UU32;
124
+ typedef signed char _US8;
125
+ typedef signed int _US16;
126
+ typedef signed long _US32;
127
+ #else
128
+ #error Invalid UNITY_INT_WIDTH specified! (16 or 32 are supported)
129
+ #endif
130
+
131
+ //-------------------------------------------------------
132
+ // 64-bit Support
133
+ //-------------------------------------------------------
134
+
135
+ #ifndef UNITY_SUPPORT_64
136
+ #if UNITY_LONG_WIDTH > 32
137
+ #define UNITY_SUPPORT_64
138
+ #endif
139
+ #endif
140
+ #ifndef UNITY_SUPPORT_64
141
+ #if UNITY_POINTER_WIDTH > 32
142
+ #define UNITY_SUPPORT_64
143
+ #endif
144
+ #endif
145
+
146
+ #ifndef UNITY_SUPPORT_64
147
+
148
+ //No 64-bit Support
149
+ typedef _UU32 _U_UINT;
150
+ typedef _US32 _U_SINT;
151
+
152
+ #else
153
+
154
+ //64-bit Support
155
+ #if (UNITY_LONG_WIDTH == 32)
156
+ typedef unsigned long long _UU64;
157
+ typedef signed long long _US64;
158
+ #elif (UNITY_LONG_WIDTH == 64)
159
+ typedef unsigned long _UU64;
160
+ typedef signed long _US64;
161
+ #else
162
+ #error Invalid UNITY_LONG_WIDTH specified! (32 or 64 are supported)
163
+ #endif
164
+ typedef _UU64 _U_UINT;
165
+ typedef _US64 _U_SINT;
166
+
167
+ #endif
168
+
169
+ //-------------------------------------------------------
170
+ // Pointer Support
171
+ //-------------------------------------------------------
172
+
173
+ #if (UNITY_POINTER_WIDTH == 32)
174
+ typedef _UU32 _UP;
175
+ #define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX32
176
+ #elif (UNITY_POINTER_WIDTH == 64)
177
+ typedef _UU64 _UP;
178
+ #define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX64
179
+ #elif (UNITY_POINTER_WIDTH == 16)
180
+ typedef _UU16 _UP;
181
+ #define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX16
182
+ #else
183
+ #error Invalid UNITY_POINTER_WIDTH specified! (16, 32 or 64 are supported)
184
+ #endif
185
+
186
+ #ifndef UNITY_PTR_ATTRIBUTE
187
+ #define UNITY_PTR_ATTRIBUTE
188
+ #endif
189
+
190
+ //-------------------------------------------------------
191
+ // Float Support
192
+ //-------------------------------------------------------
193
+
194
+ #ifdef UNITY_EXCLUDE_FLOAT
195
+
196
+ //No Floating Point Support
197
+ #undef UNITY_INCLUDE_FLOAT
198
+ #undef UNITY_FLOAT_PRECISION
199
+ #undef UNITY_FLOAT_TYPE
200
+ #undef UNITY_FLOAT_VERBOSE
201
+
202
+ #else
203
+
204
+ #ifndef UNITY_INCLUDE_FLOAT
205
+ #define UNITY_INCLUDE_FLOAT
206
+ #endif
207
+
208
+ //Floating Point Support
209
+ #ifndef UNITY_FLOAT_PRECISION
210
+ #define UNITY_FLOAT_PRECISION (0.00001f)
211
+ #endif
212
+ #ifndef UNITY_FLOAT_TYPE
213
+ #define UNITY_FLOAT_TYPE float
214
+ #endif
215
+ typedef UNITY_FLOAT_TYPE _UF;
216
+
217
+ #endif
218
+
219
+ //-------------------------------------------------------
220
+ // Double Float Support
221
+ //-------------------------------------------------------
222
+
223
+ //unlike FLOAT, we DON'T include by default
224
+ #ifndef UNITY_EXCLUDE_DOUBLE
225
+ #ifndef UNITY_INCLUDE_DOUBLE
226
+ #define UNITY_EXCLUDE_DOUBLE
227
+ #endif
228
+ #endif
229
+
230
+ #ifdef UNITY_EXCLUDE_DOUBLE
231
+
232
+ //No Floating Point Support
233
+ #undef UNITY_DOUBLE_PRECISION
234
+ #undef UNITY_DOUBLE_TYPE
235
+ #undef UNITY_DOUBLE_VERBOSE
236
+
237
+ #ifdef UNITY_INCLUDE_DOUBLE
238
+ #undef UNITY_INCLUDE_DOUBLE
239
+ #endif
240
+
241
+ #else
242
+
243
+ //Double Floating Point Support
244
+ #ifndef UNITY_DOUBLE_PRECISION
245
+ #define UNITY_DOUBLE_PRECISION (1e-12f)
246
+ #endif
247
+ #ifndef UNITY_DOUBLE_TYPE
248
+ #define UNITY_DOUBLE_TYPE double
249
+ #endif
250
+ typedef UNITY_DOUBLE_TYPE _UD;
251
+
252
+ #endif
253
+
254
+ #ifdef UNITY_DOUBLE_VERBOSE
255
+ #ifndef UNITY_FLOAT_VERBOSE
256
+ #define UNITY_FLOAT_VERBOSE
257
+ #endif
258
+ #endif
259
+
260
+ //-------------------------------------------------------
261
+ // Output Method: stdout (DEFAULT)
262
+ //-------------------------------------------------------
263
+ #ifndef UNITY_OUTPUT_CHAR
264
+ //Default to using putchar, which is defined in stdio.h
265
+ #include <stdio.h>
266
+ #define UNITY_OUTPUT_CHAR(a) putchar(a)
267
+ #else
268
+ //If defined as something else, make sure we declare it here so it's ready for use
269
+ extern int UNITY_OUTPUT_CHAR(int);
270
+ #endif
271
+
272
+ #ifndef UNITY_OUTPUT_START
273
+ #define UNITY_OUTPUT_START()
274
+ #endif
275
+
276
+ #ifndef UNITY_OUTPUT_COMPLETE
277
+ #define UNITY_OUTPUT_COMPLETE()
278
+ #endif
279
+
280
+ //-------------------------------------------------------
281
+ // Footprint
282
+ //-------------------------------------------------------
283
+
284
+ #ifndef UNITY_LINE_TYPE
285
+ #define UNITY_LINE_TYPE _U_UINT
286
+ #endif
287
+
288
+ #ifndef UNITY_COUNTER_TYPE
289
+ #define UNITY_COUNTER_TYPE _U_UINT
290
+ #endif
291
+
292
+ //-------------------------------------------------------
293
+ // Language Features Available
294
+ //-------------------------------------------------------
295
+ #if !defined(UNITY_WEAK_ATTRIBUTE) && !defined(UNITY_WEAK_PRAGMA)
296
+ # ifdef __GNUC__ // includes clang
297
+ # if !(defined(__WIN32__) && defined(__clang__))
298
+ # define UNITY_WEAK_ATTRIBUTE __attribute__((weak))
299
+ # endif
300
+ # endif
301
+ #endif
302
+
303
+ #ifdef UNITY_NO_WEAK
304
+ # undef UNITY_WEAK_ATTRIBUTE
305
+ # undef UNITY_WEAK_PRAGMA
306
+ #endif
307
+
308
+
309
+ //-------------------------------------------------------
310
+ // Internal Structs Needed
311
+ //-------------------------------------------------------
312
+
313
+ typedef void (*UnityTestFunction)(void);
314
+
315
+ #define UNITY_DISPLAY_RANGE_INT (0x10)
316
+ #define UNITY_DISPLAY_RANGE_UINT (0x20)
317
+ #define UNITY_DISPLAY_RANGE_HEX (0x40)
318
+ #define UNITY_DISPLAY_RANGE_AUTO (0x80)
319
+
320
+ typedef enum
321
+ {
322
+ #if (UNITY_INT_WIDTH == 16)
323
+ UNITY_DISPLAY_STYLE_INT = 2 + UNITY_DISPLAY_RANGE_INT + UNITY_DISPLAY_RANGE_AUTO,
324
+ #elif (UNITY_INT_WIDTH == 32)
325
+ UNITY_DISPLAY_STYLE_INT = 4 + UNITY_DISPLAY_RANGE_INT + UNITY_DISPLAY_RANGE_AUTO,
326
+ #elif (UNITY_INT_WIDTH == 64)
327
+ UNITY_DISPLAY_STYLE_INT = 8 + UNITY_DISPLAY_RANGE_INT + UNITY_DISPLAY_RANGE_AUTO,
328
+ #endif
329
+ UNITY_DISPLAY_STYLE_INT8 = 1 + UNITY_DISPLAY_RANGE_INT,
330
+ UNITY_DISPLAY_STYLE_INT16 = 2 + UNITY_DISPLAY_RANGE_INT,
331
+ UNITY_DISPLAY_STYLE_INT32 = 4 + UNITY_DISPLAY_RANGE_INT,
332
+ #ifdef UNITY_SUPPORT_64
333
+ UNITY_DISPLAY_STYLE_INT64 = 8 + UNITY_DISPLAY_RANGE_INT,
334
+ #endif
335
+
336
+ #if (UNITY_INT_WIDTH == 16)
337
+ UNITY_DISPLAY_STYLE_UINT = 2 + UNITY_DISPLAY_RANGE_UINT + UNITY_DISPLAY_RANGE_AUTO,
338
+ #elif (UNITY_INT_WIDTH == 32)
339
+ UNITY_DISPLAY_STYLE_UINT = 4 + UNITY_DISPLAY_RANGE_UINT + UNITY_DISPLAY_RANGE_AUTO,
340
+ #elif (UNITY_INT_WIDTH == 64)
341
+ UNITY_DISPLAY_STYLE_UINT = 8 + UNITY_DISPLAY_RANGE_UINT + UNITY_DISPLAY_RANGE_AUTO,
342
+ #endif
343
+ UNITY_DISPLAY_STYLE_UINT8 = 1 + UNITY_DISPLAY_RANGE_UINT,
344
+ UNITY_DISPLAY_STYLE_UINT16 = 2 + UNITY_DISPLAY_RANGE_UINT,
345
+ UNITY_DISPLAY_STYLE_UINT32 = 4 + UNITY_DISPLAY_RANGE_UINT,
346
+ #ifdef UNITY_SUPPORT_64
347
+ UNITY_DISPLAY_STYLE_UINT64 = 8 + UNITY_DISPLAY_RANGE_UINT,
348
+ #endif
349
+ UNITY_DISPLAY_STYLE_HEX8 = 1 + UNITY_DISPLAY_RANGE_HEX,
350
+ UNITY_DISPLAY_STYLE_HEX16 = 2 + UNITY_DISPLAY_RANGE_HEX,
351
+ UNITY_DISPLAY_STYLE_HEX32 = 4 + UNITY_DISPLAY_RANGE_HEX,
352
+ #ifdef UNITY_SUPPORT_64
353
+ UNITY_DISPLAY_STYLE_HEX64 = 8 + UNITY_DISPLAY_RANGE_HEX,
354
+ #endif
355
+ UNITY_DISPLAY_STYLE_UNKNOWN
356
+ } UNITY_DISPLAY_STYLE_T;
357
+
358
+ #ifndef UNITY_EXCLUDE_FLOAT
359
+ typedef enum _UNITY_FLOAT_TRAIT_T
360
+ {
361
+ UNITY_FLOAT_IS_NOT_INF = 0,
362
+ UNITY_FLOAT_IS_INF,
363
+ UNITY_FLOAT_IS_NOT_NEG_INF,
364
+ UNITY_FLOAT_IS_NEG_INF,
365
+ UNITY_FLOAT_IS_NOT_NAN,
366
+ UNITY_FLOAT_IS_NAN,
367
+ UNITY_FLOAT_IS_NOT_DET,
368
+ UNITY_FLOAT_IS_DET,
369
+ } UNITY_FLOAT_TRAIT_T;
370
+ #endif
371
+
372
+ struct _Unity
373
+ {
374
+ const char* TestFile;
375
+ const char* CurrentTestName;
376
+ UNITY_LINE_TYPE CurrentTestLineNumber;
377
+ UNITY_COUNTER_TYPE NumberOfTests;
378
+ UNITY_COUNTER_TYPE TestFailures;
379
+ UNITY_COUNTER_TYPE TestIgnores;
380
+ UNITY_COUNTER_TYPE CurrentTestFailed;
381
+ UNITY_COUNTER_TYPE CurrentTestIgnored;
382
+ jmp_buf AbortFrame;
383
+ };
384
+
385
+ extern struct _Unity Unity;
386
+
387
+ //-------------------------------------------------------
388
+ // Test Suite Management
389
+ //-------------------------------------------------------
390
+
391
+ void UnityBegin(const char* filename);
392
+ int UnityEnd(void);
393
+ void UnityConcludeTest(void);
394
+ void UnityDefaultTestRun(UnityTestFunction Func, const char* FuncName, const int FuncLineNum);
395
+
396
+ //-------------------------------------------------------
397
+ // Test Output
398
+ //-------------------------------------------------------
399
+
400
+ void UnityPrint(const char* string);
401
+ void UnityPrintMask(const _U_UINT mask, const _U_UINT number);
402
+ void UnityPrintNumberByStyle(const _U_SINT number, const UNITY_DISPLAY_STYLE_T style);
403
+ void UnityPrintNumber(const _U_SINT number);
404
+ void UnityPrintNumberUnsigned(const _U_UINT number);
405
+ void UnityPrintNumberHex(const _U_UINT number, const char nibbles);
406
+
407
+ #ifdef UNITY_FLOAT_VERBOSE
408
+ void UnityPrintFloat(const _UF number);
409
+ #endif
410
+
411
+ //-------------------------------------------------------
412
+ // Test Assertion Fuctions
413
+ //-------------------------------------------------------
414
+ // Use the macros below this section instead of calling
415
+ // these directly. The macros have a consistent naming
416
+ // convention and will pull in file and line information
417
+ // for you.
418
+
419
+ void UnityAssertEqualNumber(const _U_SINT expected,
420
+ const _U_SINT actual,
421
+ const char* msg,
422
+ const UNITY_LINE_TYPE lineNumber,
423
+ const UNITY_DISPLAY_STYLE_T style);
424
+
425
+ void UnityAssertEqualIntArray(UNITY_PTR_ATTRIBUTE const void* expected,
426
+ UNITY_PTR_ATTRIBUTE const void* actual,
427
+ const _UU32 num_elements,
428
+ const char* msg,
429
+ const UNITY_LINE_TYPE lineNumber,
430
+ const UNITY_DISPLAY_STYLE_T style);
431
+
432
+ void UnityAssertBits(const _U_SINT mask,
433
+ const _U_SINT expected,
434
+ const _U_SINT actual,
435
+ const char* msg,
436
+ const UNITY_LINE_TYPE lineNumber);
437
+
438
+ void UnityAssertEqualString(const char* expected,
439
+ const char* actual,
440
+ const char* msg,
441
+ const UNITY_LINE_TYPE lineNumber);
442
+
443
+ void UnityAssertEqualStringLen(const char* expected,
444
+ const char* actual,
445
+ const _UU32 length,
446
+ const char* msg,
447
+ const UNITY_LINE_TYPE lineNumber);
448
+
449
+ void UnityAssertEqualStringArray( const char** expected,
450
+ const char** actual,
451
+ const _UU32 num_elements,
452
+ const char* msg,
453
+ const UNITY_LINE_TYPE lineNumber);
454
+
455
+ void UnityAssertEqualMemory( UNITY_PTR_ATTRIBUTE const void* expected,
456
+ UNITY_PTR_ATTRIBUTE const void* actual,
457
+ const _UU32 length,
458
+ const _UU32 num_elements,
459
+ const char* msg,
460
+ const UNITY_LINE_TYPE lineNumber);
461
+
462
+ void UnityAssertNumbersWithin(const _U_SINT delta,
463
+ const _U_SINT expected,
464
+ const _U_SINT actual,
465
+ const char* msg,
466
+ const UNITY_LINE_TYPE lineNumber,
467
+ const UNITY_DISPLAY_STYLE_T style);
468
+
469
+ void UnityFail(const char* message, const UNITY_LINE_TYPE line);
470
+
471
+ void UnityIgnore(const char* message, const UNITY_LINE_TYPE line);
472
+
473
+ #ifndef UNITY_EXCLUDE_FLOAT
474
+ void UnityAssertFloatsWithin(const _UF delta,
475
+ const _UF expected,
476
+ const _UF actual,
477
+ const char* msg,
478
+ const UNITY_LINE_TYPE lineNumber);
479
+
480
+ void UnityAssertEqualFloatArray(UNITY_PTR_ATTRIBUTE const _UF* expected,
481
+ UNITY_PTR_ATTRIBUTE const _UF* actual,
482
+ const _UU32 num_elements,
483
+ const char* msg,
484
+ const UNITY_LINE_TYPE lineNumber);
485
+
486
+ void UnityAssertFloatSpecial(const _UF actual,
487
+ const char* msg,
488
+ const UNITY_LINE_TYPE lineNumber,
489
+ const UNITY_FLOAT_TRAIT_T style);
490
+ #endif
491
+
492
+ #ifndef UNITY_EXCLUDE_DOUBLE
493
+ void UnityAssertDoublesWithin(const _UD delta,
494
+ const _UD expected,
495
+ const _UD actual,
496
+ const char* msg,
497
+ const UNITY_LINE_TYPE lineNumber);
498
+
499
+ void UnityAssertEqualDoubleArray(UNITY_PTR_ATTRIBUTE const _UD* expected,
500
+ UNITY_PTR_ATTRIBUTE const _UD* actual,
501
+ const _UU32 num_elements,
502
+ const char* msg,
503
+ const UNITY_LINE_TYPE lineNumber);
504
+
505
+ void UnityAssertDoubleSpecial(const _UD actual,
506
+ const char* msg,
507
+ const UNITY_LINE_TYPE lineNumber,
508
+ const UNITY_FLOAT_TRAIT_T style);
509
+ #endif
510
+
511
+ //-------------------------------------------------------
512
+ // Error Strings We Might Need
513
+ //-------------------------------------------------------
514
+
515
+ extern const char UnityStrErrFloat[];
516
+ extern const char UnityStrErrDouble[];
517
+ extern const char UnityStrErr64[];
518
+
519
+ //-------------------------------------------------------
520
+ // Test Running Macros
521
+ //-------------------------------------------------------
522
+
523
+ #define TEST_PROTECT() (setjmp(Unity.AbortFrame) == 0)
524
+
525
+ #define TEST_ABORT() {longjmp(Unity.AbortFrame, 1);}
526
+
527
+ //This tricky series of macros gives us an optional line argument to treat it as RUN_TEST(func, num=__LINE__)
528
+ #ifndef RUN_TEST
529
+ #ifdef __STDC_VERSION__
530
+ #if __STDC_VERSION__ >= 199901L
531
+ #define RUN_TEST(...) UnityDefaultTestRun(RUN_TEST_FIRST(__VA_ARGS__), RUN_TEST_SECOND(__VA_ARGS__))
532
+ #define RUN_TEST_FIRST(...) RUN_TEST_FIRST_HELPER(__VA_ARGS__, throwaway)
533
+ #define RUN_TEST_FIRST_HELPER(first,...) first, #first
534
+ #define RUN_TEST_SECOND(...) RUN_TEST_SECOND_HELPER(__VA_ARGS__, __LINE__, throwaway)
535
+ #define RUN_TEST_SECOND_HELPER(first,second,...) second
536
+ #endif
537
+ #endif
538
+ #endif
539
+
540
+ //If we can't do the tricky version, we'll just have to require them to always include the line number
541
+ #ifndef RUN_TEST
542
+ #ifdef CMOCK
543
+ #define RUN_TEST(func, num) UnityDefaultTestRun(func, #func, num)
544
+ #else
545
+ #define RUN_TEST(func) UnityDefaultTestRun(func, #func, __LINE__)
546
+ #endif
547
+ #endif
548
+
549
+ #define TEST_LINE_NUM (Unity.CurrentTestLineNumber)
550
+ #define TEST_IS_IGNORED (Unity.CurrentTestIgnored)
551
+ #define UNITY_NEW_TEST(a) \
552
+ Unity.CurrentTestName = a; \
553
+ Unity.CurrentTestLineNumber = (UNITY_LINE_TYPE)(__LINE__); \
554
+ Unity.NumberOfTests++;
555
+
556
+ #ifndef UNITY_BEGIN
557
+ #define UNITY_BEGIN() UnityBegin(__FILE__)
558
+ #endif
559
+
560
+ #ifndef UNITY_END
561
+ #define UNITY_END() UnityEnd()
562
+ #endif
563
+
564
+ #define UNITY_UNUSED(x) (void)(sizeof(x))
565
+
566
+ //-------------------------------------------------------
567
+ // Basic Fail and Ignore
568
+ //-------------------------------------------------------
569
+
570
+ #define UNITY_TEST_FAIL(line, message) UnityFail( (message), (UNITY_LINE_TYPE)line);
571
+ #define UNITY_TEST_IGNORE(line, message) UnityIgnore( (message), (UNITY_LINE_TYPE)line);
572
+
573
+ //-------------------------------------------------------
574
+ // Test Asserts
575
+ //-------------------------------------------------------
576
+
577
+ #define UNITY_TEST_ASSERT(condition, line, message) if (condition) {} else {UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, message);}
578
+ #define UNITY_TEST_ASSERT_NULL(pointer, line, message) UNITY_TEST_ASSERT(((pointer) == NULL), (UNITY_LINE_TYPE)line, message)
579
+ #define UNITY_TEST_ASSERT_NOT_NULL(pointer, line, message) UNITY_TEST_ASSERT(((pointer) != NULL), (UNITY_LINE_TYPE)line, message)
580
+
581
+ #define UNITY_TEST_ASSERT_EQUAL_INT(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT)
582
+ #define UNITY_TEST_ASSERT_EQUAL_INT8(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US8 )(expected), (_U_SINT)(_US8 )(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT8)
583
+ #define UNITY_TEST_ASSERT_EQUAL_INT16(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US16)(expected), (_U_SINT)(_US16)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT16)
584
+ #define UNITY_TEST_ASSERT_EQUAL_INT32(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US32)(expected), (_U_SINT)(_US32)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT32)
585
+ #define UNITY_TEST_ASSERT_EQUAL_UINT(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT)
586
+ #define UNITY_TEST_ASSERT_EQUAL_UINT8(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_UU8 )(expected), (_U_SINT)(_UU8 )(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT8)
587
+ #define UNITY_TEST_ASSERT_EQUAL_UINT16(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_UU16)(expected), (_U_SINT)(_UU16)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT16)
588
+ #define UNITY_TEST_ASSERT_EQUAL_UINT32(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_UU32)(expected), (_U_SINT)(_UU32)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT32)
589
+ #define UNITY_TEST_ASSERT_EQUAL_HEX8(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US8 )(expected), (_U_SINT)(_US8 )(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX8)
590
+ #define UNITY_TEST_ASSERT_EQUAL_HEX16(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US16)(expected), (_U_SINT)(_US16)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX16)
591
+ #define UNITY_TEST_ASSERT_EQUAL_HEX32(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US32)(expected), (_U_SINT)(_US32)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX32)
592
+ #define UNITY_TEST_ASSERT_BITS(mask, expected, actual, line, message) UnityAssertBits((_U_SINT)(mask), (_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line)
593
+
594
+ #define UNITY_TEST_ASSERT_INT_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(delta), (_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT)
595
+ #define UNITY_TEST_ASSERT_INT8_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(_US8 )(delta), (_U_SINT)(_US8 )(expected), (_U_SINT)(_US8 )(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT8)
596
+ #define UNITY_TEST_ASSERT_INT16_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(_US16)(delta), (_U_SINT)(_US16)(expected), (_U_SINT)(_US16)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT16)
597
+ #define UNITY_TEST_ASSERT_INT32_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(_US32)(delta), (_U_SINT)(_US32)(expected), (_U_SINT)(_US32)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT32)
598
+ #define UNITY_TEST_ASSERT_UINT_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(delta), (_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT)
599
+ #define UNITY_TEST_ASSERT_UINT8_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(_U_UINT)(_UU8 )(delta), (_U_SINT)(_U_UINT)(_UU8 )(expected), (_U_SINT)(_U_UINT)(_UU8 )(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT8)
600
+ #define UNITY_TEST_ASSERT_UINT16_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(_U_UINT)(_UU16)(delta), (_U_SINT)(_U_UINT)(_UU16)(expected), (_U_SINT)(_U_UINT)(_UU16)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT16)
601
+ #define UNITY_TEST_ASSERT_UINT32_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(_U_UINT)(_UU32)(delta), (_U_SINT)(_U_UINT)(_UU32)(expected), (_U_SINT)(_U_UINT)(_UU32)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT32)
602
+ #define UNITY_TEST_ASSERT_HEX8_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(_U_UINT)(_UU8 )(delta), (_U_SINT)(_U_UINT)(_UU8 )(expected), (_U_SINT)(_U_UINT)(_UU8 )(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX8)
603
+ #define UNITY_TEST_ASSERT_HEX16_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(_U_UINT)(_UU16)(delta), (_U_SINT)(_U_UINT)(_UU16)(expected), (_U_SINT)(_U_UINT)(_UU16)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX16)
604
+ #define UNITY_TEST_ASSERT_HEX32_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(_U_UINT)(_UU32)(delta), (_U_SINT)(_U_UINT)(_UU32)(expected), (_U_SINT)(_U_UINT)(_UU32)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX32)
605
+
606
+ #define UNITY_TEST_ASSERT_EQUAL_PTR(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_UP)(expected), (_U_SINT)(_UP)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_POINTER)
607
+ #define UNITY_TEST_ASSERT_EQUAL_STRING(expected, actual, line, message) UnityAssertEqualString((const char*)(expected), (const char*)(actual), (message), (UNITY_LINE_TYPE)line)
608
+ #define UNITY_TEST_ASSERT_EQUAL_STRING_LEN(expected, actual, len, line, message) UnityAssertEqualStringLen((const char*)(expected), (const char*)(actual), (_UU32)(len), (message), (UNITY_LINE_TYPE)line)
609
+ #define UNITY_TEST_ASSERT_EQUAL_MEMORY(expected, actual, len, line, message) UnityAssertEqualMemory((UNITY_PTR_ATTRIBUTE void*)(expected), (UNITY_PTR_ATTRIBUTE void*)(actual), (_UU32)(len), 1, (message), (UNITY_LINE_TYPE)line)
610
+
611
+ #define UNITY_TEST_ASSERT_EQUAL_INT_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_PTR_ATTRIBUTE const void*)(expected), (UNITY_PTR_ATTRIBUTE const void*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT)
612
+ #define UNITY_TEST_ASSERT_EQUAL_INT8_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_PTR_ATTRIBUTE const void*)(expected), (UNITY_PTR_ATTRIBUTE const void*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT8)
613
+ #define UNITY_TEST_ASSERT_EQUAL_INT16_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_PTR_ATTRIBUTE const void*)(expected), (UNITY_PTR_ATTRIBUTE const void*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT16)
614
+ #define UNITY_TEST_ASSERT_EQUAL_INT32_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_PTR_ATTRIBUTE const void*)(expected), (UNITY_PTR_ATTRIBUTE const void*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT32)
615
+ #define UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_PTR_ATTRIBUTE const void*)(expected), (UNITY_PTR_ATTRIBUTE const void*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT)
616
+ #define UNITY_TEST_ASSERT_EQUAL_UINT8_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_PTR_ATTRIBUTE const void*)(expected), (UNITY_PTR_ATTRIBUTE const void*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT8)
617
+ #define UNITY_TEST_ASSERT_EQUAL_UINT16_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_PTR_ATTRIBUTE const void*)(expected), (UNITY_PTR_ATTRIBUTE const void*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT16)
618
+ #define UNITY_TEST_ASSERT_EQUAL_UINT32_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_PTR_ATTRIBUTE const void*)(expected), (UNITY_PTR_ATTRIBUTE const void*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT32)
619
+ #define UNITY_TEST_ASSERT_EQUAL_HEX8_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_PTR_ATTRIBUTE const void*)(expected), (UNITY_PTR_ATTRIBUTE const void*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX8)
620
+ #define UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_PTR_ATTRIBUTE const void*)(expected), (UNITY_PTR_ATTRIBUTE const void*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX16)
621
+ #define UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_PTR_ATTRIBUTE const void*)(expected), (UNITY_PTR_ATTRIBUTE const void*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX32)
622
+ #define UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_PTR_ATTRIBUTE const void*)(_UP*)(expected), (const void*)(_UP*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_POINTER)
623
+ #define UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualStringArray((const char**)(expected), (const char**)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line)
624
+ #define UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements, line, message) UnityAssertEqualMemory((UNITY_PTR_ATTRIBUTE void*)(expected), (UNITY_PTR_ATTRIBUTE void*)(actual), (_UU32)(len), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line)
625
+
626
+ #ifdef UNITY_SUPPORT_64
627
+ #define UNITY_TEST_ASSERT_EQUAL_INT64(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT64)
628
+ #define UNITY_TEST_ASSERT_EQUAL_UINT64(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT64)
629
+ #define UNITY_TEST_ASSERT_EQUAL_HEX64(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX64)
630
+ #define UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_PTR_ATTRIBUTE const _U_SINT*)(expected), (UNITY_PTR_ATTRIBUTE const _U_SINT*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT64)
631
+ #define UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_PTR_ATTRIBUTE const _U_SINT*)(expected), (UNITY_PTR_ATTRIBUTE const _U_SINT*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT64)
632
+ #define UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_PTR_ATTRIBUTE const _U_SINT*)(expected), (UNITY_PTR_ATTRIBUTE const _U_SINT*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX64)
633
+ #define UNITY_TEST_ASSERT_INT64_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(delta), (_U_SINT)(expected), (_U_SINT)(actual), NULL, (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT64)
634
+ #define UNITY_TEST_ASSERT_UINT64_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(delta), (_U_SINT)(expected), (_U_SINT)(actual), NULL, (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT64)
635
+ #define UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(delta), (_U_SINT)(expected), (_U_SINT)(actual), NULL, (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX64)
636
+ #else
637
+ #define UNITY_TEST_ASSERT_EQUAL_INT64(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErr64)
638
+ #define UNITY_TEST_ASSERT_EQUAL_UINT64(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErr64)
639
+ #define UNITY_TEST_ASSERT_EQUAL_HEX64(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErr64)
640
+ #define UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErr64)
641
+ #define UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErr64)
642
+ #define UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErr64)
643
+ #define UNITY_TEST_ASSERT_INT64_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErr64)
644
+ #define UNITY_TEST_ASSERT_UINT64_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErr64)
645
+ #define UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErr64)
646
+ #endif
647
+
648
+ #ifdef UNITY_EXCLUDE_FLOAT
649
+ #define UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrFloat)
650
+ #define UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrFloat)
651
+ #define UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrFloat)
652
+ #define UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrFloat)
653
+ #define UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrFloat)
654
+ #define UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrFloat)
655
+ #define UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrFloat)
656
+ #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrFloat)
657
+ #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrFloat)
658
+ #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrFloat)
659
+ #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrFloat)
660
+ #else
661
+ #define UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, line, message) UnityAssertFloatsWithin((_UF)(delta), (_UF)(expected), (_UF)(actual), (message), (UNITY_LINE_TYPE)line)
662
+ #define UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, line, message) UNITY_TEST_ASSERT_FLOAT_WITHIN((_UF)(expected) * (_UF)UNITY_FLOAT_PRECISION, (_UF)expected, (_UF)actual, (UNITY_LINE_TYPE)line, message)
663
+ #define UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualFloatArray((_UF*)(expected), (_UF*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line)
664
+ #define UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_INF)
665
+ #define UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NEG_INF)
666
+ #define UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NAN)
667
+ #define UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_DET)
668
+ #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NOT_INF)
669
+ #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NOT_NEG_INF)
670
+ #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NOT_NAN)
671
+ #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NOT_DET)
672
+ #endif
673
+
674
+ #ifdef UNITY_EXCLUDE_DOUBLE
675
+ #define UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrDouble)
676
+ #define UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrDouble)
677
+ #define UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrDouble)
678
+ #define UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrDouble)
679
+ #define UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrDouble)
680
+ #define UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrDouble)
681
+ #define UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrDouble)
682
+ #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrDouble)
683
+ #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrDouble)
684
+ #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrDouble)
685
+ #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, UnityStrErrDouble)
686
+ #else
687
+ #define UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, line, message) UnityAssertDoublesWithin((_UD)(delta), (_UD)(expected), (_UD)(actual), (message), (UNITY_LINE_TYPE)line)
688
+ #define UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, line, message) UNITY_TEST_ASSERT_DOUBLE_WITHIN((_UD)(expected) * (_UD)UNITY_DOUBLE_PRECISION, (_UD)expected, (_UD)actual, (UNITY_LINE_TYPE)line, message)
689
+ #define UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualDoubleArray((_UD*)(expected), (_UD*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line)
690
+ #define UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_INF)
691
+ #define UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NEG_INF)
692
+ #define UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NAN)
693
+ #define UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_DET)
694
+ #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NOT_INF)
695
+ #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NOT_NEG_INF)
696
+ #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NOT_NAN)
697
+ #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NOT_DET)
698
+ #endif
699
+
700
+ //End of UNITY_INTERNALS_H
701
+ #endif