trackler 2.2.1.46 → 2.2.1.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/nucleotide-count/canonical-data.json +7 -7
  4. data/tracks/c/README.md +1 -1
  5. data/tracks/c/docs/SNIPPET.txt +2 -3
  6. data/tracks/c/exercises/acronym/test/test_acronym.c +8 -0
  7. data/tracks/c/exercises/all-your-base/test/test_all_your_base.c +8 -0
  8. data/tracks/c/exercises/allergies/test/test_allergies.c +8 -0
  9. data/tracks/c/exercises/anagram/test/test_anagram.c +8 -0
  10. data/tracks/c/exercises/atbash-cipher/test/test_atbash_cipher.c +8 -0
  11. data/tracks/c/exercises/beer-song/src/example.c +23 -22
  12. data/tracks/c/exercises/beer-song/src/example.h +3 -3
  13. data/tracks/c/exercises/beer-song/test/test_beer_song.c +8 -0
  14. data/tracks/c/exercises/binary-search/test/test_binary_search.c +8 -0
  15. data/tracks/c/exercises/binary/test/test_binary.c +8 -0
  16. data/tracks/c/exercises/bob/test/test_bob.c +8 -0
  17. data/tracks/c/exercises/clock/test/test_clock.c +8 -0
  18. data/tracks/c/exercises/difference-of-squares/test/test_difference_of_squares.c +8 -0
  19. data/tracks/c/exercises/gigasecond/test/test_gigasecond.c +8 -0
  20. data/tracks/c/exercises/grains/test/test_grains.c +8 -0
  21. data/tracks/c/exercises/hamming/test/test_hamming.c +8 -0
  22. data/tracks/c/exercises/hello-world/src/example.c +0 -2
  23. data/tracks/c/exercises/hello-world/test/test_hello_world.c +8 -0
  24. data/tracks/c/exercises/isogram/test/test_isogram.c +8 -0
  25. data/tracks/c/exercises/largest-series-product/test/test_largest_series_product.c +8 -0
  26. data/tracks/c/exercises/leap/test/test_leap.c +8 -0
  27. data/tracks/c/exercises/meetup/test/test_meetup.c +8 -0
  28. data/tracks/c/exercises/nth-prime/test/test_nth_prime.c +8 -0
  29. data/tracks/c/exercises/nucleotide-count/test/test_nucleotide_count.c +8 -0
  30. data/tracks/c/exercises/palindrome-products/test/test_palindrome_products.c +8 -0
  31. data/tracks/c/exercises/pangram/test/test_pangram.c +8 -0
  32. data/tracks/c/exercises/pascals-triangle/test/test_pascals_triangle.c +8 -0
  33. data/tracks/c/exercises/perfect-numbers/src/example.c +4 -4
  34. data/tracks/c/exercises/perfect-numbers/src/example.h +4 -4
  35. data/tracks/c/exercises/perfect-numbers/src/perfect_numbers.h +4 -4
  36. data/tracks/c/exercises/perfect-numbers/test/test_perfect_numbers.c +23 -13
  37. data/tracks/c/exercises/phone-number/test/test_phone_number.c +8 -0
  38. data/tracks/c/exercises/raindrops/test/test_raindrops.c +5 -1
  39. data/tracks/c/exercises/react/src/example.c +8 -8
  40. data/tracks/c/exercises/react/test/test_react.c +8 -0
  41. data/tracks/c/exercises/rna-transcription/test/test_rna_transcription.c +8 -0
  42. data/tracks/c/exercises/robot-simulator/src/example.c +12 -12
  43. data/tracks/c/exercises/robot-simulator/src/robot_simulator.h +11 -11
  44. data/tracks/c/exercises/robot-simulator/test/test_robot_simulator.c +33 -25
  45. data/tracks/c/exercises/roman-numerals/test/test_roman_numerals.c +8 -0
  46. data/tracks/c/exercises/scrabble-score/test/test_scrabble_score.c +8 -0
  47. data/tracks/c/exercises/series/test/test_series.c +8 -0
  48. data/tracks/c/exercises/sieve/test/test_sieve.c +8 -0
  49. data/tracks/c/exercises/space-age/src/example.h +8 -8
  50. data/tracks/c/exercises/space-age/test/test_space_age.c +16 -8
  51. data/tracks/c/exercises/sum-of-multiples/test/test_sum_of_multiples.c +8 -0
  52. data/tracks/c/exercises/triangle/test/test_triangle.c +8 -0
  53. data/tracks/c/exercises/word-count/test/test_word_count.c +8 -0
  54. data/tracks/cfml/config.json +8 -0
  55. data/tracks/cfml/exercises/anagram/.meta/HINTS.md +0 -0
  56. data/tracks/cfml/exercises/anagram/Anagram.cfc +13 -0
  57. data/tracks/cfml/exercises/anagram/AnagramTest.cfc +79 -0
  58. data/tracks/cfml/exercises/anagram/README.md +29 -0
  59. data/tracks/cfml/exercises/anagram/Solution.cfc +42 -0
  60. data/tracks/cfml/exercises/anagram/SolutionTest.cfc +7 -0
  61. data/tracks/cfml/exercises/anagram/TestRunner.cfc +103 -0
  62. data/tracks/cfml/exercises/anagram/box.json +8 -0
  63. data/tracks/cfml/exercises/anagram/index.cfm +37 -0
  64. data/tracks/common-lisp/config.json +5 -5
  65. data/tracks/csharp/exercises/two-bucket/Example.cs +53 -79
  66. data/tracks/csharp/exercises/two-bucket/TwoBucketTest.cs +2 -2
  67. data/tracks/csharp/generators/Exercises/QueenAttack.cs +3 -3
  68. data/tracks/dart/exercises/leap/test/leap_test.dart +1 -1
  69. data/tracks/delphi/exercises/hamming/uHammingTests.pas +2 -2
  70. data/tracks/delphi/exercises/leap/uLeapTests.pas +11 -38
  71. data/tracks/delphi/exercises/nucleotide-count/uNucleotideCountExample.pas +1 -1
  72. data/tracks/delphi/exercises/nucleotide-count/uNucleotideCountTest.pas +31 -55
  73. data/tracks/ecmascript/config.json +31 -0
  74. data/tracks/ecmascript/config/maintainers.json +5 -5
  75. data/tracks/ecmascript/exercises/accumulate/package.json +1 -1
  76. data/tracks/ecmascript/exercises/acronym/package.json +1 -1
  77. data/tracks/ecmascript/exercises/all-your-base/package.json +1 -1
  78. data/tracks/ecmascript/exercises/allergies/package.json +1 -1
  79. data/tracks/ecmascript/exercises/alphametics/package.json +1 -1
  80. data/tracks/ecmascript/exercises/anagram/package.json +1 -1
  81. data/tracks/ecmascript/exercises/atbash-cipher/package.json +1 -1
  82. data/tracks/ecmascript/exercises/beer-song/package.json +1 -1
  83. data/tracks/ecmascript/exercises/binary-search-tree/package.json +1 -1
  84. data/tracks/ecmascript/exercises/binary-search/package.json +1 -1
  85. data/tracks/ecmascript/exercises/binary/package.json +1 -1
  86. data/tracks/ecmascript/exercises/bob/package.json +1 -1
  87. data/tracks/ecmascript/exercises/bracket-push/package.json +1 -1
  88. data/tracks/ecmascript/exercises/circular-buffer/package.json +1 -1
  89. data/tracks/ecmascript/exercises/clock/package.json +1 -1
  90. data/tracks/ecmascript/exercises/collatz-conjecture/README.md +59 -0
  91. data/tracks/ecmascript/exercises/collatz-conjecture/collatz-conjecture.spec.js +31 -0
  92. data/tracks/ecmascript/exercises/collatz-conjecture/example.js +14 -0
  93. data/tracks/ecmascript/exercises/collatz-conjecture/package.json +69 -0
  94. data/tracks/ecmascript/exercises/connect/package.json +1 -1
  95. data/tracks/ecmascript/exercises/crypto-square/package.json +1 -1
  96. data/tracks/ecmascript/exercises/custom-set/package.json +1 -1
  97. data/tracks/ecmascript/exercises/diamond/package.json +1 -1
  98. data/tracks/ecmascript/exercises/difference-of-squares/package.json +1 -1
  99. data/tracks/ecmascript/exercises/diffie-hellman/package.json +1 -1
  100. data/tracks/ecmascript/exercises/etl/package.json +1 -1
  101. data/tracks/ecmascript/exercises/flatten-array/package.json +1 -1
  102. data/tracks/ecmascript/exercises/food-chain/package.json +1 -1
  103. data/tracks/ecmascript/exercises/gigasecond/package.json +1 -1
  104. data/tracks/ecmascript/exercises/grade-school/package.json +1 -1
  105. data/tracks/ecmascript/exercises/grains/package.json +1 -1
  106. data/tracks/ecmascript/exercises/hamming/package.json +1 -1
  107. data/tracks/ecmascript/exercises/hello-world/package.json +1 -1
  108. data/tracks/ecmascript/exercises/hexadecimal/package.json +1 -1
  109. data/tracks/ecmascript/exercises/isogram/package.json +1 -1
  110. data/tracks/ecmascript/exercises/kindergarten-garden/package.json +1 -1
  111. data/tracks/ecmascript/exercises/largest-series-product/package.json +1 -1
  112. data/tracks/ecmascript/exercises/leap/package.json +1 -1
  113. data/tracks/ecmascript/exercises/linked-list/package.json +1 -1
  114. data/tracks/ecmascript/exercises/list-ops/package.json +1 -1
  115. data/tracks/ecmascript/exercises/luhn/package.json +1 -1
  116. data/tracks/ecmascript/exercises/matrix/package.json +1 -1
  117. data/tracks/ecmascript/exercises/meetup/package.json +1 -1
  118. data/tracks/ecmascript/exercises/minesweeper/package.json +1 -1
  119. data/tracks/ecmascript/exercises/nth-prime/package.json +1 -1
  120. data/tracks/ecmascript/exercises/ocr-numbers/package.json +1 -1
  121. data/tracks/ecmascript/exercises/octal/package.json +1 -1
  122. data/tracks/ecmascript/exercises/palindrome-products/package.json +1 -1
  123. data/tracks/ecmascript/exercises/pangram/package.json +1 -1
  124. data/tracks/ecmascript/exercises/pascals-triangle/package.json +1 -1
  125. data/tracks/ecmascript/exercises/perfect-numbers/package.json +1 -1
  126. data/tracks/ecmascript/exercises/phone-number/package.json +1 -1
  127. data/tracks/ecmascript/exercises/pig-latin/package.json +1 -1
  128. data/tracks/ecmascript/exercises/prime-factors/package.json +1 -1
  129. data/tracks/ecmascript/exercises/proverb/package.json +1 -1
  130. data/tracks/ecmascript/exercises/pythagorean-triplet/package.json +1 -1
  131. data/tracks/ecmascript/exercises/queen-attack/package.json +1 -1
  132. data/tracks/ecmascript/exercises/raindrops/package.json +1 -1
  133. data/tracks/ecmascript/exercises/rna-transcription/package.json +1 -1
  134. data/tracks/ecmascript/exercises/robot-name/package.json +1 -1
  135. data/tracks/ecmascript/exercises/robot-simulator/package.json +1 -1
  136. data/tracks/ecmascript/exercises/roman-numerals/package.json +1 -1
  137. data/tracks/ecmascript/exercises/run-length-encoding/package.json +1 -1
  138. data/tracks/ecmascript/exercises/saddle-points/package.json +1 -1
  139. data/tracks/ecmascript/exercises/say/package.json +1 -1
  140. data/tracks/ecmascript/exercises/scrabble-score/package.json +1 -1
  141. data/tracks/ecmascript/exercises/secret-handshake/package.json +1 -1
  142. data/tracks/ecmascript/exercises/series/package.json +1 -1
  143. data/tracks/ecmascript/exercises/sieve/package.json +1 -1
  144. data/tracks/ecmascript/exercises/simple-cipher/package.json +1 -1
  145. data/tracks/ecmascript/exercises/simple-linked-list/package.json +1 -1
  146. data/tracks/ecmascript/exercises/space-age/package.json +1 -1
  147. data/tracks/ecmascript/exercises/strain/package.json +1 -1
  148. data/tracks/ecmascript/exercises/sublist/package.json +1 -1
  149. data/tracks/ecmascript/exercises/sum-of-multiples/package.json +1 -1
  150. data/tracks/ecmascript/exercises/triangle/package.json +1 -1
  151. data/tracks/ecmascript/exercises/trinary/package.json +1 -1
  152. data/tracks/ecmascript/exercises/twelve-days/package.json +1 -1
  153. data/tracks/ecmascript/exercises/two-bucket/package.json +1 -1
  154. data/tracks/ecmascript/exercises/word-count/package.json +1 -1
  155. data/tracks/ecmascript/exercises/word-search/README.md +58 -0
  156. data/tracks/ecmascript/exercises/word-search/example.js +146 -0
  157. data/tracks/ecmascript/exercises/word-search/package.json +69 -0
  158. data/tracks/ecmascript/exercises/word-search/word-search.spec.js +626 -0
  159. data/tracks/ecmascript/exercises/wordy/package.json +1 -1
  160. data/tracks/ecmascript/package.json +1 -1
  161. data/tracks/elixir/config.json +11 -0
  162. data/tracks/elixir/exercises/luhn/example.exs +26 -46
  163. data/tracks/elixir/exercises/luhn/luhn.exs +0 -13
  164. data/tracks/elixir/exercises/luhn/luhn_test.exs +44 -14
  165. data/tracks/elixir/exercises/transpose/README.md +101 -0
  166. data/tracks/elixir/exercises/transpose/example.exs +46 -0
  167. data/tracks/elixir/exercises/transpose/transpose.exs +22 -0
  168. data/tracks/elixir/exercises/transpose/transpose_test.exs +248 -0
  169. data/tracks/fsharp/exercises/grains/Example.fs +10 -2
  170. data/tracks/fsharp/exercises/grains/Grains.fs +2 -4
  171. data/tracks/fsharp/exercises/grains/GrainsTest.fs +52 -25
  172. data/tracks/fsharp/exercises/phone-number/Example.fs +11 -3
  173. data/tracks/fsharp/exercises/phone-number/PhoneNumber.fs +1 -1
  174. data/tracks/fsharp/exercises/phone-number/PhoneNumberTest.fs +32 -21
  175. data/tracks/fsharp/exercises/prime-factors/Example.fs +6 -13
  176. data/tracks/fsharp/exercises/prime-factors/PrimeFactors.fs +1 -1
  177. data/tracks/fsharp/exercises/prime-factors/PrimeFactorsTest.fs +23 -32
  178. data/tracks/fsharp/exercises/rail-fence-cipher/RailFenceCipherTest.fs +22 -13
  179. data/tracks/fsharp/generators/Exercise.fs +3 -4
  180. data/tracks/fsharp/generators/Generators.fs +31 -0
  181. data/tracks/gnu-apl/bin/run-all-tests +5 -2
  182. data/tracks/java/CONTRIBUTING.md +8 -0
  183. data/tracks/java/POLICIES.md +2 -2
  184. data/tracks/java/config.json +26 -4
  185. data/tracks/java/exercises/triangle/.meta/.version +1 -0
  186. data/tracks/java/exercises/triangle/.meta/src/reference/java/Triangle.java +1 -1
  187. data/tracks/java/exercises/triangle/src/test/java/TriangleTest.java +59 -40
  188. data/tracks/javascript/config.json +30 -0
  189. data/tracks/javascript/config/maintainers.json +8 -8
  190. data/tracks/javascript/exercises/change/example.js +6 -22
  191. data/tracks/javascript/exercises/collatz-conjecture/README.md +57 -0
  192. data/tracks/javascript/exercises/collatz-conjecture/collatz-conjecture.spec.js +37 -0
  193. data/tracks/javascript/exercises/collatz-conjecture/example.js +20 -0
  194. data/tracks/javascript/exercises/protein-translation/example.js +30 -31
  195. data/tracks/javascript/exercises/protein-translation/protein-translation.spec.js +60 -60
  196. data/tracks/javascript/exercises/transpose/README.md +89 -0
  197. data/tracks/javascript/exercises/transpose/example.js +17 -0
  198. data/tracks/javascript/exercises/transpose/transpose.spec.js +67 -0
  199. data/tracks/objective-c/config.json +283 -263
  200. data/tracks/objective-c/exercises/grains/GrainsExample.h +6 -0
  201. data/tracks/objective-c/exercises/grains/GrainsExample.m +19 -0
  202. data/tracks/objective-c/exercises/grains/GrainsTest.m +85 -0
  203. data/tracks/objective-c/exercises/nth-prime/NthPrimeExample.h +6 -0
  204. data/tracks/objective-c/exercises/nth-prime/NthPrimeExample.m +39 -0
  205. data/tracks/objective-c/exercises/nth-prime/NthPrimeTest.m +53 -0
  206. data/tracks/python/config.json +42 -11
  207. data/tracks/python/exercises/change/README.md +34 -0
  208. data/tracks/python/exercises/two-bucket/README.md +47 -0
  209. data/tracks/ruby/README.md +4 -1
  210. data/tracks/ruby/lib/generator/command_line.rb +3 -3
  211. data/tracks/ruby/lib/generator/command_line/generator_optparser.rb +3 -3
  212. data/tracks/ruby/test/generator/command_line/generator_optparser_test.rb +4 -4
  213. data/tracks/ruby/test/generator/command_line_test.rb +5 -5
  214. data/tracks/typescript/config.json +15 -0
  215. data/tracks/typescript/exercises/strain/README.md +60 -0
  216. data/tracks/typescript/exercises/strain/package.json +36 -0
  217. data/tracks/typescript/exercises/strain/strain.example.ts +23 -0
  218. data/tracks/typescript/exercises/strain/strain.test.ts +76 -0
  219. data/tracks/typescript/exercises/strain/strain.ts +0 -0
  220. data/tracks/typescript/exercises/strain/tsconfig.json +22 -0
  221. data/tracks/typescript/exercises/strain/tslint.json +127 -0
  222. data/tracks/typescript/exercises/strain/yarn.lock +2305 -0
  223. metadata +46 -3
  224. data/tracks/ecmascript/package-lock.json +0 -2835
@@ -1,6 +1,14 @@
1
1
  #include "vendor/unity.h"
2
2
  #include "../src/leap.h"
3
3
 
4
+ void setUp(void)
5
+ {
6
+ }
7
+
8
+ void tearDown(void)
9
+ {
10
+ }
11
+
4
12
  void test_a_known_leap_year(void)
5
13
  {
6
14
  TEST_ASSERT_TRUE(is_leap_year(1996));
@@ -1,6 +1,14 @@
1
1
  #include "vendor/unity.h"
2
2
  #include "../src/meetup.h"
3
3
 
4
+ void setUp(void)
5
+ {
6
+ }
7
+
8
+ void tearDown(void)
9
+ {
10
+ }
11
+
4
12
  void test_monteenth_of_May_2013(void)
5
13
  {
6
14
  TEST_ASSERT_EQUAL_INT(13, meetup_day_of_month(2013, 5, "teenth", "Monday"));
@@ -1,6 +1,14 @@
1
1
  #include "vendor/unity.h"
2
2
  #include "../src/nth_prime.h"
3
3
 
4
+ void setUp(void)
5
+ {
6
+ }
7
+
8
+ void tearDown(void)
9
+ {
10
+ }
11
+
4
12
  void test_first_prime(void)
5
13
  {
6
14
  TEST_ASSERT_EQUAL_UINT32(2, nth(1));
@@ -3,6 +3,14 @@
3
3
  #include <stdlib.h>
4
4
  #include <string.h>
5
5
 
6
+ void setUp(void)
7
+ {
8
+ }
9
+
10
+ void tearDown(void)
11
+ {
12
+ }
13
+
6
14
  void test_strand_count(const char *dna_strand, const char *expected)
7
15
  {
8
16
  char *actual_count = count(dna_strand);
@@ -1,6 +1,14 @@
1
1
  #include "vendor/unity.h"
2
2
  #include "../src/palindrome_products.h"
3
3
 
4
+ void setUp(void)
5
+ {
6
+ }
7
+
8
+ void tearDown(void)
9
+ {
10
+ }
11
+
4
12
  void test_palindromes_list(void)
5
13
  {
6
14
  product_t product = get_palindrome_product(1, 9);
@@ -1,6 +1,14 @@
1
1
  #include "vendor/unity.h"
2
2
  #include "../src/pangram.h"
3
3
 
4
+ void setUp(void)
5
+ {
6
+ }
7
+
8
+ void tearDown(void)
9
+ {
10
+ }
11
+
4
12
  void test_null(void)
5
13
  {
6
14
  TEST_ASSERT_FALSE(is_pangram(NULL));
@@ -2,6 +2,14 @@
2
2
  #include "../src/pascals_triangle.h"
3
3
  #include "vendor/unity.h"
4
4
 
5
+ void setUp(void)
6
+ {
7
+ }
8
+
9
+ void tearDown(void)
10
+ {
11
+ }
12
+
5
13
  static bool check(size_t count, size_t expected[][count], size_t ** result)
6
14
  {
7
15
  size_t i, j;
@@ -17,15 +17,15 @@ static int aliquot_sum(int n)
17
17
 
18
18
  kind classify_number(int n)
19
19
  {
20
- kind class = error;
20
+ kind class = ERROR;
21
21
  if (n > 0) {
22
22
  int sum = aliquot_sum(n);
23
23
  if (sum > n) {
24
- class = abundant_number;
24
+ class = ABUNDANT_NUMBER;
25
25
  } else if (sum < n) {
26
- class = deficient_number;
26
+ class = DEFICIENT_NUMBER;
27
27
  } else {
28
- class = perfect_number;
28
+ class = PERFECT_NUMBER;
29
29
  }
30
30
  }
31
31
  return class;
@@ -2,10 +2,10 @@
2
2
  #define PERFECT_NUMBERS_H
3
3
 
4
4
  typedef enum {
5
- perfect_number = 1,
6
- abundant_number = 2,
7
- deficient_number = 3,
8
- error = -1
5
+ PERFECT_NUMBER = 1,
6
+ ABUNDANT_NUMBER = 2,
7
+ DEFICIENT_NUMBER = 3,
8
+ ERROR = -1
9
9
  } kind;
10
10
 
11
11
  kind classify_number(int);
@@ -2,10 +2,10 @@
2
2
  #define PERFECT_NUMBERS_H
3
3
 
4
4
  typedef enum {
5
- perfect_number = 1,
6
- abundant_number = 2,
7
- deficient_number = 3,
8
- error = -1
5
+ PERFECT_NUMBER = 1,
6
+ ABUNDANT_NUMBER = 2,
7
+ DEFICIENT_NUMBER = 3,
8
+ ERROR = -1
9
9
  } kind;
10
10
 
11
11
  #endif
@@ -1,86 +1,95 @@
1
1
  #include "vendor/unity.h"
2
2
  #include "../src/perfect_numbers.h"
3
3
 
4
+ void setUp(void)
5
+ {
6
+ }
7
+
8
+ void tearDown(void)
9
+ {
10
+ }
11
+
4
12
  void test_smallest_perfect_number_is_classified_correctly(void)
5
13
  {
6
- TEST_ASSERT_EQUAL(perfect_number, classify_number(6));
14
+ TEST_ASSERT_EQUAL(PERFECT_NUMBER, classify_number(6));
7
15
  }
8
16
 
9
17
  void test_medium_perfect_number_is_classified_correctly(void)
10
18
  {
11
19
  TEST_IGNORE(); // delete this line to run test
12
- TEST_ASSERT_EQUAL(perfect_number, classify_number(28));
20
+ TEST_ASSERT_EQUAL(PERFECT_NUMBER, classify_number(28));
13
21
  }
14
22
 
15
23
  void test_large_perfect_number_is_classified_correctly(void)
16
24
  {
17
25
  TEST_IGNORE();
18
- TEST_ASSERT_EQUAL(perfect_number, classify_number(33550336));
26
+ TEST_ASSERT_EQUAL(PERFECT_NUMBER, classify_number(33550336));
19
27
  }
20
28
 
21
29
  void test_smallest_abundant_number_is_classified_correctly(void)
22
30
  {
23
31
  TEST_IGNORE();
24
- TEST_ASSERT_EQUAL(abundant_number, classify_number(12));
32
+ TEST_ASSERT_EQUAL(ABUNDANT_NUMBER, classify_number(12));
25
33
  }
26
34
 
27
35
  void test_medium_abundant_number_is_classified_correctly(void)
28
36
  {
29
37
  TEST_IGNORE();
30
- TEST_ASSERT_EQUAL(abundant_number, classify_number(30));
38
+ TEST_ASSERT_EQUAL(ABUNDANT_NUMBER, classify_number(30));
31
39
  }
32
40
 
33
41
  void test_large_abundant_number_is_classified_correctly(void)
34
42
  {
35
43
  TEST_IGNORE();
36
- TEST_ASSERT_EQUAL(abundant_number, classify_number(33550335));
44
+ TEST_ASSERT_EQUAL(ABUNDANT_NUMBER, classify_number(33550335));
37
45
  }
38
46
 
39
47
  void test_smallest_prime_deficient_number_is_classified_correctly(void)
40
48
  {
41
49
  TEST_IGNORE();
42
- TEST_ASSERT_EQUAL(deficient_number, classify_number(2));
50
+ TEST_ASSERT_EQUAL(DEFICIENT_NUMBER, classify_number(2));
43
51
  }
44
52
 
45
53
  void test_smallest_non_prime_deficient_number_is_classified_correctly(void)
46
54
  {
47
55
  TEST_IGNORE();
48
- TEST_ASSERT_EQUAL(deficient_number, classify_number(4));
56
+ TEST_ASSERT_EQUAL(DEFICIENT_NUMBER, classify_number(4));
49
57
  }
50
58
 
51
59
  void test_medium_deficient_number_is_classified_correctly(void)
52
60
  {
53
61
  TEST_IGNORE();
54
- TEST_ASSERT_EQUAL(deficient_number, classify_number(32));
62
+ TEST_ASSERT_EQUAL(DEFICIENT_NUMBER, classify_number(32));
55
63
  }
56
64
 
57
65
  void test_large_deficient_number_is_classified_correctly(void)
58
66
  {
59
67
  TEST_IGNORE();
60
- TEST_ASSERT_EQUAL(deficient_number, classify_number(33550337));
68
+ TEST_ASSERT_EQUAL(DEFICIENT_NUMBER, classify_number(33550337));
61
69
  }
62
70
 
63
71
  void test_edge_case_is_classified_correctly(void)
64
72
  {
65
73
  TEST_IGNORE();
66
- TEST_ASSERT_EQUAL(deficient_number, classify_number(1));
74
+ TEST_ASSERT_EQUAL(DEFICIENT_NUMBER, classify_number(1));
67
75
  }
68
76
 
69
77
  void test_zero_is_rejected(void)
70
78
  {
71
79
  TEST_IGNORE();
72
- TEST_ASSERT_EQUAL(error, classify_number(0));
80
+ TEST_ASSERT_EQUAL(ERROR, classify_number(0));
73
81
  }
74
82
 
75
83
  void test_negative_integer_is_rejected(void)
76
84
  {
77
85
  TEST_IGNORE();
78
- TEST_ASSERT_EQUAL(error, classify_number(-1));
86
+ TEST_ASSERT_EQUAL(ERROR, classify_number(-1));
79
87
  }
80
88
 
81
89
  int main(void)
82
90
  {
83
91
  UnityBegin("test/test_perfect_numbers.c");
92
+
84
93
  RUN_TEST(test_smallest_perfect_number_is_classified_correctly);
85
94
  RUN_TEST(test_medium_perfect_number_is_classified_correctly);
86
95
  RUN_TEST(test_large_perfect_number_is_classified_correctly);
@@ -94,6 +103,7 @@ int main(void)
94
103
  RUN_TEST(test_edge_case_is_classified_correctly);
95
104
  RUN_TEST(test_zero_is_rejected);
96
105
  RUN_TEST(test_negative_integer_is_rejected);
106
+
97
107
  UnityEnd();
98
108
  return 0;
99
109
  }
@@ -2,6 +2,14 @@
2
2
  #include "../src/phone_number.h"
3
3
  #include <stdlib.h>
4
4
 
5
+ void setUp(void)
6
+ {
7
+ }
8
+
9
+ void tearDown(void)
10
+ {
11
+ }
12
+
5
13
  void test_phone_number_clean(const char *input, const char *expected)
6
14
  {
7
15
  char *result = phone_number_clean(input);
@@ -3,7 +3,11 @@
3
3
 
4
4
  #define BUFFER_LENGTH 100
5
5
 
6
- void resetTest(void)
6
+ void setUp(void)
7
+ {
8
+ }
9
+
10
+ void tearDown(void)
7
11
  {
8
12
  }
9
13
 
@@ -2,9 +2,9 @@
2
2
  #include "react.h"
3
3
 
4
4
  enum cell_kind {
5
- kind_input,
6
- kind_compute1,
7
- kind_compute2,
5
+ KIND_INPUT,
6
+ KIND_COMPUTE_1,
7
+ KIND_COMPUTE_2,
8
8
  };
9
9
 
10
10
  struct child {
@@ -111,7 +111,7 @@ struct cell *create_input_cell(struct reactor *r, int initial_value)
111
111
  free(c);
112
112
  return NULL;
113
113
  }
114
- c->kind = kind_input;
114
+ c->kind = KIND_INPUT;
115
115
  c->value = initial_value;
116
116
  return c;
117
117
  }
@@ -128,7 +128,7 @@ struct cell *create_compute1_cell(struct reactor *r, struct cell *input,
128
128
  free(c);
129
129
  return NULL;
130
130
  }
131
- c->kind = kind_compute1;
131
+ c->kind = KIND_COMPUTE_1;
132
132
  c->input1 = input;
133
133
  c->compute1 = compute;
134
134
  c->value = compute(get_cell_value(input));
@@ -153,7 +153,7 @@ struct cell *create_compute2_cell(struct reactor *r, struct cell *input1,
153
153
  free(c);
154
154
  return NULL;
155
155
  }
156
- c->kind = kind_compute2;
156
+ c->kind = KIND_COMPUTE_2;
157
157
  c->input1 = input1;
158
158
  c->input2 = input2;
159
159
  c->compute2 = compute;
@@ -173,10 +173,10 @@ static void propagate(struct cell *c)
173
173
  {
174
174
  int new_value;
175
175
  switch (c->kind) {
176
- case kind_compute1:
176
+ case KIND_COMPUTE_1:
177
177
  new_value = c->compute1(get_cell_value(c->input1));
178
178
  break;
179
- case kind_compute2:
179
+ case KIND_COMPUTE_2:
180
180
  new_value =
181
181
  c->compute2(get_cell_value(c->input1), get_cell_value(c->input2));
182
182
  break;
@@ -3,6 +3,14 @@
3
3
  #include "vendor/unity.h"
4
4
  #include "../src/react.h"
5
5
 
6
+ void setUp(void)
7
+ {
8
+ }
9
+
10
+ void tearDown(void)
11
+ {
12
+ }
13
+
6
14
  void test_input_cells_have_value(void)
7
15
  {
8
16
  struct reactor *r = create_reactor();
@@ -2,6 +2,14 @@
2
2
  #include "../src/rna_transcription.h"
3
3
  #include <stdlib.h>
4
4
 
5
+ void setUp(void)
6
+ {
7
+ }
8
+
9
+ void tearDown(void)
10
+ {
11
+ }
12
+
5
13
  void test_transcription(const char *dna, const char *expected)
6
14
  {
7
15
  char *rna = to_rna(dna);
@@ -4,45 +4,45 @@
4
4
  robot_grid_status_t robot_init(void)
5
5
  {
6
6
  return (robot_init_with_position
7
- (default_bearing, default_x_coordinate, default_y_coordinate));
7
+ (DEFAULT_BEARING, DEFAULT_X_COORDINATE, DEFAULT_Y_COORDINATE));
8
8
  }
9
9
 
10
10
  robot_grid_status_t robot_init_with_position(int bearing, int x, int y)
11
11
  {
12
12
  robot_grid_status_t robot = { bearing, {x, y} };
13
13
 
14
- if ((bearing < heading_north) || (bearing >= heading_max)) {
15
- robot.bearing = default_bearing;
14
+ if ((bearing < HEADING_NORTH) || (bearing >= HEADING_MAX)) {
15
+ robot.bearing = DEFAULT_BEARING;
16
16
  }
17
17
  return robot;
18
18
  }
19
19
 
20
20
  void robot_turn_right(robot_grid_status_t * robot)
21
21
  {
22
- robot->bearing = (robot->bearing + 1) % heading_max;
22
+ robot->bearing = (robot->bearing + 1) % HEADING_MAX;
23
23
  }
24
24
 
25
25
  void robot_turn_left(robot_grid_status_t * robot)
26
26
  {
27
- robot->bearing = ((robot->bearing - 1) + heading_max) % heading_max;
27
+ robot->bearing = ((robot->bearing - 1) + HEADING_MAX) % HEADING_MAX;
28
28
  }
29
29
 
30
30
  void robot_advance(robot_grid_status_t * robot)
31
31
  {
32
32
  switch (robot->bearing) {
33
- case heading_north:
33
+ case HEADING_NORTH:
34
34
  robot->grid.y_position++;
35
35
  break;
36
36
 
37
- case heading_east:
37
+ case HEADING_EAST:
38
38
  robot->grid.x_position++;
39
39
  break;
40
40
 
41
- case heading_south:
41
+ case HEADING_SOUTH:
42
42
  robot->grid.y_position--;
43
43
  break;
44
44
 
45
- case heading_west:
45
+ case HEADING_WEST:
46
46
  robot->grid.x_position--;
47
47
  break;
48
48
 
@@ -55,15 +55,15 @@ void robot_simulator(robot_grid_status_t * robot, const char *commands)
55
55
  {
56
56
  for (unsigned long index = 0; index < strlen(commands); index++) {
57
57
  switch (commands[index]) {
58
- case command_left:
58
+ case COMMAND_LEFT:
59
59
  robot_turn_left(robot);
60
60
  break;
61
61
 
62
- case command_right:
62
+ case COMMAND_RIGHT:
63
63
  robot_turn_right(robot);
64
64
  break;
65
65
 
66
- case command_advance:
66
+ case COMMAND_ADVANCE:
67
67
  robot_advance(robot);
68
68
  break;
69
69