trackler 2.2.1.13 → 2.2.1.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/change/canonical-data.json +8 -1
  4. data/tracks/csharp/config.json +25 -26
  5. data/tracks/csharp/docs/SNIPPET.txt +7 -0
  6. data/tracks/csharp/exercises/house/Example.cs +5 -5
  7. data/tracks/csharp/exercises/house/House.cs +6 -1
  8. data/tracks/csharp/exercises/house/HouseTest.cs +208 -5
  9. data/tracks/csharp/exercises/phone-number/Example.cs +2 -1
  10. data/tracks/csharp/exercises/phone-number/PhoneNumberTest.cs +8 -7
  11. data/tracks/csharp/exercises/rna-transcription/Example.cs +2 -1
  12. data/tracks/csharp/exercises/rna-transcription/RnaTranscriptionTest.cs +4 -3
  13. data/tracks/csharp/exercises/say/SayTest.cs +20 -24
  14. data/tracks/csharp/exercises/sieve/Example.cs +6 -0
  15. data/tracks/csharp/exercises/sieve/SieveTest.cs +25 -17
  16. data/tracks/csharp/exercises/space-age/SpaceAgeTest.cs +19 -24
  17. data/tracks/csharp/exercises/sum-of-multiples/Example.cs +1 -1
  18. data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiples.cs +1 -1
  19. data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiplesTest.cs +48 -16
  20. data/tracks/csharp/generators/Exercises/House.cs +16 -0
  21. data/tracks/csharp/generators/Exercises/PhoneNumber.cs +3 -1
  22. data/tracks/csharp/generators/Exercises/RnaTranscription.cs +11 -1
  23. data/tracks/csharp/generators/Exercises/Say.cs +22 -0
  24. data/tracks/csharp/generators/Exercises/Sieve.cs +17 -0
  25. data/tracks/csharp/generators/Exercises/SpaceAge.cs +25 -0
  26. data/tracks/csharp/generators/Exercises/SumOfMultiples.cs +22 -0
  27. data/tracks/csharp/generators/Output/ValueFormatter.cs +4 -0
  28. data/tracks/dart/docs/ABOUT.md +21 -0
  29. data/tracks/ecmascript/README.md +1 -1
  30. data/tracks/ecmascript/config.json +15 -0
  31. data/tracks/ecmascript/exercises/proverb/README.md +63 -0
  32. data/tracks/ecmascript/exercises/proverb/example.js +23 -0
  33. data/tracks/ecmascript/exercises/proverb/package.json +69 -0
  34. data/tracks/ecmascript/exercises/proverb/proverb.spec.js +70 -0
  35. data/tracks/go/config.json +226 -226
  36. data/tracks/groovy/config.json +11 -0
  37. data/tracks/groovy/exercises/two-fer/Example.groovy +6 -0
  38. data/tracks/groovy/exercises/two-fer/README.md +62 -0
  39. data/tracks/groovy/exercises/two-fer/TwoFer.groovy +6 -0
  40. data/tracks/groovy/exercises/two-fer/TwoFerSpec.groovy +24 -0
  41. data/tracks/java/.travis.yml +2 -2
  42. data/tracks/java/bin/journey-test.sh +44 -1
  43. data/tracks/java/bin/run-journey-test-from-ci.sh +28 -0
  44. data/tracks/java/{docs/EXERCISE_README_INSERT.md → config/exercise-readme-insert.md} +0 -0
  45. data/tracks/java/exercises/bank-account/{HINTS.md → .meta/hints.md} +0 -0
  46. data/tracks/java/exercises/change/src/test/java/ChangeCalculatorTest.java +27 -2
  47. data/tracks/java/exercises/clock/{HINTS.md → .meta/hints.md} +0 -0
  48. data/tracks/java/exercises/hamming/{HINTS.md → .meta/hints.md} +0 -0
  49. data/tracks/java/exercises/hello-world/{HINTS.md → .meta/hints.md} +0 -0
  50. data/tracks/java/exercises/isogram/{HINTS.md → .meta/hints.md} +0 -0
  51. data/tracks/java/exercises/list-ops/{HINTS.md → .meta/hints.md} +0 -0
  52. data/tracks/java/exercises/pig-latin/src/example/java/PigLatinTranslator.java +17 -20
  53. data/tracks/java/exercises/simple-cipher/{HINTS.md → .meta/hints.md} +0 -0
  54. data/tracks/java/exercises/two-fer/{HINTS.md → .meta/hints.md} +0 -0
  55. data/tracks/kotlin/{docs/EXERCISE_README_INSERT.md → config/exercise-readme-insert.md} +0 -0
  56. data/tracks/kotlin/exercises/accumulate/README.md +1 -4
  57. data/tracks/kotlin/exercises/acronym/README.md +1 -1
  58. data/tracks/kotlin/exercises/all-your-base/README.md +1 -1
  59. data/tracks/kotlin/exercises/allergies/README.md +1 -1
  60. data/tracks/kotlin/exercises/anagram/README.md +1 -1
  61. data/tracks/kotlin/exercises/atbash-cipher/README.md +1 -1
  62. data/tracks/kotlin/exercises/bank-account/README.md +1 -1
  63. data/tracks/kotlin/exercises/beer-song/README.md +1 -1
  64. data/tracks/kotlin/exercises/binary-search/README.md +1 -1
  65. data/tracks/kotlin/exercises/binary/README.md +1 -1
  66. data/tracks/kotlin/exercises/bob/README.md +1 -1
  67. data/tracks/kotlin/exercises/bracket-push/README.md +1 -1
  68. data/tracks/kotlin/exercises/change/README.md +1 -1
  69. data/tracks/kotlin/exercises/clock/README.md +1 -1
  70. data/tracks/kotlin/exercises/collatz-conjecture/README.md +1 -1
  71. data/tracks/kotlin/exercises/complex-numbers/README.md +1 -1
  72. data/tracks/kotlin/exercises/diamond/README.md +1 -1
  73. data/tracks/kotlin/exercises/difference-of-squares/README.md +1 -1
  74. data/tracks/kotlin/exercises/etl/README.md +1 -1
  75. data/tracks/kotlin/exercises/flatten-array/README.md +1 -1
  76. data/tracks/kotlin/exercises/gigasecond/README.md +1 -1
  77. data/tracks/kotlin/exercises/grade-school/README.md +1 -1
  78. data/tracks/kotlin/exercises/grains/README.md +1 -1
  79. data/tracks/kotlin/exercises/hamming/README.md +1 -1
  80. data/tracks/kotlin/exercises/hello-world/README.md +1 -1
  81. data/tracks/kotlin/exercises/hexadecimal/README.md +1 -1
  82. data/tracks/kotlin/exercises/isogram/README.md +1 -1
  83. data/tracks/kotlin/exercises/largest-series-product/README.md +1 -1
  84. data/tracks/kotlin/exercises/leap/README.md +1 -1
  85. data/tracks/kotlin/exercises/linked-list/README.md +1 -1
  86. data/tracks/kotlin/exercises/list-ops/{HINTS.md → .meta/hints.md} +0 -0
  87. data/tracks/kotlin/exercises/list-ops/README.md +1 -1
  88. data/tracks/kotlin/exercises/luhn/README.md +1 -1
  89. data/tracks/kotlin/exercises/minesweeper/README.md +1 -1
  90. data/tracks/kotlin/exercises/nth-prime/README.md +1 -1
  91. data/tracks/kotlin/exercises/nucleotide-count/README.md +1 -1
  92. data/tracks/kotlin/exercises/pangram/README.md +1 -1
  93. data/tracks/kotlin/exercises/pascals-triangle/README.md +1 -1
  94. data/tracks/kotlin/exercises/perfect-numbers/README.md +1 -1
  95. data/tracks/kotlin/exercises/phone-number/README.md +1 -1
  96. data/tracks/kotlin/exercises/pig-latin/README.md +1 -1
  97. data/tracks/kotlin/exercises/prime-factors/README.md +1 -1
  98. data/tracks/kotlin/exercises/raindrops/README.md +1 -1
  99. data/tracks/kotlin/exercises/react/README.md +1 -1
  100. data/tracks/kotlin/exercises/rna-transcription/README.md +1 -1
  101. data/tracks/kotlin/exercises/robot-name/README.md +1 -1
  102. data/tracks/kotlin/exercises/robot-simulator/README.md +1 -1
  103. data/tracks/kotlin/exercises/roman-numerals/README.md +1 -1
  104. data/tracks/kotlin/exercises/saddle-points/README.md +1 -1
  105. data/tracks/kotlin/exercises/scrabble-score/README.md +1 -1
  106. data/tracks/kotlin/exercises/secret-handshake/README.md +1 -1
  107. data/tracks/kotlin/exercises/series/README.md +1 -1
  108. data/tracks/kotlin/exercises/sieve/README.md +1 -1
  109. data/tracks/kotlin/exercises/simple-cipher/README.md +2 -2
  110. data/tracks/kotlin/exercises/space-age/README.md +3 -2
  111. data/tracks/kotlin/exercises/spiral-matrix/README.md +1 -1
  112. data/tracks/kotlin/exercises/strain/README.md +1 -1
  113. data/tracks/kotlin/exercises/sublist/README.md +1 -1
  114. data/tracks/kotlin/exercises/sum-of-multiples/README.md +1 -1
  115. data/tracks/kotlin/exercises/triangle/README.md +1 -1
  116. data/tracks/kotlin/exercises/word-count/README.md +1 -1
  117. data/tracks/pony/exercises/atbash-cipher/example.pony +4 -3
  118. data/tracks/pony/exercises/beer-song/example.pony +10 -9
  119. data/tracks/pony/exercises/bob/example.pony +1 -1
  120. data/tracks/pony/exercises/difference-of-squares/example.pony +2 -2
  121. data/tracks/pony/exercises/hamming/example.pony +1 -1
  122. data/tracks/pony/exercises/hamming/test.pony +2 -2
  123. data/tracks/pony/exercises/leap/example.pony +1 -1
  124. data/tracks/pony/exercises/pascals-triangle/example.pony +2 -2
  125. data/tracks/pony/exercises/rna-transcription/test.pony +2 -2
  126. data/tracks/pony/exercises/roman-numerals/test.pony +2 -2
  127. data/tracks/python/config.json +22 -0
  128. data/tracks/python/docs/ABOUT.md +11 -3
  129. data/tracks/python/exercises/collatz-conjecture/README.md +61 -0
  130. data/tracks/python/exercises/collatz-conjecture/collatz_conjecture.py +2 -0
  131. data/tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py +32 -0
  132. data/tracks/python/exercises/collatz-conjecture/example.py +17 -0
  133. data/tracks/python/exercises/isogram/isogram.py +1 -1
  134. data/tracks/python/exercises/isogram/isogram_test.py +3 -0
  135. data/tracks/python/exercises/scale-generator/example.py +2 -0
  136. data/tracks/python/exercises/scale-generator/scale_generator_test.py +4 -0
  137. data/tracks/python/exercises/two-fer/README.md +29 -0
  138. data/tracks/python/exercises/two-fer/example.py +5 -0
  139. data/tracks/python/exercises/two-fer/two_fer.py +2 -0
  140. data/tracks/python/exercises/two-fer/two_fer_test.py +18 -0
  141. data/tracks/r/config/maintainers.json +2 -2
  142. data/tracks/ruby/config.json +2 -1
  143. data/tracks/scala/exercises/minesweeper/src/test/scala/MinesweeperTest.scala +85 -36
  144. data/tracks/scala/testgen/src/main/scala/MinesweeperTestGenerator.scala +15 -0
  145. data/tracks/vimscript/README.md +1 -1
  146. metadata +37 -13
@@ -28,7 +28,7 @@ Binary is similar, but uses powers of 2 rather than powers of 10.
28
28
 
29
29
  So: `101 => 1*2^2 + 0*2^1 + 1*2^0 => 1*4 + 0*2 + 1*1 => 4 + 1 => 5 base 10`.
30
30
 
31
-
31
+
32
32
 
33
33
  ## Source
34
34
 
@@ -11,7 +11,7 @@ anything.
11
11
 
12
12
  He answers 'Whatever.' to anything else.
13
13
 
14
-
14
+
15
15
 
16
16
  ## Source
17
17
 
@@ -3,7 +3,7 @@
3
3
  Given a string containing brackets `[]`, braces `{}` and parentheses `()`,
4
4
  verify that all the pairs are matched and nested correctly.
5
5
 
6
-
6
+
7
7
 
8
8
  ## Source
9
9
 
@@ -16,7 +16,7 @@ that the sum of the coins' value would equal the correct amount of change.
16
16
  - Can you ask for negative change?
17
17
  - Can you ask for a change value smaller than the smallest coin value?
18
18
 
19
-
19
+
20
20
 
21
21
  ## Source
22
22
 
@@ -6,7 +6,7 @@ You should be able to add and subtract minutes to it.
6
6
 
7
7
  Two clocks that represent the same time should be equal to each other.
8
8
 
9
-
9
+
10
10
 
11
11
  ## Source
12
12
 
@@ -26,7 +26,7 @@ Starting with n = 12, the steps would be as follows:
26
26
  Resulting in 9 steps. So for input n = 12, the return value would be 9.
27
27
 
28
28
 
29
-
29
+
30
30
 
31
31
  ## Source
32
32
 
@@ -4,7 +4,7 @@ A complex number is a number in the form `a + b * i` where `a` and `b` are real
4
4
 
5
5
  Assume the programming language you are using does not have an implementation of complex numbers.
6
6
 
7
-
7
+
8
8
 
9
9
  ## Source
10
10
 
@@ -52,7 +52,7 @@ E·······E
52
52
  ····A····
53
53
  ```
54
54
 
55
-
55
+
56
56
 
57
57
  ## Source
58
58
 
@@ -12,7 +12,7 @@ Hence the difference between the square of the sum of the first
12
12
  ten natural numbers and the sum of the squares of the first ten
13
13
  natural numbers is 3025 - 385 = 2640.
14
14
 
15
-
15
+
16
16
 
17
17
  ## Source
18
18
 
@@ -44,7 +44,7 @@ variety of languages, each with its own unique scoring table. For
44
44
  example, an "E" is scored at 2 in the Māori-language version of the
45
45
  game while being scored at 4 in the Hawaiian-language version.
46
46
 
47
-
47
+
48
48
 
49
49
  ## Source
50
50
 
@@ -11,7 +11,7 @@ input: [1,[2,3,null,4],[null],5]
11
11
  output: [1,2,3,4,5]
12
12
 
13
13
 
14
-
14
+
15
15
 
16
16
  ## Source
17
17
 
@@ -4,7 +4,7 @@ Calculate the moment when someone has lived for 10^9 seconds.
4
4
 
5
5
  A gigasecond is 10^9 (1,000,000,000) seconds.
6
6
 
7
-
7
+
8
8
 
9
9
  ## Source
10
10
 
@@ -35,7 +35,7 @@ are some additional things you could try:
35
35
  Then please share your thoughts in a comment on the submission. Did this
36
36
  experiment make the code better? Worse? Did you learn anything from it?
37
37
 
38
-
38
+
39
39
 
40
40
  ## Source
41
41
 
@@ -27,7 +27,7 @@ are some additional things you could try:
27
27
  Then please share your thoughts in a comment on the submission. Did this
28
28
  experiment make the code better? Worse? Did you learn anything from it?
29
29
 
30
-
30
+
31
31
 
32
32
  ## Source
33
33
 
@@ -35,7 +35,7 @@ The Hamming distance is only defined for sequences of equal length. This means
35
35
  that based on the definition, each language could deal with getting sequences
36
36
  of equal length differently.
37
37
 
38
-
38
+
39
39
 
40
40
  ## Source
41
41
 
@@ -14,7 +14,7 @@ The objectives are simple:
14
14
 
15
15
  If everything goes well, you will be ready to fetch your first real exercise.
16
16
 
17
-
17
+
18
18
 
19
19
  ## Source
20
20
 
@@ -7,7 +7,7 @@ teal: 008080, navy: 000080).
7
7
 
8
8
  The program should handle invalid hexadecimal strings.
9
9
 
10
-
10
+
11
11
 
12
12
  ## Source
13
13
 
@@ -12,7 +12,7 @@ Examples of isograms:
12
12
 
13
13
  The word *isograms*, however, is not an isogram, because the s repeats.
14
14
 
15
-
15
+
16
16
 
17
17
  ## Source
18
18
 
@@ -13,7 +13,7 @@ in the input; the digits need not be *numerically consecutive*.
13
13
  For the input `'73167176531330624919225119674426574742355349194934'`,
14
14
  the largest product for a series of 6 digits is 23520.
15
15
 
16
-
16
+
17
17
 
18
18
  ## Source
19
19
 
@@ -26,7 +26,7 @@ phenomenon, go watch [this youtube video][video].
26
26
 
27
27
  [video]: http://www.youtube.com/watch?v=xX96xng7sAE
28
28
 
29
-
29
+
30
30
 
31
31
  ## Source
32
32
 
@@ -27,7 +27,7 @@ empty list.
27
27
 
28
28
  If you want to know more about linked lists, check [Wikipedia](https://en.wikipedia.org/wiki/Linked_list).
29
29
 
30
-
30
+
31
31
 
32
32
  ## Source
33
33
 
@@ -13,7 +13,7 @@ The tests for this exercise require you to use extensions, a mechanism for addin
13
13
  The `customFoldLeft` and `customFoldRight` methods are "fold" functions, which is a concept well-known in the functional programming world, but less so in the object-oriented one. If you'd like more background information, check out this [fold](https://en.wikipedia.org/wiki/Fold_(higher-order_function)) page.
14
14
 
15
15
 
16
-
16
+
17
17
 
18
18
 
19
19
  ## Submitting Incomplete Solutions
@@ -64,7 +64,7 @@ Sum the digits
64
64
 
65
65
  57 is not evenly divisible by 10, so this number is not valid.
66
66
 
67
-
67
+
68
68
 
69
69
  ## Source
70
70
 
@@ -26,7 +26,7 @@ into this:
26
26
  | 111 |
27
27
  +-----+
28
28
 
29
-
29
+
30
30
 
31
31
 
32
32
  ## Submitting Incomplete Solutions
@@ -8,7 +8,7 @@ the 6th prime is 13.
8
8
  If your language provides methods in the standard library to deal with prime
9
9
  numbers, pretend they don't exist and implement them yourself.
10
10
 
11
-
11
+
12
12
 
13
13
  ## Source
14
14
 
@@ -26,7 +26,7 @@ DNA contains four types of them: adenine (`A`), cytosine (`C`), guanine
26
26
  RNA contains a slightly different set of nucleotides, but we don't care
27
27
  about that for now.
28
28
 
29
-
29
+
30
30
 
31
31
  ## Source
32
32
 
@@ -8,7 +8,7 @@ The best known English pangram is:
8
8
  The alphabet used consists of ASCII letters `a` to `z`, inclusive, and is case
9
9
  insensitive. Input will not contain non-ASCII symbols.
10
10
 
11
-
11
+
12
12
 
13
13
  ## Source
14
14
 
@@ -14,7 +14,7 @@ the right and left of the current position in the previous row.
14
14
  # ... etc
15
15
  ```
16
16
 
17
-
17
+
18
18
 
19
19
  ## Source
20
20
 
@@ -17,7 +17,7 @@ The Greek mathematician [Nicomachus](https://en.wikipedia.org/wiki/Nicomachus) d
17
17
 
18
18
  Implement a way to determine whether a given number is **perfect**. Depending on your language track, you may also need to implement a way to determine whether a given number is **abundant** or **deficient**.
19
19
 
20
-
20
+
21
21
 
22
22
  ## Source
23
23
 
@@ -27,7 +27,7 @@ should all produce the output
27
27
 
28
28
  **Note:** As this exercise only deals with telephone numbers used in NANP-countries, only 1 is considered a valid country code.
29
29
 
30
-
30
+
31
31
 
32
32
  ## Source
33
33
 
@@ -17,7 +17,7 @@ variants too.
17
17
 
18
18
  See <http://en.wikipedia.org/wiki/Pig_latin> for more details.
19
19
 
20
-
20
+
21
21
 
22
22
  ## Source
23
23
 
@@ -29,7 +29,7 @@ You can check this yourself:
29
29
  - = 60
30
30
  - Success!
31
31
 
32
-
32
+
33
33
 
34
34
  ## Source
35
35
 
@@ -17,7 +17,7 @@ Convert a number to a string, the contents of which depend on the number's facto
17
17
  - 34 has four factors: 1, 2, 17, and 34.
18
18
  - In raindrop-speak, this would be "34".
19
19
 
20
-
20
+
21
21
 
22
22
  ## Source
23
23
 
@@ -15,7 +15,7 @@ In addition, compute cells should allow for registering change notification
15
15
  callbacks. Call a cell’s callbacks when the cell’s value in a new stable
16
16
  state has changed from the previous stable state.
17
17
 
18
-
18
+
19
19
 
20
20
 
21
21
  ## Submitting Incomplete Solutions
@@ -18,7 +18,7 @@ each nucleotide with its complement:
18
18
  * `T` -> `A`
19
19
  * `A` -> `U`
20
20
 
21
-
21
+
22
22
 
23
23
  ## Source
24
24
 
@@ -15,7 +15,7 @@ The names must be random: they should not follow a predictable sequence.
15
15
  Random names means a risk of collisions. Your solution must ensure that
16
16
  every existing robot has a unique name.
17
17
 
18
-
18
+
19
19
 
20
20
  ## Source
21
21
 
@@ -27,7 +27,7 @@ direction it is pointing.
27
27
  - Say a robot starts at {7, 3} facing north. Then running this stream
28
28
  of instructions should leave it at {9, 4} facing west.
29
29
 
30
-
30
+
31
31
 
32
32
  ## Source
33
33
 
@@ -42,7 +42,7 @@ In Roman numerals 1990 is MCMXC:
42
42
 
43
43
  See also: http://www.novaroma.org/via_romana/numbers.html
44
44
 
45
-
45
+
46
46
 
47
47
  ## Source
48
48
 
@@ -26,7 +26,7 @@ saddle points for any given matrix.
26
26
  Note that you may find other definitions of matrix saddle points online,
27
27
  but the tests for this exercise follow the above unambiguous definition.
28
28
 
29
-
29
+
30
30
 
31
31
  ## Source
32
32
 
@@ -37,7 +37,7 @@ And to total:
37
37
  - You can play a double or a triple letter.
38
38
  - You can play a double or a triple word.
39
39
 
40
-
40
+
41
41
 
42
42
  ## Source
43
43
 
@@ -28,7 +28,7 @@ Given the input 19, the function would return the array
28
28
  Notice that the addition of 16 (10000 in binary)
29
29
  has caused the array to be reversed.
30
30
 
31
-
31
+
32
32
 
33
33
  ## Source
34
34
 
@@ -20,7 +20,7 @@ whatever you get.
20
20
  Note that these series are only required to occupy *adjacent positions*
21
21
  in the input; the digits need not be *numerically consecutive*.
22
22
 
23
-
23
+
24
24
 
25
25
  ## Source
26
26
 
@@ -27,7 +27,7 @@ Notice that this is a very specific algorithm, and the tests don't check
27
27
  that you've implemented the algorithm, only that you've come up with the
28
28
  correct list of primes.
29
29
 
30
-
30
+
31
31
 
32
32
  ## Source
33
33
 
@@ -47,7 +47,7 @@ Given the key "aaaaaaaaaaaaaaaaaa", encoding the string "iamapandabear"
47
47
  would return the original "iamapandabear".
48
48
 
49
49
  Given the key "ddddddddddddddddd", encoding our string "iamapandabear"
50
- would return the obscured "lpdsdqgdehdu"
50
+ would return the obscured "ldpdsdqgdehdu"
51
51
 
52
52
  In the example above, we've set a = 0 for the key value. So when the
53
53
  plaintext is added to the key, we end up with the same message coming
@@ -83,7 +83,7 @@ on Wikipedia][dh] for one of the first implementations of this scheme.
83
83
  [1]: https://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Caesar_cipher_left_shift_of_3.svg/320px-Caesar_cipher_left_shift_of_3.svg.png
84
84
  [dh]: http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange
85
85
 
86
-
86
+
87
87
 
88
88
  ## Source
89
89