trackler 2.1.0.7 → 2.1.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (179) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/java/exercises/difference-of-squares/src/test/java/DifferenceOfSquaresCalculatorTest.java +9 -9
  4. data/tracks/java/exercises/gigasecond/src/test/java/GigasecondTest.java +4 -4
  5. data/tracks/java/exercises/pangram/src/test/java/PangramCheckerTest.java +10 -10
  6. data/tracks/java/exercises/perfect-numbers/src/test/java/NaturalNumberTest.java +12 -12
  7. data/tracks/java/exercises/saddle-points/src/test/java/MatrixTest.java +4 -4
  8. data/tracks/java/exercises/secret-handshake/src/test/java/HandshakeCalculatorTest.java +11 -11
  9. data/tracks/java/exercises/space-age/src/test/java/SpaceAgeTest.java +8 -8
  10. data/tracks/java/exercises/triangle/src/test/java/TriangleTest.java +1 -1
  11. data/tracks/perl6/.travis.yml +1 -1
  12. data/tracks/perl6/exercises/bob/example.yaml +19 -0
  13. data/tracks/perl6/exercises/clock/clock.t +17 -10
  14. data/tracks/perl6/exercises/clock/example.yaml +7 -5
  15. data/tracks/perl6/exercises/grade-school/example.yaml +23 -0
  16. data/tracks/perl6/exercises/leap/example.yaml +6 -0
  17. data/tracks/perl6/exercises/phone-number/Example.pm +2 -2
  18. data/tracks/perl6/exercises/phone-number/PhoneNumber.pm6 +1 -1
  19. data/tracks/perl6/exercises/phone-number/example.yaml +12 -0
  20. data/tracks/perl6/exercises/phone-number/phone-number.t +100 -85
  21. data/tracks/perl6/exercises/space-age/Example.pm +13 -15
  22. data/tracks/ruby/README.md +22 -10
  23. data/tracks/ruby/{HINTS.md → exercises/accumulate/HINTS.md} +0 -0
  24. data/tracks/ruby/exercises/accumulate/accumulate_test.rb +0 -1
  25. data/tracks/ruby/exercises/acronym/.meta/generator/acronym_cases.rb +1 -1
  26. data/tracks/ruby/exercises/acronym/acronym_test.rb +1 -2
  27. data/tracks/ruby/exercises/all-your-base/.meta/generator/all_your_base_cases.rb +1 -1
  28. data/tracks/ruby/exercises/all-your-base/all_your_base_test.rb +1 -2
  29. data/tracks/ruby/exercises/allergies/allergies_test.rb +0 -1
  30. data/tracks/ruby/exercises/alphametics/.meta/generator/alphametics_cases.rb +1 -1
  31. data/tracks/ruby/exercises/alphametics/.meta/generator/test_template.erb +1 -2
  32. data/tracks/ruby/exercises/alphametics/alphametics_test.rb +1 -2
  33. data/tracks/ruby/exercises/anagram/.meta/generator/anagram_cases.rb +1 -1
  34. data/tracks/ruby/exercises/anagram/anagram_test.rb +1 -2
  35. data/tracks/ruby/exercises/atbash-cipher/atbash_cipher_test.rb +0 -1
  36. data/tracks/ruby/exercises/beer-song/.meta/generator/beer_song_cases.rb +1 -1
  37. data/tracks/ruby/exercises/beer-song/beer_song_test.rb +1 -2
  38. data/tracks/ruby/exercises/binary-search-tree/binary_search_tree_test.rb +0 -1
  39. data/tracks/ruby/exercises/binary-search/binary_search_test.rb +0 -1
  40. data/tracks/ruby/exercises/binary/.meta/generator/binary_cases.rb +1 -1
  41. data/tracks/ruby/exercises/binary/binary_test.rb +1 -2
  42. data/tracks/ruby/exercises/bob/bob_test.rb +0 -1
  43. data/tracks/ruby/exercises/bowling/.meta/generator/bowling_cases.rb +1 -1
  44. data/tracks/ruby/exercises/bowling/.meta/generator/test_template.erb +1 -2
  45. data/tracks/ruby/exercises/bowling/bowling_test.rb +1 -2
  46. data/tracks/ruby/exercises/bracket-push/.meta/generator/bracket_push_cases.rb +1 -1
  47. data/tracks/ruby/exercises/bracket-push/bracket_push_test.rb +1 -2
  48. data/tracks/ruby/exercises/circular-buffer/circular_buffer_test.rb +0 -1
  49. data/tracks/ruby/exercises/clock/.meta/generator/clock_cases.rb +1 -1
  50. data/tracks/ruby/exercises/clock/clock_test.rb +1 -2
  51. data/tracks/ruby/exercises/connect/.meta/generator/connect_cases.rb +1 -1
  52. data/tracks/ruby/exercises/connect/.meta/generator/test_template.erb +1 -2
  53. data/tracks/ruby/exercises/connect/connect_test.rb +1 -2
  54. data/tracks/ruby/exercises/crypto-square/crypto_square_test.rb +0 -1
  55. data/tracks/ruby/exercises/custom-set/.meta/generator/custom_set_cases.rb +1 -1
  56. data/tracks/ruby/exercises/custom-set/custom_set_test.rb +1 -2
  57. data/tracks/ruby/exercises/diamond/diamond_test.rb +0 -1
  58. data/tracks/ruby/exercises/difference-of-squares/.meta/generator/difference_of_squares_cases.rb +1 -1
  59. data/tracks/ruby/exercises/difference-of-squares/difference_of_squares_test.rb +1 -2
  60. data/tracks/ruby/exercises/dominoes/.meta/generator/dominoes_cases.rb +1 -1
  61. data/tracks/ruby/exercises/dominoes/.meta/generator/test_template.erb +1 -2
  62. data/tracks/ruby/exercises/dominoes/dominoes_test.rb +1 -2
  63. data/tracks/ruby/exercises/etl/.meta/generator/etl_cases.rb +1 -1
  64. data/tracks/ruby/exercises/etl/etl_test.rb +1 -2
  65. data/tracks/ruby/exercises/flatten-array/flatten_array_test.rb +0 -1
  66. data/tracks/ruby/exercises/food-chain/food_chain_test.rb +0 -1
  67. data/tracks/ruby/exercises/gigasecond/.meta/generator/gigasecond_cases.rb +1 -1
  68. data/tracks/ruby/exercises/gigasecond/gigasecond_test.rb +1 -2
  69. data/tracks/ruby/exercises/grade-school/grade_school_test.rb +0 -1
  70. data/tracks/ruby/exercises/grains/.meta/generator/grains_cases.rb +1 -1
  71. data/tracks/ruby/exercises/grains/grains_test.rb +1 -2
  72. data/tracks/ruby/exercises/hamming/.meta/generator/hamming_cases.rb +1 -1
  73. data/tracks/ruby/exercises/hamming/hamming_test.rb +1 -2
  74. data/tracks/ruby/exercises/hello-world/.meta/generator/hello_world_cases.rb +1 -1
  75. data/tracks/ruby/exercises/hello-world/.meta/generator/test_template.erb +1 -1
  76. data/tracks/ruby/exercises/hello-world/hello_world_test.rb +1 -1
  77. data/tracks/ruby/exercises/hexadecimal/hexadecimal_test.rb +0 -1
  78. data/tracks/ruby/exercises/house/house_test.rb +0 -1
  79. data/tracks/ruby/exercises/isogram/.meta/generator/isogram_cases.rb +1 -1
  80. data/tracks/ruby/exercises/isogram/isogram_test.rb +1 -2
  81. data/tracks/ruby/exercises/kindergarten-garden/kindergarten_garden_test.rb +0 -1
  82. data/tracks/ruby/exercises/largest-series-product/.meta/generator/largest_series_product_cases.rb +1 -1
  83. data/tracks/ruby/exercises/largest-series-product/largest_series_product_test.rb +1 -2
  84. data/tracks/ruby/exercises/leap/.meta/generator/leap_cases.rb +1 -1
  85. data/tracks/ruby/exercises/leap/.meta/generator/test_template.erb +1 -2
  86. data/tracks/ruby/exercises/leap/leap_test.rb +1 -2
  87. data/tracks/ruby/exercises/linked-list/linked_list_test.rb +0 -1
  88. data/tracks/ruby/exercises/list-ops/list_ops_test.rb +0 -1
  89. data/tracks/ruby/exercises/luhn/.meta/generator/luhn_cases.rb +1 -1
  90. data/tracks/ruby/exercises/luhn/luhn_test.rb +1 -2
  91. data/tracks/ruby/exercises/matrix/matrix_test.rb +0 -1
  92. data/tracks/ruby/exercises/meetup/meetup_test.rb +0 -1
  93. data/tracks/ruby/exercises/minesweeper/minesweeper_test.rb +0 -1
  94. data/tracks/ruby/exercises/nth-prime/.meta/generator/nth_prime_cases.rb +1 -1
  95. data/tracks/ruby/exercises/nth-prime/nth_prime_test.rb +1 -2
  96. data/tracks/ruby/exercises/nucleotide-count/nucleotide_count_test.rb +0 -1
  97. data/tracks/ruby/exercises/ocr-numbers/.meta/generator/ocr_numbers_cases.rb +1 -1
  98. data/tracks/ruby/exercises/ocr-numbers/ocr_numbers_test.rb +1 -2
  99. data/tracks/ruby/exercises/octal/octal_test.rb +0 -1
  100. data/tracks/ruby/exercises/palindrome-products/palindrome_products_test.rb +0 -1
  101. data/tracks/ruby/exercises/pangram/.meta/generator/pangram_cases.rb +1 -1
  102. data/tracks/ruby/exercises/pangram/pangram_test.rb +1 -2
  103. data/tracks/ruby/exercises/pascals-triangle/pascals_triangle_test.rb +0 -1
  104. data/tracks/ruby/exercises/perfect-numbers/perfect_numbers_test.rb +0 -1
  105. data/tracks/ruby/exercises/phone-number/.meta/.version +1 -0
  106. data/tracks/ruby/exercises/phone-number/.meta/generator/phone_number_cases.rb +7 -0
  107. data/tracks/ruby/exercises/phone-number/example.rb +21 -37
  108. data/tracks/ruby/exercises/phone-number/phone_number_test.rb +47 -43
  109. data/tracks/ruby/exercises/pig-latin/.meta/generator/pig_latin_cases.rb +1 -1
  110. data/tracks/ruby/exercises/pig-latin/pig_latin_test.rb +1 -2
  111. data/tracks/ruby/exercises/point-mutations/point_mutations_test.rb +0 -1
  112. data/tracks/ruby/exercises/poker/poker_test.rb +0 -1
  113. data/tracks/ruby/exercises/prime-factors/prime_factors_test.rb +0 -1
  114. data/tracks/ruby/exercises/protein-translation/protein_translation_test.rb +0 -1
  115. data/tracks/ruby/exercises/proverb/proverb_test.rb +0 -1
  116. data/tracks/ruby/exercises/pythagorean-triplet/pythagorean_triplet_test.rb +0 -1
  117. data/tracks/ruby/exercises/queen-attack/.meta/generator/queen_attack_cases.rb +1 -1
  118. data/tracks/ruby/exercises/queen-attack/queen_attack_test.rb +1 -2
  119. data/tracks/ruby/exercises/rail-fence-cipher/rail_fence_cipher_test.rb +0 -1
  120. data/tracks/ruby/exercises/raindrops/.meta/generator/raindrops_cases.rb +1 -1
  121. data/tracks/ruby/exercises/raindrops/raindrops_test.rb +1 -2
  122. data/tracks/ruby/exercises/rna-transcription/.meta/generator/rna_transcription_cases.rb +1 -1
  123. data/tracks/ruby/exercises/rna-transcription/rna_transcription_test.rb +1 -2
  124. data/tracks/ruby/exercises/robot-name/robot_name_test.rb +0 -1
  125. data/tracks/ruby/exercises/robot-simulator/robot_simulator_test.rb +0 -1
  126. data/tracks/ruby/exercises/roman-numerals/.meta/generator/roman_numerals_cases.rb +1 -1
  127. data/tracks/ruby/exercises/roman-numerals/roman_numerals_test.rb +1 -2
  128. data/tracks/ruby/exercises/run-length-encoding/.meta/generator/run_length_encoding_cases.rb +5 -1
  129. data/tracks/ruby/exercises/run-length-encoding/run_length_encoding_test.rb +14 -15
  130. data/tracks/ruby/exercises/saddle-points/saddle_points_test.rb +0 -1
  131. data/tracks/ruby/exercises/say/.meta/generator/say_cases.rb +1 -1
  132. data/tracks/ruby/exercises/say/say_test.rb +1 -2
  133. data/tracks/ruby/exercises/scale-generator/scale_generator_test.rb +0 -1
  134. data/tracks/ruby/exercises/scrabble-score/scrabble_score_test.rb +0 -1
  135. data/tracks/ruby/exercises/secret-handshake/secret_handshake_test.rb +0 -1
  136. data/tracks/ruby/exercises/series/series_test.rb +0 -1
  137. data/tracks/ruby/exercises/sieve/.meta/generator/sieve_cases.rb +1 -1
  138. data/tracks/ruby/exercises/sieve/sieve_test.rb +1 -2
  139. data/tracks/ruby/exercises/simple-cipher/simple_cipher_test.rb +0 -1
  140. data/tracks/ruby/exercises/space-age/space_age_test.rb +0 -1
  141. data/tracks/ruby/exercises/strain/strain_test.rb +0 -1
  142. data/tracks/ruby/exercises/sum-of-multiples/sum_of_multiples_test.rb +0 -1
  143. data/tracks/ruby/exercises/tournament/.meta/.version +1 -1
  144. data/tracks/ruby/exercises/tournament/.meta/generator/tournament_cases.rb +1 -1
  145. data/tracks/ruby/exercises/tournament/example.rb +4 -2
  146. data/tracks/ruby/exercises/tournament/tournament_test.rb +20 -3
  147. data/tracks/ruby/exercises/transpose/.meta/generator/transpose_cases.rb +1 -1
  148. data/tracks/ruby/exercises/transpose/transpose_test.rb +1 -2
  149. data/tracks/ruby/exercises/triangle/.meta/generator/triangle_cases.rb +1 -1
  150. data/tracks/ruby/exercises/triangle/triangle_test.rb +1 -2
  151. data/tracks/ruby/exercises/trinary/trinary_test.rb +0 -1
  152. data/tracks/ruby/exercises/twelve-days/twelve_days_test.rb +0 -1
  153. data/tracks/ruby/exercises/two-bucket/.meta/.version +1 -1
  154. data/tracks/ruby/exercises/two-bucket/.meta/generator/two_bucket_cases.rb +1 -1
  155. data/tracks/ruby/exercises/two-bucket/example.rb +1 -1
  156. data/tracks/ruby/exercises/two-bucket/two_bucket_test.rb +18 -3
  157. data/tracks/ruby/exercises/word-count/.meta/generator/word_count_cases.rb +1 -1
  158. data/tracks/ruby/exercises/word-count/word_count_test.rb +1 -2
  159. data/tracks/ruby/exercises/wordy/.meta/generator/wordy_cases.rb +1 -1
  160. data/tracks/ruby/exercises/wordy/wordy_test.rb +1 -2
  161. data/tracks/ruby/lib/generator/{exercise_cases.rb → exercise_case.rb} +0 -0
  162. data/tracks/ruby/lib/generator/exercise_case/assertion.rb +2 -1
  163. data/tracks/ruby/lib/generator/files/track_files.rb +15 -10
  164. data/tracks/ruby/lib/generator/template_values.rb +4 -2
  165. data/tracks/ruby/lib/generator/test_template.erb +1 -2
  166. data/tracks/ruby/lib/tasks/exercise.rb +9 -1
  167. data/tracks/ruby/test/fixtures/xruby/exercises/alpha/.meta/generator/test_template.erb +0 -1
  168. data/tracks/ruby/test/fixtures/xruby/exercises/alpha/{example.rb → .meta/solutions/alpha.rb} +0 -0
  169. data/tracks/ruby/test/fixtures/xruby/exercises/beta/.meta/generator/beta_cases.rb +1 -1
  170. data/tracks/ruby/test/fixtures/xruby/exercises/beta/example.tt +0 -1
  171. data/tracks/ruby/test/fixtures/xruby/lib/generator/test_template.erb +0 -1
  172. data/tracks/ruby/test/generator/exercise_case/assertion_test.rb +6 -0
  173. data/tracks/ruby/test/generator/{exercise_cases_test.rb → exercise_case_test.rb} +0 -0
  174. data/tracks/ruby/test/generator/files/track_files_test.rb +14 -18
  175. data/tracks/ruby/test/generator/template_values_test.rb +2 -0
  176. data/tracks/ruby/test/tasks/exercise_test.rb +6 -0
  177. data/tracks/ruby/test/tasks/exercise_tests_runner_legacy_test.rb +64 -0
  178. data/tracks/ruby/test/tasks/exercise_tests_runner_test.rb +2 -2
  179. metadata +13 -6
@@ -1,4 +1,4 @@
1
- require 'generator/exercise_cases'
1
+ require 'generator/exercise_case'
2
2
 
3
3
  class PigLatinCase < Generator::ExerciseCase
4
4
  def workload
@@ -1,9 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'pig_latin'
5
4
 
6
- # Common test data version: d4e9a22
5
+ # Common test data version: 1.0.0 d4e9a22
7
6
  class PigLatinTest < Minitest::Test
8
7
  def test_word_beginning_with_a
9
8
  # skip
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'point_mutations'
5
4
 
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'poker'
5
4
 
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'prime_factors'
5
4
 
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'protein_translation'
5
4
 
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'proverb'
5
4
 
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'pythagorean_triplet'
5
4
 
@@ -1,4 +1,4 @@
1
- require 'generator/exercise_cases'
1
+ require 'generator/exercise_case'
2
2
 
3
3
  class QueenAttackCase < Generator::ExerciseCase
4
4
 
@@ -1,9 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'queen_attack'
5
4
 
6
- # Common test data version: 8adde5f
5
+ # Common test data version: 1.0.0 8adde5f
7
6
  class QueenAttackTest < Minitest::Test
8
7
  def test_queen_with_a_valid_position
9
8
  # skip
@@ -1,4 +1,3 @@
1
- gem 'minitest', '>= 5.0.0'
2
1
  require 'minitest/autorun'
3
2
  require_relative 'rail_fence_cipher'
4
3
 
@@ -1,4 +1,4 @@
1
- require 'generator/exercise_cases'
1
+ require 'generator/exercise_case'
2
2
 
3
3
  class RaindropsCase < Generator::ExerciseCase
4
4
 
@@ -1,9 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'raindrops'
5
4
 
6
- # Common test data version: 9db5371
5
+ # Common test data version: 1.0.0 9db5371
7
6
  class RaindropsTest < Minitest::Test
8
7
  def test_the_sound_for_1_is_1
9
8
  # skip
@@ -1,4 +1,4 @@
1
- require 'generator/exercise_cases'
1
+ require 'generator/exercise_case'
2
2
 
3
3
  class RnaTranscriptionCase < Generator::ExerciseCase
4
4
 
@@ -1,9 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'rna_transcription'
5
4
 
6
- # Common test data version: 0b20fff
5
+ # Common test data version: 1.0.0 0b20fff
7
6
  class RnaTranscriptionTest < Minitest::Test
8
7
  def test_rna_complement_of_cytosine_is_guanine
9
8
  # skip
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: false
3
3
 
4
- gem 'minitest', '>= 5.0.0'
5
4
  require 'minitest/autorun'
6
5
  require_relative 'robot_name'
7
6
 
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'robot_simulator'
5
4
 
@@ -1,4 +1,4 @@
1
- require 'generator/exercise_cases'
1
+ require 'generator/exercise_case'
2
2
 
3
3
  class RomanNumeralsCase < Generator::ExerciseCase
4
4
  def name
@@ -1,9 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'roman_numerals'
5
4
 
6
- # Common test data version: 070e8d5
5
+ # Common test data version: 1.0.0 070e8d5
7
6
  class RomanNumeralsTest < Minitest::Test
8
7
  def test_1
9
8
  # skip
@@ -1,7 +1,11 @@
1
- require 'generator/exercise_cases'
1
+ require 'generator/exercise_case'
2
2
 
3
3
  class RunLengthEncodingCase < Generator::ExerciseCase
4
4
 
5
+ def name
6
+ super.sub('test_',"test_#{property}_")
7
+ end
8
+
5
9
  def workload
6
10
  indent_lines([
7
11
  "input = '#{input}'",
@@ -1,95 +1,94 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'run_length_encoding'
5
4
 
6
- # Common test data version: 503a57a
5
+ # Common test data version: 1.0.0 503a57a
7
6
  class RunLengthEncodingTest < Minitest::Test
8
- def test_empty_string
7
+ def test_encode_empty_string
9
8
  # skip
10
9
  input = ''
11
10
  output = ''
12
11
  assert_equal output, RunLengthEncoding.encode(input)
13
12
  end
14
13
 
15
- def test_single_characters_only_are_encoded_without_count
14
+ def test_encode_single_characters_only_are_encoded_without_count
16
15
  skip
17
16
  input = 'XYZ'
18
17
  output = 'XYZ'
19
18
  assert_equal output, RunLengthEncoding.encode(input)
20
19
  end
21
20
 
22
- def test_string_with_no_single_characters
21
+ def test_encode_string_with_no_single_characters
23
22
  skip
24
23
  input = 'AABBBCCCC'
25
24
  output = '2A3B4C'
26
25
  assert_equal output, RunLengthEncoding.encode(input)
27
26
  end
28
27
 
29
- def test_single_characters_mixed_with_repeated_characters
28
+ def test_encode_single_characters_mixed_with_repeated_characters
30
29
  skip
31
30
  input = 'WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB'
32
31
  output = '12WB12W3B24WB'
33
32
  assert_equal output, RunLengthEncoding.encode(input)
34
33
  end
35
34
 
36
- def test_multiple_whitespace_mixed_in_string
35
+ def test_encode_multiple_whitespace_mixed_in_string
37
36
  skip
38
37
  input = ' hsqq qww '
39
38
  output = '2 hs2q q2w2 '
40
39
  assert_equal output, RunLengthEncoding.encode(input)
41
40
  end
42
41
 
43
- def test_lowercase_characters
42
+ def test_encode_lowercase_characters
44
43
  skip
45
44
  input = 'aabbbcccc'
46
45
  output = '2a3b4c'
47
46
  assert_equal output, RunLengthEncoding.encode(input)
48
47
  end
49
48
 
50
- def test_empty_string
49
+ def test_decode_empty_string
51
50
  skip
52
51
  input = ''
53
52
  output = ''
54
53
  assert_equal output, RunLengthEncoding.decode(input)
55
54
  end
56
55
 
57
- def test_single_characters_only
56
+ def test_decode_single_characters_only
58
57
  skip
59
58
  input = 'XYZ'
60
59
  output = 'XYZ'
61
60
  assert_equal output, RunLengthEncoding.decode(input)
62
61
  end
63
62
 
64
- def test_string_with_no_single_characters
63
+ def test_decode_string_with_no_single_characters
65
64
  skip
66
65
  input = '2A3B4C'
67
66
  output = 'AABBBCCCC'
68
67
  assert_equal output, RunLengthEncoding.decode(input)
69
68
  end
70
69
 
71
- def test_single_characters_with_repeated_characters
70
+ def test_decode_single_characters_with_repeated_characters
72
71
  skip
73
72
  input = '12WB12W3B24WB'
74
73
  output = 'WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB'
75
74
  assert_equal output, RunLengthEncoding.decode(input)
76
75
  end
77
76
 
78
- def test_multiple_whitespace_mixed_in_string
77
+ def test_decode_multiple_whitespace_mixed_in_string
79
78
  skip
80
79
  input = '2 hs2q q2w2 '
81
80
  output = ' hsqq qww '
82
81
  assert_equal output, RunLengthEncoding.decode(input)
83
82
  end
84
83
 
85
- def test_lower_case_string
84
+ def test_decode_lower_case_string
86
85
  skip
87
86
  input = '2a3b4c'
88
87
  output = 'aabbbcccc'
89
88
  assert_equal output, RunLengthEncoding.decode(input)
90
89
  end
91
90
 
92
- def test_encode_followed_by_decode_gives_original_string
91
+ def test_consistency_encode_followed_by_decode_gives_original_string
93
92
  skip
94
93
  input = 'zzz ZZ zZ'
95
94
  output = 'zzz ZZ zZ'
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'saddle_points'
5
4
 
@@ -1,4 +1,4 @@
1
- require 'generator/exercise_cases'
1
+ require 'generator/exercise_case'
2
2
 
3
3
  class SayCase < Generator::ExerciseCase
4
4
 
@@ -1,9 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'say'
5
4
 
6
- # Common test data version: be403e1
5
+ # Common test data version: 1.0.0 be403e1
7
6
  class SayTest < Minitest::Test
8
7
  def test_zero
9
8
  # skip
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'scale_generator'
5
4
 
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'scrabble_score'
5
4
 
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'secret_handshake'
5
4
 
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'series'
5
4
 
@@ -1,4 +1,4 @@
1
- require 'generator/exercise_cases'
1
+ require 'generator/exercise_case'
2
2
 
3
3
  class SieveCase < Generator::ExerciseCase
4
4
  OPEN_ARRAY = "[\n\s\s\s\s\s\s".freeze
@@ -1,9 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'sieve'
5
4
 
6
- # Common test data version: f2b2693
5
+ # Common test data version: 1.0.0 f2b2693
7
6
  class SieveTest < Minitest::Test
8
7
  def test_no_primes_under_two
9
8
  # skip
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'simple_cipher'
5
4
 
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'space_age'
5
4
 
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'strain'
5
4
 
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'sum_of_multiples'
5
4
 
@@ -1 +1 @@
1
- 1
1
+ 2
@@ -1,4 +1,4 @@
1
- require 'generator/exercise_cases'
1
+ require 'generator/exercise_case'
2
2
 
3
3
  class TournamentCase < Generator::ExerciseCase
4
4
 
@@ -1,5 +1,5 @@
1
1
  module BookKeeping
2
- VERSION = 1
2
+ VERSION = 2
3
3
  end
4
4
 
5
5
  class Tournament
@@ -7,7 +7,9 @@ class Tournament
7
7
  teams = Hash.new { |h, k| h[k] = Hash.new { |h, k| h[k] = 0 } }
8
8
 
9
9
  input.split("\n").each do |line|
10
- team_one, team_two, result = line.split(';')
10
+ matchdata = line.match(/^(.*);(.*);(.*)$/)
11
+ next unless matchdata
12
+ team_one, team_two, result = matchdata.captures
11
13
 
12
14
  case result
13
15
  when "win"
@@ -1,9 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
- gem 'minitest', '>= 5.0.0'
3
2
  require 'minitest/autorun'
4
3
  require_relative 'tournament'
5
4
 
6
- # Common test data version: cda8f98
5
+ # Common test data version: 1.1.0 877cd7d
7
6
  class TournamentTest < Minitest::Test
8
7
  def test_typical_input
9
8
  # skip
@@ -66,6 +65,24 @@ TALLY
66
65
  assert_equal expected, actual
67
66
  end
68
67
 
68
+ def test_mostly_invalid_lines
69
+ skip
70
+ input = <<-INPUT.gsub(/^ */, '')
71
+
72
+ Allegoric Alaskans@Blithering Badgers;draw
73
+ Blithering Badgers;Devastating Donkeys;loss
74
+ Devastating Donkeys;Courageous Californians;win;5
75
+ Courageous Californians;Allegoric Alaskans;los
76
+ INPUT
77
+ actual = Tournament.tally(input)
78
+ expected = <<-TALLY.gsub(/^ */, '')
79
+ Team | MP | W | D | L | P
80
+ Devastating Donkeys | 1 | 1 | 0 | 0 | 3
81
+ Blithering Badgers | 1 | 0 | 0 | 1 | 0
82
+ TALLY
83
+ assert_equal expected, actual
84
+ end
85
+
69
86
  # Problems in exercism evolve over time, as we find better ways to ask
70
87
  # questions.
71
88
  # The version number refers to the version of the problem you solved,
@@ -85,6 +102,6 @@ TALLY
85
102
 
86
103
  def test_bookkeeping
87
104
  skip
88
- assert_equal 1, BookKeeping::VERSION
105
+ assert_equal 2, BookKeeping::VERSION
89
106
  end
90
107
  end