trackler 2.2.1.109 → 2.2.1.110

Sign up to get free protection for your applications and to get access to all the features.
Files changed (277) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/c/config.json +2 -0
  4. data/tracks/clojure/exercises/armstrong-numbers/test/armstrong_numbers_test.clj +1 -1
  5. data/tracks/elixir/.formatter.exs +3 -0
  6. data/tracks/elixir/exercises/accumulate/accumulate_test.exs +8 -8
  7. data/tracks/elixir/exercises/acronym/acronym_test.exs +2 -2
  8. data/tracks/elixir/exercises/acronym/example.exs +3 -4
  9. data/tracks/elixir/exercises/all-your-base/all-your-base-test.exs +2 -2
  10. data/tracks/elixir/exercises/all-your-base/example.exs +14 -7
  11. data/tracks/elixir/exercises/allergies/allergies.exs +2 -4
  12. data/tracks/elixir/exercises/allergies/allergies_test.exs +17 -11
  13. data/tracks/elixir/exercises/anagram/anagram.exs +1 -2
  14. data/tracks/elixir/exercises/anagram/anagram_test.exs +13 -13
  15. data/tracks/elixir/exercises/anagram/example.exs +2 -1
  16. data/tracks/elixir/exercises/atbash-cipher/atbash_cipher.exs +2 -2
  17. data/tracks/elixir/exercises/atbash-cipher/atbash_cipher_test.exs +2 -2
  18. data/tracks/elixir/exercises/bank-account/bank_account_test.exs +10 -5
  19. data/tracks/elixir/exercises/beer-song/beer_song.exs +2 -2
  20. data/tracks/elixir/exercises/beer-song/beer_song_test.exs +225 -225
  21. data/tracks/elixir/exercises/beer-song/example.exs +5 -3
  22. data/tracks/elixir/exercises/binary-search-tree/binary_search_tree_test.exs +2 -2
  23. data/tracks/elixir/exercises/binary-search-tree/example.exs +1 -1
  24. data/tracks/elixir/exercises/binary-search/binary_search.exs +0 -1
  25. data/tracks/elixir/exercises/binary-search/binary_search_test.exs +2 -2
  26. data/tracks/elixir/exercises/binary-search/example.exs +3 -1
  27. data/tracks/elixir/exercises/binary/binary.exs +1 -1
  28. data/tracks/elixir/exercises/binary/binary_test.exs +2 -2
  29. data/tracks/elixir/exercises/binary/example.exs +2 -2
  30. data/tracks/elixir/exercises/bob/bob.exs +1 -2
  31. data/tracks/elixir/exercises/bob/bob_test.exs +2 -2
  32. data/tracks/elixir/exercises/bowling/bowling.exs +2 -3
  33. data/tracks/elixir/exercises/bowling/bowling_test.exs +54 -275
  34. data/tracks/elixir/exercises/bowling/example.exs +24 -10
  35. data/tracks/elixir/exercises/bracket-push/bracket_push.exs +1 -2
  36. data/tracks/elixir/exercises/bracket-push/bracket_push_test.exs +5 -3
  37. data/tracks/elixir/exercises/bracket-push/example.exs +8 -3
  38. data/tracks/elixir/exercises/change/change.exs +1 -2
  39. data/tracks/elixir/exercises/change/change_test.exs +2 -2
  40. data/tracks/elixir/exercises/change/example.exs +5 -1
  41. data/tracks/elixir/exercises/clock/clock_test.exs +8 -8
  42. data/tracks/elixir/exercises/clock/example.exs +5 -3
  43. data/tracks/elixir/exercises/collatz-conjecture/collatz_conjecture.exs +0 -1
  44. data/tracks/elixir/exercises/collatz-conjecture/collatz_conjecture_test.exs +3 -3
  45. data/tracks/elixir/exercises/collatz-conjecture/example.exs +1 -1
  46. data/tracks/elixir/exercises/connect/connect.exs +1 -2
  47. data/tracks/elixir/exercises/connect/connect_test.exs +40 -30
  48. data/tracks/elixir/exercises/connect/example.exs +12 -10
  49. data/tracks/elixir/exercises/crypto-square/crypto_square.exs +1 -2
  50. data/tracks/elixir/exercises/crypto-square/crypto_square_test.exs +2 -2
  51. data/tracks/elixir/exercises/crypto-square/example.exs +6 -5
  52. data/tracks/elixir/exercises/custom-set/custom_set.exs +1 -1
  53. data/tracks/elixir/exercises/custom-set/custom_set_test.exs +2 -2
  54. data/tracks/elixir/exercises/custom-set/example.exs +5 -4
  55. data/tracks/elixir/exercises/diamond/diamond.exs +1 -2
  56. data/tracks/elixir/exercises/diamond/diamond_test.exs +20 -18
  57. data/tracks/elixir/exercises/diamond/example.exs +10 -10
  58. data/tracks/elixir/exercises/difference-of-squares/difference_of_squares.exs +1 -5
  59. data/tracks/elixir/exercises/difference-of-squares/difference_of_squares_test.exs +5 -6
  60. data/tracks/elixir/exercises/difference-of-squares/example.exs +3 -4
  61. data/tracks/elixir/exercises/diffie-hellman/diffie_hellman.exs +7 -3
  62. data/tracks/elixir/exercises/diffie-hellman/diffie_hellman_test.exs +43 -23
  63. data/tracks/elixir/exercises/diffie-hellman/example.exs +10 -6
  64. data/tracks/elixir/exercises/dominoes/dominoes.exs +0 -1
  65. data/tracks/elixir/exercises/dominoes/dominoes_test.exs +16 -6
  66. data/tracks/elixir/exercises/dominoes/example.exs +9 -5
  67. data/tracks/elixir/exercises/dot-dsl/dot.exs +0 -1
  68. data/tracks/elixir/exercises/dot-dsl/dot_dsl_test.exs +107 -58
  69. data/tracks/elixir/exercises/dot-dsl/example.exs +18 -10
  70. data/tracks/elixir/exercises/etl/etl.exs +0 -1
  71. data/tracks/elixir/exercises/etl/etl_test.exs +34 -13
  72. data/tracks/elixir/exercises/etl/example.exs +6 -6
  73. data/tracks/elixir/exercises/flatten-array/flatten_array.exs +0 -1
  74. data/tracks/elixir/exercises/flatten-array/flatten_array_test.exs +8 -8
  75. data/tracks/elixir/exercises/forth/example.exs +5 -5
  76. data/tracks/elixir/exercises/forth/forth.exs +6 -9
  77. data/tracks/elixir/exercises/forth/forth_test.exs +107 -64
  78. data/tracks/elixir/exercises/gigasecond/example.exs +1 -1
  79. data/tracks/elixir/exercises/gigasecond/gigasecond.exs +2 -2
  80. data/tracks/elixir/exercises/gigasecond/gigasecond_test.exs +2 -2
  81. data/tracks/elixir/exercises/grade-school/example.exs +3 -3
  82. data/tracks/elixir/exercises/grade-school/grade_school_test.exs +26 -22
  83. data/tracks/elixir/exercises/grade-school/school.exs +3 -6
  84. data/tracks/elixir/exercises/grains/example.exs +10 -3
  85. data/tracks/elixir/exercises/grains/grains.exs +0 -2
  86. data/tracks/elixir/exercises/grains/grains_test.exs +16 -14
  87. data/tracks/elixir/exercises/grep/example.exs +22 -18
  88. data/tracks/elixir/exercises/grep/grep.exs +1 -2
  89. data/tracks/elixir/exercises/grep/grep_test.exs +108 -112
  90. data/tracks/elixir/exercises/hamming/example.exs +3 -2
  91. data/tracks/elixir/exercises/hamming/hamming_test.exs +7 -4
  92. data/tracks/elixir/exercises/hello-world/example.exs +1 -1
  93. data/tracks/elixir/exercises/hello-world/hello_world.exs +1 -1
  94. data/tracks/elixir/exercises/hello-world/hello_world_test.exs +2 -2
  95. data/tracks/elixir/exercises/hexadecimal/example.exs +8 -7
  96. data/tracks/elixir/exercises/hexadecimal/hexadecimal.exs +0 -1
  97. data/tracks/elixir/exercises/hexadecimal/hexadecimal_test.exs +3 -3
  98. data/tracks/elixir/exercises/isbn-verifier/example.exs +1 -1
  99. data/tracks/elixir/exercises/isbn-verifier/isbn_verifier.exs +1 -2
  100. data/tracks/elixir/exercises/isbn-verifier/isbn_verifier_test.exs +2 -2
  101. data/tracks/elixir/exercises/isogram/example.exs +5 -5
  102. data/tracks/elixir/exercises/isogram/isogram.exs +1 -3
  103. data/tracks/elixir/exercises/isogram/isogram_test.exs +2 -3
  104. data/tracks/elixir/exercises/kindergarten-garden/example.exs +15 -3
  105. data/tracks/elixir/exercises/kindergarten-garden/garden_test.exs +17 -4
  106. data/tracks/elixir/exercises/largest-series-product/example.exs +10 -9
  107. data/tracks/elixir/exercises/largest-series-product/largest_series_product.exs +1 -3
  108. data/tracks/elixir/exercises/largest-series-product/largest_series_product_test.exs +6 -4
  109. data/tracks/elixir/exercises/leap/example.exs +2 -2
  110. data/tracks/elixir/exercises/leap/leap.exs +0 -1
  111. data/tracks/elixir/exercises/leap/leap_test.exs +2 -2
  112. data/tracks/elixir/exercises/list-ops/example.exs +10 -9
  113. data/tracks/elixir/exercises/list-ops/list_ops.exs +1 -8
  114. data/tracks/elixir/exercises/list-ops/list_ops_test.exs +22 -25
  115. data/tracks/elixir/exercises/luhn/example.exs +16 -17
  116. data/tracks/elixir/exercises/luhn/luhn.exs +0 -2
  117. data/tracks/elixir/exercises/luhn/luhn_test.exs +2 -2
  118. data/tracks/elixir/exercises/markdown/example.exs +40 -14
  119. data/tracks/elixir/exercises/markdown/markdown.exs +8 -4
  120. data/tracks/elixir/exercises/markdown/markdown_test.exs +6 -3
  121. data/tracks/elixir/exercises/matrix/example.exs +6 -6
  122. data/tracks/elixir/exercises/matrix/matrix.exs +0 -1
  123. data/tracks/elixir/exercises/matrix/matrix_test.exs +11 -11
  124. data/tracks/elixir/exercises/meetup/example.exs +20 -13
  125. data/tracks/elixir/exercises/meetup/meetup.exs +8 -4
  126. data/tracks/elixir/exercises/meetup/meetup_test.exs +2 -2
  127. data/tracks/elixir/exercises/minesweeper/minesweeper.exs +1 -3
  128. data/tracks/elixir/exercises/minesweeper/minesweeper_test.exs +7 -21
  129. data/tracks/elixir/exercises/nth-prime/example.exs +7 -7
  130. data/tracks/elixir/exercises/nth-prime/nth_prime.exs +0 -1
  131. data/tracks/elixir/exercises/nth-prime/nth_prime_test.exs +3 -3
  132. data/tracks/elixir/exercises/nucleotide-count/example.exs +4 -3
  133. data/tracks/elixir/exercises/nucleotide-count/nucleotide_count.exs +0 -3
  134. data/tracks/elixir/exercises/nucleotide-count/nucleotide_count_test.exs +2 -2
  135. data/tracks/elixir/exercises/ocr-numbers/example.exs +3 -3
  136. data/tracks/elixir/exercises/ocr-numbers/ocr_numbers.exs +1 -2
  137. data/tracks/elixir/exercises/ocr-numbers/ocr_numbers_test.exs +54 -70
  138. data/tracks/elixir/exercises/palindrome-products/example.exs +3 -6
  139. data/tracks/elixir/exercises/palindrome-products/palindrome_products.exs +0 -1
  140. data/tracks/elixir/exercises/palindrome-products/palindrome_products_test.exs +8 -8
  141. data/tracks/elixir/exercises/pangram/pangram.exs +1 -1
  142. data/tracks/elixir/exercises/pangram/pangram_test.exs +5 -3
  143. data/tracks/elixir/exercises/parallel-letter-frequency/example.exs +7 -5
  144. data/tracks/elixir/exercises/parallel-letter-frequency/frequency.exs +1 -2
  145. data/tracks/elixir/exercises/parallel-letter-frequency/parallel_letter_frequency_test.exs +3 -4
  146. data/tracks/elixir/exercises/pascals-triangle/example.exs +2 -1
  147. data/tracks/elixir/exercises/pascals-triangle/pascals_triangle_test.exs +26 -8
  148. data/tracks/elixir/exercises/perfect-numbers/example.exs +8 -6
  149. data/tracks/elixir/exercises/perfect-numbers/perfect_numbers.exs +1 -2
  150. data/tracks/elixir/exercises/perfect-numbers/perfect_numbers_test.exs +18 -17
  151. data/tracks/elixir/exercises/phone-number/example.exs +19 -11
  152. data/tracks/elixir/exercises/phone-number/phone_number.exs +3 -3
  153. data/tracks/elixir/exercises/phone-number/phone_number_test.exs +2 -2
  154. data/tracks/elixir/exercises/pig-latin/pig_latin.exs +0 -1
  155. data/tracks/elixir/exercises/pig-latin/pig_latin_test.exs +3 -3
  156. data/tracks/elixir/exercises/poker/example.exs +104 -41
  157. data/tracks/elixir/exercises/poker/poker.exs +0 -1
  158. data/tracks/elixir/exercises/poker/poker_test.exs +7 -5
  159. data/tracks/elixir/exercises/prime-factors/example.exs +4 -8
  160. data/tracks/elixir/exercises/prime-factors/prime_factors.exs +0 -1
  161. data/tracks/elixir/exercises/prime-factors/prime_factors_test.exs +5 -5
  162. data/tracks/elixir/exercises/protein-translation/example.exs +14 -12
  163. data/tracks/elixir/exercises/protein-translation/protein_translation.exs +2 -3
  164. data/tracks/elixir/exercises/protein-translation/protein_translation_test.exs +26 -26
  165. data/tracks/elixir/exercises/pythagorean-triplet/example.exs +5 -4
  166. data/tracks/elixir/exercises/pythagorean-triplet/pythagorean_triplet.exs +0 -5
  167. data/tracks/elixir/exercises/pythagorean-triplet/pythagorean_triplet_test.exs +3 -3
  168. data/tracks/elixir/exercises/queen-attack/example.exs +9 -7
  169. data/tracks/elixir/exercises/queen-attack/queen_attack.exs +1 -4
  170. data/tracks/elixir/exercises/rail-fence-cipher/example.exs +18 -15
  171. data/tracks/elixir/exercises/rail-fence-cipher/rail_fence_cipher.exs +2 -4
  172. data/tracks/elixir/exercises/rail-fence-cipher/rail_fence_cipher_test.exs +2 -2
  173. data/tracks/elixir/exercises/raindrops/example.exs +3 -2
  174. data/tracks/elixir/exercises/raindrops/raindrops.exs +1 -2
  175. data/tracks/elixir/exercises/raindrops/raindrops_test.exs +2 -2
  176. data/tracks/elixir/exercises/rna-transcription/example.exs +1 -1
  177. data/tracks/elixir/exercises/rna-transcription/rna_transcription.exs +0 -1
  178. data/tracks/elixir/exercises/rna-transcription/rna_transcription_test.exs +2 -2
  179. data/tracks/elixir/exercises/robot-simulator/example.exs +33 -19
  180. data/tracks/elixir/exercises/robot-simulator/robot_simulator.exs +3 -5
  181. data/tracks/elixir/exercises/robot-simulator/robot_simulator_test.exs +26 -25
  182. data/tracks/elixir/exercises/roman-numerals/example.exs +14 -13
  183. data/tracks/elixir/exercises/roman-numerals/roman.exs +1 -1
  184. data/tracks/elixir/exercises/roman-numerals/roman_numerals_test.exs +2 -2
  185. data/tracks/elixir/exercises/rotational-cipher/example.exs +12 -8
  186. data/tracks/elixir/exercises/rotational-cipher/rotational_cipher.exs +0 -1
  187. data/tracks/elixir/exercises/rotational-cipher/rotational_cipher_test.exs +6 -4
  188. data/tracks/elixir/exercises/run-length-encoding/example.exs +20 -8
  189. data/tracks/elixir/exercises/run-length-encoding/rle.exs +2 -4
  190. data/tracks/elixir/exercises/run-length-encoding/rle_test.exs +6 -4
  191. data/tracks/elixir/exercises/saddle-points/example.exs +4 -3
  192. data/tracks/elixir/exercises/saddle-points/saddle_points.exs +0 -3
  193. data/tracks/elixir/exercises/saddle-points/saddle_points_test.exs +2 -2
  194. data/tracks/elixir/exercises/say/say.exs +1 -1
  195. data/tracks/elixir/exercises/say/say_test.exs +5 -3
  196. data/tracks/elixir/exercises/scale-generator/example.exs +20 -9
  197. data/tracks/elixir/exercises/scale-generator/scale_generator.exs +2 -2
  198. data/tracks/elixir/exercises/scale-generator/scale_generator_test.exs +16 -17
  199. data/tracks/elixir/exercises/scrabble-score/scrabble.exs +1 -2
  200. data/tracks/elixir/exercises/scrabble-score/scrabble_score_test.exs +2 -2
  201. data/tracks/elixir/exercises/secret-handshake/example.exs +4 -4
  202. data/tracks/elixir/exercises/secret-handshake/secret_handshake.exs +0 -1
  203. data/tracks/elixir/exercises/secret-handshake/secret_handshake_test.exs +3 -3
  204. data/tracks/elixir/exercises/series/example.exs +2 -2
  205. data/tracks/elixir/exercises/series/series.exs +0 -1
  206. data/tracks/elixir/exercises/series/series_test.exs +3 -4
  207. data/tracks/elixir/exercises/sieve/example.exs +4 -5
  208. data/tracks/elixir/exercises/sieve/sieve.exs +0 -3
  209. data/tracks/elixir/exercises/sieve/sieve_test.exs +173 -21
  210. data/tracks/elixir/exercises/simple-cipher/example.exs +8 -8
  211. data/tracks/elixir/exercises/simple-cipher/simple_cipher.exs +0 -1
  212. data/tracks/elixir/exercises/simple-cipher/simple_cipher_test.exs +3 -4
  213. data/tracks/elixir/exercises/simple-linked-list/example.exs +3 -1
  214. data/tracks/elixir/exercises/simple-linked-list/linked_list_test.exs +5 -2
  215. data/tracks/elixir/exercises/space-age/example.exs +5 -6
  216. data/tracks/elixir/exercises/space-age/space_age.exs +9 -3
  217. data/tracks/elixir/exercises/space-age/space_age_test.exs +2 -2
  218. data/tracks/elixir/exercises/spiral-matrix/example.exs +10 -5
  219. data/tracks/elixir/exercises/spiral-matrix/spiral.exs +0 -1
  220. data/tracks/elixir/exercises/spiral-matrix/spiral_test.exs +21 -21
  221. data/tracks/elixir/exercises/strain/example.exs +5 -4
  222. data/tracks/elixir/exercises/strain/strain.exs +2 -2
  223. data/tracks/elixir/exercises/strain/strain_test.exs +12 -7
  224. data/tracks/elixir/exercises/sublist/example.exs +11 -7
  225. data/tracks/elixir/exercises/sublist/sublist.exs +0 -1
  226. data/tracks/elixir/exercises/sublist/sublist_test.exs +16 -18
  227. data/tracks/elixir/exercises/sum-of-multiples/example.exs +3 -4
  228. data/tracks/elixir/exercises/sum-of-multiples/sum_of_multiples.exs +0 -1
  229. data/tracks/elixir/exercises/sum-of-multiples/sum_of_multiples_test.exs +4 -4
  230. data/tracks/elixir/exercises/test_helper.exs +4 -4
  231. data/tracks/elixir/exercises/tournament/example.exs +20 -13
  232. data/tracks/elixir/exercises/tournament/tournament.exs +0 -1
  233. data/tracks/elixir/exercises/tournament/tournament_test.exs +37 -30
  234. data/tracks/elixir/exercises/transpose/example.exs +4 -4
  235. data/tracks/elixir/exercises/transpose/transpose.exs +1 -1
  236. data/tracks/elixir/exercises/transpose/transpose_test.exs +89 -156
  237. data/tracks/elixir/exercises/triangle/example.exs +7 -7
  238. data/tracks/elixir/exercises/triangle/triangle.exs +1 -2
  239. data/tracks/elixir/exercises/triangle/triangle_test.exs +17 -17
  240. data/tracks/elixir/exercises/twelve-days/example.exs +10 -6
  241. data/tracks/elixir/exercises/twelve-days/twelve_days.exs +1 -2
  242. data/tracks/elixir/exercises/twelve-days/twelve_days_test.exs +55 -45
  243. data/tracks/elixir/exercises/word-count/example.exs +5 -5
  244. data/tracks/elixir/exercises/word-count/word_count.exs +1 -2
  245. data/tracks/elixir/exercises/word-count/word_count_test.exs +5 -5
  246. data/tracks/elixir/exercises/wordy/example.exs +13 -14
  247. data/tracks/elixir/exercises/wordy/wordy.exs +1 -4
  248. data/tracks/elixir/exercises/wordy/wordy_test.exs +2 -2
  249. data/tracks/elixir/exercises/zipper/example.exs +48 -37
  250. data/tracks/elixir/exercises/zipper/zipper.exs +20 -14
  251. data/tracks/elixir/exercises/zipper/zipper_test.exs +19 -20
  252. data/tracks/go/.travis.yml +1 -1
  253. data/tracks/go/exercises/paasio/paasio_test.go +76 -0
  254. data/tracks/ocaml/exercises/acronym/test.ml +3 -5
  255. data/tracks/ocaml/exercises/all-your-base/test.ml +2 -2
  256. data/tracks/ocaml/exercises/anagram/test.ml +1 -9
  257. data/tracks/ocaml/exercises/atbash-cipher/test.ml +1 -1
  258. data/tracks/ocaml/exercises/binary-search/test.ml +1 -1
  259. data/tracks/ocaml/exercises/bob/test.ml +1 -1
  260. data/tracks/ocaml/exercises/bracket-push/test.ml +1 -1
  261. data/tracks/ocaml/exercises/connect/test.ml +1 -1
  262. data/tracks/ocaml/exercises/difference-of-squares/test.ml +1 -1
  263. data/tracks/ocaml/exercises/dominoes/test.ml +1 -1
  264. data/tracks/ocaml/exercises/hello-world/test.ml +1 -1
  265. data/tracks/ocaml/exercises/leap/test.ml +2 -2
  266. data/tracks/ocaml/exercises/luhn/test.ml +2 -2
  267. data/tracks/ocaml/exercises/pangram/test.ml +1 -1
  268. data/tracks/ocaml/exercises/phone-number/test.ml +7 -3
  269. data/tracks/ocaml/exercises/prime-factors/test.ml +1 -1
  270. data/tracks/ocaml/exercises/raindrops/test.ml +1 -1
  271. data/tracks/ocaml/exercises/react/example.ml +1 -1
  272. data/tracks/ocaml/exercises/roman-numerals/test.ml +3 -1
  273. data/tracks/ocaml/exercises/run-length-encoding/test.ml +1 -1
  274. data/tracks/ocaml/exercises/space-age/test.ml +1 -1
  275. data/tracks/ocaml/exercises/word-count/test.ml +1 -1
  276. data/tracks/swift/circle.yml +21 -2
  277. metadata +3 -2
@@ -2,8 +2,7 @@ defmodule Scrabble do
2
2
  @doc """
3
3
  Calculate the scrabble score for the word.
4
4
  """
5
- @spec score(String.t) :: non_neg_integer
5
+ @spec score(String.t()) :: non_neg_integer
6
6
  def score(word) do
7
-
8
7
  end
9
8
  end
@@ -2,8 +2,8 @@ if !System.get_env("EXERCISM_TEST_EXAMPLES") do
2
2
  Code.load_file("scrabble.exs", __DIR__)
3
3
  end
4
4
 
5
- ExUnit.start
6
- ExUnit.configure exclude: :pending, trace: true
5
+ ExUnit.start()
6
+ ExUnit.configure(exclude: :pending, trace: true)
7
7
 
8
8
  defmodule ScrabbleScoreTest do
9
9
  use ExUnit.Case
@@ -20,8 +20,8 @@ defmodule SecretHandshake do
20
20
  @spec commands(code :: integer) :: list(String.t())
21
21
  def commands(code) do
22
22
  @codes
23
- |> Enum.with_index
24
- |> Enum.map(fn {command, i} -> { command, 2 <<< (i-1) } end)
23
+ |> Enum.with_index()
24
+ |> Enum.map(fn {command, i} -> {command, 2 <<< (i - 1)} end)
25
25
  |> decode_commands(code, [])
26
26
  end
27
27
 
@@ -31,7 +31,8 @@ defmodule SecretHandshake do
31
31
  _ -> Enum.reverse(results)
32
32
  end
33
33
  end
34
- defp decode_commands([{ command, flag } | flags], code, results) do
34
+
35
+ defp decode_commands([{command, flag} | flags], code, results) do
35
36
  case flag_set(code, flag) do
36
37
  true -> decode_commands(flags, code, [command | results])
37
38
  _ -> decode_commands(flags, code, results)
@@ -40,4 +41,3 @@ defmodule SecretHandshake do
40
41
 
41
42
  defp flag_set(flags, flag_to_check), do: (flags &&& flag_to_check) == flag_to_check
42
43
  end
43
-
@@ -17,4 +17,3 @@ defmodule SecretHandshake do
17
17
  def commands(code) do
18
18
  end
19
19
  end
20
-
@@ -2,14 +2,14 @@ if !System.get_env("EXERCISM_TEST_EXAMPLES") do
2
2
  Code.load_file("secret_handshake.exs", __DIR__)
3
3
  end
4
4
 
5
- ExUnit.start
6
- ExUnit.configure trace: true, exclude: :pending
5
+ ExUnit.start()
6
+ ExUnit.configure(trace: true, exclude: :pending)
7
7
 
8
8
  defmodule SecretHandshakeTest do
9
9
  use ExUnit.Case
10
10
 
11
11
  describe "Create a handshake for a number" do
12
- #@tag :pending
12
+ # @tag :pending
13
13
  test "wink for 1" do
14
14
  assert SecretHandshake.commands(1) == ["wink"]
15
15
  end
@@ -6,8 +6,8 @@ defmodule StringSeries do
6
6
  """
7
7
  @spec slices(s :: String.t(), size :: integer) :: list(String.t())
8
8
  def slices(_s, size) when size < 1, do: []
9
+
9
10
  def slices(s, size) do
10
- s |> String.graphemes |> Enum.chunk(size, 1) |> Enum.map(&Enum.join/1)
11
+ s |> String.graphemes() |> Enum.chunk(size, 1) |> Enum.map(&Enum.join/1)
11
12
  end
12
13
  end
13
-
@@ -8,4 +8,3 @@ defmodule StringSeries do
8
8
  def slices(_s, _size) do
9
9
  end
10
10
  end
11
-
@@ -2,13 +2,13 @@ if !System.get_env("EXERCISM_TEST_EXAMPLES") do
2
2
  Code.load_file("series.exs", __DIR__)
3
3
  end
4
4
 
5
- ExUnit.start
6
- ExUnit.configure exclude: :pending, trace: true
5
+ ExUnit.start()
6
+ ExUnit.configure(exclude: :pending, trace: true)
7
7
 
8
8
  defmodule StringSeriesTest do
9
9
  use ExUnit.Case
10
10
 
11
- #@tag :pending
11
+ # @tag :pending
12
12
  test "slices of size 1" do
13
13
  assert StringSeries.slices("01234", 1) == ["0", "1", "2", "3", "4"]
14
14
  end
@@ -50,4 +50,3 @@ defmodule StringSeriesTest do
50
50
  assert StringSeries.slices("01234", 0) == []
51
51
  end
52
52
  end
53
-
@@ -1,17 +1,16 @@
1
1
  defmodule Sieve do
2
-
3
2
  @doc """
4
3
  Generates a list of primes up to a given limit.
5
4
  """
6
5
  @spec primes_to(non_neg_integer) :: [non_neg_integer]
7
6
  def primes_to(limit) do
8
- Enum.to_list(2..limit) |> do_primes([]) |> Enum.reverse
7
+ Enum.to_list(2..limit) |> do_primes([]) |> Enum.reverse()
9
8
  end
10
9
 
11
10
  defp do_primes([], primes), do: primes
12
- defp do_primes([ candidate | rest ], primes) do
11
+
12
+ defp do_primes([candidate | rest], primes) do
13
13
  candidates = Enum.reject(rest, &(rem(&1, candidate) == 0))
14
- do_primes(candidates, [ candidate | primes ])
14
+ do_primes(candidates, [candidate | primes])
15
15
  end
16
-
17
16
  end
@@ -1,11 +1,8 @@
1
1
  defmodule Sieve do
2
-
3
2
  @doc """
4
3
  Generates a list of primes up to a given limit.
5
4
  """
6
5
  @spec primes_to(non_neg_integer) :: [non_neg_integer]
7
6
  def primes_to(limit) do
8
-
9
7
  end
10
-
11
8
  end
@@ -2,8 +2,8 @@ if !System.get_env("EXERCISM_TEST_EXAMPLES") do
2
2
  Code.load_file("sieve.exs", __DIR__)
3
3
  end
4
4
 
5
- ExUnit.start
6
- ExUnit.configure exclude: :pending, trace: true
5
+ ExUnit.start()
6
+ ExUnit.configure(exclude: :pending, trace: true)
7
7
 
8
8
  defmodule SieveTest do
9
9
  use ExUnit.Case
@@ -15,25 +15,177 @@ defmodule SieveTest do
15
15
 
16
16
  @tag :pending
17
17
  test "primes to 1000" do
18
- result = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37,
19
- 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83,
20
- 89, 97, 101, 103, 107, 109, 113, 127, 131,
21
- 137, 139, 149, 151, 157, 163, 167, 173, 179,
22
- 181, 191, 193, 197, 199, 211, 223, 227, 229,
23
- 233, 239, 241, 251, 257, 263, 269, 271, 277,
24
- 281, 283, 293, 307, 311, 313, 317, 331, 337,
25
- 347, 349, 353, 359, 367, 373, 379, 383, 389,
26
- 397, 401, 409, 419, 421, 431, 433, 439, 443,
27
- 449, 457, 461, 463, 467, 479, 487, 491, 499,
28
- 503, 509, 521, 523, 541, 547, 557, 563, 569,
29
- 571, 577, 587, 593, 599, 601, 607, 613, 617,
30
- 619, 631, 641, 643, 647, 653, 659, 661, 673,
31
- 677, 683, 691, 701, 709, 719, 727, 733, 739,
32
- 743, 751, 757, 761, 769, 773, 787, 797, 809,
33
- 811, 821, 823, 827, 829, 839, 853, 857, 859,
34
- 863, 877, 881, 883, 887, 907, 911, 919, 929,
35
- 937, 941, 947, 953, 967, 971, 977, 983, 991, 997]
18
+ result = [
19
+ 2,
20
+ 3,
21
+ 5,
22
+ 7,
23
+ 11,
24
+ 13,
25
+ 17,
26
+ 19,
27
+ 23,
28
+ 29,
29
+ 31,
30
+ 37,
31
+ 41,
32
+ 43,
33
+ 47,
34
+ 53,
35
+ 59,
36
+ 61,
37
+ 67,
38
+ 71,
39
+ 73,
40
+ 79,
41
+ 83,
42
+ 89,
43
+ 97,
44
+ 101,
45
+ 103,
46
+ 107,
47
+ 109,
48
+ 113,
49
+ 127,
50
+ 131,
51
+ 137,
52
+ 139,
53
+ 149,
54
+ 151,
55
+ 157,
56
+ 163,
57
+ 167,
58
+ 173,
59
+ 179,
60
+ 181,
61
+ 191,
62
+ 193,
63
+ 197,
64
+ 199,
65
+ 211,
66
+ 223,
67
+ 227,
68
+ 229,
69
+ 233,
70
+ 239,
71
+ 241,
72
+ 251,
73
+ 257,
74
+ 263,
75
+ 269,
76
+ 271,
77
+ 277,
78
+ 281,
79
+ 283,
80
+ 293,
81
+ 307,
82
+ 311,
83
+ 313,
84
+ 317,
85
+ 331,
86
+ 337,
87
+ 347,
88
+ 349,
89
+ 353,
90
+ 359,
91
+ 367,
92
+ 373,
93
+ 379,
94
+ 383,
95
+ 389,
96
+ 397,
97
+ 401,
98
+ 409,
99
+ 419,
100
+ 421,
101
+ 431,
102
+ 433,
103
+ 439,
104
+ 443,
105
+ 449,
106
+ 457,
107
+ 461,
108
+ 463,
109
+ 467,
110
+ 479,
111
+ 487,
112
+ 491,
113
+ 499,
114
+ 503,
115
+ 509,
116
+ 521,
117
+ 523,
118
+ 541,
119
+ 547,
120
+ 557,
121
+ 563,
122
+ 569,
123
+ 571,
124
+ 577,
125
+ 587,
126
+ 593,
127
+ 599,
128
+ 601,
129
+ 607,
130
+ 613,
131
+ 617,
132
+ 619,
133
+ 631,
134
+ 641,
135
+ 643,
136
+ 647,
137
+ 653,
138
+ 659,
139
+ 661,
140
+ 673,
141
+ 677,
142
+ 683,
143
+ 691,
144
+ 701,
145
+ 709,
146
+ 719,
147
+ 727,
148
+ 733,
149
+ 739,
150
+ 743,
151
+ 751,
152
+ 757,
153
+ 761,
154
+ 769,
155
+ 773,
156
+ 787,
157
+ 797,
158
+ 809,
159
+ 811,
160
+ 821,
161
+ 823,
162
+ 827,
163
+ 829,
164
+ 839,
165
+ 853,
166
+ 857,
167
+ 859,
168
+ 863,
169
+ 877,
170
+ 881,
171
+ 883,
172
+ 887,
173
+ 907,
174
+ 911,
175
+ 919,
176
+ 929,
177
+ 937,
178
+ 941,
179
+ 947,
180
+ 953,
181
+ 967,
182
+ 971,
183
+ 977,
184
+ 983,
185
+ 991,
186
+ 997
187
+ ]
188
+
36
189
  assert Sieve.primes_to(1000) == result
37
190
  end
38
-
39
191
  end
@@ -1,13 +1,14 @@
1
1
  defmodule SimpleCipher do
2
- @alphabet "abcdefghijklmnopqrstuvwxyz" |> String.graphemes
2
+ @alphabet "abcdefghijklmnopqrstuvwxyz" |> String.graphemes()
3
3
  @alphabet_size @alphabet |> length
4
4
 
5
5
  for key_char <- @alphabet do
6
- shifted_alphabet = Stream.cycle(@alphabet)
7
- |> Stream.drop_while(&(&1 != key_char))
8
- |> Enum.take(@alphabet_size)
6
+ shifted_alphabet =
7
+ Stream.cycle(@alphabet)
8
+ |> Stream.drop_while(&(&1 != key_char))
9
+ |> Enum.take(@alphabet_size)
9
10
 
10
- for { plain, cipher } <- Enum.zip(@alphabet, shifted_alphabet) do
11
+ for {plain, cipher} <- Enum.zip(@alphabet, shifted_alphabet) do
11
12
  defp encode_char(unquote(plain), unquote(key_char)), do: unquote(cipher)
12
13
  defp decode_char(unquote(cipher), unquote(key_char)), do: unquote(plain)
13
14
  end
@@ -69,12 +70,11 @@ defmodule SimpleCipher do
69
70
  end
70
71
 
71
72
  defp convert_keystream(text, key, converter) do
72
- keystream = key |> String.graphemes |> Stream.cycle
73
+ keystream = key |> String.graphemes() |> Stream.cycle()
73
74
 
74
75
  text
75
- |> String.graphemes
76
+ |> String.graphemes()
76
77
  |> Enum.zip(keystream)
77
78
  |> Enum.map_join(converter)
78
79
  end
79
80
  end
80
-
@@ -46,4 +46,3 @@ defmodule SimpleCipher do
46
46
  def decode(ciphertext, key) do
47
47
  end
48
48
  end
49
-
@@ -2,13 +2,13 @@ if !System.get_env("EXERCISM_TEST_EXAMPLES") do
2
2
  Code.load_file("simple_cipher.exs", __DIR__)
3
3
  end
4
4
 
5
- ExUnit.start
6
- ExUnit.configure trace: true, exclude: :pending
5
+ ExUnit.start()
6
+ ExUnit.configure(trace: true, exclude: :pending)
7
7
 
8
8
  defmodule SimpleCipherTest do
9
9
  use ExUnit.Case
10
10
 
11
- #@tag :pending
11
+ # @tag :pending
12
12
  test "encoding with 'a' returns the original text" do
13
13
  assert SimpleCipher.encode("a", "a") == "a"
14
14
  assert SimpleCipher.encode("b", "a") == "b"
@@ -86,4 +86,3 @@ defmodule SimpleCipherTest do
86
86
  assert SimpleCipher.decode(ciphertext, plaintext) == key
87
87
  end
88
88
  end
89
-
@@ -71,8 +71,9 @@ defmodule LinkedList do
71
71
  def to_list(list) do
72
72
  list |> do_to_list([]) |> Enum.reverse()
73
73
  end
74
+
74
75
  defp do_to_list({}, acc), do: acc
75
- defp do_to_list({h, t}, acc), do: do_to_list(t, [h|acc])
76
+ defp do_to_list({h, t}, acc), do: do_to_list(t, [h | acc])
76
77
 
77
78
  @doc """
78
79
  Reverse a LinkedList
@@ -81,6 +82,7 @@ defmodule LinkedList do
81
82
  def reverse(list) do
82
83
  do_reverse(list, new())
83
84
  end
85
+
84
86
  def do_reverse({}, acc), do: acc
85
87
  def do_reverse({h, t}, acc), do: do_reverse(t, push(acc, h))
86
88
  end
@@ -2,8 +2,8 @@ if !System.get_env("EXERCISM_TEST_EXAMPLES") do
2
2
  Code.load_file("linked_list.exs", __DIR__)
3
3
  end
4
4
 
5
- ExUnit.start
6
- ExUnit.configure exclude: :pending, trace: true
5
+ ExUnit.start()
6
+ ExUnit.configure(exclude: :pending, trace: true)
7
7
 
8
8
  defmodule LinkedListTest do
9
9
  use ExUnit.Case
@@ -62,6 +62,7 @@ defmodule LinkedListTest do
62
62
  LinkedList.new()
63
63
  |> LinkedList.push(:a)
64
64
  |> LinkedList.push(:b)
65
+
65
66
  assert LinkedList.peek(list) == {:ok, :b}
66
67
  assert {:ok, list} = LinkedList.tail(list)
67
68
  assert LinkedList.peek(list) == {:ok, :a}
@@ -145,10 +146,12 @@ defmodule LinkedListTest do
145
146
  @tag :pending
146
147
  test "reverse/1 round trip" do
147
148
  list = Enum.to_list(1..200)
149
+
148
150
  linked_list =
149
151
  LinkedList.from_list(list)
150
152
  |> LinkedList.reverse()
151
153
  |> LinkedList.reverse()
154
+
152
155
  assert LinkedList.to_list(linked_list) == list
153
156
  end
154
157
  end