trackler 2.1.0.1 → 2.1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/elixir/config.json +17 -0
  4. data/tracks/elixir/exercises/matrix/example.exs +63 -0
  5. data/tracks/elixir/exercises/matrix/matrix.exs +48 -0
  6. data/tracks/elixir/exercises/matrix/matrix_test.exs +58 -0
  7. data/tracks/elixir/exercises/twelve-days/example.exs +53 -0
  8. data/tracks/elixir/exercises/twelve-days/twelve_days.exs +25 -0
  9. data/tracks/elixir/exercises/twelve-days/twelve_days_test.exs +86 -0
  10. data/tracks/go/exercises/change/.meta/gen.go +1 -3
  11. data/tracks/go/exercises/change/cases_test.go +1 -0
  12. data/tracks/go/exercises/forth/example.go +1 -1
  13. data/tracks/go/exercises/raindrops/.meta/gen.go +1 -3
  14. data/tracks/go/exercises/raindrops/cases_test.go +5 -1
  15. data/tracks/go/exercises/raindrops/example.go +1 -1
  16. data/tracks/go/exercises/raindrops/raindrops.go +1 -1
  17. data/tracks/go/exercises/raindrops/raindrops_test.go +1 -1
  18. data/tracks/java/config.json +5 -5
  19. data/tracks/java/exercises/isogram/src/example/java/IsogramChecker.java +23 -27
  20. data/tracks/java/exercises/isogram/src/test/java/IsogramCheckerTest.java +77 -0
  21. data/tracks/javascript/config.json +9 -0
  22. data/tracks/javascript/exercises/proverb/example.js +36 -0
  23. data/tracks/javascript/exercises/proverb/proverb.spec.js +78 -0
  24. data/tracks/ruby/README.md +0 -33
  25. data/tracks/ruby/exercises/acronym/.meta/.version +1 -1
  26. data/tracks/ruby/exercises/acronym/acronym_test.rb +14 -9
  27. data/tracks/ruby/exercises/acronym/example.rb +1 -1
  28. data/tracks/ruby/exercises/acronym/example.tt +7 -4
  29. data/tracks/ruby/exercises/all-your-base/all_your_base_test.rb +1 -1
  30. data/tracks/ruby/exercises/all-your-base/example.tt +4 -3
  31. data/tracks/ruby/exercises/alphametics/alphametics_test.rb +2 -1
  32. data/tracks/ruby/exercises/alphametics/example.tt +2 -1
  33. data/tracks/ruby/exercises/anagram/anagram_test.rb +35 -20
  34. data/tracks/ruby/exercises/anagram/example.rb +1 -1
  35. data/tracks/ruby/exercises/anagram/example.tt +5 -2
  36. data/tracks/ruby/exercises/beer-song/beer_song_test.rb +1 -0
  37. data/tracks/ruby/exercises/beer-song/example.tt +6 -4
  38. data/tracks/ruby/exercises/binary/binary_test.rb +3 -2
  39. data/tracks/ruby/exercises/binary/example.tt +5 -2
  40. data/tracks/ruby/exercises/bowling/bowling_test.rb +39 -40
  41. data/tracks/ruby/exercises/bowling/example.tt +2 -2
  42. data/tracks/ruby/exercises/bracket-push/.meta/.version +1 -1
  43. data/tracks/ruby/exercises/bracket-push/bracket_push_test.rb +7 -3
  44. data/tracks/ruby/exercises/bracket-push/example.rb +1 -1
  45. data/tracks/ruby/exercises/bracket-push/example.tt +5 -2
  46. data/tracks/ruby/exercises/clock/clock_test.rb +40 -41
  47. data/tracks/ruby/exercises/clock/example.tt +5 -2
  48. data/tracks/ruby/exercises/connect/.meta/.version +1 -1
  49. data/tracks/ruby/exercises/connect/connect_test.rb +20 -3
  50. data/tracks/ruby/exercises/connect/example.rb +1 -1
  51. data/tracks/ruby/exercises/connect/example.tt +3 -1
  52. data/tracks/ruby/exercises/custom-set/custom_set_test.rb +1 -2
  53. data/tracks/ruby/exercises/custom-set/example.tt +5 -2
  54. data/tracks/ruby/exercises/difference-of-squares/difference_of_squares_test.rb +6 -5
  55. data/tracks/ruby/exercises/difference-of-squares/example.tt +8 -4
  56. data/tracks/ruby/exercises/dominoes/dominoes_test.rb +1 -1
  57. data/tracks/ruby/exercises/dominoes/example.tt +1 -1
  58. data/tracks/ruby/exercises/gigasecond/.meta/.version +1 -1
  59. data/tracks/ruby/exercises/gigasecond/example.rb +1 -1
  60. data/tracks/ruby/exercises/gigasecond/example.tt +7 -5
  61. data/tracks/ruby/exercises/gigasecond/gigasecond_test.rb +11 -16
  62. data/tracks/ruby/exercises/grains/example.tt +5 -3
  63. data/tracks/ruby/exercises/grains/grains_test.rb +2 -1
  64. data/tracks/ruby/exercises/hello-world/example.tt +1 -1
  65. data/tracks/ruby/exercises/hello-world/hello_world_test.rb +1 -1
  66. data/tracks/ruby/exercises/isogram/.meta/.version +1 -1
  67. data/tracks/ruby/exercises/isogram/example.rb +1 -1
  68. data/tracks/ruby/exercises/isogram/example.tt +6 -4
  69. data/tracks/ruby/exercises/isogram/isogram_test.rb +18 -10
  70. data/tracks/ruby/exercises/largest-series-product/.meta/.version +1 -1
  71. data/tracks/ruby/exercises/largest-series-product/example.rb +1 -1
  72. data/tracks/ruby/exercises/largest-series-product/example.tt +7 -5
  73. data/tracks/ruby/exercises/largest-series-product/largest_series_product_test.rb +11 -21
  74. data/tracks/ruby/exercises/leap/.meta/.version +1 -1
  75. data/tracks/ruby/exercises/leap/example.rb +1 -1
  76. data/tracks/ruby/exercises/leap/example.tt +6 -4
  77. data/tracks/ruby/exercises/leap/leap_test.rb +11 -25
  78. data/tracks/ruby/exercises/nth-prime/example.tt +7 -5
  79. data/tracks/ruby/exercises/nth-prime/nth_prime_test.rb +2 -3
  80. data/tracks/ruby/exercises/pangram/example.tt +5 -3
  81. data/tracks/ruby/exercises/pangram/pangram_test.rb +2 -1
  82. data/tracks/ruby/exercises/queen-attack/example.tt +2 -2
  83. data/tracks/ruby/exercises/queen-attack/queen_attack_test.rb +14 -15
  84. data/tracks/ruby/exercises/raindrops/example.tt +7 -4
  85. data/tracks/ruby/exercises/raindrops/raindrops_test.rb +38 -38
  86. data/tracks/ruby/exercises/rna-transcription/example.tt +6 -3
  87. data/tracks/ruby/exercises/rna-transcription/rna_transcription_test.rb +4 -5
  88. data/tracks/ruby/exercises/roman-numerals/example.tt +7 -4
  89. data/tracks/ruby/exercises/roman-numerals/roman_numerals_test.rb +5 -5
  90. data/tracks/ruby/exercises/run-length-encoding/.meta/.version +1 -1
  91. data/tracks/ruby/exercises/run-length-encoding/example.rb +1 -1
  92. data/tracks/ruby/exercises/run-length-encoding/example.tt +6 -3
  93. data/tracks/ruby/exercises/run-length-encoding/run_length_encoding_test.rb +70 -28
  94. data/tracks/ruby/exercises/say/example.tt +7 -5
  95. data/tracks/ruby/exercises/say/say_test.rb +3 -2
  96. data/tracks/ruby/exercises/sieve/example.tt +4 -1
  97. data/tracks/ruby/exercises/sieve/sieve_test.rb +1 -3
  98. data/tracks/ruby/exercises/tournament/example.tt +4 -1
  99. data/tracks/ruby/exercises/tournament/tournament_test.rb +1 -2
  100. data/tracks/ruby/exercises/transpose/example.tt +5 -2
  101. data/tracks/ruby/exercises/transpose/transpose_test.rb +1 -2
  102. data/tracks/ruby/exercises/triangle/example.tt +5 -3
  103. data/tracks/ruby/exercises/triangle/triangle_test.rb +1 -3
  104. data/tracks/ruby/exercises/two-bucket/example.tt +7 -4
  105. data/tracks/ruby/exercises/two-bucket/two_bucket_test.rb +9 -9
  106. data/tracks/ruby/exercises/word-count/example.tt +6 -4
  107. data/tracks/ruby/exercises/word-count/word_count_test.rb +2 -3
  108. data/tracks/ruby/exercises/wordy/example.tt +5 -3
  109. data/tracks/ruby/exercises/wordy/wordy_test.rb +2 -1
  110. data/tracks/ruby/lib/acronym_cases.rb +3 -15
  111. data/tracks/ruby/lib/all_your_base_cases.rb +22 -54
  112. data/tracks/ruby/lib/alphametics_cases.rb +12 -27
  113. data/tracks/ruby/lib/anagram_cases.rb +7 -15
  114. data/tracks/ruby/lib/beer_song_cases.rb +7 -24
  115. data/tracks/ruby/lib/binary_cases.rb +5 -18
  116. data/tracks/ruby/lib/bowling_cases.rb +24 -24
  117. data/tracks/ruby/lib/bracket_push_cases.rb +6 -21
  118. data/tracks/ruby/lib/clock_cases.rb +6 -25
  119. data/tracks/ruby/lib/connect_cases.rb +2 -20
  120. data/tracks/ruby/lib/custom_set_cases.rb +14 -35
  121. data/tracks/ruby/lib/difference_of_squares_cases.rb +5 -26
  122. data/tracks/ruby/lib/dominoes_cases.rb +2 -11
  123. data/tracks/ruby/lib/generator/case_values.rb +25 -0
  124. data/tracks/ruby/lib/generator/exercise_cases.rb +11 -0
  125. data/tracks/ruby/lib/generator/files/track_files.rb +7 -2
  126. data/tracks/ruby/lib/generator/template_values.rb +12 -7
  127. data/tracks/ruby/lib/gigasecond_cases.rb +4 -18
  128. data/tracks/ruby/lib/grains_cases.rb +11 -38
  129. data/tracks/ruby/lib/hamming_cases.rb +0 -6
  130. data/tracks/ruby/lib/hello_world_cases.rb +2 -14
  131. data/tracks/ruby/lib/isogram_cases.rb +8 -16
  132. data/tracks/ruby/lib/largest_series_product_cases.rb +10 -16
  133. data/tracks/ruby/lib/leap_cases.rb +3 -16
  134. data/tracks/ruby/lib/luhn_cases.rb +0 -6
  135. data/tracks/ruby/lib/nth_prime_cases.rb +11 -13
  136. data/tracks/ruby/lib/ocr_numbers_cases.rb +0 -5
  137. data/tracks/ruby/lib/pangram_cases.rb +2 -19
  138. data/tracks/ruby/lib/pig_latin_cases.rb +0 -5
  139. data/tracks/ruby/lib/queen_attack_cases.rb +14 -37
  140. data/tracks/ruby/lib/raindrops_cases.rb +3 -15
  141. data/tracks/ruby/lib/rna_transcription_cases.rb +2 -14
  142. data/tracks/ruby/lib/roman_numerals_cases.rb +7 -10
  143. data/tracks/ruby/lib/run_length_encoding_cases.rb +4 -25
  144. data/tracks/ruby/lib/say_cases.rb +3 -14
  145. data/tracks/ruby/lib/sieve_cases.rb +1 -15
  146. data/tracks/ruby/lib/tournament_cases.rb +1 -14
  147. data/tracks/ruby/lib/transpose_cases.rb +1 -14
  148. data/tracks/ruby/lib/triangle_cases.rb +8 -27
  149. data/tracks/ruby/lib/two_bucket_cases.rb +7 -17
  150. data/tracks/ruby/lib/word_count_cases.rb +1 -13
  151. data/tracks/ruby/lib/wordy_cases.rb +4 -27
  152. data/tracks/ruby/test/fixtures/metadata/exercises/complex/canonical-data.json +45 -0
  153. data/tracks/ruby/test/fixtures/xruby/lib/beta_cases.rb +7 -0
  154. data/tracks/ruby/test/generator/case_values_test.rb +30 -0
  155. data/tracks/ruby/test/generator/files/track_files_test.rb +2 -3
  156. data/tracks/ruby/test/generator/template_values_test.rb +44 -3
  157. data/tracks/ruby/test/wordy_cases_test.rb +4 -65
  158. metadata +14 -4
  159. data/tracks/java/exercises/isogram/src/test/java/IsogramTest.java +0 -80
  160. data/tracks/ruby/test/grains_cases_test.rb +0 -103
@@ -9,12 +9,12 @@ class BowlingTest < Minitest::Test
9
9
  @game = Game.new
10
10
  end
11
11
 
12
- def roll(rolls)
12
+ def record(rolls)
13
13
  rolls.each { |pins| @game.roll(pins) }
14
14
  end
15
15
 
16
16
  <% test_cases.each do |test_case| %>
17
- def <%= test_case.test_name %>
17
+ def <%= test_case.name %>
18
18
  <%= test_case.skipped %>
19
19
  <%= test_case.workload %>
20
20
  end
@@ -1 +1 @@
1
- 3
1
+ 4
@@ -3,8 +3,7 @@ gem 'minitest', '>= 5.0.0'
3
3
  require 'minitest/autorun'
4
4
  require_relative 'bracket_push'
5
5
 
6
- # Test data version:
7
- # 306975e
6
+ # Common test data version: 855c591
8
7
  class BracketsTest < Minitest::Test
9
8
  def test_paired_square_brackets
10
9
  # skip
@@ -26,6 +25,11 @@ class BracketsTest < Minitest::Test
26
25
  refute Brackets.paired?('}{')
27
26
  end
28
27
 
28
+ def test_wrong_closing_bracket
29
+ skip
30
+ refute Brackets.paired?('{]')
31
+ end
32
+
29
33
  def test_paired_with_whitespace
30
34
  skip
31
35
  assert Brackets.paired?('{ }')
@@ -92,6 +96,6 @@ class BracketsTest < Minitest::Test
92
96
 
93
97
  def test_bookkeeping
94
98
  skip
95
- assert_equal 3, BookKeeping::VERSION
99
+ assert_equal 4, BookKeeping::VERSION
96
100
  end
97
101
  end
@@ -1,5 +1,5 @@
1
1
  module BookKeeping
2
- VERSION = 3
2
+ VERSION = 4
3
3
  end
4
4
 
5
5
  module Brackets
@@ -4,13 +4,16 @@ require 'minitest/autorun'
4
4
  require_relative 'bracket_push'
5
5
 
6
6
  # Common test data version: <%= abbreviated_commit_hash %>
7
- class BracketsTest < Minitest::Test<% test_cases.each do |test_case| %>
7
+ class BracketsTest < Minitest::Test
8
+ <% test_cases.each do |test_case| %>
8
9
  def <%= test_case.name %>
9
10
  <%= test_case.skipped %>
10
- <%= test_case.test_body %>
11
+ <%= test_case.workload %>
11
12
  end
13
+
12
14
  <% end %>
13
15
  <%= IO.read(XRUBY_LIB + '/bookkeeping.md') %>
16
+
14
17
  def test_bookkeeping
15
18
  skip
16
19
  assert_equal <%= version %>, BookKeeping::VERSION
@@ -3,183 +3,181 @@ gem 'minitest', '>= 5.0.0'
3
3
  require 'minitest/autorun'
4
4
  require_relative 'clock'
5
5
 
6
- # Test data version:
7
- # deb225e Implement canonical dataset for scrabble-score problem (#255)
8
-
6
+ # Common test data version: 8c7fc0c
9
7
  class ClockTest < Minitest::Test
10
8
  def test_on_the_hour
11
9
  # skip
12
- assert_equal '08:00', Clock.at(8, 0).to_s
10
+ assert_equal "08:00", Clock.at(8, 0).to_s
13
11
  end
14
12
 
15
13
  def test_past_the_hour
16
14
  skip
17
- assert_equal '11:09', Clock.at(11, 9).to_s
15
+ assert_equal "11:09", Clock.at(11, 9).to_s
18
16
  end
19
17
 
20
18
  def test_midnight_is_zero_hours
21
19
  skip
22
- assert_equal '00:00', Clock.at(24, 0).to_s
20
+ assert_equal "00:00", Clock.at(24, 0).to_s
23
21
  end
24
22
 
25
23
  def test_hour_rolls_over
26
24
  skip
27
- assert_equal '01:00', Clock.at(25, 0).to_s
25
+ assert_equal "01:00", Clock.at(25, 0).to_s
28
26
  end
29
27
 
30
28
  def test_hour_rolls_over_continuously
31
29
  skip
32
- assert_equal '04:00', Clock.at(100, 0).to_s
30
+ assert_equal "04:00", Clock.at(100, 0).to_s
33
31
  end
34
32
 
35
33
  def test_sixty_minutes_is_next_hour
36
34
  skip
37
- assert_equal '02:00', Clock.at(1, 60).to_s
35
+ assert_equal "02:00", Clock.at(1, 60).to_s
38
36
  end
39
37
 
40
38
  def test_minutes_roll_over
41
39
  skip
42
- assert_equal '02:40', Clock.at(0, 160).to_s
40
+ assert_equal "02:40", Clock.at(0, 160).to_s
43
41
  end
44
42
 
45
43
  def test_minutes_roll_over_continuously
46
44
  skip
47
- assert_equal '04:43', Clock.at(0, 1723).to_s
45
+ assert_equal "04:43", Clock.at(0, 1723).to_s
48
46
  end
49
47
 
50
48
  def test_hour_and_minutes_roll_over
51
49
  skip
52
- assert_equal '03:40', Clock.at(25, 160).to_s
50
+ assert_equal "03:40", Clock.at(25, 160).to_s
53
51
  end
54
52
 
55
53
  def test_hour_and_minutes_roll_over_continuously
56
54
  skip
57
- assert_equal '11:01', Clock.at(201, 3001).to_s
55
+ assert_equal "11:01", Clock.at(201, 3001).to_s
58
56
  end
59
57
 
60
58
  def test_hour_and_minutes_roll_over_to_exactly_midnight
61
59
  skip
62
- assert_equal '00:00', Clock.at(72, 8640).to_s
60
+ assert_equal "00:00", Clock.at(72, 8640).to_s
63
61
  end
64
62
 
65
63
  def test_negative_hour
66
64
  skip
67
- assert_equal '23:15', Clock.at(-1, 15).to_s
65
+ assert_equal "23:15", Clock.at(-1, 15).to_s
68
66
  end
69
67
 
70
68
  def test_negative_hour_rolls_over
71
69
  skip
72
- assert_equal '23:00', Clock.at(-25, 0).to_s
70
+ assert_equal "23:00", Clock.at(-25, 0).to_s
73
71
  end
74
72
 
75
73
  def test_negative_hour_rolls_over_continuously
76
74
  skip
77
- assert_equal '05:00', Clock.at(-91, 0).to_s
75
+ assert_equal "05:00", Clock.at(-91, 0).to_s
78
76
  end
79
77
 
80
78
  def test_negative_minutes
81
79
  skip
82
- assert_equal '00:20', Clock.at(1, -40).to_s
80
+ assert_equal "00:20", Clock.at(1, -40).to_s
83
81
  end
84
82
 
85
83
  def test_negative_minutes_roll_over
86
84
  skip
87
- assert_equal '22:20', Clock.at(1, -160).to_s
85
+ assert_equal "22:20", Clock.at(1, -160).to_s
88
86
  end
89
87
 
90
88
  def test_negative_minutes_roll_over_continuously
91
89
  skip
92
- assert_equal '16:40', Clock.at(1, -4820).to_s
90
+ assert_equal "16:40", Clock.at(1, -4820).to_s
93
91
  end
94
92
 
95
93
  def test_negative_hour_and_minutes_both_roll_over
96
94
  skip
97
- assert_equal '20:20', Clock.at(-25, -160).to_s
95
+ assert_equal "20:20", Clock.at(-25, -160).to_s
98
96
  end
99
97
 
100
98
  def test_negative_hour_and_minutes_both_roll_over_continuously
101
99
  skip
102
- assert_equal '22:10', Clock.at(-121, -5810).to_s
100
+ assert_equal "22:10", Clock.at(-121, -5810).to_s
103
101
  end
104
102
 
105
103
  def test_add_minutes
106
104
  skip
107
- assert_equal '10:03', (Clock.at(10, 0) + 3).to_s
105
+ assert_equal "10:03", (Clock.at(10, 0) + 3).to_s
108
106
  end
109
107
 
110
108
  def test_add_no_minutes
111
109
  skip
112
- assert_equal '06:41', (Clock.at(6, 41) + 0).to_s
110
+ assert_equal "06:41", (Clock.at(6, 41) + 0).to_s
113
111
  end
114
112
 
115
113
  def test_add_to_next_hour
116
114
  skip
117
- assert_equal '01:25', (Clock.at(0, 45) + 40).to_s
115
+ assert_equal "01:25", (Clock.at(0, 45) + 40).to_s
118
116
  end
119
117
 
120
118
  def test_add_more_than_one_hour
121
119
  skip
122
- assert_equal '11:01', (Clock.at(10, 0) + 61).to_s
120
+ assert_equal "11:01", (Clock.at(10, 0) + 61).to_s
123
121
  end
124
122
 
125
123
  def test_add_more_than_two_hours_with_carry
126
124
  skip
127
- assert_equal '03:25', (Clock.at(0, 45) + 160).to_s
125
+ assert_equal "03:25", (Clock.at(0, 45) + 160).to_s
128
126
  end
129
127
 
130
128
  def test_add_across_midnight
131
129
  skip
132
- assert_equal '00:01', (Clock.at(23, 59) + 2).to_s
130
+ assert_equal "00:01", (Clock.at(23, 59) + 2).to_s
133
131
  end
134
132
 
135
133
  def test_add_more_than_one_day__1500_min_is_equal_to_25_hrs
136
134
  skip
137
- assert_equal '06:32', (Clock.at(5, 32) + 1500).to_s
135
+ assert_equal "06:32", (Clock.at(5, 32) + 1500).to_s
138
136
  end
139
137
 
140
138
  def test_add_more_than_two_days
141
139
  skip
142
- assert_equal '11:21', (Clock.at(1, 1) + 3500).to_s
140
+ assert_equal "11:21", (Clock.at(1, 1) + 3500).to_s
143
141
  end
144
142
 
145
143
  def test_subtract_minutes
146
144
  skip
147
- assert_equal '10:00', (Clock.at(10, 3) + -3).to_s
145
+ assert_equal "10:00", (Clock.at(10, 3) + -3).to_s
148
146
  end
149
147
 
150
148
  def test_subtract_to_previous_hour
151
149
  skip
152
- assert_equal '09:33', (Clock.at(10, 3) + -30).to_s
150
+ assert_equal "09:33", (Clock.at(10, 3) + -30).to_s
153
151
  end
154
152
 
155
153
  def test_subtract_more_than_an_hour
156
154
  skip
157
- assert_equal '08:53', (Clock.at(10, 3) + -70).to_s
155
+ assert_equal "08:53", (Clock.at(10, 3) + -70).to_s
158
156
  end
159
157
 
160
158
  def test_subtract_across_midnight
161
159
  skip
162
- assert_equal '23:59', (Clock.at(0, 3) + -4).to_s
160
+ assert_equal "23:59", (Clock.at(0, 3) + -4).to_s
163
161
  end
164
162
 
165
163
  def test_subtract_more_than_two_hours
166
164
  skip
167
- assert_equal '21:20', (Clock.at(0, 0) + -160).to_s
165
+ assert_equal "21:20", (Clock.at(0, 0) + -160).to_s
168
166
  end
169
167
 
170
168
  def test_subtract_more_than_two_hours_with_borrow
171
169
  skip
172
- assert_equal '03:35', (Clock.at(6, 15) + -160).to_s
170
+ assert_equal "03:35", (Clock.at(6, 15) + -160).to_s
173
171
  end
174
172
 
175
173
  def test_subtract_more_than_one_day__1500_min_is_equal_to_25_hrs
176
174
  skip
177
- assert_equal '04:32', (Clock.at(5, 32) + -1500).to_s
175
+ assert_equal "04:32", (Clock.at(5, 32) + -1500).to_s
178
176
  end
179
177
 
180
178
  def test_subtract_more_than_two_days
181
179
  skip
182
- assert_equal '00:20', (Clock.at(2, 20) + -3000).to_s
180
+ assert_equal "00:20", (Clock.at(2, 20) + -3000).to_s
183
181
  end
184
182
 
185
183
  def test_clocks_with_same_time
@@ -283,7 +281,7 @@ class ClockTest < Minitest::Test
283
281
  def test_clocks_with_negative_hours_and_minutes_that_wrap
284
282
  skip
285
283
  clock1 = Clock.at(18, 7)
286
- clock2 = Clock.at(-54, -11_513)
284
+ clock2 = Clock.at(-54, -11513)
287
285
  assert clock1 == clock2
288
286
  end
289
287
 
@@ -293,8 +291,9 @@ class ClockTest < Minitest::Test
293
291
  # not your solution.
294
292
  #
295
293
  # Define a constant named VERSION inside of the top level BookKeeping
296
- # module.
297
- # In your file, it will look like this:
294
+ # module, which may be placed near the end of your file.
295
+ #
296
+ # In your file, it will look like this:
298
297
  #
299
298
  # module BookKeeping
300
299
  # VERSION = 1 # Where the version number matches the one in the test.
@@ -4,13 +4,16 @@ require 'minitest/autorun'
4
4
  require_relative 'clock'
5
5
 
6
6
  # Common test data version: <%= abbreviated_commit_hash %>
7
- class ClockTest < Minitest::Test<% test_cases.each do |test_case| %>
7
+ class ClockTest < Minitest::Test
8
+ <% test_cases.each do |test_case| %>
8
9
  def <%= test_case.name %>
9
10
  <%= test_case.skipped %>
10
- <%= test_case.test_body %>
11
+ <%= test_case.workload %>
11
12
  end
13
+
12
14
  <% end %>
13
15
  <%= IO.read(XRUBY_LIB + '/bookkeeping.md') %>
16
+
14
17
  def test_bookkeeping
15
18
  skip
16
19
  assert_equal <%= version %>, BookKeeping::VERSION
@@ -1 +1 @@
1
- 1
1
+ 2
@@ -3,7 +3,7 @@ gem 'minitest', '>= 5.0.0'
3
3
  require 'minitest/autorun'
4
4
  require_relative 'connect'
5
5
 
6
- # Test data version commit id: 6c6a395
6
+ # Common test data version: 327db7f
7
7
  class ConnectTest < Minitest::Test
8
8
  def test_an_empty_board_has_no_winner
9
9
  # skip
@@ -18,6 +18,24 @@ class ConnectTest < Minitest::Test
18
18
  assert_equal '', game.winner, 'an empty board has no winner'
19
19
  end
20
20
 
21
+ def test_x_can_win_on_a_1x1_board
22
+ skip
23
+ board = [
24
+ 'X'
25
+ ]
26
+ game = Board.new(board)
27
+ assert_equal 'X', game.winner, 'X can win on a 1x1 board'
28
+ end
29
+
30
+ def test_o_can_win_on_a_1x1_board
31
+ skip
32
+ board = [
33
+ 'O'
34
+ ]
35
+ game = Board.new(board)
36
+ assert_equal 'O', game.winner, 'O can win on a 1x1 board'
37
+ end
38
+
21
39
  def test_only_edges_does_not_make_a_winner
22
40
  skip
23
41
  board = [
@@ -128,9 +146,8 @@ class ConnectTest < Minitest::Test
128
146
  #
129
147
  # If you are curious, read more about constants on RubyDoc:
130
148
  # http://ruby-doc.org/docs/ruby-doc-bundle/UsersGuide/rg/constants.html
131
-
132
149
  def test_bookkeeping
133
150
  skip
134
- assert_equal 1, BookKeeping::VERSION
151
+ assert_equal 2, BookKeeping::VERSION
135
152
  end
136
153
  end
@@ -1,5 +1,5 @@
1
1
  module BookKeeping
2
- VERSION = 1
2
+ VERSION = 2
3
3
  end
4
4
  Position = Struct.new(:x, :y)
5
5
  class Board
@@ -4,11 +4,13 @@ require 'minitest/autorun'
4
4
  require_relative 'connect'
5
5
 
6
6
  # Common test data version: <%= abbreviated_commit_hash %>
7
- class ConnectTest < Minitest::Test<% test_cases.each do |test_case| %>
7
+ class ConnectTest < Minitest::Test
8
+ <% test_cases.each do |test_case| %>
8
9
  <%= test_case.ignore_method_length%>def <%= test_case.name %>
9
10
  <%= test_case.skipped %><% test_case.test_body.each do |line| %>
10
11
  <%= line %><% end %>
11
12
  end
13
+
12
14
  <% end %>
13
15
  <%= IO.read(XRUBY_LIB + '/bookkeeping.md') %>
14
16
  def test_bookkeeping
@@ -3,8 +3,7 @@ gem 'minitest', '>= 5.0.0'
3
3
  require 'minitest/autorun'
4
4
  require_relative 'custom_set'
5
5
 
6
- # Test data version:
7
- # cdfb4a2
6
+ # Common test data version: 4527635
8
7
  class CustomSetTest < Minitest::Test
9
8
  def test_sets_with_no_elements_are_empty
10
9
  # skip
@@ -4,13 +4,16 @@ require 'minitest/autorun'
4
4
  require_relative 'custom_set'
5
5
 
6
6
  # Common test data version: <%= abbreviated_commit_hash %>
7
- class CustomSetTest < Minitest::Test<% test_cases.each do |test_case| %>
7
+ class CustomSetTest < Minitest::Test
8
+ <% test_cases.each do |test_case| %>
8
9
  def <%= test_case.name %>
9
10
  <%= test_case.skipped %>
10
- <%= test_case.test_body %>
11
+ <%= test_case.workload %>
11
12
  end
13
+
12
14
  <% end %>
13
15
  <%= IO.read(XRUBY_LIB + '/bookkeeping.md') %>
16
+
14
17
  def test_bookkeeping
15
18
  skip
16
19
  assert_equal <%= version %>, BookKeeping::VERSION
@@ -3,11 +3,10 @@ gem 'minitest', '>= 5.0.0'
3
3
  require 'minitest/autorun'
4
4
  require_relative 'difference_of_squares'
5
5
 
6
- # Test data version:
7
- # deb225e Implement canonical dataset for scrabble-score problem (#255)
8
-
6
+ # Common test data version: 1eb9535
9
7
  class DifferenceOfSquaresTest < Minitest::Test
10
8
  def test_square_of_sum_5
9
+ # skip
11
10
  assert_equal 225, Squares.new(5).square_of_sum
12
11
  end
13
12
 
@@ -61,14 +60,16 @@ class DifferenceOfSquaresTest < Minitest::Test
61
60
  squares = Squares.new(10)
62
61
  assert_equal squares.difference, squares.difference
63
62
  end
63
+
64
64
  # Problems in exercism evolve over time, as we find better ways to ask
65
65
  # questions.
66
66
  # The version number refers to the version of the problem you solved,
67
67
  # not your solution.
68
68
  #
69
69
  # Define a constant named VERSION inside of the top level BookKeeping
70
- # module.
71
- # In your file, it will look like this:
70
+ # module, which may be placed near the end of your file.
71
+ #
72
+ # In your file, it will look like this:
72
73
  #
73
74
  # module BookKeeping
74
75
  # VERSION = 1 # Where the version number matches the one in the test.