trackler 2.0.6.17 → 2.0.6.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (188) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/c/exercises/leap/test/test_leap.c +1 -1
  4. data/tracks/coldfusion/{leap → exercises/leap}/example.cfc +0 -0
  5. data/tracks/coldfusion/{leap → exercises/leap}/leap.cfc +0 -0
  6. data/tracks/coldfusion/{leap → exercises/leap}/leap_tests.cfc +0 -0
  7. data/tracks/cpp/CMakeLists.txt +4 -3
  8. data/tracks/cpp/{anagram → exercises/anagram}/CMakeLists.txt +0 -0
  9. data/tracks/cpp/{anagram → exercises/anagram}/anagram_test.cpp +0 -0
  10. data/tracks/cpp/{anagram → exercises/anagram}/example.cpp +0 -0
  11. data/tracks/cpp/{anagram → exercises/anagram}/example.h +0 -0
  12. data/tracks/cpp/{beer-song → exercises/beer-song}/CMakeLists.txt +0 -0
  13. data/tracks/cpp/{beer-song → exercises/beer-song}/beer_song_test.cpp +0 -0
  14. data/tracks/cpp/{beer-song → exercises/beer-song}/example.cpp +0 -0
  15. data/tracks/cpp/{beer-song → exercises/beer-song}/example.h +0 -0
  16. data/tracks/cpp/{binary → exercises/binary}/CMakeLists.txt +0 -0
  17. data/tracks/cpp/{binary → exercises/binary}/binary_test.cpp +0 -0
  18. data/tracks/cpp/{binary → exercises/binary}/example.cpp +0 -0
  19. data/tracks/cpp/{binary → exercises/binary}/example.h +0 -0
  20. data/tracks/cpp/{bob → exercises/bob}/CMakeLists.txt +0 -0
  21. data/tracks/cpp/{bob → exercises/bob}/bob_test.cpp +0 -0
  22. data/tracks/cpp/{bob → exercises/bob}/example.cpp +0 -0
  23. data/tracks/cpp/{bob → exercises/bob}/example.h +0 -0
  24. data/tracks/cpp/{clock → exercises/clock}/CMakeLists.txt +0 -0
  25. data/tracks/cpp/{clock → exercises/clock}/clock_test.cpp +0 -0
  26. data/tracks/cpp/{clock → exercises/clock}/example.cpp +0 -0
  27. data/tracks/cpp/{clock → exercises/clock}/example.h +0 -0
  28. data/tracks/cpp/{crypto-square → exercises/crypto-square}/CMakeLists.txt +0 -0
  29. data/tracks/cpp/{crypto-square → exercises/crypto-square}/crypto_square_test.cpp +0 -0
  30. data/tracks/cpp/{crypto-square → exercises/crypto-square}/example.cpp +0 -0
  31. data/tracks/cpp/{crypto-square → exercises/crypto-square}/example.h +0 -0
  32. data/tracks/cpp/{difference-of-squares → exercises/difference-of-squares}/CMakeLists.txt +0 -0
  33. data/tracks/cpp/{difference-of-squares → exercises/difference-of-squares}/difference_of_squares_test.cpp +0 -0
  34. data/tracks/cpp/{difference-of-squares → exercises/difference-of-squares}/example.cpp +0 -0
  35. data/tracks/cpp/{difference-of-squares → exercises/difference-of-squares}/example.h +0 -0
  36. data/tracks/cpp/{etl → exercises/etl}/CMakeLists.txt +0 -0
  37. data/tracks/cpp/{etl → exercises/etl}/etl_test.cpp +0 -0
  38. data/tracks/cpp/{etl → exercises/etl}/example.cpp +0 -0
  39. data/tracks/cpp/{etl → exercises/etl}/example.h +0 -0
  40. data/tracks/cpp/{etl → exercises/etl}/require_equal_containers.h +0 -0
  41. data/tracks/cpp/{food-chain → exercises/food-chain}/CMakeLists.txt +0 -0
  42. data/tracks/cpp/{food-chain → exercises/food-chain}/example.cpp +0 -0
  43. data/tracks/cpp/{food-chain → exercises/food-chain}/example.h +0 -0
  44. data/tracks/cpp/{food-chain → exercises/food-chain}/food_chain_test.cpp +0 -0
  45. data/tracks/cpp/{gigasecond → exercises/gigasecond}/CMakeLists.txt +0 -0
  46. data/tracks/cpp/{gigasecond → exercises/gigasecond}/example.cpp +0 -0
  47. data/tracks/cpp/{gigasecond → exercises/gigasecond}/example.h +0 -0
  48. data/tracks/cpp/{gigasecond → exercises/gigasecond}/gigasecond_test.cpp +0 -0
  49. data/tracks/cpp/{grade-school → exercises/grade-school}/CMakeLists.txt +0 -0
  50. data/tracks/cpp/{grade-school → exercises/grade-school}/example.cpp +0 -0
  51. data/tracks/cpp/{grade-school → exercises/grade-school}/example.h +0 -0
  52. data/tracks/cpp/{grade-school → exercises/grade-school}/grade_school_test.cpp +0 -0
  53. data/tracks/cpp/{grade-school → exercises/grade-school}/require_equal_containers.h +0 -0
  54. data/tracks/cpp/{grains → exercises/grains}/CMakeLists.txt +0 -0
  55. data/tracks/cpp/{grains → exercises/grains}/example.cpp +0 -0
  56. data/tracks/cpp/{grains → exercises/grains}/example.h +0 -0
  57. data/tracks/cpp/{grains → exercises/grains}/grains_test.cpp +0 -0
  58. data/tracks/cpp/{hamming → exercises/hamming}/CMakeLists.txt +0 -0
  59. data/tracks/cpp/{hamming → exercises/hamming}/example.cpp +0 -0
  60. data/tracks/cpp/{hamming → exercises/hamming}/example.h +0 -0
  61. data/tracks/cpp/{hamming → exercises/hamming}/hamming_test.cpp +0 -0
  62. data/tracks/cpp/{hexadecimal → exercises/hexadecimal}/CMakeLists.txt +0 -0
  63. data/tracks/cpp/{hexadecimal → exercises/hexadecimal}/example.cpp +0 -0
  64. data/tracks/cpp/{hexadecimal → exercises/hexadecimal}/example.h +0 -0
  65. data/tracks/cpp/{hexadecimal → exercises/hexadecimal}/hexadecimal_test.cpp +0 -0
  66. data/tracks/cpp/{leap → exercises/leap}/CMakeLists.txt +0 -0
  67. data/tracks/cpp/{leap → exercises/leap}/example.h +0 -0
  68. data/tracks/cpp/{leap → exercises/leap}/leap_test.cpp +0 -0
  69. data/tracks/cpp/{meetup → exercises/meetup}/CMakeLists.txt +0 -0
  70. data/tracks/cpp/{meetup → exercises/meetup}/example.h +0 -0
  71. data/tracks/cpp/{meetup → exercises/meetup}/meetup_test.cpp +0 -0
  72. data/tracks/cpp/{nth-prime → exercises/nth-prime}/CMakeLists.txt +0 -0
  73. data/tracks/cpp/{nth-prime → exercises/nth-prime}/example.cpp +0 -0
  74. data/tracks/cpp/{nth-prime → exercises/nth-prime}/example.h +0 -0
  75. data/tracks/cpp/{nth-prime → exercises/nth-prime}/nth_prime_test.cpp +0 -0
  76. data/tracks/cpp/{nucleotide-count → exercises/nucleotide-count}/CMakeLists.txt +0 -0
  77. data/tracks/cpp/{nucleotide-count → exercises/nucleotide-count}/example.cpp +0 -0
  78. data/tracks/cpp/{nucleotide-count → exercises/nucleotide-count}/example.h +0 -0
  79. data/tracks/cpp/{nucleotide-count → exercises/nucleotide-count}/nucleotide_count_test.cpp +0 -0
  80. data/tracks/cpp/{nucleotide-count → exercises/nucleotide-count}/require_equal_containers.h +0 -0
  81. data/tracks/cpp/{phone-number → exercises/phone-number}/CMakeLists.txt +0 -0
  82. data/tracks/cpp/{phone-number → exercises/phone-number}/example.cpp +0 -0
  83. data/tracks/cpp/{phone-number → exercises/phone-number}/example.h +0 -0
  84. data/tracks/cpp/{phone-number → exercises/phone-number}/phone_number_test.cpp +0 -0
  85. data/tracks/cpp/{prime-factors → exercises/prime-factors}/CMakeLists.txt +0 -0
  86. data/tracks/cpp/{prime-factors → exercises/prime-factors}/example.cpp +0 -0
  87. data/tracks/cpp/{prime-factors → exercises/prime-factors}/example.h +0 -0
  88. data/tracks/cpp/{prime-factors → exercises/prime-factors}/prime_factors_test.cpp +0 -0
  89. data/tracks/cpp/{queen-attack → exercises/queen-attack}/CMakeLists.txt +0 -0
  90. data/tracks/cpp/{queen-attack → exercises/queen-attack}/example.cpp +0 -0
  91. data/tracks/cpp/{queen-attack → exercises/queen-attack}/example.h +0 -0
  92. data/tracks/cpp/{queen-attack → exercises/queen-attack}/queen_attack_test.cpp +0 -0
  93. data/tracks/cpp/{queen-attack → exercises/queen-attack}/require_equal_containers.h +0 -0
  94. data/tracks/cpp/{raindrops → exercises/raindrops}/CMakeLists.txt +0 -0
  95. data/tracks/cpp/{raindrops → exercises/raindrops}/example.cpp +0 -0
  96. data/tracks/cpp/{raindrops → exercises/raindrops}/example.h +0 -0
  97. data/tracks/cpp/{raindrops → exercises/raindrops}/raindrops_test.cpp +0 -0
  98. data/tracks/cpp/{rna-transcription → exercises/rna-transcription}/CMakeLists.txt +0 -0
  99. data/tracks/cpp/{rna-transcription → exercises/rna-transcription}/example.cpp +0 -0
  100. data/tracks/cpp/{rna-transcription → exercises/rna-transcription}/example.h +0 -0
  101. data/tracks/cpp/{rna-transcription → exercises/rna-transcription}/rna_transcription_test.cpp +0 -0
  102. data/tracks/cpp/{robot-name → exercises/robot-name}/CMakeLists.txt +0 -0
  103. data/tracks/cpp/{robot-name → exercises/robot-name}/example.cpp +0 -0
  104. data/tracks/cpp/{robot-name → exercises/robot-name}/example.h +0 -0
  105. data/tracks/cpp/{robot-name → exercises/robot-name}/robot_name_test.cpp +0 -0
  106. data/tracks/cpp/{roman-numerals → exercises/roman-numerals}/CMakeLists.txt +0 -0
  107. data/tracks/cpp/{roman-numerals → exercises/roman-numerals}/example.cpp +0 -0
  108. data/tracks/cpp/{roman-numerals → exercises/roman-numerals}/example.h +0 -0
  109. data/tracks/cpp/{roman-numerals → exercises/roman-numerals}/roman_numerals_test.cpp +0 -0
  110. data/tracks/cpp/{say → exercises/say}/CMakeLists.txt +0 -0
  111. data/tracks/cpp/{say → exercises/say}/example.cpp +0 -0
  112. data/tracks/cpp/{say → exercises/say}/example.h +0 -0
  113. data/tracks/cpp/{say → exercises/say}/say_test.cpp +0 -0
  114. data/tracks/cpp/{scrabble-score → exercises/scrabble-score}/CMakeLists.txt +0 -0
  115. data/tracks/cpp/{scrabble-score → exercises/scrabble-score}/example.cpp +0 -0
  116. data/tracks/cpp/{scrabble-score → exercises/scrabble-score}/example.h +0 -0
  117. data/tracks/cpp/{scrabble-score → exercises/scrabble-score}/scrabble_score_test.cpp +0 -0
  118. data/tracks/cpp/{series → exercises/series}/CMakeLists.txt +0 -0
  119. data/tracks/cpp/{series → exercises/series}/example.cpp +0 -0
  120. data/tracks/cpp/{series → exercises/series}/example.h +0 -0
  121. data/tracks/cpp/{series → exercises/series}/require_equal_containers.h +0 -0
  122. data/tracks/cpp/{series → exercises/series}/series_test.cpp +0 -0
  123. data/tracks/cpp/{sieve → exercises/sieve}/CMakeLists.txt +0 -0
  124. data/tracks/cpp/{sieve → exercises/sieve}/example.cpp +0 -0
  125. data/tracks/cpp/{sieve → exercises/sieve}/example.h +0 -0
  126. data/tracks/cpp/{sieve → exercises/sieve}/sieve_test.cpp +0 -0
  127. data/tracks/cpp/{space-age → exercises/space-age}/CMakeLists.txt +0 -0
  128. data/tracks/cpp/{space-age → exercises/space-age}/example.cpp +0 -0
  129. data/tracks/cpp/{space-age → exercises/space-age}/example.h +0 -0
  130. data/tracks/cpp/{space-age → exercises/space-age}/space_age_test.cpp +0 -0
  131. data/tracks/cpp/{sum-of-multiples → exercises/sum-of-multiples}/CMakeLists.txt +0 -0
  132. data/tracks/cpp/{sum-of-multiples → exercises/sum-of-multiples}/example.cpp +0 -0
  133. data/tracks/cpp/{sum-of-multiples → exercises/sum-of-multiples}/example.h +0 -0
  134. data/tracks/cpp/{sum-of-multiples → exercises/sum-of-multiples}/sum_of_multiples_test.cpp +0 -0
  135. data/tracks/cpp/{triangle → exercises/triangle}/CMakeLists.txt +0 -0
  136. data/tracks/cpp/{triangle → exercises/triangle}/example.cpp +0 -0
  137. data/tracks/cpp/{triangle → exercises/triangle}/example.h +0 -0
  138. data/tracks/cpp/{triangle → exercises/triangle}/triangle_test.cpp +0 -0
  139. data/tracks/cpp/{trinary → exercises/trinary}/CMakeLists.txt +0 -0
  140. data/tracks/cpp/{trinary → exercises/trinary}/example.cpp +0 -0
  141. data/tracks/cpp/{trinary → exercises/trinary}/example.h +0 -0
  142. data/tracks/cpp/{trinary → exercises/trinary}/trinary_test.cpp +0 -0
  143. data/tracks/cpp/{word-count → exercises/word-count}/CMakeLists.txt +0 -0
  144. data/tracks/cpp/{word-count → exercises/word-count}/example.cpp +0 -0
  145. data/tracks/cpp/{word-count → exercises/word-count}/example.h +0 -0
  146. data/tracks/cpp/{word-count → exercises/word-count}/require_equal_containers.h +0 -0
  147. data/tracks/cpp/{word-count → exercises/word-count}/word_count_test.cpp +0 -0
  148. data/tracks/csharp/exercises/error-handling/ErrorHandlingTest.cs +3 -3
  149. data/tracks/fsharp/exercises/linked-list/Example.fs +4 -4
  150. data/tracks/fsharp/exercises/linked-list/LinkedListTest.fs +35 -19
  151. data/tracks/groovy/docs/ABOUT.md +5 -10
  152. data/tracks/groovy/docs/INSTALLATION.md +7 -10
  153. data/tracks/groovy/docs/LEARNING.md +19 -8
  154. data/tracks/groovy/docs/RESOURCES.md +9 -23
  155. data/tracks/groovy/docs/TESTS.md +14 -51
  156. data/tracks/groovy/exercises/nth-prime/Example.groovy +3 -6
  157. data/tracks/groovy/exercises/nth-prime/PrimeSpec.groovy +27 -0
  158. data/tracks/haxe/{bob → exercises/bob}/.munit +0 -0
  159. data/tracks/haxe/{bob → exercises/bob}/Makefile +0 -0
  160. data/tracks/haxe/{bob → exercises/bob}/src/example.hx +0 -0
  161. data/tracks/haxe/{bob → exercises/bob}/test.hxml +0 -0
  162. data/tracks/haxe/{bob → exercises/bob}/test/BobTest.hx +0 -0
  163. data/tracks/haxe/{bob → exercises/bob}/test/TestMain.hx +0 -0
  164. data/tracks/haxe/{bob → exercises/bob}/test/TestSuite.hx +0 -0
  165. data/tracks/haxe/{hello-world → exercises/hello-world}/.munit +0 -0
  166. data/tracks/haxe/{hello-world → exercises/hello-world}/Makefile +0 -0
  167. data/tracks/haxe/{hello-world → exercises/hello-world}/src/example.hx +0 -0
  168. data/tracks/haxe/{hello-world → exercises/hello-world}/test.hxml +0 -0
  169. data/tracks/haxe/{hello-world → exercises/hello-world}/test/HelloWorldTest.hx +0 -0
  170. data/tracks/haxe/{hello-world → exercises/hello-world}/test/TestMain.hx +0 -0
  171. data/tracks/haxe/{hello-world → exercises/hello-world}/test/TestSuite.hx +0 -0
  172. data/tracks/java/exercises/luhn/src/example/java/LuhnValidator.java +43 -0
  173. data/tracks/java/exercises/luhn/src/test/java/LuhnValidatorTest.java +44 -0
  174. data/tracks/java/exercises/phone-number/src/example/java/PhoneNumber.java +12 -5
  175. data/tracks/java/exercises/phone-number/src/test/java/PhoneNumberTest.java +10 -12
  176. data/tracks/julia/config.json +2 -1
  177. data/tracks/julia/runtests.jl +8 -6
  178. data/tracks/kotlin/exercises/rna-transcription/src/main/kotlin/RnaTranscription.kt +0 -8
  179. data/tracks/kotlin/exercises/rna-transcription/src/test/kotlin/RnaTranscriptionTest.kt +9 -0
  180. data/tracks/scala/config.json +3 -0
  181. data/tracks/scala/exercises/meetup/build.sbt +2 -2
  182. data/tracks/scala/exercises/meetup/example.scala +22 -33
  183. data/tracks/scala/exercises/meetup/src/test/scala/MeetupTest.scala +358 -119
  184. data/tracks/swift/exercises/hello-world/Sources/{deleteme.swift → HelloWorld.swift} +0 -0
  185. metadata +163 -163
  186. data/tracks/groovy/exercises/nth-prime/NthPrimeTest.groovy +0 -29
  187. data/tracks/java/exercises/luhn/src/example/java/Luhn.java +0 -90
  188. data/tracks/java/exercises/luhn/src/test/java/LuhnTest.java +0 -95
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trackler
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.6.17
4
+ version: 2.0.6.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katrina Owen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-22 00:00:00.000000000 Z
11
+ date: 2017-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -1030,10 +1030,10 @@ files:
1030
1030
  - tracks/coldfusion/SETUP.md
1031
1031
  - tracks/coldfusion/bin/fetch-configlet
1032
1032
  - tracks/coldfusion/config.json
1033
+ - tracks/coldfusion/exercises/leap/example.cfc
1034
+ - tracks/coldfusion/exercises/leap/leap.cfc
1035
+ - tracks/coldfusion/exercises/leap/leap_tests.cfc
1033
1036
  - tracks/coldfusion/img/icon.png
1034
- - tracks/coldfusion/leap/example.cfc
1035
- - tracks/coldfusion/leap/leap.cfc
1036
- - tracks/coldfusion/leap/leap_tests.cfc
1037
1037
  - tracks/cpp/.git
1038
1038
  - tracks/cpp/.gitignore
1039
1039
  - tracks/cpp/.travis.yml
@@ -1041,154 +1041,154 @@ files:
1041
1041
  - tracks/cpp/LICENSE
1042
1042
  - tracks/cpp/README.md
1043
1043
  - tracks/cpp/SETUP.md
1044
- - tracks/cpp/anagram/CMakeLists.txt
1045
- - tracks/cpp/anagram/anagram_test.cpp
1046
- - tracks/cpp/anagram/example.cpp
1047
- - tracks/cpp/anagram/example.h
1048
- - tracks/cpp/beer-song/CMakeLists.txt
1049
- - tracks/cpp/beer-song/beer_song_test.cpp
1050
- - tracks/cpp/beer-song/example.cpp
1051
- - tracks/cpp/beer-song/example.h
1052
1044
  - tracks/cpp/bin/fetch-configlet
1053
- - tracks/cpp/binary/CMakeLists.txt
1054
- - tracks/cpp/binary/binary_test.cpp
1055
- - tracks/cpp/binary/example.cpp
1056
- - tracks/cpp/binary/example.h
1057
- - tracks/cpp/bob/CMakeLists.txt
1058
- - tracks/cpp/bob/bob_test.cpp
1059
- - tracks/cpp/bob/example.cpp
1060
- - tracks/cpp/bob/example.h
1061
- - tracks/cpp/clock/CMakeLists.txt
1062
- - tracks/cpp/clock/clock_test.cpp
1063
- - tracks/cpp/clock/example.cpp
1064
- - tracks/cpp/clock/example.h
1065
1045
  - tracks/cpp/config.json
1066
- - tracks/cpp/crypto-square/CMakeLists.txt
1067
- - tracks/cpp/crypto-square/crypto_square_test.cpp
1068
- - tracks/cpp/crypto-square/example.cpp
1069
- - tracks/cpp/crypto-square/example.h
1070
- - tracks/cpp/difference-of-squares/CMakeLists.txt
1071
- - tracks/cpp/difference-of-squares/difference_of_squares_test.cpp
1072
- - tracks/cpp/difference-of-squares/example.cpp
1073
- - tracks/cpp/difference-of-squares/example.h
1074
1046
  - tracks/cpp/docs/ABOUT.md
1075
1047
  - tracks/cpp/docs/INSTALLATION.md
1076
1048
  - tracks/cpp/docs/LEARNING.md
1077
1049
  - tracks/cpp/docs/RESOURCES.md
1078
1050
  - tracks/cpp/docs/TESTS.md
1079
- - tracks/cpp/etl/CMakeLists.txt
1080
- - tracks/cpp/etl/etl_test.cpp
1081
- - tracks/cpp/etl/example.cpp
1082
- - tracks/cpp/etl/example.h
1083
- - tracks/cpp/etl/require_equal_containers.h
1084
- - tracks/cpp/food-chain/CMakeLists.txt
1085
- - tracks/cpp/food-chain/example.cpp
1086
- - tracks/cpp/food-chain/example.h
1087
- - tracks/cpp/food-chain/food_chain_test.cpp
1088
- - tracks/cpp/gigasecond/CMakeLists.txt
1089
- - tracks/cpp/gigasecond/example.cpp
1090
- - tracks/cpp/gigasecond/example.h
1091
- - tracks/cpp/gigasecond/gigasecond_test.cpp
1092
- - tracks/cpp/grade-school/CMakeLists.txt
1093
- - tracks/cpp/grade-school/example.cpp
1094
- - tracks/cpp/grade-school/example.h
1095
- - tracks/cpp/grade-school/grade_school_test.cpp
1096
- - tracks/cpp/grade-school/require_equal_containers.h
1097
- - tracks/cpp/grains/CMakeLists.txt
1098
- - tracks/cpp/grains/example.cpp
1099
- - tracks/cpp/grains/example.h
1100
- - tracks/cpp/grains/grains_test.cpp
1101
- - tracks/cpp/hamming/CMakeLists.txt
1102
- - tracks/cpp/hamming/example.cpp
1103
- - tracks/cpp/hamming/example.h
1104
- - tracks/cpp/hamming/hamming_test.cpp
1105
- - tracks/cpp/hexadecimal/CMakeLists.txt
1106
- - tracks/cpp/hexadecimal/example.cpp
1107
- - tracks/cpp/hexadecimal/example.h
1108
- - tracks/cpp/hexadecimal/hexadecimal_test.cpp
1051
+ - tracks/cpp/exercises/anagram/CMakeLists.txt
1052
+ - tracks/cpp/exercises/anagram/anagram_test.cpp
1053
+ - tracks/cpp/exercises/anagram/example.cpp
1054
+ - tracks/cpp/exercises/anagram/example.h
1055
+ - tracks/cpp/exercises/beer-song/CMakeLists.txt
1056
+ - tracks/cpp/exercises/beer-song/beer_song_test.cpp
1057
+ - tracks/cpp/exercises/beer-song/example.cpp
1058
+ - tracks/cpp/exercises/beer-song/example.h
1059
+ - tracks/cpp/exercises/binary/CMakeLists.txt
1060
+ - tracks/cpp/exercises/binary/binary_test.cpp
1061
+ - tracks/cpp/exercises/binary/example.cpp
1062
+ - tracks/cpp/exercises/binary/example.h
1063
+ - tracks/cpp/exercises/bob/CMakeLists.txt
1064
+ - tracks/cpp/exercises/bob/bob_test.cpp
1065
+ - tracks/cpp/exercises/bob/example.cpp
1066
+ - tracks/cpp/exercises/bob/example.h
1067
+ - tracks/cpp/exercises/clock/CMakeLists.txt
1068
+ - tracks/cpp/exercises/clock/clock_test.cpp
1069
+ - tracks/cpp/exercises/clock/example.cpp
1070
+ - tracks/cpp/exercises/clock/example.h
1071
+ - tracks/cpp/exercises/crypto-square/CMakeLists.txt
1072
+ - tracks/cpp/exercises/crypto-square/crypto_square_test.cpp
1073
+ - tracks/cpp/exercises/crypto-square/example.cpp
1074
+ - tracks/cpp/exercises/crypto-square/example.h
1075
+ - tracks/cpp/exercises/difference-of-squares/CMakeLists.txt
1076
+ - tracks/cpp/exercises/difference-of-squares/difference_of_squares_test.cpp
1077
+ - tracks/cpp/exercises/difference-of-squares/example.cpp
1078
+ - tracks/cpp/exercises/difference-of-squares/example.h
1079
+ - tracks/cpp/exercises/etl/CMakeLists.txt
1080
+ - tracks/cpp/exercises/etl/etl_test.cpp
1081
+ - tracks/cpp/exercises/etl/example.cpp
1082
+ - tracks/cpp/exercises/etl/example.h
1083
+ - tracks/cpp/exercises/etl/require_equal_containers.h
1084
+ - tracks/cpp/exercises/food-chain/CMakeLists.txt
1085
+ - tracks/cpp/exercises/food-chain/example.cpp
1086
+ - tracks/cpp/exercises/food-chain/example.h
1087
+ - tracks/cpp/exercises/food-chain/food_chain_test.cpp
1088
+ - tracks/cpp/exercises/gigasecond/CMakeLists.txt
1089
+ - tracks/cpp/exercises/gigasecond/example.cpp
1090
+ - tracks/cpp/exercises/gigasecond/example.h
1091
+ - tracks/cpp/exercises/gigasecond/gigasecond_test.cpp
1092
+ - tracks/cpp/exercises/grade-school/CMakeLists.txt
1093
+ - tracks/cpp/exercises/grade-school/example.cpp
1094
+ - tracks/cpp/exercises/grade-school/example.h
1095
+ - tracks/cpp/exercises/grade-school/grade_school_test.cpp
1096
+ - tracks/cpp/exercises/grade-school/require_equal_containers.h
1097
+ - tracks/cpp/exercises/grains/CMakeLists.txt
1098
+ - tracks/cpp/exercises/grains/example.cpp
1099
+ - tracks/cpp/exercises/grains/example.h
1100
+ - tracks/cpp/exercises/grains/grains_test.cpp
1101
+ - tracks/cpp/exercises/hamming/CMakeLists.txt
1102
+ - tracks/cpp/exercises/hamming/example.cpp
1103
+ - tracks/cpp/exercises/hamming/example.h
1104
+ - tracks/cpp/exercises/hamming/hamming_test.cpp
1105
+ - tracks/cpp/exercises/hexadecimal/CMakeLists.txt
1106
+ - tracks/cpp/exercises/hexadecimal/example.cpp
1107
+ - tracks/cpp/exercises/hexadecimal/example.h
1108
+ - tracks/cpp/exercises/hexadecimal/hexadecimal_test.cpp
1109
+ - tracks/cpp/exercises/leap/CMakeLists.txt
1110
+ - tracks/cpp/exercises/leap/example.h
1111
+ - tracks/cpp/exercises/leap/leap_test.cpp
1112
+ - tracks/cpp/exercises/meetup/CMakeLists.txt
1113
+ - tracks/cpp/exercises/meetup/example.h
1114
+ - tracks/cpp/exercises/meetup/meetup_test.cpp
1115
+ - tracks/cpp/exercises/nth-prime/CMakeLists.txt
1116
+ - tracks/cpp/exercises/nth-prime/example.cpp
1117
+ - tracks/cpp/exercises/nth-prime/example.h
1118
+ - tracks/cpp/exercises/nth-prime/nth_prime_test.cpp
1119
+ - tracks/cpp/exercises/nucleotide-count/CMakeLists.txt
1120
+ - tracks/cpp/exercises/nucleotide-count/example.cpp
1121
+ - tracks/cpp/exercises/nucleotide-count/example.h
1122
+ - tracks/cpp/exercises/nucleotide-count/nucleotide_count_test.cpp
1123
+ - tracks/cpp/exercises/nucleotide-count/require_equal_containers.h
1124
+ - tracks/cpp/exercises/phone-number/CMakeLists.txt
1125
+ - tracks/cpp/exercises/phone-number/example.cpp
1126
+ - tracks/cpp/exercises/phone-number/example.h
1127
+ - tracks/cpp/exercises/phone-number/phone_number_test.cpp
1128
+ - tracks/cpp/exercises/prime-factors/CMakeLists.txt
1129
+ - tracks/cpp/exercises/prime-factors/example.cpp
1130
+ - tracks/cpp/exercises/prime-factors/example.h
1131
+ - tracks/cpp/exercises/prime-factors/prime_factors_test.cpp
1132
+ - tracks/cpp/exercises/queen-attack/CMakeLists.txt
1133
+ - tracks/cpp/exercises/queen-attack/example.cpp
1134
+ - tracks/cpp/exercises/queen-attack/example.h
1135
+ - tracks/cpp/exercises/queen-attack/queen_attack_test.cpp
1136
+ - tracks/cpp/exercises/queen-attack/require_equal_containers.h
1137
+ - tracks/cpp/exercises/raindrops/CMakeLists.txt
1138
+ - tracks/cpp/exercises/raindrops/example.cpp
1139
+ - tracks/cpp/exercises/raindrops/example.h
1140
+ - tracks/cpp/exercises/raindrops/raindrops_test.cpp
1141
+ - tracks/cpp/exercises/rna-transcription/CMakeLists.txt
1142
+ - tracks/cpp/exercises/rna-transcription/example.cpp
1143
+ - tracks/cpp/exercises/rna-transcription/example.h
1144
+ - tracks/cpp/exercises/rna-transcription/rna_transcription_test.cpp
1145
+ - tracks/cpp/exercises/robot-name/CMakeLists.txt
1146
+ - tracks/cpp/exercises/robot-name/example.cpp
1147
+ - tracks/cpp/exercises/robot-name/example.h
1148
+ - tracks/cpp/exercises/robot-name/robot_name_test.cpp
1149
+ - tracks/cpp/exercises/roman-numerals/CMakeLists.txt
1150
+ - tracks/cpp/exercises/roman-numerals/example.cpp
1151
+ - tracks/cpp/exercises/roman-numerals/example.h
1152
+ - tracks/cpp/exercises/roman-numerals/roman_numerals_test.cpp
1153
+ - tracks/cpp/exercises/say/CMakeLists.txt
1154
+ - tracks/cpp/exercises/say/example.cpp
1155
+ - tracks/cpp/exercises/say/example.h
1156
+ - tracks/cpp/exercises/say/say_test.cpp
1157
+ - tracks/cpp/exercises/scrabble-score/CMakeLists.txt
1158
+ - tracks/cpp/exercises/scrabble-score/example.cpp
1159
+ - tracks/cpp/exercises/scrabble-score/example.h
1160
+ - tracks/cpp/exercises/scrabble-score/scrabble_score_test.cpp
1161
+ - tracks/cpp/exercises/series/CMakeLists.txt
1162
+ - tracks/cpp/exercises/series/example.cpp
1163
+ - tracks/cpp/exercises/series/example.h
1164
+ - tracks/cpp/exercises/series/require_equal_containers.h
1165
+ - tracks/cpp/exercises/series/series_test.cpp
1166
+ - tracks/cpp/exercises/sieve/CMakeLists.txt
1167
+ - tracks/cpp/exercises/sieve/example.cpp
1168
+ - tracks/cpp/exercises/sieve/example.h
1169
+ - tracks/cpp/exercises/sieve/sieve_test.cpp
1170
+ - tracks/cpp/exercises/space-age/CMakeLists.txt
1171
+ - tracks/cpp/exercises/space-age/example.cpp
1172
+ - tracks/cpp/exercises/space-age/example.h
1173
+ - tracks/cpp/exercises/space-age/space_age_test.cpp
1174
+ - tracks/cpp/exercises/sum-of-multiples/CMakeLists.txt
1175
+ - tracks/cpp/exercises/sum-of-multiples/example.cpp
1176
+ - tracks/cpp/exercises/sum-of-multiples/example.h
1177
+ - tracks/cpp/exercises/sum-of-multiples/sum_of_multiples_test.cpp
1178
+ - tracks/cpp/exercises/triangle/CMakeLists.txt
1179
+ - tracks/cpp/exercises/triangle/example.cpp
1180
+ - tracks/cpp/exercises/triangle/example.h
1181
+ - tracks/cpp/exercises/triangle/triangle_test.cpp
1182
+ - tracks/cpp/exercises/trinary/CMakeLists.txt
1183
+ - tracks/cpp/exercises/trinary/example.cpp
1184
+ - tracks/cpp/exercises/trinary/example.h
1185
+ - tracks/cpp/exercises/trinary/trinary_test.cpp
1186
+ - tracks/cpp/exercises/word-count/CMakeLists.txt
1187
+ - tracks/cpp/exercises/word-count/example.cpp
1188
+ - tracks/cpp/exercises/word-count/example.h
1189
+ - tracks/cpp/exercises/word-count/require_equal_containers.h
1190
+ - tracks/cpp/exercises/word-count/word_count_test.cpp
1109
1191
  - tracks/cpp/img/icon.png
1110
- - tracks/cpp/leap/CMakeLists.txt
1111
- - tracks/cpp/leap/example.h
1112
- - tracks/cpp/leap/leap_test.cpp
1113
- - tracks/cpp/meetup/CMakeLists.txt
1114
- - tracks/cpp/meetup/example.h
1115
- - tracks/cpp/meetup/meetup_test.cpp
1116
- - tracks/cpp/nth-prime/CMakeLists.txt
1117
- - tracks/cpp/nth-prime/example.cpp
1118
- - tracks/cpp/nth-prime/example.h
1119
- - tracks/cpp/nth-prime/nth_prime_test.cpp
1120
- - tracks/cpp/nucleotide-count/CMakeLists.txt
1121
- - tracks/cpp/nucleotide-count/example.cpp
1122
- - tracks/cpp/nucleotide-count/example.h
1123
- - tracks/cpp/nucleotide-count/nucleotide_count_test.cpp
1124
- - tracks/cpp/nucleotide-count/require_equal_containers.h
1125
- - tracks/cpp/phone-number/CMakeLists.txt
1126
- - tracks/cpp/phone-number/example.cpp
1127
- - tracks/cpp/phone-number/example.h
1128
- - tracks/cpp/phone-number/phone_number_test.cpp
1129
- - tracks/cpp/prime-factors/CMakeLists.txt
1130
- - tracks/cpp/prime-factors/example.cpp
1131
- - tracks/cpp/prime-factors/example.h
1132
- - tracks/cpp/prime-factors/prime_factors_test.cpp
1133
- - tracks/cpp/queen-attack/CMakeLists.txt
1134
- - tracks/cpp/queen-attack/example.cpp
1135
- - tracks/cpp/queen-attack/example.h
1136
- - tracks/cpp/queen-attack/queen_attack_test.cpp
1137
- - tracks/cpp/queen-attack/require_equal_containers.h
1138
- - tracks/cpp/raindrops/CMakeLists.txt
1139
- - tracks/cpp/raindrops/example.cpp
1140
- - tracks/cpp/raindrops/example.h
1141
- - tracks/cpp/raindrops/raindrops_test.cpp
1142
- - tracks/cpp/rna-transcription/CMakeLists.txt
1143
- - tracks/cpp/rna-transcription/example.cpp
1144
- - tracks/cpp/rna-transcription/example.h
1145
- - tracks/cpp/rna-transcription/rna_transcription_test.cpp
1146
- - tracks/cpp/robot-name/CMakeLists.txt
1147
- - tracks/cpp/robot-name/example.cpp
1148
- - tracks/cpp/robot-name/example.h
1149
- - tracks/cpp/robot-name/robot_name_test.cpp
1150
- - tracks/cpp/roman-numerals/CMakeLists.txt
1151
- - tracks/cpp/roman-numerals/example.cpp
1152
- - tracks/cpp/roman-numerals/example.h
1153
- - tracks/cpp/roman-numerals/roman_numerals_test.cpp
1154
- - tracks/cpp/say/CMakeLists.txt
1155
- - tracks/cpp/say/example.cpp
1156
- - tracks/cpp/say/example.h
1157
- - tracks/cpp/say/say_test.cpp
1158
- - tracks/cpp/scrabble-score/CMakeLists.txt
1159
- - tracks/cpp/scrabble-score/example.cpp
1160
- - tracks/cpp/scrabble-score/example.h
1161
- - tracks/cpp/scrabble-score/scrabble_score_test.cpp
1162
- - tracks/cpp/series/CMakeLists.txt
1163
- - tracks/cpp/series/example.cpp
1164
- - tracks/cpp/series/example.h
1165
- - tracks/cpp/series/require_equal_containers.h
1166
- - tracks/cpp/series/series_test.cpp
1167
- - tracks/cpp/sieve/CMakeLists.txt
1168
- - tracks/cpp/sieve/example.cpp
1169
- - tracks/cpp/sieve/example.h
1170
- - tracks/cpp/sieve/sieve_test.cpp
1171
- - tracks/cpp/space-age/CMakeLists.txt
1172
- - tracks/cpp/space-age/example.cpp
1173
- - tracks/cpp/space-age/example.h
1174
- - tracks/cpp/space-age/space_age_test.cpp
1175
- - tracks/cpp/sum-of-multiples/CMakeLists.txt
1176
- - tracks/cpp/sum-of-multiples/example.cpp
1177
- - tracks/cpp/sum-of-multiples/example.h
1178
- - tracks/cpp/sum-of-multiples/sum_of_multiples_test.cpp
1179
- - tracks/cpp/triangle/CMakeLists.txt
1180
- - tracks/cpp/triangle/example.cpp
1181
- - tracks/cpp/triangle/example.h
1182
- - tracks/cpp/triangle/triangle_test.cpp
1183
- - tracks/cpp/trinary/CMakeLists.txt
1184
- - tracks/cpp/trinary/example.cpp
1185
- - tracks/cpp/trinary/example.h
1186
- - tracks/cpp/trinary/trinary_test.cpp
1187
- - tracks/cpp/word-count/CMakeLists.txt
1188
- - tracks/cpp/word-count/example.cpp
1189
- - tracks/cpp/word-count/example.h
1190
- - tracks/cpp/word-count/require_equal_containers.h
1191
- - tracks/cpp/word-count/word_count_test.cpp
1192
1192
  - tracks/crystal/.git
1193
1193
  - tracks/crystal/.gitignore
1194
1194
  - tracks/crystal/.travis.yml
@@ -2976,7 +2976,7 @@ files:
2976
2976
  - tracks/groovy/exercises/leap/Example.groovy
2977
2977
  - tracks/groovy/exercises/leap/LeapTest.groovy
2978
2978
  - tracks/groovy/exercises/nth-prime/Example.groovy
2979
- - tracks/groovy/exercises/nth-prime/NthPrimeTest.groovy
2979
+ - tracks/groovy/exercises/nth-prime/PrimeSpec.groovy
2980
2980
  - tracks/groovy/exercises/phone-number/Example.groovy
2981
2981
  - tracks/groovy/exercises/phone-number/PhoneNumberSpec.groovy
2982
2982
  - tracks/groovy/exercises/raindrops/Example.groovy
@@ -3522,21 +3522,21 @@ files:
3522
3522
  - tracks/haxe/README.md
3523
3523
  - tracks/haxe/SETUP.md
3524
3524
  - tracks/haxe/bin/fetch-configlet
3525
- - tracks/haxe/bob/.munit
3526
- - tracks/haxe/bob/Makefile
3527
- - tracks/haxe/bob/src/example.hx
3528
- - tracks/haxe/bob/test.hxml
3529
- - tracks/haxe/bob/test/BobTest.hx
3530
- - tracks/haxe/bob/test/TestMain.hx
3531
- - tracks/haxe/bob/test/TestSuite.hx
3532
3525
  - tracks/haxe/config.json
3533
- - tracks/haxe/hello-world/.munit
3534
- - tracks/haxe/hello-world/Makefile
3535
- - tracks/haxe/hello-world/src/example.hx
3536
- - tracks/haxe/hello-world/test.hxml
3537
- - tracks/haxe/hello-world/test/HelloWorldTest.hx
3538
- - tracks/haxe/hello-world/test/TestMain.hx
3539
- - tracks/haxe/hello-world/test/TestSuite.hx
3526
+ - tracks/haxe/exercises/bob/.munit
3527
+ - tracks/haxe/exercises/bob/Makefile
3528
+ - tracks/haxe/exercises/bob/src/example.hx
3529
+ - tracks/haxe/exercises/bob/test.hxml
3530
+ - tracks/haxe/exercises/bob/test/BobTest.hx
3531
+ - tracks/haxe/exercises/bob/test/TestMain.hx
3532
+ - tracks/haxe/exercises/bob/test/TestSuite.hx
3533
+ - tracks/haxe/exercises/hello-world/.munit
3534
+ - tracks/haxe/exercises/hello-world/Makefile
3535
+ - tracks/haxe/exercises/hello-world/src/example.hx
3536
+ - tracks/haxe/exercises/hello-world/test.hxml
3537
+ - tracks/haxe/exercises/hello-world/test/HelloWorldTest.hx
3538
+ - tracks/haxe/exercises/hello-world/test/TestMain.hx
3539
+ - tracks/haxe/exercises/hello-world/test/TestSuite.hx
3540
3540
  - tracks/haxe/img/icon.png
3541
3541
  - tracks/idris/.git
3542
3542
  - tracks/idris/.gitignore
@@ -3678,9 +3678,9 @@ files:
3678
3678
  - tracks/java/exercises/linked-list/src/main/java/.keep
3679
3679
  - tracks/java/exercises/linked-list/src/test/java/DequeTest.java
3680
3680
  - tracks/java/exercises/luhn/build.gradle
3681
- - tracks/java/exercises/luhn/src/example/java/Luhn.java
3681
+ - tracks/java/exercises/luhn/src/example/java/LuhnValidator.java
3682
3682
  - tracks/java/exercises/luhn/src/main/java/.keep
3683
- - tracks/java/exercises/luhn/src/test/java/LuhnTest.java
3683
+ - tracks/java/exercises/luhn/src/test/java/LuhnValidatorTest.java
3684
3684
  - tracks/java/exercises/matrix/build.gradle
3685
3685
  - tracks/java/exercises/matrix/src/example/java/Matrix.java
3686
3686
  - tracks/java/exercises/matrix/src/main/java/.keep
@@ -7228,8 +7228,8 @@ files:
7228
7228
  - tracks/swift/exercises/hamming/Tests/LinuxMain.swift
7229
7229
  - tracks/swift/exercises/hello-world/.gitignore
7230
7230
  - tracks/swift/exercises/hello-world/Package.swift
7231
+ - tracks/swift/exercises/hello-world/Sources/HelloWorld.swift
7231
7232
  - tracks/swift/exercises/hello-world/Sources/HelloWorldExample.swift
7232
- - tracks/swift/exercises/hello-world/Sources/deleteme.swift
7233
7233
  - tracks/swift/exercises/hello-world/Tests/HelloWorldTests/HelloWorldTests.swift
7234
7234
  - tracks/swift/exercises/hello-world/Tests/LinuxMain.swift
7235
7235
  - tracks/swift/exercises/hexadecimal/.gitignore
@@ -1,29 +0,0 @@
1
- import org.junit.Test
2
- import static org.junit.Assert.assertEquals
3
-
4
- class NthPrimeTest {
5
- @Test
6
- void testFirst() {
7
- assertEquals 2, new Prime().nth(1)
8
- }
9
-
10
- @Test
11
- void testSecond() {
12
- assertEquals 3, new Prime().nth(2)
13
- }
14
-
15
- @Test
16
- void testSixth() {
17
- assertEquals 13, new Prime().nth(6)
18
- }
19
-
20
- @Test
21
- void testBigPrime() {
22
- assertEquals 104743, new Prime().nth(10001)
23
- }
24
-
25
- @Test(expected=ArithmeticException)
26
- void testLessThan1 () {
27
- new Prime().nth(0)
28
- }
29
- }
@@ -1,90 +0,0 @@
1
- import java.util.stream.IntStream;
2
-
3
- public class Luhn {
4
-
5
- private long number;
6
- private long checkDigit;
7
- private int[] addends;
8
- private int checkSum;
9
- private boolean isValid;
10
-
11
- public Luhn(long number) {
12
- this.number = number;
13
- this.checkDigit = number % 10;
14
- this.addends = generateAddends();
15
- this.checkSum = IntStream.of(addends).sum();
16
- this.isValid = checkSum % 10 == 0;
17
- }
18
-
19
- public long getCheckDigit() {
20
- return checkDigit;
21
- }
22
-
23
- public int[] getAddends() {
24
- return addends;
25
- }
26
-
27
- public int getCheckSum() {
28
- return checkSum;
29
- }
30
-
31
- public boolean isValid() {
32
- return isValid;
33
- }
34
-
35
- private int[] generateAddends() {
36
- int[] reversedIntArray = splitToReversedIntArray(number);
37
-
38
- for (int index = 1; index < reversedIntArray.length; index++) {
39
- if (index % 2 != 0) {
40
- reversedIntArray[index] = convertDigitForAddend(reversedIntArray[index]);
41
- }
42
- }
43
-
44
- return reverseIntArray(reversedIntArray);
45
- }
46
-
47
- private static int[] splitToReversedIntArray(long value) {
48
- int[] ints = new StringBuilder(Long.toString(value))
49
- .reverse()
50
- .toString()
51
- .chars()
52
- .map(x -> Character.getNumericValue(x))
53
- .toArray();
54
-
55
- return ints;
56
- }
57
-
58
- private static int convertDigitForAddend(int value) {
59
- int doubled = value * 2;
60
-
61
- return doubled < 10 ? doubled : doubled - 9;
62
- }
63
-
64
- public static long create(long number) {
65
- long zeroCheckDigitNumber = number * 10;
66
- Luhn luhn = new Luhn(zeroCheckDigitNumber);
67
-
68
- if (luhn.isValid()) {
69
- return zeroCheckDigitNumber;
70
- }
71
-
72
- return zeroCheckDigitNumber + createCheckDigit(luhn.getCheckSum());
73
- }
74
-
75
- private static int createCheckDigit(int value) {
76
- int nearestTen = (int) (Math.ceil(value / 10.0) * 10);
77
-
78
- return nearestTen - value;
79
- }
80
-
81
- private static int[] reverseIntArray(int[] array) {
82
- int[] reversed = new int[array.length];
83
-
84
- for (int index = 0; index < array.length; index++) {
85
- reversed[index] = array[array.length - 1 - index];
86
- }
87
-
88
- return reversed;
89
- }
90
- }