trackler 2.1.0.6 → 2.1.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/common/exercises/rail-fence-cipher/canonical-data.json +7 -7
- data/common/exercises/scrabble-score/description.md +2 -2
- data/lib/trackler/version.rb +1 -1
- data/tracks/delphi/exercises/clock/uClockExample.pas +5 -5
- data/tracks/delphi/exercises/clock/uClockTest.pas +435 -49
- data/tracks/ocaml/exercises/triangle/example.ml +1 -1
- data/tracks/ocaml/exercises/triangle/test.ml +8 -8
- data/tracks/ocaml/exercises/triangle/triangle.mli +1 -1
- data/tracks/ocaml/tools/test-generator/templates/triangle/template.ml +3 -3
- data/tracks/perl6/exercises/all-your-base/AllYourBase.pm6 +1 -1
- data/tracks/perl6/exercises/all-your-base/Example.pm +2 -2
- data/tracks/perl6/exercises/all-your-base/all-your-base.t +215 -138
- data/tracks/perl6/exercises/all-your-base/example.yaml +14 -0
- data/tracks/ruby/exercises/acronym/.meta/generator/acronym_cases.rb +1 -1
- data/tracks/ruby/exercises/all-your-base/.meta/generator/all_your_base_cases.rb +4 -10
- data/tracks/ruby/exercises/all-your-base/all_your_base_test.rb +3 -0
- data/tracks/ruby/exercises/alphametics/.meta/generator/alphametics_cases.rb +1 -1
- data/tracks/ruby/exercises/alphametics/{example.tt → .meta/generator/test_template.erb} +0 -0
- data/tracks/ruby/exercises/anagram/.meta/generator/anagram_cases.rb +1 -1
- data/tracks/ruby/exercises/beer-song/.meta/generator/beer_song_cases.rb +3 -6
- data/tracks/ruby/exercises/beer-song/beer_song_test.rb +1 -1
- data/tracks/ruby/exercises/binary/.meta/generator/binary_cases.rb +1 -1
- data/tracks/ruby/exercises/bowling/.meta/generator/bowling_cases.rb +1 -1
- data/tracks/ruby/exercises/bowling/{example.tt → .meta/generator/test_template.erb} +0 -0
- data/tracks/ruby/exercises/bracket-push/.meta/generator/bracket_push_cases.rb +1 -1
- data/tracks/ruby/exercises/clock/.meta/generator/clock_cases.rb +1 -1
- data/tracks/ruby/exercises/connect/.meta/generator/connect_cases.rb +1 -1
- data/tracks/ruby/exercises/connect/{example.tt → .meta/generator/test_template.erb} +0 -0
- data/tracks/ruby/exercises/custom-set/.meta/generator/custom_set_cases.rb +1 -1
- data/tracks/ruby/exercises/difference-of-squares/.meta/generator/difference_of_squares_cases.rb +1 -1
- data/tracks/ruby/exercises/difference-of-squares/difference_of_squares_test.rb +0 -6
- data/tracks/ruby/exercises/dominoes/.meta/generator/dominoes_cases.rb +1 -1
- data/tracks/ruby/exercises/dominoes/{example.tt → .meta/generator/test_template.erb} +0 -0
- data/tracks/ruby/exercises/etl/.meta/generator/etl_cases.rb +1 -1
- data/tracks/ruby/exercises/gigasecond/.meta/generator/gigasecond_cases.rb +1 -1
- data/tracks/ruby/exercises/gigasecond/gigasecond_test.rb +3 -5
- data/tracks/ruby/exercises/grains/.meta/generator/grains_cases.rb +1 -1
- data/tracks/ruby/exercises/hamming/.meta/generator/hamming_cases.rb +1 -1
- data/tracks/ruby/exercises/hello-world/.meta/generator/hello_world_cases.rb +1 -1
- data/tracks/ruby/exercises/hello-world/{example.tt → .meta/generator/test_template.erb} +0 -0
- data/tracks/ruby/exercises/isogram/.meta/generator/isogram_cases.rb +1 -1
- data/tracks/ruby/exercises/largest-series-product/.meta/generator/largest_series_product_cases.rb +1 -1
- data/tracks/ruby/exercises/leap/.meta/generator/leap_cases.rb +1 -1
- data/tracks/ruby/exercises/leap/{example.tt → .meta/generator/test_template.erb} +0 -0
- data/tracks/ruby/exercises/luhn/.meta/generator/luhn_cases.rb +1 -1
- data/tracks/ruby/exercises/nth-prime/.meta/generator/nth_prime_cases.rb +1 -1
- data/tracks/ruby/exercises/ocr-numbers/.meta/generator/ocr_numbers_cases.rb +1 -1
- data/tracks/ruby/exercises/pangram/.meta/generator/pangram_cases.rb +1 -1
- data/tracks/ruby/exercises/pig-latin/.meta/generator/pig_latin_cases.rb +1 -1
- data/tracks/ruby/exercises/queen-attack/.meta/generator/queen_attack_cases.rb +1 -1
- data/tracks/ruby/exercises/raindrops/.meta/generator/raindrops_cases.rb +1 -1
- data/tracks/ruby/exercises/rna-transcription/.meta/generator/rna_transcription_cases.rb +1 -1
- data/tracks/ruby/exercises/roman-numerals/.meta/generator/roman_numerals_cases.rb +1 -1
- data/tracks/ruby/exercises/run-length-encoding/.meta/generator/run_length_encoding_cases.rb +1 -1
- data/tracks/ruby/exercises/say/.meta/generator/say_cases.rb +1 -1
- data/tracks/ruby/exercises/sieve/.meta/generator/sieve_cases.rb +1 -1
- data/tracks/ruby/exercises/tournament/.meta/generator/tournament_cases.rb +7 -24
- data/tracks/ruby/exercises/tournament/tournament_test.rb +37 -38
- data/tracks/ruby/exercises/transpose/.meta/generator/transpose_cases.rb +7 -23
- data/tracks/ruby/exercises/transpose/transpose_test.rb +22 -22
- data/tracks/ruby/exercises/triangle/.meta/generator/triangle_cases.rb +1 -1
- data/tracks/ruby/exercises/two-bucket/.meta/generator/two_bucket_cases.rb +1 -1
- data/tracks/ruby/exercises/word-count/.meta/generator/word_count_cases.rb +1 -1
- data/tracks/ruby/exercises/wordy/.meta/generator/wordy_cases.rb +1 -1
- data/tracks/ruby/lib/generator/exercise_case/assertion.rb +33 -0
- data/tracks/ruby/lib/generator/exercise_cases.rb +46 -49
- data/tracks/ruby/lib/generator/files/generator_cases.rb +0 -14
- data/tracks/ruby/test/fixtures/xruby/{lib → exercises/alpha/.meta/generator}/alpha_cases.rb +0 -0
- data/tracks/ruby/test/fixtures/xruby/exercises/beta/.meta/generator/beta_cases.rb +1 -1
- data/tracks/ruby/test/generator/case_values_test.rb +5 -5
- data/tracks/ruby/test/generator/exercise_case/assertion_test.rb +46 -0
- data/tracks/ruby/test/generator/exercise_cases_test.rb +47 -0
- data/tracks/ruby/test/generator/files/generate_cases_test.rb +0 -12
- metadata +13 -15
- data/tracks/ruby/exercises/all-your-base/example.tt +0 -18
- data/tracks/ruby/exercises/beer-song/example.tt +0 -24
- data/tracks/ruby/exercises/difference-of-squares/example.tt +0 -27
- data/tracks/ruby/exercises/gigasecond/example.tt +0 -23
- data/tracks/ruby/exercises/tournament/example.tt +0 -25
- data/tracks/ruby/exercises/transpose/example.tt +0 -24
@@ -0,0 +1,14 @@
|
|
1
|
+
exercise: AllYourBase
|
2
|
+
version: 2
|
3
|
+
plan: 23
|
4
|
+
imports: '&convert-base'
|
5
|
+
tests: |
|
6
|
+
sub test ($case, $expected) { is-deeply &::('convert-base')(|$case<input_base input_digits output_base>), $expected, $case<description> }
|
7
|
+
for @($c-data<cases>) {
|
8
|
+
when .<expected> ~~ Array { test $_, .<expected> }
|
9
|
+
when .<description> ~~ /base|digit/ { throws-like {&::('convert-base')(|.<input_base input_digits output_base>)}, Exception, .<description> }
|
10
|
+
when .<description> eq 'leading zeros' { test $_, [4,2] }
|
11
|
+
when .<description> eq 'empty list' { test $_, [] }
|
12
|
+
when .<description> ~~ /zero/ { test $_, [0] }
|
13
|
+
default { flunk .<description> } # To ensure that no canonical-data cases are missed.
|
14
|
+
}
|
@@ -1,19 +1,13 @@
|
|
1
1
|
require 'generator/exercise_cases'
|
2
2
|
|
3
|
-
class AllYourBaseCase < ExerciseCase
|
3
|
+
class AllYourBaseCase < Generator::ExerciseCase
|
4
4
|
|
5
5
|
def workload
|
6
|
-
|
6
|
+
indent_text(4, (assignments + assertion).join("\n"))
|
7
7
|
end
|
8
8
|
|
9
9
|
private
|
10
10
|
|
11
|
-
def indent(size, text)
|
12
|
-
text.lines.each_with_object('') do |line, obj|
|
13
|
-
obj << (line == "\n" ? line : ' ' * size + line)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
11
|
def assignments
|
18
12
|
[
|
19
13
|
"digits = #{input_digits}",
|
@@ -31,7 +25,7 @@ class AllYourBaseCase < ExerciseCase
|
|
31
25
|
"converted = BaseConverter.convert(input_base, digits, output_base)",
|
32
26
|
"",
|
33
27
|
"assert_equal expected, converted,",
|
34
|
-
|
28
|
+
indent_text(13, error_message),
|
35
29
|
]
|
36
30
|
end
|
37
31
|
|
@@ -45,7 +39,7 @@ class AllYourBaseCase < ExerciseCase
|
|
45
39
|
end
|
46
40
|
|
47
41
|
def error_message
|
48
|
-
%q("Input base: #{input_base}, output base #{output_base}. " \\) \
|
42
|
+
%q( "Input base: #{input_base}, output base #{output_base}. " \\) \
|
49
43
|
"\n" + %q("Expected #{expected} but got #{converted}.")
|
50
44
|
end
|
51
45
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
gem 'minitest', '>= 5.0.0'
|
1
3
|
require 'minitest/autorun'
|
2
4
|
require_relative 'all_your_base'
|
3
5
|
|
@@ -286,6 +288,7 @@ class AllYourBaseTest < Minitest::Test
|
|
286
288
|
#
|
287
289
|
# If you are curious, read more about constants on RubyDoc:
|
288
290
|
# http://ruby-doc.org/docs/ruby-doc-bundle/UsersGuide/rg/constants.html
|
291
|
+
|
289
292
|
def test_bookkeeping
|
290
293
|
skip
|
291
294
|
assert_equal 2, BookKeeping::VERSION
|
File without changes
|
@@ -1,13 +1,10 @@
|
|
1
1
|
require 'generator/exercise_cases'
|
2
2
|
|
3
|
-
class BeerSongCase < ExerciseCase
|
3
|
+
class BeerSongCase < Generator::ExerciseCase
|
4
4
|
|
5
5
|
def workload
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
def expected
|
10
|
-
self["expected"].gsub('\n', '"\n" \\')
|
6
|
+
%Q(expected = #{indent_heredoc(expected.split("\n"), 'TEXT', 0)}\n) +
|
7
|
+
" assert_equal expected, #{beer_song}"
|
11
8
|
end
|
12
9
|
|
13
10
|
private
|
@@ -1,5 +1,4 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
# encoding: utf-8
|
3
2
|
gem 'minitest', '>= 5.0.0'
|
4
3
|
require 'minitest/autorun'
|
5
4
|
require_relative 'beer_song'
|
@@ -400,6 +399,7 @@ TEXT
|
|
400
399
|
#
|
401
400
|
# If you are curious, read more about constants on RubyDoc:
|
402
401
|
# http://ruby-doc.org/docs/ruby-doc-bundle/UsersGuide/rg/constants.html
|
402
|
+
|
403
403
|
def test_bookkeeping
|
404
404
|
skip
|
405
405
|
assert_equal 3, BookKeeping::VERSION
|
File without changes
|
File without changes
|
@@ -55,12 +55,6 @@ class DifferenceOfSquaresTest < Minitest::Test
|
|
55
55
|
assert_equal 25_164_150, Squares.new(100).difference
|
56
56
|
end
|
57
57
|
|
58
|
-
def test_consistent_difference
|
59
|
-
skip
|
60
|
-
squares = Squares.new(10)
|
61
|
-
assert_equal squares.difference, squares.difference
|
62
|
-
end
|
63
|
-
|
64
58
|
# Problems in exercism evolve over time, as we find better ways to ask
|
65
59
|
# questions.
|
66
60
|
# The version number refers to the version of the problem you solved,
|
File without changes
|
@@ -1,3 +1,5 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
gem 'minitest', '>= 5.0.0'
|
1
3
|
require 'minitest/autorun'
|
2
4
|
require_relative 'gigasecond'
|
3
5
|
|
@@ -28,11 +30,6 @@ class GigasecondTest < Minitest::Test
|
|
28
30
|
assert_equal Time.utc(2046, 10, 3, 1, 46, 39), Gigasecond.from(Time.utc(2015, 1, 24, 23, 59, 59))
|
29
31
|
end
|
30
32
|
|
31
|
-
# Test your 1Gs anniversary
|
32
|
-
def test_with_your_birthday
|
33
|
-
skip
|
34
|
-
end
|
35
|
-
|
36
33
|
# Problems in exercism evolve over time, as we find better ways to ask
|
37
34
|
# questions.
|
38
35
|
# The version number refers to the version of the problem you solved,
|
@@ -51,6 +48,7 @@ class GigasecondTest < Minitest::Test
|
|
51
48
|
# http://ruby-doc.org/docs/ruby-doc-bundle/UsersGuide/rg/constants.html
|
52
49
|
|
53
50
|
def test_bookkeeping
|
51
|
+
skip
|
54
52
|
assert_equal 6, BookKeeping::VERSION
|
55
53
|
end
|
56
54
|
end
|
File without changes
|
File without changes
|