trackler 2.2.1.49 → 2.2.1.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. checksums.yaml +4 -4
  2. data/bin/verify-configs +1 -1
  3. data/lib/trackler/version.rb +1 -1
  4. data/problem-specifications/exercises/kindergarten-garden/canonical-data.json +0 -37
  5. data/tracks/c/exercises/allergies/test/test_allergies.c +41 -41
  6. data/tracks/common-lisp/config.json +266 -252
  7. data/tracks/common-lisp/config/maintainers.json +23 -23
  8. data/tracks/common-lisp/exercises/allergies/README.md +0 -1
  9. data/tracks/common-lisp/exercises/atbash-cipher/README.md +2 -1
  10. data/tracks/common-lisp/exercises/beer-song/README.md +1 -1
  11. data/tracks/common-lisp/exercises/binary/README.md +2 -0
  12. data/tracks/common-lisp/exercises/collatz-conjecture/README.md +4 -8
  13. data/tracks/common-lisp/exercises/crypto-square/README.md +4 -4
  14. data/tracks/common-lisp/exercises/etl/README.md +2 -0
  15. data/tracks/common-lisp/exercises/grade-school/README.md +0 -1
  16. data/tracks/common-lisp/exercises/grains/README.md +0 -1
  17. data/tracks/common-lisp/exercises/leap/README.md +1 -1
  18. data/tracks/common-lisp/exercises/meetup/README.md +1 -2
  19. data/tracks/common-lisp/exercises/nucleotide-count/README.md +8 -22
  20. data/tracks/common-lisp/exercises/pascals-triangle/README.md +1 -1
  21. data/tracks/common-lisp/exercises/perfect-numbers/README.md +3 -4
  22. data/tracks/common-lisp/exercises/phone-number/README.md +3 -2
  23. data/tracks/common-lisp/exercises/roman-numerals/README.md +1 -1
  24. data/tracks/common-lisp/exercises/scrabble-score/README.md +3 -1
  25. data/tracks/common-lisp/exercises/space-age/README.md +2 -1
  26. data/tracks/common-lisp/exercises/sublist/README.md +65 -0
  27. data/tracks/common-lisp/exercises/sublist/example.lisp +24 -0
  28. data/tracks/common-lisp/exercises/sublist/sublist-test.lisp +87 -0
  29. data/tracks/common-lisp/exercises/sublist/sublist.lisp +8 -0
  30. data/tracks/common-lisp/exercises/triangle/README.md +9 -6
  31. data/tracks/common-lisp/exercises/trinary/README.md +1 -1
  32. data/tracks/common-lisp/exercises/word-count/README.md +1 -2
  33. data/tracks/ecmascript/config.json +30 -0
  34. data/tracks/ecmascript/exercises/bowling/README.md +80 -0
  35. data/tracks/ecmascript/exercises/bowling/bowling.spec.js +159 -0
  36. data/tracks/ecmascript/exercises/bowling/example.js +67 -0
  37. data/tracks/ecmascript/exercises/bowling/package.json +71 -0
  38. data/tracks/ecmascript/exercises/two-fer/README.md +47 -0
  39. data/tracks/ecmascript/exercises/two-fer/example.js +4 -0
  40. data/tracks/ecmascript/exercises/two-fer/package.json +69 -0
  41. data/tracks/ecmascript/exercises/two-fer/two-fer.spec.js +18 -0
  42. data/tracks/fsharp/exercises/pascals-triangle/Example.fs +12 -8
  43. data/tracks/fsharp/exercises/pascals-triangle/PascalsTriangle.fs +2 -2
  44. data/tracks/fsharp/exercises/pascals-triangle/PascalsTriangleTest.fs +15 -12
  45. data/tracks/fsharp/generators/Generators.fs +19 -0
  46. data/tracks/fsharp/generators/Templates/_AssertThrows.liquid +1 -0
  47. data/tracks/java/docs/ABOUT.md +13 -31
  48. data/tracks/java/exercises/bracket-push/.meta/version +1 -1
  49. data/tracks/java/exercises/bracket-push/src/test/java/BracketCheckerTest.java +7 -1
  50. data/tracks/java/exercises/collatz-conjecture/.meta/version +1 -1
  51. data/tracks/java/exercises/etl/README.md +1 -1
  52. data/tracks/java/exercises/ocr-numbers/README.md +1 -1
  53. data/tracks/java/exercises/pascals-triangle/README.md +1 -1
  54. data/tracks/java/exercises/perfect-numbers/.meta/version +1 -1
  55. data/tracks/java/exercises/rna-transcription/README.md +1 -1
  56. data/tracks/java/exercises/secret-handshake/.meta/version +1 -1
  57. data/tracks/java/exercises/secret-handshake/src/test/java/HandshakeCalculatorTest.java +1 -9
  58. data/tracks/java/scripts/canonical_data_check.sh +104 -0
  59. data/tracks/javascript/exercises/twelve-days/example.js +23 -25
  60. data/tracks/julia/.travis.yml +1 -0
  61. data/tracks/kotlin/exercises/all-your-base/.meta/version +1 -0
  62. data/tracks/kotlin/exercises/all-your-base/src/test/kotlin/BaseConverterTest.kt +0 -3
  63. data/tracks/kotlin/exercises/change/.meta/version +1 -0
  64. data/tracks/kotlin/exercises/change/src/test/kotlin/ChangeCalculatorTest.kt +0 -3
  65. data/tracks/kotlin/exercises/clock/.meta/version +1 -0
  66. data/tracks/kotlin/exercises/clock/src/test/kotlin/ClockAddTest.kt +1 -4
  67. data/tracks/kotlin/exercises/clock/src/test/kotlin/ClockCreationTest.kt +1 -4
  68. data/tracks/kotlin/exercises/clock/src/test/kotlin/ClockEqualTest.kt +1 -4
  69. data/tracks/kotlin/exercises/collatz-conjecture/.meta/version +1 -0
  70. data/tracks/kotlin/exercises/collatz-conjecture/src/test/kotlin/CollatzCalculatorTest.kt +0 -3
  71. data/tracks/kotlin/exercises/complex-numbers/.meta/version +1 -0
  72. data/tracks/kotlin/exercises/complex-numbers/src/test/kotlin/ComplexNumberTest.kt +0 -3
  73. data/tracks/kotlin/exercises/diamond/.meta/version +1 -0
  74. data/tracks/kotlin/exercises/diamond/src/test/kotlin/DiamondPrinterTest.kt +0 -3
  75. data/tracks/kotlin/exercises/etl/README.md +1 -1
  76. data/tracks/kotlin/exercises/forth/.meta/version +1 -0
  77. data/tracks/kotlin/exercises/forth/src/test/kotlin/ForthEvaluatorTest.kt +0 -3
  78. data/tracks/kotlin/exercises/grains/.meta/version +1 -0
  79. data/tracks/kotlin/exercises/grains/src/test/kotlin/BoardTest.kt +0 -3
  80. data/tracks/kotlin/exercises/hamming/.meta/version +1 -0
  81. data/tracks/kotlin/exercises/hamming/src/test/kotlin/HammingTest.kt +0 -3
  82. data/tracks/kotlin/exercises/list-ops/.meta/version +1 -0
  83. data/tracks/kotlin/exercises/list-ops/src/test/kotlin/ListExtensionsTest.kt +0 -3
  84. data/tracks/kotlin/exercises/meetup/.meta/version +1 -0
  85. data/tracks/kotlin/exercises/meetup/src/test/kotlin/MeetupTest.kt +0 -3
  86. data/tracks/kotlin/exercises/minesweeper/.meta/version +1 -0
  87. data/tracks/kotlin/exercises/minesweeper/src/test/kotlin/MinesweeperBoardTest.kt +0 -3
  88. data/tracks/kotlin/exercises/pangram/.meta/version +1 -0
  89. data/tracks/kotlin/exercises/pangram/src/test/kotlin/PangramTest.kt +0 -3
  90. data/tracks/kotlin/exercises/pascals-triangle/README.md +1 -1
  91. data/tracks/kotlin/exercises/prime-factors/.meta/version +1 -0
  92. data/tracks/kotlin/exercises/prime-factors/src/test/kotlin/PrimeFactorCalculatorTest.kt +0 -3
  93. data/tracks/kotlin/exercises/rna-transcription/.meta/version +1 -0
  94. data/tracks/kotlin/exercises/rna-transcription/README.md +1 -1
  95. data/tracks/kotlin/exercises/rna-transcription/src/test/kotlin/RnaTranscriptionTest.kt +0 -3
  96. data/tracks/kotlin/exercises/robot-simulator/.meta/version +1 -0
  97. data/tracks/kotlin/exercises/robot-simulator/src/test/kotlin/RobotTest.kt +0 -3
  98. data/tracks/kotlin/exercises/rotational-cipher/.meta/version +1 -0
  99. data/tracks/kotlin/exercises/rotational-cipher/src/test/kotlin/RotationalCipherTest.kt +0 -3
  100. data/tracks/kotlin/exercises/saddle-points/.meta/version +1 -0
  101. data/tracks/kotlin/exercises/saddle-points/src/test/kotlin/MatrixTest.kt +0 -3
  102. data/tracks/kotlin/exercises/say/.meta/version +1 -0
  103. data/tracks/kotlin/exercises/say/src/test/kotlin/NumberSpellerTest.kt +0 -3
  104. data/tracks/kotlin/exercises/secret-handshake/.meta/version +1 -0
  105. data/tracks/kotlin/exercises/secret-handshake/src/test/kotlin/HandshakeCalculatorTest.kt +0 -3
  106. data/tracks/kotlin/exercises/spiral-matrix/.meta/version +1 -0
  107. data/tracks/kotlin/exercises/spiral-matrix/src/test/kotlin/SpiralMatrixTest.kt +0 -3
  108. data/tracks/kotlin/exercises/sublist/.meta/version +1 -0
  109. data/tracks/kotlin/exercises/sublist/src/test/kotlin/SublistTest.kt +0 -3
  110. data/tracks/kotlin/scripts/canonical_data_check.sh +104 -0
  111. data/tracks/perl6/exercises/accumulate/accumulate.t +2 -3
  112. data/tracks/perl6/exercises/all-your-base/all-your-base.t +17 -18
  113. data/tracks/perl6/exercises/allergies/allergies.t +17 -18
  114. data/tracks/perl6/exercises/anagram/anagram.t +17 -18
  115. data/tracks/perl6/exercises/atbash-cipher/atbash-cipher.t +17 -18
  116. data/tracks/perl6/exercises/bob/bob.t +20 -22
  117. data/tracks/perl6/exercises/bob/example.yaml +1 -2
  118. data/tracks/perl6/exercises/clock/clock.t +17 -18
  119. data/tracks/perl6/exercises/flatten-array/flatten-array.t +17 -18
  120. data/tracks/perl6/exercises/grade-school/grade-school.t +2 -3
  121. data/tracks/perl6/exercises/grains/grains.t +17 -18
  122. data/tracks/perl6/exercises/hello-world/example.yaml +1 -2
  123. data/tracks/perl6/exercises/hello-world/hello-world.t +20 -22
  124. data/tracks/perl6/exercises/leap/leap.t +17 -18
  125. data/tracks/perl6/exercises/linked-list/linked-list.t +2 -3
  126. data/tracks/perl6/exercises/luhn/luhn.t +17 -18
  127. data/tracks/perl6/exercises/phone-number/phone-number.t +17 -18
  128. data/tracks/perl6/exercises/raindrops/raindrops.t +17 -18
  129. data/tracks/perl6/exercises/rna-transcription/rna-transcription.t +17 -18
  130. data/tracks/perl6/exercises/robot-name/robot-name.t +2 -3
  131. data/tracks/perl6/exercises/scrabble-score/scrabble-score.t +17 -18
  132. data/tracks/perl6/exercises/space-age/space-age.t +17 -18
  133. data/tracks/perl6/exercises/word-count/word-count.t +17 -18
  134. data/tracks/perl6/exercises/wordy/wordy.t +17 -18
  135. data/tracks/perl6/templates/test.mustache +9 -10
  136. data/tracks/purescript/config.json +11 -0
  137. data/tracks/purescript/exercises/rna-transcription/README.md +25 -0
  138. data/tracks/purescript/exercises/rna-transcription/bower.json +26 -0
  139. data/tracks/purescript/exercises/rna-transcription/examples/src/RNATranscription.purs +18 -0
  140. data/tracks/purescript/exercises/rna-transcription/src/RNATranscription.purs +3 -0
  141. data/tracks/purescript/exercises/rna-transcription/test/Main.purs +48 -0
  142. data/tracks/python/exercises/variable-length-quantity/example.py +6 -6
  143. data/tracks/python/exercises/variable-length-quantity/variable_length_quantity.py +2 -2
  144. data/tracks/ruby/config.json +6 -0
  145. data/tracks/ruby/exercises/complex-numbers/.meta/.version +1 -0
  146. data/tracks/ruby/exercises/complex-numbers/.meta/generator/complex_numbers_case.rb +44 -0
  147. data/tracks/ruby/exercises/complex-numbers/.meta/solutions/complex_numbers.rb +49 -0
  148. data/tracks/ruby/exercises/complex-numbers/README.md +64 -0
  149. data/tracks/ruby/exercises/complex-numbers/complex_numbers_test.rb +207 -0
  150. data/tracks/ruby/exercises/crypto-square/.meta/.version +1 -0
  151. data/tracks/ruby/exercises/crypto-square/.meta/generator/crypto_square_case.rb +19 -0
  152. data/tracks/ruby/exercises/crypto-square/.meta/solutions/crypto_square.rb +20 -15
  153. data/tracks/ruby/exercises/crypto-square/README.md +10 -8
  154. data/tracks/ruby/exercises/crypto-square/crypto_square_test.rb +45 -81
  155. data/tracks/ruby/exercises/flatten-array/.meta/.version +1 -0
  156. data/tracks/ruby/exercises/flatten-array/.meta/generator/flatten_array_case.rb +11 -0
  157. data/tracks/ruby/exercises/flatten-array/.meta/solutions/flatten_array.rb +5 -2
  158. data/tracks/ruby/exercises/flatten-array/flatten_array_test.rb +32 -7
  159. data/tracks/ruby/exercises/hamming/hamming_test.rb +3 -3
  160. data/tracks/ruby/exercises/isogram/isogram_test.rb +4 -4
  161. data/tracks/ruby/exercises/leap/leap_test.rb +2 -2
  162. data/tracks/ruby/exercises/pig-latin/.meta/.version +1 -1
  163. data/tracks/ruby/exercises/pig-latin/.meta/solutions/pig_latin.rb +2 -2
  164. data/tracks/ruby/exercises/pig-latin/pig_latin_test.rb +17 -7
  165. data/tracks/ruby/exercises/queen-attack/.meta/generator/queen_attack_case.rb +1 -1
  166. data/tracks/ruby/exercises/queen-attack/queen_attack_test.rb +7 -7
  167. data/tracks/ruby/exercises/sum-of-multiples/.meta/.version +1 -1
  168. data/tracks/ruby/exercises/sum-of-multiples/.meta/solutions/sum_of_multiples.rb +1 -1
  169. data/tracks/ruby/exercises/sum-of-multiples/sum_of_multiples_test.rb +7 -2
  170. metadata +53 -2
@@ -1,7 +1,7 @@
1
1
  require 'minitest/autorun'
2
2
  require_relative 'pig_latin'
3
3
 
4
- # Common test data version: 1.0.0 d4e9a22
4
+ # Common test data version: 1.1.0 b5ddd0a
5
5
  class PigLatinTest < Minitest::Test
6
6
  def test_word_beginning_with_a
7
7
  # skip
@@ -43,11 +43,6 @@ class PigLatinTest < Minitest::Test
43
43
  assert_equal "oalakay", PigLatin.translate("koala")
44
44
  end
45
45
 
46
- def test_word_beginning_with_y
47
- skip
48
- assert_equal "ellowyay", PigLatin.translate("yellow")
49
- end
50
-
51
46
  def test_word_beginning_with_x
52
47
  skip
53
48
  assert_equal "enonxay", PigLatin.translate("xenon")
@@ -98,6 +93,21 @@ class PigLatinTest < Minitest::Test
98
93
  assert_equal "xrayay", PigLatin.translate("xray")
99
94
  end
100
95
 
96
+ def test_y_is_treated_like_a_consonant_at_the_beginning_of_a_word
97
+ skip
98
+ assert_equal "ellowyay", PigLatin.translate("yellow")
99
+ end
100
+
101
+ def test_y_is_treated_like_a_vowel_at_the_end_of_a_consonant_cluster
102
+ skip
103
+ assert_equal "ythmrhay", PigLatin.translate("rhythm")
104
+ end
105
+
106
+ def test_y_as_second_letter_in_two_letter_word
107
+ skip
108
+ assert_equal "ymay", PigLatin.translate("my")
109
+ end
110
+
101
111
  def test_a_whole_phrase
102
112
  skip
103
113
  assert_equal "ickquay astfay unray", PigLatin.translate("quick fast run")
@@ -122,6 +132,6 @@ class PigLatinTest < Minitest::Test
122
132
 
123
133
  def test_bookkeeping
124
134
  skip
125
- assert_equal 1, BookKeeping::VERSION
135
+ assert_equal 2, BookKeeping::VERSION
126
136
  end
127
137
  end
@@ -14,7 +14,7 @@ class QueenAttackCase < Generator::ExerciseCase
14
14
  end
15
15
 
16
16
  def parse_position queen
17
- queen['position'].delete('() ').split(',').map{|i| i.to_i}
17
+ [queen['position']['row'], queen['position']['column']]
18
18
  end
19
19
 
20
20
  def create_workload
@@ -1,35 +1,35 @@
1
1
  require 'minitest/autorun'
2
2
  require_relative 'queen_attack'
3
3
 
4
- # Common test data version: 1.0.0 8adde5f
4
+ # Common test data version: 2.0.0 44a1e12
5
5
  class QueenAttackTest < Minitest::Test
6
6
  def test_queen_with_a_valid_position
7
7
  # skip
8
8
  assert Queens.new(white: [2, 2])
9
9
  end
10
10
 
11
- def test_queen_must_have_positive_rank
11
+ def test_queen_must_have_positive_row
12
12
  skip
13
13
  assert_raises ArgumentError do
14
14
  Queens.new(white: [-2, 2])
15
15
  end
16
16
  end
17
17
 
18
- def test_queen_must_have_rank_on_board
18
+ def test_queen_must_have_row_on_board
19
19
  skip
20
20
  assert_raises ArgumentError do
21
21
  Queens.new(white: [8, 4])
22
22
  end
23
23
  end
24
24
 
25
- def test_queen_must_have_positive_file
25
+ def test_queen_must_have_positive_column
26
26
  skip
27
27
  assert_raises ArgumentError do
28
28
  Queens.new(white: [2, -2])
29
29
  end
30
30
  end
31
31
 
32
- def test_queen_must_have_file_on_board
32
+ def test_queen_must_have_column_on_board
33
33
  skip
34
34
  assert_raises ArgumentError do
35
35
  Queens.new(white: [4, 8])
@@ -42,13 +42,13 @@ class QueenAttackTest < Minitest::Test
42
42
  refute queens.attack?
43
43
  end
44
44
 
45
- def test_can_attack_on_same_rank
45
+ def test_can_attack_on_same_row
46
46
  skip
47
47
  queens = Queens.new(white: [2, 4], black: [2, 6])
48
48
  assert queens.attack?
49
49
  end
50
50
 
51
- def test_can_attack_on_same_file
51
+ def test_can_attack_on_same_column
52
52
  skip
53
53
  queens = Queens.new(white: [4, 5], black: [2, 5])
54
54
  assert queens.attack?
@@ -1 +1 @@
1
- 1
1
+ 2
@@ -1,5 +1,5 @@
1
1
  module BookKeeping
2
- VERSION = 1
2
+ VERSION = 2
3
3
  end
4
4
 
5
5
  class SumOfMultiples
@@ -1,7 +1,7 @@
1
1
  require 'minitest/autorun'
2
2
  require_relative 'sum_of_multiples'
3
3
 
4
- # Common test data version: 1.0.0 72b1496
4
+ # Common test data version: 1.1.0 df076b2
5
5
  class SumOfMultiplesTest < Minitest::Test
6
6
  def test_multiples_of_3_or_5_up_to_1
7
7
  # skip
@@ -13,6 +13,11 @@ class SumOfMultiplesTest < Minitest::Test
13
13
  assert_equal 3, SumOfMultiples.new(3, 5).to(4)
14
14
  end
15
15
 
16
+ def test_multiples_of_3_up_to_7
17
+ skip
18
+ assert_equal 9, SumOfMultiples.new(3).to(7)
19
+ end
20
+
16
21
  def test_multiples_of_3_or_5_up_to_10
17
22
  skip
18
23
  assert_equal 23, SumOfMultiples.new(3, 5).to(10)
@@ -82,6 +87,6 @@ class SumOfMultiplesTest < Minitest::Test
82
87
 
83
88
  def test_bookkeeping
84
89
  skip
85
- assert_equal 1, BookKeeping::VERSION
90
+ assert_equal 2, BookKeeping::VERSION
86
91
  end
87
92
  end
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.2.1.49
4
+ version: 2.2.1.50
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-10-21 00:00:00.000000000 Z
11
+ date: 2017-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -1819,6 +1819,10 @@ files:
1819
1819
  - tracks/common-lisp/exercises/strain/example.lisp
1820
1820
  - tracks/common-lisp/exercises/strain/strain-test.lisp
1821
1821
  - tracks/common-lisp/exercises/strain/strain.lisp
1822
+ - tracks/common-lisp/exercises/sublist/README.md
1823
+ - tracks/common-lisp/exercises/sublist/example.lisp
1824
+ - tracks/common-lisp/exercises/sublist/sublist-test.lisp
1825
+ - tracks/common-lisp/exercises/sublist/sublist.lisp
1822
1826
  - tracks/common-lisp/exercises/triangle/README.md
1823
1827
  - tracks/common-lisp/exercises/triangle/example.lisp
1824
1828
  - tracks/common-lisp/exercises/triangle/triangle-test.lisp
@@ -3318,6 +3322,10 @@ files:
3318
3322
  - tracks/ecmascript/exercises/bob/bob.spec.js
3319
3323
  - tracks/ecmascript/exercises/bob/example.js
3320
3324
  - tracks/ecmascript/exercises/bob/package.json
3325
+ - tracks/ecmascript/exercises/bowling/README.md
3326
+ - tracks/ecmascript/exercises/bowling/bowling.spec.js
3327
+ - tracks/ecmascript/exercises/bowling/example.js
3328
+ - tracks/ecmascript/exercises/bowling/package.json
3321
3329
  - tracks/ecmascript/exercises/bracket-push/README.md
3322
3330
  - tracks/ecmascript/exercises/bracket-push/bracket-push.spec.js
3323
3331
  - tracks/ecmascript/exercises/bracket-push/example.js
@@ -3577,6 +3585,10 @@ files:
3577
3585
  - tracks/ecmascript/exercises/two-bucket/example.js
3578
3586
  - tracks/ecmascript/exercises/two-bucket/package.json
3579
3587
  - tracks/ecmascript/exercises/two-bucket/two-bucket.spec.js
3588
+ - tracks/ecmascript/exercises/two-fer/README.md
3589
+ - tracks/ecmascript/exercises/two-fer/example.js
3590
+ - tracks/ecmascript/exercises/two-fer/package.json
3591
+ - tracks/ecmascript/exercises/two-fer/two-fer.spec.js
3580
3592
  - tracks/ecmascript/exercises/word-count/README.md
3581
3593
  - tracks/ecmascript/exercises/word-count/example.js
3582
3594
  - tracks/ecmascript/exercises/word-count/package.json
@@ -5414,6 +5426,7 @@ files:
5414
5426
  - tracks/fsharp/generators/Properties/launchSettings.json
5415
5427
  - tracks/fsharp/generators/Templates/_AssertEmpty.liquid
5416
5428
  - tracks/fsharp/generators/Templates/_AssertEqual.liquid
5429
+ - tracks/fsharp/generators/Templates/_AssertThrows.liquid
5417
5430
  - tracks/fsharp/generators/Templates/_TestClass.liquid
5418
5431
  - tracks/fsharp/generators/Templates/_TestMethod.liquid
5419
5432
  - tracks/fsharp/generators/Templates/_TestMethodBody.liquid
@@ -7238,6 +7251,7 @@ files:
7238
7251
  - tracks/java/gradlew
7239
7252
  - tracks/java/gradlew.bat
7240
7253
  - tracks/java/img/icon.png
7254
+ - tracks/java/scripts/canonical_data_check.sh
7241
7255
  - tracks/java/scripts/increase-test-logging.sh
7242
7256
  - tracks/java/scripts/insert-ignores.sh
7243
7257
  - tracks/java/scripts/prune-extra-keep-files.sh
@@ -7710,6 +7724,7 @@ files:
7710
7724
  - tracks/kotlin/exercises/acronym/src/main/kotlin/.keep
7711
7725
  - tracks/kotlin/exercises/acronym/src/test/kotlin/AcronymTest.kt
7712
7726
  - tracks/kotlin/exercises/all-your-base/.meta/src/reference/kotlin/BaseConverter.kt
7727
+ - tracks/kotlin/exercises/all-your-base/.meta/version
7713
7728
  - tracks/kotlin/exercises/all-your-base/README.md
7714
7729
  - tracks/kotlin/exercises/all-your-base/build.gradle
7715
7730
  - tracks/kotlin/exercises/all-your-base/src/main/kotlin/.keep
@@ -7762,11 +7777,13 @@ files:
7762
7777
  - tracks/kotlin/exercises/bracket-push/src/test/kotlin/BracketPushTest.kt
7763
7778
  - tracks/kotlin/exercises/build.gradle
7764
7779
  - tracks/kotlin/exercises/change/.meta/src/reference/kotlin/ChangeCalculator.kt
7780
+ - tracks/kotlin/exercises/change/.meta/version
7765
7781
  - tracks/kotlin/exercises/change/README.md
7766
7782
  - tracks/kotlin/exercises/change/build.gradle
7767
7783
  - tracks/kotlin/exercises/change/src/main/kotlin/.keep
7768
7784
  - tracks/kotlin/exercises/change/src/test/kotlin/ChangeCalculatorTest.kt
7769
7785
  - tracks/kotlin/exercises/clock/.meta/src/reference/kotlin/Clock.kt
7786
+ - tracks/kotlin/exercises/clock/.meta/version
7770
7787
  - tracks/kotlin/exercises/clock/README.md
7771
7788
  - tracks/kotlin/exercises/clock/build.gradle
7772
7789
  - tracks/kotlin/exercises/clock/src/main/kotlin/.keep
@@ -7774,16 +7791,19 @@ files:
7774
7791
  - tracks/kotlin/exercises/clock/src/test/kotlin/ClockCreationTest.kt
7775
7792
  - tracks/kotlin/exercises/clock/src/test/kotlin/ClockEqualTest.kt
7776
7793
  - tracks/kotlin/exercises/collatz-conjecture/.meta/src/reference/kotlin/CollatzCalculator.kt
7794
+ - tracks/kotlin/exercises/collatz-conjecture/.meta/version
7777
7795
  - tracks/kotlin/exercises/collatz-conjecture/README.md
7778
7796
  - tracks/kotlin/exercises/collatz-conjecture/build.gradle
7779
7797
  - tracks/kotlin/exercises/collatz-conjecture/src/main/kotlin/.keep
7780
7798
  - tracks/kotlin/exercises/collatz-conjecture/src/test/kotlin/CollatzCalculatorTest.kt
7781
7799
  - tracks/kotlin/exercises/complex-numbers/.meta/src/reference/kotlin/ComplexNumber.kt
7800
+ - tracks/kotlin/exercises/complex-numbers/.meta/version
7782
7801
  - tracks/kotlin/exercises/complex-numbers/README.md
7783
7802
  - tracks/kotlin/exercises/complex-numbers/build.gradle
7784
7803
  - tracks/kotlin/exercises/complex-numbers/src/main/kotlin/ComplexNumber.kt
7785
7804
  - tracks/kotlin/exercises/complex-numbers/src/test/kotlin/ComplexNumberTest.kt
7786
7805
  - tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
7806
+ - tracks/kotlin/exercises/diamond/.meta/version
7787
7807
  - tracks/kotlin/exercises/diamond/README.md
7788
7808
  - tracks/kotlin/exercises/diamond/build.gradle
7789
7809
  - tracks/kotlin/exercises/diamond/src/main/kotlin/DiamondPrinter.kt
@@ -7804,6 +7824,7 @@ files:
7804
7824
  - tracks/kotlin/exercises/flatten-array/src/main/kotlin/.keep
7805
7825
  - tracks/kotlin/exercises/flatten-array/src/test/kotlin/FlattenerTest.kt
7806
7826
  - tracks/kotlin/exercises/forth/.meta/src/reference/kotlin/ForthEvaluator.kt
7827
+ - tracks/kotlin/exercises/forth/.meta/version
7807
7828
  - tracks/kotlin/exercises/forth/README.md
7808
7829
  - tracks/kotlin/exercises/forth/build.gradle
7809
7830
  - tracks/kotlin/exercises/forth/src/main/kotlin/.keep
@@ -7820,11 +7841,13 @@ files:
7820
7841
  - tracks/kotlin/exercises/grade-school/src/test/kotlin/SchoolTest.kt
7821
7842
  - tracks/kotlin/exercises/gradle.properties
7822
7843
  - tracks/kotlin/exercises/grains/.meta/src/reference/kotlin/Board.kt
7844
+ - tracks/kotlin/exercises/grains/.meta/version
7823
7845
  - tracks/kotlin/exercises/grains/README.md
7824
7846
  - tracks/kotlin/exercises/grains/build.gradle
7825
7847
  - tracks/kotlin/exercises/grains/src/main/kotlin/.keep
7826
7848
  - tracks/kotlin/exercises/grains/src/test/kotlin/BoardTest.kt
7827
7849
  - tracks/kotlin/exercises/hamming/.meta/src/reference/kotlin/Hamming.kt
7850
+ - tracks/kotlin/exercises/hamming/.meta/version
7828
7851
  - tracks/kotlin/exercises/hamming/README.md
7829
7852
  - tracks/kotlin/exercises/hamming/build.gradle
7830
7853
  - tracks/kotlin/exercises/hamming/src/main/kotlin/.keep
@@ -7864,6 +7887,7 @@ files:
7864
7887
  - tracks/kotlin/exercises/linked-list/src/test/kotlin/DequeTest.kt
7865
7888
  - tracks/kotlin/exercises/list-ops/.meta/hints.md
7866
7889
  - tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
7890
+ - tracks/kotlin/exercises/list-ops/.meta/version
7867
7891
  - tracks/kotlin/exercises/list-ops/README.md
7868
7892
  - tracks/kotlin/exercises/list-ops/build.gradle
7869
7893
  - tracks/kotlin/exercises/list-ops/src/main/kotlin/.keep
@@ -7875,11 +7899,13 @@ files:
7875
7899
  - tracks/kotlin/exercises/luhn/src/test/kotlin/LuhnTest.kt
7876
7900
  - tracks/kotlin/exercises/meetup/.meta/src/reference/kotlin/Meetup.kt
7877
7901
  - tracks/kotlin/exercises/meetup/.meta/src/reference/kotlin/MeetupSchedule.kt
7902
+ - tracks/kotlin/exercises/meetup/.meta/version
7878
7903
  - tracks/kotlin/exercises/meetup/README.md
7879
7904
  - tracks/kotlin/exercises/meetup/build.gradle
7880
7905
  - tracks/kotlin/exercises/meetup/src/main/kotlin/MeetupSchedule.kt
7881
7906
  - tracks/kotlin/exercises/meetup/src/test/kotlin/MeetupTest.kt
7882
7907
  - tracks/kotlin/exercises/minesweeper/.meta/src/reference/kotlin/MinesweeperBoard.kt
7908
+ - tracks/kotlin/exercises/minesweeper/.meta/version
7883
7909
  - tracks/kotlin/exercises/minesweeper/README.md
7884
7910
  - tracks/kotlin/exercises/minesweeper/build.gradle
7885
7911
  - tracks/kotlin/exercises/minesweeper/src/main/kotlin/.keep
@@ -7895,6 +7921,7 @@ files:
7895
7921
  - tracks/kotlin/exercises/nucleotide-count/src/main/kotlin/.keep
7896
7922
  - tracks/kotlin/exercises/nucleotide-count/src/test/kotlin/NucleotideTest.kt
7897
7923
  - tracks/kotlin/exercises/pangram/.meta/src/reference/kotlin/Pangrams.kt
7924
+ - tracks/kotlin/exercises/pangram/.meta/version
7898
7925
  - tracks/kotlin/exercises/pangram/README.md
7899
7926
  - tracks/kotlin/exercises/pangram/build.gradle
7900
7927
  - tracks/kotlin/exercises/pangram/src/main/kotlin/.keep
@@ -7920,6 +7947,7 @@ files:
7920
7947
  - tracks/kotlin/exercises/pig-latin/src/main/kotlin/.keep
7921
7948
  - tracks/kotlin/exercises/pig-latin/src/test/kotlin/PigLatinTest.kt
7922
7949
  - tracks/kotlin/exercises/prime-factors/.meta/src/reference/kotlin/PrimeFactorCalculator.kt
7950
+ - tracks/kotlin/exercises/prime-factors/.meta/version
7923
7951
  - tracks/kotlin/exercises/prime-factors/README.md
7924
7952
  - tracks/kotlin/exercises/prime-factors/build.gradle
7925
7953
  - tracks/kotlin/exercises/prime-factors/src/main/kotlin/.keep
@@ -7935,6 +7963,7 @@ files:
7935
7963
  - tracks/kotlin/exercises/react/src/main/kotlin/React.kt
7936
7964
  - tracks/kotlin/exercises/react/src/test/kotlin/ReactTest.kt
7937
7965
  - tracks/kotlin/exercises/rna-transcription/.meta/src/reference/kotlin/RnaTranscription.kt
7966
+ - tracks/kotlin/exercises/rna-transcription/.meta/version
7938
7967
  - tracks/kotlin/exercises/rna-transcription/README.md
7939
7968
  - tracks/kotlin/exercises/rna-transcription/build.gradle
7940
7969
  - tracks/kotlin/exercises/rna-transcription/src/main/kotlin/RnaTranscription.kt
@@ -7947,6 +7976,7 @@ files:
7947
7976
  - tracks/kotlin/exercises/robot-simulator/.meta/src/reference/kotlin/GridPosition.kt
7948
7977
  - tracks/kotlin/exercises/robot-simulator/.meta/src/reference/kotlin/Orientation.kt
7949
7978
  - tracks/kotlin/exercises/robot-simulator/.meta/src/reference/kotlin/Robot.kt
7979
+ - tracks/kotlin/exercises/robot-simulator/.meta/version
7950
7980
  - tracks/kotlin/exercises/robot-simulator/README.md
7951
7981
  - tracks/kotlin/exercises/robot-simulator/build.gradle
7952
7982
  - tracks/kotlin/exercises/robot-simulator/src/main/kotlin/GridPosition.kt
@@ -7959,17 +7989,20 @@ files:
7959
7989
  - tracks/kotlin/exercises/roman-numerals/src/main/kotlin/.keep
7960
7990
  - tracks/kotlin/exercises/roman-numerals/src/test/kotlin/RomanNumeralTest.kt
7961
7991
  - tracks/kotlin/exercises/rotational-cipher/.meta/src/reference/kotlin/RotationalCipher.kt
7992
+ - tracks/kotlin/exercises/rotational-cipher/.meta/version
7962
7993
  - tracks/kotlin/exercises/rotational-cipher/README.md
7963
7994
  - tracks/kotlin/exercises/rotational-cipher/build.gradle
7964
7995
  - tracks/kotlin/exercises/rotational-cipher/src/main/kotlin/.keep
7965
7996
  - tracks/kotlin/exercises/rotational-cipher/src/test/kotlin/RotationalCipherTest.kt
7966
7997
  - tracks/kotlin/exercises/saddle-points/.meta/src/reference/kotlin/Matrix.kt
7967
7998
  - tracks/kotlin/exercises/saddle-points/.meta/src/reference/kotlin/MatrixCoordinate.kt
7999
+ - tracks/kotlin/exercises/saddle-points/.meta/version
7968
8000
  - tracks/kotlin/exercises/saddle-points/README.md
7969
8001
  - tracks/kotlin/exercises/saddle-points/build.gradle
7970
8002
  - tracks/kotlin/exercises/saddle-points/src/main/kotlin/MatrixCoordinate.kt
7971
8003
  - tracks/kotlin/exercises/saddle-points/src/test/kotlin/MatrixTest.kt
7972
8004
  - tracks/kotlin/exercises/say/.meta/src/reference/kotlin/NumberSpeller.kt
8005
+ - tracks/kotlin/exercises/say/.meta/version
7973
8006
  - tracks/kotlin/exercises/say/README.md
7974
8007
  - tracks/kotlin/exercises/say/build.gradle
7975
8008
  - tracks/kotlin/exercises/say/src/main/kotlin/.keep
@@ -7981,6 +8014,7 @@ files:
7981
8014
  - tracks/kotlin/exercises/scrabble-score/src/test/kotlin/ScrabbleScoreTest.kt
7982
8015
  - tracks/kotlin/exercises/secret-handshake/.meta/src/reference/kotlin/HandshakeCalculator.kt
7983
8016
  - tracks/kotlin/exercises/secret-handshake/.meta/src/reference/kotlin/Signal.kt
8017
+ - tracks/kotlin/exercises/secret-handshake/.meta/version
7984
8018
  - tracks/kotlin/exercises/secret-handshake/README.md
7985
8019
  - tracks/kotlin/exercises/secret-handshake/build.gradle
7986
8020
  - tracks/kotlin/exercises/secret-handshake/src/main/kotlin/Signal.kt
@@ -8010,6 +8044,7 @@ files:
8010
8044
  - tracks/kotlin/exercises/space-age/src/main/kotlin/.keep
8011
8045
  - tracks/kotlin/exercises/space-age/src/test/kotlin/SpaceAgeTest.kt
8012
8046
  - tracks/kotlin/exercises/spiral-matrix/.meta/src/reference/kotlin/SpiralMatrix.kt
8047
+ - tracks/kotlin/exercises/spiral-matrix/.meta/version
8013
8048
  - tracks/kotlin/exercises/spiral-matrix/README.md
8014
8049
  - tracks/kotlin/exercises/spiral-matrix/build.gradle
8015
8050
  - tracks/kotlin/exercises/spiral-matrix/src/main/kotlin/.keep
@@ -8021,6 +8056,7 @@ files:
8021
8056
  - tracks/kotlin/exercises/strain/src/test/kotlin/StrainTest.kt
8022
8057
  - tracks/kotlin/exercises/sublist/.meta/src/reference/kotlin/Relationship.kt
8023
8058
  - tracks/kotlin/exercises/sublist/.meta/src/reference/kotlin/Sublist.kt
8059
+ - tracks/kotlin/exercises/sublist/.meta/version
8024
8060
  - tracks/kotlin/exercises/sublist/README.md
8025
8061
  - tracks/kotlin/exercises/sublist/build.gradle
8026
8062
  - tracks/kotlin/exercises/sublist/src/main/kotlin/Relationship.kt
@@ -8050,6 +8086,7 @@ files:
8050
8086
  - tracks/kotlin/gradlew
8051
8087
  - tracks/kotlin/gradlew.bat
8052
8088
  - tracks/kotlin/img/icon.png
8089
+ - tracks/kotlin/scripts/canonical_data_check.sh
8053
8090
  - tracks/lfe/.git
8054
8091
  - tracks/lfe/.gitignore
8055
8092
  - tracks/lfe/.travis.yml
@@ -10116,6 +10153,11 @@ files:
10116
10153
  - tracks/purescript/exercises/raindrops/examples/src/Raindrops.purs
10117
10154
  - tracks/purescript/exercises/raindrops/src/Raindrops.purs
10118
10155
  - tracks/purescript/exercises/raindrops/test/Main.purs
10156
+ - tracks/purescript/exercises/rna-transcription/README.md
10157
+ - tracks/purescript/exercises/rna-transcription/bower.json
10158
+ - tracks/purescript/exercises/rna-transcription/examples/src/RNATranscription.purs
10159
+ - tracks/purescript/exercises/rna-transcription/src/RNATranscription.purs
10160
+ - tracks/purescript/exercises/rna-transcription/test/Main.purs
10119
10161
  - tracks/purescript/exercises/scrabble-score/README.md
10120
10162
  - tracks/purescript/exercises/scrabble-score/bower.json
10121
10163
  - tracks/purescript/exercises/scrabble-score/examples/src/ScrabbleScore.purs
@@ -10915,12 +10957,19 @@ files:
10915
10957
  - tracks/ruby/exercises/collatz-conjecture/.meta/solutions/collatz_conjecture.rb
10916
10958
  - tracks/ruby/exercises/collatz-conjecture/README.md
10917
10959
  - tracks/ruby/exercises/collatz-conjecture/collatz_conjecture_test.rb
10960
+ - tracks/ruby/exercises/complex-numbers/.meta/.version
10961
+ - tracks/ruby/exercises/complex-numbers/.meta/generator/complex_numbers_case.rb
10962
+ - tracks/ruby/exercises/complex-numbers/.meta/solutions/complex_numbers.rb
10963
+ - tracks/ruby/exercises/complex-numbers/README.md
10964
+ - tracks/ruby/exercises/complex-numbers/complex_numbers_test.rb
10918
10965
  - tracks/ruby/exercises/connect/.meta/.version
10919
10966
  - tracks/ruby/exercises/connect/.meta/generator/connect_case.rb
10920
10967
  - tracks/ruby/exercises/connect/.meta/generator/test_template.erb
10921
10968
  - tracks/ruby/exercises/connect/.meta/solutions/connect.rb
10922
10969
  - tracks/ruby/exercises/connect/README.md
10923
10970
  - tracks/ruby/exercises/connect/connect_test.rb
10971
+ - tracks/ruby/exercises/crypto-square/.meta/.version
10972
+ - tracks/ruby/exercises/crypto-square/.meta/generator/crypto_square_case.rb
10924
10973
  - tracks/ruby/exercises/crypto-square/.meta/solutions/crypto_square.rb
10925
10974
  - tracks/ruby/exercises/crypto-square/README.md
10926
10975
  - tracks/ruby/exercises/crypto-square/crypto_square_test.rb
@@ -10948,6 +10997,8 @@ files:
10948
10997
  - tracks/ruby/exercises/etl/.meta/solutions/etl.rb
10949
10998
  - tracks/ruby/exercises/etl/README.md
10950
10999
  - tracks/ruby/exercises/etl/etl_test.rb
11000
+ - tracks/ruby/exercises/flatten-array/.meta/.version
11001
+ - tracks/ruby/exercises/flatten-array/.meta/generator/flatten_array_case.rb
10951
11002
  - tracks/ruby/exercises/flatten-array/.meta/solutions/flatten_array.rb
10952
11003
  - tracks/ruby/exercises/flatten-array/README.md
10953
11004
  - tracks/ruby/exercises/flatten-array/flatten_array_test.rb