trackler 2.2.1.47 → 2.2.1.48

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/problem-specifications/exercises/pangram/canonical-data.json +3 -3
  4. data/tracks/common-lisp/.travis.yml +2 -9
  5. data/tracks/common-lisp/docs/TESTS.md +43 -9
  6. data/tracks/delphi/exercises/nucleotide-count/uNucleotideCountTest.pas +2 -2
  7. data/tracks/elixir/.travis.yml +4 -7
  8. data/tracks/elixir/README.md +2 -6
  9. data/tracks/elixir/bin/dialyzer_check.sh +2 -13
  10. data/tracks/elixir/exercises/allergies/example.exs +3 -2
  11. data/tracks/elixir/exercises/atbash-cipher/example.exs +5 -5
  12. data/tracks/elixir/exercises/bank-account/example.exs +11 -11
  13. data/tracks/elixir/exercises/bob/example.exs +4 -4
  14. data/tracks/elixir/exercises/forth/example.exs +66 -48
  15. data/tracks/elixir/exercises/minesweeper/example.exs +31 -18
  16. data/tracks/elixir/exercises/pangram/example.exs +4 -4
  17. data/tracks/elixir/exercises/queen-attack/queen_attack_test.exs +68 -53
  18. data/tracks/elixir/exercises/say/example.exs +33 -31
  19. data/tracks/elixir/exercises/scrabble-score/example.exs +12 -11
  20. data/tracks/elixir/mix.exs +10 -7
  21. data/tracks/elixir/mix.lock +4 -1
  22. data/tracks/erlang/README.md +2 -0
  23. data/tracks/fsharp/exercises/nth-prime/Example.fs +4 -1
  24. data/tracks/fsharp/exercises/nth-prime/NthPrime.fs +1 -1
  25. data/tracks/fsharp/exercises/nth-prime/NthPrimeTest.fs +12 -32
  26. data/tracks/fsharp/exercises/pangram/PangramTest.fs +3 -3
  27. data/tracks/fsharp/exercises/perfect-numbers/Example.fs +9 -6
  28. data/tracks/fsharp/exercises/perfect-numbers/PerfectNumbers.fs +1 -1
  29. data/tracks/fsharp/exercises/perfect-numbers/PerfectNumbersTest.fs +55 -21
  30. data/tracks/fsharp/generators/Generators.fs +18 -0
  31. data/tracks/gnu-apl/config.json +21 -0
  32. data/tracks/gnu-apl/exercises/hamming/README.md +42 -0
  33. data/tracks/gnu-apl/exercises/hamming/hamming-example.apl +5 -0
  34. data/tracks/gnu-apl/exercises/hamming/hamming.tc +75 -0
  35. data/tracks/gnu-apl/exercises/hello-world/README.md +17 -1
  36. data/tracks/gnu-apl/exercises/leap/README.md +33 -0
  37. data/tracks/gnu-apl/exercises/raindrops/README.md +24 -0
  38. data/tracks/gnu-apl/exercises/raindrops/raindrops-example.apl +8 -0
  39. data/tracks/gnu-apl/exercises/raindrops/raindrops.tc +60 -0
  40. data/tracks/gnu-apl/exercises/rna-transcription/README.md +25 -0
  41. data/tracks/gnu-apl/exercises/rna-transcription/rna-transcription-example.apl +7 -0
  42. data/tracks/gnu-apl/exercises/rna-transcription/rna-transcription.tc +41 -0
  43. data/tracks/gnu-apl/test.apl +13 -0
  44. data/tracks/haskell/config.json +9 -0
  45. data/tracks/haskell/exercises/rotational-cipher/README.md +91 -0
  46. data/tracks/haskell/exercises/rotational-cipher/examples/success-standard/package.yaml +16 -0
  47. data/tracks/haskell/exercises/rotational-cipher/examples/success-standard/src/RotationalCipher.hs +9 -0
  48. data/tracks/haskell/exercises/rotational-cipher/package.yaml +20 -0
  49. data/tracks/haskell/exercises/rotational-cipher/src/RotationalCipher.hs +4 -0
  50. data/tracks/haskell/exercises/rotational-cipher/stack.yaml +1 -0
  51. data/tracks/haskell/exercises/rotational-cipher/test/Tests.hs +77 -0
  52. data/tracks/java/config.json +23 -14
  53. data/tracks/java/config/exercise-readme-insert.md +3 -3
  54. data/tracks/java/config/exercise_readme.go.tmpl +3 -0
  55. data/tracks/java/exercises/accumulate/README.md +4 -3
  56. data/tracks/java/exercises/acronym/.meta/{.version → version} +0 -0
  57. data/tracks/java/exercises/acronym/README.md +4 -3
  58. data/tracks/java/exercises/all-your-base/.meta/{.version → version} +0 -0
  59. data/tracks/java/exercises/all-your-base/README.md +4 -3
  60. data/tracks/java/exercises/allergies/README.md +4 -3
  61. data/tracks/java/exercises/anagram/README.md +4 -3
  62. data/tracks/java/exercises/atbash-cipher/README.md +4 -3
  63. data/tracks/java/exercises/bank-account/README.md +6 -3
  64. data/tracks/java/exercises/beer-song/README.md +4 -3
  65. data/tracks/java/exercises/binary-search-tree/.meta/src/reference/java/BinarySearchTree.java +38 -44
  66. data/tracks/java/exercises/binary-search-tree/README.md +4 -3
  67. data/tracks/java/exercises/binary-search-tree/src/main/java/BinarySearchTree.java +35 -0
  68. data/tracks/java/exercises/binary-search-tree/src/test/java/BinarySearchTreeTest.java +46 -40
  69. data/tracks/java/exercises/binary-search/.meta/hints.md +25 -0
  70. data/tracks/java/exercises/binary-search/.meta/src/reference/java/BinarySearch.java +3 -7
  71. data/tracks/java/exercises/binary-search/README.md +33 -3
  72. data/tracks/java/exercises/binary-search/src/test/java/BinarySearchTest.java +11 -11
  73. data/tracks/java/exercises/binary/README.md +4 -3
  74. data/tracks/java/exercises/bob/README.md +4 -3
  75. data/tracks/java/exercises/book-store/README.md +4 -3
  76. data/tracks/java/exercises/bowling/README.md +4 -3
  77. data/tracks/java/exercises/bracket-push/README.md +4 -3
  78. data/tracks/java/exercises/change/.meta/{.version → version} +0 -0
  79. data/tracks/java/exercises/change/README.md +4 -3
  80. data/tracks/java/exercises/circular-buffer/README.md +4 -3
  81. data/tracks/java/exercises/clock/.meta/{.version → version} +0 -0
  82. data/tracks/java/exercises/clock/README.md +6 -3
  83. data/tracks/java/exercises/collatz-conjecture/.meta/{.version → version} +0 -0
  84. data/tracks/java/exercises/collatz-conjecture/README.md +4 -3
  85. data/tracks/java/exercises/complex-numbers/README.md +4 -3
  86. data/tracks/java/exercises/crypto-square/README.md +4 -3
  87. data/tracks/java/exercises/{rna-transcription/.meta/.version → custom-set/.meta/version} +0 -0
  88. data/tracks/java/exercises/custom-set/README.md +4 -3
  89. data/tracks/java/exercises/custom-set/src/test/java/CustomSetTest.java +103 -251
  90. data/tracks/java/exercises/diamond/.meta/{.version → version} +0 -0
  91. data/tracks/java/exercises/diamond/README.md +4 -3
  92. data/tracks/java/exercises/difference-of-squares/.meta/{.version → version} +0 -0
  93. data/tracks/java/exercises/difference-of-squares/README.md +4 -3
  94. data/tracks/java/exercises/etl/README.md +4 -3
  95. data/tracks/java/exercises/flatten-array/.meta/{.version → version} +0 -0
  96. data/tracks/java/exercises/flatten-array/README.md +4 -3
  97. data/tracks/java/exercises/food-chain/README.md +4 -3
  98. data/tracks/java/exercises/forth/.meta/{.version → version} +0 -0
  99. data/tracks/java/exercises/forth/README.md +3 -3
  100. data/tracks/java/exercises/gigasecond/README.md +4 -3
  101. data/tracks/java/exercises/grade-school/README.md +4 -3
  102. data/tracks/java/exercises/hamming/.meta/{.version → version} +0 -0
  103. data/tracks/java/exercises/hamming/README.md +6 -3
  104. data/tracks/java/exercises/hello-world/README.md +6 -3
  105. data/tracks/java/exercises/hexadecimal/README.md +4 -3
  106. data/tracks/java/exercises/house/README.md +4 -3
  107. data/tracks/java/exercises/isogram/README.md +6 -3
  108. data/tracks/java/exercises/kindergarten-garden/README.md +4 -3
  109. data/tracks/java/exercises/largest-series-product/README.md +4 -3
  110. data/tracks/java/exercises/linked-list/README.md +4 -3
  111. data/tracks/java/exercises/list-ops/.meta/{.version → version} +0 -0
  112. data/tracks/java/exercises/list-ops/README.md +6 -3
  113. data/tracks/java/exercises/luhn/README.md +4 -3
  114. data/tracks/java/exercises/matrix/README.md +4 -3
  115. data/tracks/java/exercises/meetup/README.md +4 -3
  116. data/tracks/java/exercises/minesweeper/.meta/{.version → version} +0 -0
  117. data/tracks/java/exercises/minesweeper/README.md +4 -3
  118. data/tracks/java/exercises/nth-prime/README.md +4 -3
  119. data/tracks/java/exercises/nucleotide-count/README.md +4 -3
  120. data/tracks/java/exercises/ocr-numbers/README.md +4 -3
  121. data/tracks/java/exercises/octal/README.md +4 -3
  122. data/tracks/java/exercises/palindrome-products/README.md +4 -3
  123. data/tracks/java/exercises/pangram/.meta/{.version → version} +0 -0
  124. data/tracks/java/exercises/pangram/README.md +4 -3
  125. data/tracks/java/exercises/pascals-triangle/.meta/{.version → version} +0 -0
  126. data/tracks/java/exercises/pascals-triangle/README.md +4 -3
  127. data/tracks/java/exercises/perfect-numbers/.meta/{.version → version} +0 -0
  128. data/tracks/java/exercises/perfect-numbers/README.md +4 -3
  129. data/tracks/java/exercises/phone-number/README.md +4 -3
  130. data/tracks/java/exercises/pig-latin/README.md +4 -3
  131. data/tracks/java/exercises/poker/README.md +4 -3
  132. data/tracks/java/exercises/prime-factors/README.md +4 -3
  133. data/tracks/java/exercises/pythagorean-triplet/README.md +4 -3
  134. data/tracks/java/exercises/queen-attack/README.md +4 -3
  135. data/tracks/java/exercises/raindrops/README.md +4 -3
  136. data/tracks/java/exercises/rectangles/README.md +4 -3
  137. data/tracks/java/exercises/rna-transcription/.meta/version +1 -0
  138. data/tracks/java/exercises/rna-transcription/README.md +4 -3
  139. data/tracks/java/exercises/robot-name/README.md +4 -3
  140. data/tracks/java/exercises/robot-simulator/README.md +4 -3
  141. data/tracks/java/exercises/roman-numerals/README.md +4 -3
  142. data/tracks/java/exercises/rotational-cipher/README.md +4 -3
  143. data/tracks/java/exercises/run-length-encoding/README.md +4 -3
  144. data/tracks/java/exercises/saddle-points/.meta/{.version → version} +0 -0
  145. data/tracks/java/exercises/saddle-points/README.md +4 -3
  146. data/tracks/java/exercises/scrabble-score/.meta/{.version → version} +0 -0
  147. data/tracks/java/exercises/scrabble-score/README.md +4 -3
  148. data/tracks/java/exercises/secret-handshake/README.md +4 -3
  149. data/tracks/java/exercises/series/README.md +4 -3
  150. data/tracks/java/exercises/sieve/README.md +4 -3
  151. data/tracks/java/exercises/simple-cipher/README.md +6 -3
  152. data/tracks/java/exercises/simple-linked-list/README.md +4 -3
  153. data/tracks/java/exercises/space-age/README.md +4 -3
  154. data/tracks/java/exercises/spiral-matrix/.meta/{.version → version} +0 -0
  155. data/tracks/java/exercises/spiral-matrix/README.md +4 -3
  156. data/tracks/java/exercises/strain/README.md +4 -3
  157. data/tracks/java/exercises/sublist/README.md +4 -3
  158. data/tracks/java/exercises/sum-of-multiples/README.md +4 -3
  159. data/tracks/java/exercises/tournament/README.md +4 -3
  160. data/tracks/java/exercises/transpose/README.md +4 -3
  161. data/tracks/java/exercises/triangle/.meta/{.version → version} +0 -0
  162. data/tracks/java/exercises/triangle/README.md +4 -3
  163. data/tracks/java/exercises/trinary/README.md +4 -3
  164. data/tracks/java/exercises/twelve-days/README.md +4 -3
  165. data/tracks/java/exercises/two-fer/README.md +6 -3
  166. data/tracks/java/exercises/word-count/README.md +4 -3
  167. data/tracks/java/exercises/word-search/.meta/{.version → version} +0 -0
  168. data/tracks/java/exercises/word-search/README.md +4 -3
  169. data/tracks/java/exercises/wordy/README.md +4 -3
  170. data/tracks/julia/config.json +13 -0
  171. data/tracks/julia/exercises/phone-number/README.md +36 -0
  172. data/tracks/julia/exercises/phone-number/example.jl +18 -0
  173. data/tracks/julia/exercises/phone-number/phone-number.jl +3 -0
  174. data/tracks/julia/exercises/phone-number/runtests.jl +49 -0
  175. data/tracks/lua/config.json +505 -494
  176. data/tracks/lua/config/maintainers.json +16 -16
  177. data/tracks/lua/exercises/acronym/README.md +0 -1
  178. data/tracks/lua/exercises/all-your-base/README.md +1 -1
  179. data/tracks/lua/exercises/allergies/README.md +0 -1
  180. data/tracks/lua/exercises/alphametics/README.md +2 -2
  181. data/tracks/lua/exercises/atbash-cipher/README.md +2 -1
  182. data/tracks/lua/exercises/beer-song/README.md +1 -1
  183. data/tracks/lua/exercises/binary/README.md +2 -0
  184. data/tracks/lua/exercises/bowling/README.md +20 -6
  185. data/tracks/lua/exercises/change/README.md +1 -1
  186. data/tracks/lua/exercises/circular-buffer/README.md +13 -6
  187. data/tracks/lua/exercises/crypto-square/README.md +4 -4
  188. data/tracks/lua/exercises/diamond/README.md +6 -6
  189. data/tracks/lua/exercises/etl/README.md +2 -0
  190. data/tracks/lua/exercises/flatten-array/README.md +1 -2
  191. data/tracks/lua/exercises/food-chain/README.md +1 -1
  192. data/tracks/lua/exercises/grade-school/README.md +0 -1
  193. data/tracks/lua/exercises/grains/README.md +0 -1
  194. data/tracks/lua/exercises/house/README.md +1 -2
  195. data/tracks/lua/exercises/isogram/README.md +2 -1
  196. data/tracks/lua/exercises/kindergarten-garden/README.md +13 -13
  197. data/tracks/lua/exercises/leap/README.md +1 -1
  198. data/tracks/lua/exercises/linked-list/README.md +10 -10
  199. data/tracks/lua/exercises/luhn/README.md +7 -7
  200. data/tracks/lua/exercises/matrix/README.md +6 -4
  201. data/tracks/lua/exercises/meetup/README.md +1 -2
  202. data/tracks/lua/exercises/nucleotide-count/README.md +8 -22
  203. data/tracks/lua/exercises/ocr-numbers/README.md +5 -5
  204. data/tracks/lua/exercises/octal/README.md +6 -2
  205. data/tracks/lua/exercises/pangram/README.md +1 -1
  206. data/tracks/lua/exercises/pascals-triangle/README.md +1 -1
  207. data/tracks/lua/exercises/perfect-numbers/README.md +2 -2
  208. data/tracks/lua/exercises/phone-number/README.md +3 -2
  209. data/tracks/lua/exercises/pov/README.md +2 -2
  210. data/tracks/lua/exercises/protein-translation/README.md +4 -5
  211. data/tracks/lua/exercises/pythagorean-triplet/README.md +3 -3
  212. data/tracks/lua/exercises/rail-fence-cipher/README.md +12 -7
  213. data/tracks/lua/exercises/react/README.md +29 -0
  214. data/tracks/lua/exercises/react/example.lua +108 -0
  215. data/tracks/lua/exercises/react/react_spec.lua +160 -0
  216. data/tracks/lua/exercises/rectangles/README.md +7 -7
  217. data/tracks/lua/exercises/roman-numerals/README.md +1 -1
  218. data/tracks/lua/exercises/run-length-encoding/README.md +4 -4
  219. data/tracks/lua/exercises/scrabble-score/README.md +3 -1
  220. data/tracks/lua/exercises/secret-handshake/README.md +1 -1
  221. data/tracks/lua/exercises/space-age/README.md +2 -1
  222. data/tracks/lua/exercises/sum-of-multiples/README.md +0 -3
  223. data/tracks/lua/exercises/tournament/README.md +5 -5
  224. data/tracks/lua/exercises/transpose/README.md +7 -7
  225. data/tracks/lua/exercises/triangle/README.md +9 -6
  226. data/tracks/lua/exercises/variable-length-quantity/README.md +6 -7
  227. data/tracks/lua/exercises/word-count/README.md +1 -2
  228. data/tracks/lua/exercises/word-search/README.md +1 -1
  229. data/tracks/perl6/exercises/leap/Example.pm6 +1 -1
  230. data/tracks/perl6/exercises/leap/Leap.pm6 +1 -1
  231. data/tracks/perl6/exercises/leap/example.yaml +1 -1
  232. data/tracks/perl6/exercises/leap/leap.t +3 -3
  233. data/tracks/php/exercises/transpose/example.php +37 -15
  234. data/tracks/php/exercises/transpose/transpose_test.php +205 -45
  235. data/tracks/purescript/config.json +11 -0
  236. data/tracks/purescript/exercises/collatz-conjecture/README.md +33 -0
  237. data/tracks/purescript/exercises/collatz-conjecture/bower.json +26 -0
  238. data/tracks/purescript/exercises/collatz-conjecture/examples/src/CollatzConjecture.purs +15 -0
  239. data/tracks/purescript/exercises/collatz-conjecture/src/CollatzConjecture.purs +3 -0
  240. data/tracks/purescript/exercises/collatz-conjecture/test/Main.purs +43 -0
  241. data/tracks/python/config.json +10 -2
  242. data/tracks/racket/README.md +38 -33
  243. data/tracks/racket/config.json +10 -0
  244. data/tracks/racket/exercises/collatz-conjecture/README.md +58 -0
  245. data/tracks/racket/exercises/collatz-conjecture/collatz-conjecture-test.rkt +34 -0
  246. data/tracks/racket/exercises/collatz-conjecture/collatz-conjecture.rkt +6 -0
  247. data/tracks/racket/exercises/collatz-conjecture/example.rkt +20 -0
  248. data/tracks/ruby/exercises/allergies/.meta/.version +1 -0
  249. data/tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb +33 -0
  250. data/tracks/ruby/exercises/allergies/.meta/solutions/allergies.rb +4 -0
  251. data/tracks/ruby/exercises/allergies/allergies_test.rb +42 -9
  252. data/tracks/typescript/config.json +46 -0
  253. data/tracks/typescript/exercises/circular-buffer/README.md +74 -0
  254. data/tracks/typescript/exercises/circular-buffer/circular-buffer.example.ts +51 -0
  255. data/tracks/typescript/exercises/circular-buffer/circular-buffer.test.ts +103 -0
  256. data/tracks/typescript/exercises/circular-buffer/circular-buffer.ts +0 -0
  257. data/tracks/typescript/exercises/circular-buffer/package.json +36 -0
  258. data/tracks/typescript/exercises/circular-buffer/tsconfig.json +22 -0
  259. data/tracks/typescript/exercises/circular-buffer/tslint.json +127 -0
  260. data/tracks/typescript/exercises/circular-buffer/yarn.lock +2305 -0
  261. data/tracks/typescript/exercises/largest-series-product/README.md +51 -0
  262. data/tracks/typescript/exercises/largest-series-product/largest-series-product.example.ts +52 -0
  263. data/tracks/typescript/exercises/largest-series-product/largest-series-product.test.ts +68 -0
  264. data/tracks/typescript/exercises/largest-series-product/largest-series-product.ts +0 -0
  265. data/tracks/typescript/exercises/largest-series-product/package.json +36 -0
  266. data/tracks/typescript/exercises/largest-series-product/tsconfig.json +22 -0
  267. data/tracks/typescript/exercises/largest-series-product/tslint.json +127 -0
  268. data/tracks/typescript/exercises/largest-series-product/yarn.lock +2305 -0
  269. data/tracks/typescript/exercises/robot-simulator/README.md +58 -0
  270. data/tracks/typescript/exercises/robot-simulator/package.json +36 -0
  271. data/tracks/typescript/exercises/robot-simulator/robot-simulator.example.ts +74 -0
  272. data/tracks/typescript/exercises/robot-simulator/robot-simulator.test.ts +150 -0
  273. data/tracks/typescript/exercises/robot-simulator/robot-simulator.ts +0 -0
  274. data/tracks/typescript/exercises/robot-simulator/tsconfig.json +22 -0
  275. data/tracks/typescript/exercises/robot-simulator/tslint.json +127 -0
  276. data/tracks/typescript/exercises/robot-simulator/yarn.lock +2305 -0
  277. metadata +85 -23
@@ -1,9 +1,9 @@
1
+ # Running the tests
1
2
 
2
- To run the tests:
3
+ You can run all the tests for an exercise by entering
3
4
 
4
5
  ```sh
5
6
  $ gradle test
6
7
  ```
7
8
 
8
- For more detailed info about the Java track see the [help page](http://exercism.io/languages/java).
9
-
9
+ in your terminal.
@@ -2,6 +2,8 @@
2
2
 
3
3
  {{ .Spec.Description -}}
4
4
  {{- with .Hints }}
5
+ # Java Tips
6
+
5
7
  {{ . }}
6
8
  {{ end }}
7
9
  {{- with .TrackInsert }}
@@ -13,4 +15,5 @@
13
15
  {{ . }}
14
16
  {{ end }}
15
17
  ## Submitting Incomplete Solutions
18
+
16
19
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -25,19 +25,20 @@ Keep your hands off that collect/map/fmap/whatchamacallit functionality
25
25
  provided by your standard library!
26
26
  Solve this one yourself using other basic tools instead.
27
27
 
28
+ # Running the tests
28
29
 
29
- To run the tests:
30
+ You can run all the tests for an exercise by entering
30
31
 
31
32
  ```sh
32
33
  $ gradle test
33
34
  ```
34
35
 
35
- For more detailed info about the Java track see the [help page](http://exercism.io/languages/java).
36
-
36
+ in your terminal.
37
37
 
38
38
  ## Source
39
39
 
40
40
  Conversation with James Edward Gray II [https://twitter.com/jeg2](https://twitter.com/jeg2)
41
41
 
42
42
  ## Submitting Incomplete Solutions
43
+
43
44
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -7,19 +7,20 @@ Techies love their TLA (Three Letter Acronyms)!
7
7
  Help generate some jargon by writing a program that converts a long name
8
8
  like Portable Network Graphics to its acronym (PNG).
9
9
 
10
+ # Running the tests
10
11
 
11
- To run the tests:
12
+ You can run all the tests for an exercise by entering
12
13
 
13
14
  ```sh
14
15
  $ gradle test
15
16
  ```
16
17
 
17
- For more detailed info about the Java track see the [help page](http://exercism.io/languages/java).
18
-
18
+ in your terminal.
19
19
 
20
20
  ## Source
21
21
 
22
22
  Julien Vanier [https://github.com/monkbroc](https://github.com/monkbroc)
23
23
 
24
24
  ## Submitting Incomplete Solutions
25
+
25
26
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -31,16 +31,17 @@ I think you got the idea!
31
31
 
32
32
  *Yes. Those three numbers above are exactly the same. Congratulations!*
33
33
 
34
+ # Running the tests
34
35
 
35
- To run the tests:
36
+ You can run all the tests for an exercise by entering
36
37
 
37
38
  ```sh
38
39
  $ gradle test
39
40
  ```
40
41
 
41
- For more detailed info about the Java track see the [help page](http://exercism.io/languages/java).
42
-
42
+ in your terminal.
43
43
 
44
44
 
45
45
  ## Submitting Incomplete Solutions
46
+
46
47
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -29,19 +29,20 @@ allergens that score 256, 512, 1024, etc.). Your program should
29
29
  ignore those components of the score. For example, if the allergy
30
30
  score is 257, your program should only report the eggs (1) allergy.
31
31
 
32
+ # Running the tests
32
33
 
33
- To run the tests:
34
+ You can run all the tests for an exercise by entering
34
35
 
35
36
  ```sh
36
37
  $ gradle test
37
38
  ```
38
39
 
39
- For more detailed info about the Java track see the [help page](http://exercism.io/languages/java).
40
-
40
+ in your terminal.
41
41
 
42
42
  ## Source
43
43
 
44
44
  Jumpstart Lab Warm-up [http://jumpstartlab.com](http://jumpstartlab.com)
45
45
 
46
46
  ## Submitting Incomplete Solutions
47
+
47
48
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -6,19 +6,20 @@ Given `"listen"` and a list of candidates like `"enlists" "google"
6
6
  "inlets" "banana"` the program should return a list containing
7
7
  `"inlets"`.
8
8
 
9
+ # Running the tests
9
10
 
10
- To run the tests:
11
+ You can run all the tests for an exercise by entering
11
12
 
12
13
  ```sh
13
14
  $ gradle test
14
15
  ```
15
16
 
16
- For more detailed info about the Java track see the [help page](http://exercism.io/languages/java).
17
-
17
+ in your terminal.
18
18
 
19
19
  ## Source
20
20
 
21
21
  Inspired by the Extreme Startup game [https://github.com/rchatley/extreme_startup](https://github.com/rchatley/extreme_startup)
22
22
 
23
23
  ## Submitting Incomplete Solutions
24
+
24
25
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -28,19 +28,20 @@ things based on word boundaries.
28
28
  - Decoding `gvhg` gives `test`
29
29
  - Decoding `gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt` gives `thequickbrownfoxjumpsoverthelazydog`
30
30
 
31
+ # Running the tests
31
32
 
32
- To run the tests:
33
+ You can run all the tests for an exercise by entering
33
34
 
34
35
  ```sh
35
36
  $ gradle test
36
37
  ```
37
38
 
38
- For more detailed info about the Java track see the [help page](http://exercism.io/languages/java).
39
-
39
+ in your terminal.
40
40
 
41
41
  ## Source
42
42
 
43
43
  Wikipedia [http://en.wikipedia.org/wiki/Atbash](http://en.wikipedia.org/wiki/Atbash)
44
44
 
45
45
  ## Submitting Incomplete Solutions
46
+
46
47
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -26,6 +26,8 @@ it.
26
26
 
27
27
  Have fun!
28
28
 
29
+ # Java Tips
30
+
29
31
  This exercise introduces [concurrency](https://docs.oracle.com/javase/tutorial/essential/concurrency/index.html).
30
32
  To pass the last test you might find the
31
33
  [`synchronized` keyword or locks](https://docs.oracle.com/javase/tutorial/essential/concurrency/locksync.html) useful.
@@ -38,16 +40,17 @@ no concurrent modification attempt. It is unlikely that this will occur several
38
40
  in a row since the order the code is executed should vary every time you run the test. So if you run the last test a
39
41
  couple of times and it passes every time then you can be reasonably sure that your implementation is correct.
40
42
 
43
+ # Running the tests
41
44
 
42
- To run the tests:
45
+ You can run all the tests for an exercise by entering
43
46
 
44
47
  ```sh
45
48
  $ gradle test
46
49
  ```
47
50
 
48
- For more detailed info about the Java track see the [help page](http://exercism.io/languages/java).
49
-
51
+ in your terminal.
50
52
 
51
53
 
52
54
  ## Submitting Incomplete Solutions
55
+
53
56
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -320,19 +320,20 @@ are some additional things you could try:
320
320
  Then please share your thoughts in a comment on the submission. Did this
321
321
  experiment make the code better? Worse? Did you learn anything from it?
322
322
 
323
+ # Running the tests
323
324
 
324
- To run the tests:
325
+ You can run all the tests for an exercise by entering
325
326
 
326
327
  ```sh
327
328
  $ gradle test
328
329
  ```
329
330
 
330
- For more detailed info about the Java track see the [help page](http://exercism.io/languages/java).
331
-
331
+ in your terminal.
332
332
 
333
333
  ## Source
334
334
 
335
335
  Learn to Program by Chris Pine [http://pine.fm/LearnToProgram/?Chapter=06](http://pine.fm/LearnToProgram/?Chapter=06)
336
336
 
337
337
  ## Submitting Incomplete Solutions
338
+
338
339
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -1,49 +1,11 @@
1
+ import java.util.*;
1
2
 
2
- import java.util.ArrayList;
3
- import java.util.Collections;
4
- import java.util.LinkedList;
5
- import java.util.List;
6
- import java.util.Queue;
7
-
8
- public class BinarySearchTree<T extends Comparable<T>> {
9
-
10
- public static class Node<T> {
11
-
12
- private T data;
13
- private Node<T> left = null;
14
- private Node<T> right = null;
15
-
16
- public Node(T data) {
17
- this.data = data;
18
- }
19
-
20
- public Node<T> getLeft() {
21
- return left;
22
- }
23
-
24
- public void setLeft(Node<T> left) {
25
- this.left = left;
26
- }
27
-
28
- public Node<T> getRight() {
29
- return right;
30
- }
31
-
32
- public void setRight(Node<T> right) {
33
- this.right = right;
34
- }
35
-
36
- public T getData() {
37
- return data;
38
- }
39
-
40
- }
3
+ class BinarySearchTree<T extends Comparable<T>> {
41
4
 
42
5
  private Node<T> root;
43
-
44
6
  private int nodeCount = 0;
45
7
 
46
- public void insert(T value) {
8
+ void insert(T value) {
47
9
  if (root == null) {
48
10
  root = new Node<>(value);
49
11
  } else {
@@ -52,19 +14,19 @@ public class BinarySearchTree<T extends Comparable<T>> {
52
14
  this.nodeCount++;
53
15
  }
54
16
 
55
- public List<T> getAsSortedList() {
17
+ List<T> getAsSortedList() {
56
18
  List<T> result = new ArrayList<>(this.nodeCount);
57
19
  this.putInSortedOrderToList(this.root, result);
58
20
  return Collections.unmodifiableList(result);
59
21
  }
60
22
 
61
- public List<T> getAsLevelOrderList() {
23
+ List<T> getAsLevelOrderList() {
62
24
  List<T> result = new ArrayList<>(this.nodeCount);
63
25
  this.putInLevelOrderToList(this.root, result);
64
26
  return Collections.unmodifiableList(result);
65
27
  }
66
28
 
67
- public Node<T> getRoot() {
29
+ Node<T> getRoot() {
68
30
  return root;
69
31
  }
70
32
 
@@ -119,4 +81,36 @@ public class BinarySearchTree<T extends Comparable<T>> {
119
81
  }
120
82
  }
121
83
  }
84
+
85
+ static class Node<T> {
86
+
87
+ private T data;
88
+ private Node<T> left = null;
89
+ private Node<T> right = null;
90
+
91
+ Node(T data) {
92
+ this.data = data;
93
+ }
94
+
95
+ Node<T> getLeft() {
96
+ return left;
97
+ }
98
+
99
+ void setLeft(Node<T> left) {
100
+ this.left = left;
101
+ }
102
+
103
+ Node<T> getRight() {
104
+ return right;
105
+ }
106
+
107
+ void setRight(Node<T> right) {
108
+ this.right = right;
109
+ }
110
+
111
+ T getData() {
112
+ return data;
113
+ }
114
+
115
+ }
122
116
  }
@@ -53,19 +53,20 @@ And if we then added 1, 5, and 7, it would look like this
53
53
  / \ / \
54
54
  1 3 5 7
55
55
 
56
+ # Running the tests
56
57
 
57
- To run the tests:
58
+ You can run all the tests for an exercise by entering
58
59
 
59
60
  ```sh
60
61
  $ gradle test
61
62
  ```
62
63
 
63
- For more detailed info about the Java track see the [help page](http://exercism.io/languages/java).
64
-
64
+ in your terminal.
65
65
 
66
66
  ## Source
67
67
 
68
68
  Josh Cheek [https://twitter.com/josh_cheek](https://twitter.com/josh_cheek)
69
69
 
70
70
  ## Submitting Incomplete Solutions
71
+
71
72
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,35 @@
1
+ import java.util.List;
2
+
3
+ class BinarySearchTree<T extends Comparable<T>> {
4
+ void insert(T value) {
5
+ throw new UnsupportedOperationException("Delete this statement and write your own implementation.");
6
+ }
7
+
8
+ List<T> getAsSortedList() {
9
+ throw new UnsupportedOperationException("Delete this statement and write your own implementation.");
10
+ }
11
+
12
+ List<T> getAsLevelOrderList() {
13
+ throw new UnsupportedOperationException("Delete this statement and write your own implementation.");
14
+ }
15
+
16
+ Node<T> getRoot() {
17
+ throw new UnsupportedOperationException("Delete this statement and write your own implementation.");
18
+ }
19
+
20
+ static class Node<T> {
21
+
22
+ Node<T> getLeft() {
23
+ throw new UnsupportedOperationException("Delete this statement and write your own implementation.");
24
+ }
25
+
26
+ Node<T> getRight() {
27
+ throw new UnsupportedOperationException("Delete this statement and write your own implementation.");
28
+ }
29
+
30
+ T getData() {
31
+ throw new UnsupportedOperationException("Delete this statement and write your own implementation.");
32
+ }
33
+
34
+ }
35
+ }
@@ -9,39 +9,38 @@ import org.junit.Test;
9
9
  import org.junit.Before;
10
10
 
11
11
  public class BinarySearchTreeTest {
12
- private BinarySearchTree<Integer> binarySearchTree;
13
-
14
- @Before
15
- public void setUp() {
16
- binarySearchTree = new BinarySearchTree<>();
17
- }
18
12
 
19
13
  @Test
20
14
  public void dataIsRetained() {
21
- final int actual = 4;
22
- binarySearchTree.insert(actual);
15
+ BinarySearchTree<Integer> binarySearchTree = new BinarySearchTree<>();
16
+
17
+ final int expected = 4;
18
+ binarySearchTree.insert(expected);
19
+
23
20
  final BinarySearchTree.Node<Integer> root = binarySearchTree.getRoot();
24
21
  assertNotNull(root);
25
- final int expected = root.getData();
22
+
23
+ final int actual = root.getData();
26
24
  assertEquals(expected, actual);
27
25
  }
28
26
 
29
27
  @Ignore("Remove to run test")
30
28
  @Test
31
29
  public void insertsLess() {
32
- final int expectedRoot = 4;
33
- final int expectedLeft = 2;
30
+ BinarySearchTree<Character> binarySearchTree = new BinarySearchTree<>();
31
+ final char expectedRoot = '4';
32
+ final char expectedLeft = '2';
34
33
 
35
34
  binarySearchTree.insert(expectedRoot);
36
35
  binarySearchTree.insert(expectedLeft);
37
36
 
38
- final BinarySearchTree.Node<Integer> root = binarySearchTree.getRoot();
37
+ final BinarySearchTree.Node<Character> root = binarySearchTree.getRoot();
39
38
  assertNotNull(root);
40
- final BinarySearchTree.Node<Integer> left = root.getLeft();
39
+ final BinarySearchTree.Node<Character> left = root.getLeft();
41
40
  assertNotNull(left);
42
41
 
43
- final int actualRoot = root.getData();
44
- final int actualLeft = left.getData();
42
+ final char actualRoot = root.getData();
43
+ final char actualLeft = left.getData();
45
44
  assertEquals(expectedLeft, actualLeft);
46
45
  assertEquals(expectedRoot, actualRoot);
47
46
  }
@@ -49,19 +48,20 @@ public class BinarySearchTreeTest {
49
48
  @Ignore("Remove to run test")
50
49
  @Test
51
50
  public void insertsSame() {
52
- final int expectedRoot = 4;
53
- final int expectedLeft = 4;
51
+ BinarySearchTree<String> binarySearchTree = new BinarySearchTree<>();
52
+ final String expectedRoot = "4";
53
+ final String expectedLeft = "4";
54
54
 
55
55
  binarySearchTree.insert(expectedRoot);
56
56
  binarySearchTree.insert(expectedLeft);
57
57
 
58
- final BinarySearchTree.Node<Integer> root = binarySearchTree.getRoot();
58
+ final BinarySearchTree.Node<String> root = binarySearchTree.getRoot();
59
59
  assertNotNull(root);
60
- final BinarySearchTree.Node<Integer> left = root.getLeft();
60
+ final BinarySearchTree.Node<String> left = root.getLeft();
61
61
  assertNotNull(left);
62
62
 
63
- final int actualRoot = root.getData();
64
- final int actualLeft = left.getData();
63
+ final String actualRoot = root.getData();
64
+ final String actualLeft = left.getData();
65
65
  assertEquals(expectedLeft, actualLeft);
66
66
  assertEquals(expectedRoot, actualRoot);
67
67
  }
@@ -69,6 +69,7 @@ public class BinarySearchTreeTest {
69
69
  @Ignore("Remove to run test")
70
70
  @Test
71
71
  public void insertsRight() {
72
+ BinarySearchTree<Integer> binarySearchTree = new BinarySearchTree<>();
72
73
  final int expectedRoot = 4;
73
74
  final int expectedRight = 5;
74
75
 
@@ -89,35 +90,38 @@ public class BinarySearchTreeTest {
89
90
  @Ignore("Remove to run test")
90
91
  @Test
91
92
  public void createsComplexTree() {
92
- List<Integer> expected = Collections.unmodifiableList(
93
- Arrays.asList(4, 2, 6, 1, 3, 5, 7)
93
+ BinarySearchTree<Character> binarySearchTree = new BinarySearchTree<>();
94
+ List<Character> expected = Collections.unmodifiableList(
95
+ Arrays.asList('4', '2', '6', '1', '3', '5', '7')
94
96
  );
95
97
 
96
- List<Integer> treeData = Collections.unmodifiableList(
97
- Arrays.asList(4, 2, 6, 1, 3, 7, 5)
98
+ List<Character> treeData = Collections.unmodifiableList(
99
+ Arrays.asList('4', '2', '6', '1', '3', '7', '5')
98
100
  );
99
101
  treeData.forEach(binarySearchTree::insert);
100
102
 
101
- List<Integer> actual = binarySearchTree.getAsLevelOrderList();
103
+ List<Character> actual = binarySearchTree.getAsLevelOrderList();
102
104
  assertEquals(expected, actual);
103
105
  }
104
106
 
105
107
  @Ignore("Remove to run test")
106
108
  @Test
107
109
  public void sortsSingleElement() {
108
- List<Integer> expected = Collections.unmodifiableList(
109
- Collections.singletonList(4)
110
+ BinarySearchTree<String> binarySearchTree = new BinarySearchTree<>();
111
+ List<String> expected = Collections.unmodifiableList(
112
+ Collections.singletonList("4")
110
113
  );
111
114
 
112
- binarySearchTree.insert(4);
115
+ binarySearchTree.insert("4");
113
116
 
114
- List<Integer> actual = binarySearchTree.getAsSortedList();
117
+ List<String> actual = binarySearchTree.getAsSortedList();
115
118
  assertEquals(expected, actual);
116
119
  }
117
120
 
118
121
  @Ignore("Remove to run test")
119
122
  @Test
120
123
  public void sortsCollectionOfTwoIfSecondInsertedIsSmallerThanFirst() {
124
+ BinarySearchTree<Integer> binarySearchTree = new BinarySearchTree<>();
121
125
  List<Integer> expected = Collections.unmodifiableList(
122
126
  Arrays.asList(2, 4)
123
127
  );
@@ -132,30 +136,32 @@ public class BinarySearchTreeTest {
132
136
  @Ignore("Remove to run test")
133
137
  @Test
134
138
  public void sortsCollectionOfTwoIfSecondInsertedIsBiggerThanFirst() {
135
- List<Integer> expected = Collections.unmodifiableList(
136
- Arrays.asList(4, 5)
139
+ BinarySearchTree<Character> binarySearchTree = new BinarySearchTree<>();
140
+ List<Character> expected = Collections.unmodifiableList(
141
+ Arrays.asList('4', '5')
137
142
  );
138
143
 
139
- binarySearchTree.insert(4);
140
- binarySearchTree.insert(5);
144
+ binarySearchTree.insert('4');
145
+ binarySearchTree.insert('5');
141
146
 
142
- List<Integer> actual = binarySearchTree.getAsSortedList();
147
+ List<Character> actual = binarySearchTree.getAsSortedList();
143
148
  assertEquals(expected, actual);
144
149
  }
145
150
 
146
151
  @Ignore("Remove to run test")
147
152
  @Test
148
153
  public void iteratesOverComplexTree() {
149
- List<Integer> expected = Collections.unmodifiableList(
150
- Arrays.asList(1, 2, 3, 4, 5, 6, 7)
154
+ BinarySearchTree<String> binarySearchTree = new BinarySearchTree<>();
155
+ List<String> expected = Collections.unmodifiableList(
156
+ Arrays.asList("1", "2", "3", "4", "5", "6", "7")
151
157
  );
152
158
 
153
- List<Integer> treeData = Collections.unmodifiableList(
154
- Arrays.asList(4, 2, 1, 3, 6, 7, 5)
159
+ List<String> treeData = Collections.unmodifiableList(
160
+ Arrays.asList("4", "2", "1", "3", "6", "7", "5")
155
161
  );
156
162
  treeData.forEach(binarySearchTree::insert);
157
163
 
158
- List<Integer> actual = binarySearchTree.getAsSortedList();
164
+ List<String> actual = binarySearchTree.getAsSortedList();
159
165
  assertEquals(expected, actual);
160
166
  }
161
167
  }