trackler 2.1.0.2 → 2.1.0.3
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.
- checksums.yaml +4 -4
- data/common/exercises/phone-number/canonical-data.json +28 -10
- data/common/exercises/phone-number/description.md +19 -13
- data/lib/trackler/version.rb +1 -1
- data/tracks/go/exercises/bob/.meta/gen.go +1 -3
- data/tracks/go/exercises/bob/bob.go +1 -1
- data/tracks/go/exercises/bob/bob_test.go +1 -1
- data/tracks/go/exercises/bob/cases_test.go +8 -12
- data/tracks/go/exercises/bob/example.go +1 -1
- data/tracks/go/exercises/largest-series-product/.meta/gen.go +1 -3
- data/tracks/go/exercises/largest-series-product/cases_test.go +3 -4
- data/tracks/go/exercises/largest-series-product/example.go +1 -1
- data/tracks/go/exercises/largest-series-product/largest_series_product_test.go +1 -1
- data/tracks/java/exercises/accumulate/src/test/java/AccumulateTest.java +4 -4
- data/tracks/java/exercises/acronym/src/test/java/AcronymTest.java +7 -7
- data/tracks/java/exercises/all-your-base/src/test/java/BaseConverterTest.java +19 -19
- data/tracks/java/exercises/allergies/src/test/java/AllergiesTest.java +18 -18
- data/tracks/java/exercises/anagram/src/test/java/AnagramTest.java +15 -15
- data/tracks/lisp/docs/INSTALLATION.md +7 -13
- data/tracks/python/exercises/bracket-push/bracket_push_test.py +4 -1
- data/tracks/python/exercises/isogram/isogram_test.py +5 -1
- data/tracks/ruby/README.md +14 -40
- data/tracks/ruby/exercises/binary/binary_test.rb +0 -1
- data/tracks/ruby/exercises/bracket-push/bracket_push_test.rb +1 -1
- data/tracks/ruby/exercises/grains/grains_test.rb +2 -0
- data/tracks/ruby/exercises/isogram/isogram_test.rb +0 -1
- data/tracks/ruby/exercises/largest-series-product/largest_series_product_test.rb +2 -1
- data/tracks/ruby/exercises/luhn/luhn_test.rb +2 -0
- data/tracks/ruby/exercises/pangram/pangram_test.rb +0 -1
- data/tracks/ruby/exercises/queen-attack/queen_attack_test.rb +1 -1
- data/tracks/ruby/exercises/rna-transcription/rna_transcription_test.rb +1 -1
- data/tracks/ruby/exercises/run-length-encoding/run_length_encoding_test.rb +0 -1
- data/tracks/ruby/exercises/say/say_test.rb +2 -0
- data/tracks/ruby/exercises/word-count/word_count_test.rb +1 -1
- data/tracks/ruby/exercises/wordy/wordy_test.rb +2 -0
- data/tracks/ruby/lib/acronym_cases.rb +1 -1
- data/tracks/ruby/lib/all_your_base_cases.rb +1 -1
- data/tracks/ruby/lib/alphametics_cases.rb +1 -1
- data/tracks/ruby/lib/anagram_cases.rb +1 -1
- data/tracks/ruby/lib/beer_song_cases.rb +1 -1
- data/tracks/ruby/lib/binary_cases.rb +1 -1
- data/tracks/ruby/lib/bowling_cases.rb +1 -1
- data/tracks/ruby/lib/bracket_push_cases.rb +1 -1
- data/tracks/ruby/lib/clock_cases.rb +1 -1
- data/tracks/ruby/lib/connect_cases.rb +1 -1
- data/tracks/ruby/lib/custom_set_cases.rb +1 -1
- data/tracks/ruby/lib/difference_of_squares_cases.rb +1 -1
- data/tracks/ruby/lib/dominoes_cases.rb +1 -1
- data/tracks/ruby/lib/generator/files/generator_cases.rb +29 -0
- data/tracks/ruby/lib/generator/files/track_files.rb +11 -27
- data/tracks/ruby/lib/generator/template_values.rb +8 -2
- data/tracks/ruby/{exercises/anagram/example.tt → lib/generator/test_template.erb} +2 -2
- data/tracks/ruby/lib/gigasecond_cases.rb +1 -0
- data/tracks/ruby/lib/grains_cases.rb +1 -1
- data/tracks/ruby/lib/hamming_cases.rb +2 -0
- data/tracks/ruby/lib/hello_world_cases.rb +1 -1
- data/tracks/ruby/lib/isogram_cases.rb +1 -1
- data/tracks/ruby/lib/largest_series_product_cases.rb +1 -1
- data/tracks/ruby/lib/leap_cases.rb +1 -1
- data/tracks/ruby/lib/luhn_cases.rb +2 -0
- data/tracks/ruby/lib/nth_prime_cases.rb +1 -1
- data/tracks/ruby/lib/ocr_numbers_cases.rb +2 -0
- data/tracks/ruby/lib/pangram_cases.rb +1 -1
- data/tracks/ruby/lib/pig_latin_cases.rb +2 -0
- data/tracks/ruby/lib/queen_attack_cases.rb +1 -1
- data/tracks/ruby/lib/raindrops_cases.rb +1 -1
- data/tracks/ruby/lib/rna_transcription_cases.rb +1 -1
- data/tracks/ruby/lib/roman_numerals_cases.rb +1 -1
- data/tracks/ruby/lib/run_length_encoding_cases.rb +8 -6
- data/tracks/ruby/lib/say_cases.rb +1 -1
- data/tracks/ruby/lib/sieve_cases.rb +10 -3
- data/tracks/ruby/lib/tournament_cases.rb +1 -1
- data/tracks/ruby/lib/transpose_cases.rb +1 -1
- data/tracks/ruby/lib/triangle_cases.rb +1 -1
- data/tracks/ruby/lib/two_bucket_cases.rb +1 -1
- data/tracks/ruby/lib/word_count_cases.rb +12 -1
- data/tracks/ruby/lib/wordy_cases.rb +1 -1
- data/tracks/ruby/test/fixtures/xruby/lib/beta_cases.rb +1 -1
- data/tracks/ruby/{exercises/acronym/example.tt → test/fixtures/xruby/lib/generator/test_template.erb} +0 -0
- data/tracks/ruby/test/generator/files/generate_cases_test.rb +33 -0
- data/tracks/ruby/test/generator/files/track_files_test.rb +14 -28
- data/tracks/ruby/test/generator/template_values_test.rb +22 -4
- data/tracks/rust/config.json +10 -0
- data/tracks/rust/exercises/run-length-encoding/Cargo.lock +4 -0
- data/tracks/rust/exercises/run-length-encoding/Cargo.toml +6 -0
- data/tracks/rust/exercises/run-length-encoding/example.rs +45 -0
- data/tracks/rust/exercises/run-length-encoding/tests/run-length-encoding.rs +86 -0
- metadata +11 -29
- data/tracks/ruby/exercises/binary/example.tt +0 -22
- data/tracks/ruby/exercises/bracket-push/example.tt +0 -21
- data/tracks/ruby/exercises/clock/example.tt +0 -21
- data/tracks/ruby/exercises/custom-set/example.tt +0 -21
- data/tracks/ruby/exercises/grains/example.tt +0 -19
- data/tracks/ruby/exercises/hamming/example.tt +0 -21
- data/tracks/ruby/exercises/isogram/example.tt +0 -22
- data/tracks/ruby/exercises/largest-series-product/example.tt +0 -20
- data/tracks/ruby/exercises/luhn/example.tt +0 -18
- data/tracks/ruby/exercises/nth-prime/example.tt +0 -21
- data/tracks/ruby/exercises/ocr-numbers/example.tt +0 -21
- data/tracks/ruby/exercises/pangram/example.tt +0 -22
- data/tracks/ruby/exercises/pig-latin/example.tt +0 -21
- data/tracks/ruby/exercises/queen-attack/example.tt +0 -21
- data/tracks/ruby/exercises/raindrops/example.tt +0 -21
- data/tracks/ruby/exercises/rna-transcription/example.tt +0 -21
- data/tracks/ruby/exercises/roman-numerals/example.tt +0 -21
- data/tracks/ruby/exercises/run-length-encoding/example.tt +0 -24
- data/tracks/ruby/exercises/say/example.tt +0 -19
- data/tracks/ruby/exercises/sieve/example.tt +0 -22
- data/tracks/ruby/exercises/triangle/example.tt +0 -21
- data/tracks/ruby/exercises/two-bucket/example.tt +0 -21
- data/tracks/ruby/exercises/word-count/example.tt +0 -23
- data/tracks/ruby/exercises/wordy/example.tt +0 -19
- data/tracks/ruby/lib/exercise_cases.rb +0 -2
@@ -1,14 +1,16 @@
|
|
1
|
-
require 'exercise_cases'
|
1
|
+
require 'generator/exercise_cases'
|
2
2
|
|
3
3
|
class RunLengthEncodingCase < ExerciseCase
|
4
4
|
|
5
|
-
def
|
6
|
-
|
5
|
+
def workload
|
6
|
+
indent_lines([
|
7
|
+
"input = '#{input}'",
|
8
|
+
"output = '#{expected}'",
|
9
|
+
assertion
|
10
|
+
], 4)
|
7
11
|
end
|
8
12
|
|
9
|
-
|
10
|
-
"output = '#{expected}'"
|
11
|
-
end
|
13
|
+
private
|
12
14
|
|
13
15
|
def assertion
|
14
16
|
if property == 'consistency'
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'exercise_cases'
|
1
|
+
require 'generator/exercise_cases'
|
2
2
|
|
3
3
|
class SieveCase < ExerciseCase
|
4
4
|
OPEN_ARRAY = "[\n\s\s\s\s\s\s".freeze
|
@@ -6,6 +6,15 @@ class SieveCase < ExerciseCase
|
|
6
6
|
NEW_ARRAY_ROW = ",\n\s\s\s\s\s\s".freeze
|
7
7
|
ARRAY_ELEMENTS_PER_ROW = 17.freeze
|
8
8
|
|
9
|
+
def workload
|
10
|
+
indent_lines([
|
11
|
+
"expected = #{expected_string}",
|
12
|
+
"assert_equal expected, Sieve.new(#{limit}).primes"
|
13
|
+
], 4)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
9
18
|
def expected_string
|
10
19
|
return expected unless needs_indentation?
|
11
20
|
|
@@ -13,8 +22,6 @@ class SieveCase < ExerciseCase
|
|
13
22
|
"#{OPEN_ARRAY}#{array_rows.join(NEW_ARRAY_ROW)}#{CLOSE_ARRAY}"
|
14
23
|
end
|
15
24
|
|
16
|
-
private
|
17
|
-
|
18
25
|
def needs_indentation?
|
19
26
|
expected.size > ARRAY_ELEMENTS_PER_ROW
|
20
27
|
end
|
@@ -1,7 +1,18 @@
|
|
1
|
-
require 'exercise_cases'
|
1
|
+
require 'generator/exercise_cases'
|
2
2
|
|
3
3
|
class WordCountCase < ExerciseCase
|
4
4
|
|
5
|
+
def workload
|
6
|
+
indent_lines([
|
7
|
+
"phrase = #{object_under_test}",
|
8
|
+
"counts = #{expected}",
|
9
|
+
"assert_equal counts, phrase.word_count"
|
10
|
+
], 4)
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
5
16
|
def object_under_test
|
6
17
|
%Q(Phrase.new(#{input.inspect}))
|
7
18
|
end
|
File without changes
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require_relative '../../test_helper.rb'
|
2
|
+
|
3
|
+
module Generator
|
4
|
+
module Files
|
5
|
+
class GeneratorCasesTest < Minitest::Test
|
6
|
+
def test_no_cases_found
|
7
|
+
track_path = 'test/fixtures/nonexistant'
|
8
|
+
assert_equal [], GeneratorCases.available(track_path)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_cases_found
|
12
|
+
track_path = 'test/fixtures/xruby'
|
13
|
+
assert_equal %w(alpha beta), GeneratorCases.available(track_path).sort
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_available_returns_exercise_names
|
17
|
+
track_path = 'test/fixtures/xruby'
|
18
|
+
Dir.stub :[], %w(/alpha_cases.rb hy_phen_ated_cases.rb) do
|
19
|
+
assert_equal %w(alpha hy-phen-ated), GeneratorCases.available(track_path)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_filename
|
24
|
+
exercise_name = 'two-parter'
|
25
|
+
assert_equal 'two_parter_cases', GeneratorCases.filename(exercise_name)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_class_name
|
29
|
+
assert_equal 'TwoParterCase', GeneratorCases.class_name('two-parter')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -2,34 +2,6 @@ require_relative '../../test_helper.rb'
|
|
2
2
|
|
3
3
|
module Generator
|
4
4
|
module Files
|
5
|
-
class GeneratorCasesTest < Minitest::Test
|
6
|
-
def test_no_cases_found
|
7
|
-
track_path = 'test/fixtures/nonexistant'
|
8
|
-
assert_equal [], GeneratorCases.available(track_path)
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_cases_found
|
12
|
-
track_path = 'test/fixtures/xruby'
|
13
|
-
assert_equal %w(alpha beta), GeneratorCases.available(track_path).sort
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_available_returns_exercise_names
|
17
|
-
track_path = 'test/fixtures/xruby'
|
18
|
-
Dir.stub :[], %w(/alpha_cases.rb hy_phen_ated_cases.rb) do
|
19
|
-
assert_equal %w(alpha hy-phen-ated), GeneratorCases.available(track_path)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_filename
|
24
|
-
exercise_name = 'two-parter'
|
25
|
-
assert_equal 'two_parter_cases', GeneratorCases.filename(exercise_name)
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_class_name
|
29
|
-
assert_equal 'TwoParterCase', GeneratorCases.class_name('two-parter')
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
5
|
class TrackFilesTest < Minitest::Test
|
34
6
|
FixturePaths = Paths.new(
|
35
7
|
metadata: 'test/fixtures/metadata',
|
@@ -64,6 +36,20 @@ module Generator
|
|
64
36
|
subject = TestTrackFiles.new
|
65
37
|
assert_instance_of TestsTemplateFile, subject.tests_template
|
66
38
|
end
|
39
|
+
|
40
|
+
class TestTrackFilesUseDefault
|
41
|
+
def initialize
|
42
|
+
@paths = FixturePaths
|
43
|
+
@exercise_name = 'notemplate'
|
44
|
+
end
|
45
|
+
attr_reader :paths, :exercise_name
|
46
|
+
include TrackFiles
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_default_tests_template
|
50
|
+
subject = TestTrackFiles.new
|
51
|
+
assert_instance_of TestsTemplateFile, subject.tests_template
|
52
|
+
end
|
67
53
|
end
|
68
54
|
|
69
55
|
class TestsVersionFileTest < Minitest::Test
|
@@ -2,26 +2,44 @@ require_relative '../test_helper'
|
|
2
2
|
|
3
3
|
module Generator
|
4
4
|
class TestCasesValuesTest < Minitest::Test
|
5
|
+
def setup
|
6
|
+
@arguments = {
|
7
|
+
abbreviated_commit_hash: nil, version: nil, exercise_name: nil, test_cases: nil
|
8
|
+
}
|
9
|
+
end
|
10
|
+
|
5
11
|
def test_abbreviated_commit_hash
|
6
12
|
expected_abbreviated_commit_hash = '1234567'
|
7
|
-
subject = TemplateValues.new(abbreviated_commit_hash: expected_abbreviated_commit_hash
|
13
|
+
subject = TemplateValues.new(@arguments.merge(abbreviated_commit_hash: expected_abbreviated_commit_hash))
|
8
14
|
assert_equal expected_abbreviated_commit_hash, subject.abbreviated_commit_hash
|
9
15
|
end
|
10
16
|
|
11
17
|
def test_version
|
12
18
|
expected_version = '1234567'
|
13
|
-
subject = TemplateValues.new(version: expected_version
|
19
|
+
subject = TemplateValues.new(@arguments.merge(version: expected_version))
|
14
20
|
assert_equal expected_version, subject.version
|
15
21
|
end
|
16
22
|
|
23
|
+
def test_exercise_name
|
24
|
+
expected_exercise_name = 'alpha_beta'
|
25
|
+
subject = TemplateValues.new(@arguments.merge(exercise_name: 'alpha-beta'))
|
26
|
+
assert_equal expected_exercise_name, subject.exercise_name
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_exercise_name_camel
|
30
|
+
expected_exercise_name_camel = 'AlphaBeta'
|
31
|
+
subject = TemplateValues.new(@arguments.merge(exercise_name: 'alpha-beta'))
|
32
|
+
assert_equal expected_exercise_name_camel, subject.exercise_name_camel
|
33
|
+
end
|
34
|
+
|
17
35
|
def test_test_cases
|
18
36
|
expected_test_cases = 'should be TemplateValues class'
|
19
|
-
subject = TemplateValues.new(test_cases: expected_test_cases
|
37
|
+
subject = TemplateValues.new(@arguments.merge(test_cases: expected_test_cases))
|
20
38
|
assert_equal expected_test_cases, subject.test_cases
|
21
39
|
end
|
22
40
|
|
23
41
|
def test_get_binding
|
24
|
-
subject = TemplateValues.new(
|
42
|
+
subject = TemplateValues.new(@arguments)
|
25
43
|
assert_instance_of Binding, subject.get_binding
|
26
44
|
end
|
27
45
|
end
|
data/tracks/rust/config.json
CHANGED
@@ -78,6 +78,16 @@
|
|
78
78
|
"panic"
|
79
79
|
]
|
80
80
|
},
|
81
|
+
{
|
82
|
+
"slug": "run-length-encoding",
|
83
|
+
"difficulty": 4,
|
84
|
+
"topics": [
|
85
|
+
"string concatenation",
|
86
|
+
"conversion between string and int",
|
87
|
+
"use of primitive char",
|
88
|
+
"loop"
|
89
|
+
]
|
90
|
+
},
|
81
91
|
{
|
82
92
|
"slug": "hamming",
|
83
93
|
"difficulty": 4,
|
@@ -0,0 +1,45 @@
|
|
1
|
+
use std::cmp;
|
2
|
+
|
3
|
+
pub fn encode(input: &str) -> String {
|
4
|
+
input
|
5
|
+
.chars()
|
6
|
+
.fold((String::new(), ' ', 0, 1), |(mut acc, last, last_n, pos), c| {
|
7
|
+
// acc = where answer is accumulated
|
8
|
+
// last = last character read
|
9
|
+
// last_n = accum count for last
|
10
|
+
if c == last {
|
11
|
+
if pos == input.len() { // end of string
|
12
|
+
acc += (last_n + 1).to_string().as_str();
|
13
|
+
acc.push(c);
|
14
|
+
}
|
15
|
+
(acc, last, last_n + 1, pos + 1)
|
16
|
+
}
|
17
|
+
else {
|
18
|
+
if last_n > 1 {
|
19
|
+
acc += last_n.to_string().as_str();
|
20
|
+
}
|
21
|
+
if last_n > 0 { // ignore initial last (single whitespace)
|
22
|
+
acc.push(last);
|
23
|
+
}
|
24
|
+
if pos == input.len() { // end of string
|
25
|
+
acc.push(c);
|
26
|
+
}
|
27
|
+
(acc, c, 1, pos + 1)
|
28
|
+
}
|
29
|
+
}).0
|
30
|
+
}
|
31
|
+
|
32
|
+
pub fn decode(input: &str) -> String {
|
33
|
+
input
|
34
|
+
.chars()
|
35
|
+
.fold((String::new(), 0), |(mut acc, last_n), c| {
|
36
|
+
if let Some(d) = c.to_digit(10) {
|
37
|
+
(acc, 10*last_n + d)
|
38
|
+
}
|
39
|
+
else {
|
40
|
+
acc += c.to_string()
|
41
|
+
.repeat(cmp::max(last_n, 1) as usize).as_str();
|
42
|
+
(acc, 0)
|
43
|
+
}
|
44
|
+
}).0
|
45
|
+
}
|
@@ -0,0 +1,86 @@
|
|
1
|
+
extern crate run_length_encoding as rle;
|
2
|
+
|
3
|
+
// encoding tests
|
4
|
+
|
5
|
+
#[test]
|
6
|
+
fn test_encode_empty_string() {
|
7
|
+
assert_eq!("", rle::encode(""));
|
8
|
+
}
|
9
|
+
|
10
|
+
#[test]
|
11
|
+
#[ignore]
|
12
|
+
fn test_encode_single_characters() {
|
13
|
+
assert_eq!("XYZ", rle::encode("XYZ"));
|
14
|
+
}
|
15
|
+
|
16
|
+
#[test]
|
17
|
+
#[ignore]
|
18
|
+
fn test_encode_string_with_no_single_characters() {
|
19
|
+
assert_eq!("2A3B4C", rle::encode("AABBBCCCC"));
|
20
|
+
}
|
21
|
+
|
22
|
+
#[test]
|
23
|
+
#[ignore]
|
24
|
+
fn test_encode_single_characters_mixed_with_repeated_characters() {
|
25
|
+
assert_eq!("12WB12W3B24WB", rle::encode(
|
26
|
+
"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB"));
|
27
|
+
}
|
28
|
+
|
29
|
+
#[test]
|
30
|
+
#[ignore]
|
31
|
+
fn test_encode_multiple_whitespace_mixed_in_string() {
|
32
|
+
assert_eq!("2 hs2q q2w2 ", rle::encode(" hsqq qww "));
|
33
|
+
}
|
34
|
+
|
35
|
+
#[test]
|
36
|
+
#[ignore]
|
37
|
+
fn test_encode_lowercase_characters() {
|
38
|
+
assert_eq!("2a3b4c", rle::encode("aabbbcccc"));
|
39
|
+
}
|
40
|
+
|
41
|
+
// decoding tests
|
42
|
+
|
43
|
+
#[test]
|
44
|
+
#[ignore]
|
45
|
+
fn test_decode_empty_string() {
|
46
|
+
assert_eq!("", rle::decode(""));
|
47
|
+
}
|
48
|
+
|
49
|
+
#[test]
|
50
|
+
#[ignore]
|
51
|
+
fn test_decode_single_characters_only() {
|
52
|
+
assert_eq!("XYZ", rle::decode("XYZ"));
|
53
|
+
}
|
54
|
+
|
55
|
+
#[test]
|
56
|
+
#[ignore]
|
57
|
+
fn test_decode_string_with_no_single_characters() {
|
58
|
+
assert_eq!("AABBBCCCC", rle::decode("2A3B4C"));
|
59
|
+
}
|
60
|
+
|
61
|
+
#[test]
|
62
|
+
#[ignore]
|
63
|
+
fn test_decode_single_characters_with_repeated_characters() {
|
64
|
+
assert_eq!("WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB",
|
65
|
+
rle::decode("12WB12W3B24WB"));
|
66
|
+
}
|
67
|
+
|
68
|
+
#[test]
|
69
|
+
#[ignore]
|
70
|
+
fn test_decode_multiple_whitespace_mixed_in_string() {
|
71
|
+
assert_eq!(" hsqq qww ", rle::decode("2 hs2q q2w2 "));
|
72
|
+
}
|
73
|
+
|
74
|
+
#[test]
|
75
|
+
#[ignore]
|
76
|
+
fn test_decode_lower_case_string() {
|
77
|
+
assert_eq!("aabbbcccc", rle::decode("2a3b4c"));
|
78
|
+
}
|
79
|
+
|
80
|
+
// consistency test
|
81
|
+
|
82
|
+
#[test]
|
83
|
+
#[ignore]
|
84
|
+
fn test_consistency() {
|
85
|
+
assert_eq!("zzz ZZ zZ", rle::decode(rle::encode("zzz ZZ zZ").as_str()));
|
86
|
+
}
|
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.1.0.
|
4
|
+
version: 2.1.0.3
|
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-04-
|
11
|
+
date: 2017-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -7168,7 +7168,6 @@ files:
|
|
7168
7168
|
- tracks/ruby/exercises/acronym/.meta/.version
|
7169
7169
|
- tracks/ruby/exercises/acronym/acronym_test.rb
|
7170
7170
|
- tracks/ruby/exercises/acronym/example.rb
|
7171
|
-
- tracks/ruby/exercises/acronym/example.tt
|
7172
7171
|
- tracks/ruby/exercises/all-your-base/.meta/.version
|
7173
7172
|
- tracks/ruby/exercises/all-your-base/all_your_base_test.rb
|
7174
7173
|
- tracks/ruby/exercises/all-your-base/example.rb
|
@@ -7182,7 +7181,6 @@ files:
|
|
7182
7181
|
- tracks/ruby/exercises/anagram/.meta/.version
|
7183
7182
|
- tracks/ruby/exercises/anagram/anagram_test.rb
|
7184
7183
|
- tracks/ruby/exercises/anagram/example.rb
|
7185
|
-
- tracks/ruby/exercises/anagram/example.tt
|
7186
7184
|
- tracks/ruby/exercises/atbash-cipher/atbash_cipher_test.rb
|
7187
7185
|
- tracks/ruby/exercises/atbash-cipher/example.rb
|
7188
7186
|
- tracks/ruby/exercises/beer-song/.meta/.version
|
@@ -7196,7 +7194,6 @@ files:
|
|
7196
7194
|
- tracks/ruby/exercises/binary/.meta/.version
|
7197
7195
|
- tracks/ruby/exercises/binary/binary_test.rb
|
7198
7196
|
- tracks/ruby/exercises/binary/example.rb
|
7199
|
-
- tracks/ruby/exercises/binary/example.tt
|
7200
7197
|
- tracks/ruby/exercises/bob/bob_test.rb
|
7201
7198
|
- tracks/ruby/exercises/bob/example.rb
|
7202
7199
|
- tracks/ruby/exercises/bowling/.meta/.version
|
@@ -7206,13 +7203,11 @@ files:
|
|
7206
7203
|
- tracks/ruby/exercises/bracket-push/.meta/.version
|
7207
7204
|
- tracks/ruby/exercises/bracket-push/bracket_push_test.rb
|
7208
7205
|
- tracks/ruby/exercises/bracket-push/example.rb
|
7209
|
-
- tracks/ruby/exercises/bracket-push/example.tt
|
7210
7206
|
- tracks/ruby/exercises/circular-buffer/circular_buffer_test.rb
|
7211
7207
|
- tracks/ruby/exercises/circular-buffer/example.rb
|
7212
7208
|
- tracks/ruby/exercises/clock/.meta/.version
|
7213
7209
|
- tracks/ruby/exercises/clock/clock_test.rb
|
7214
7210
|
- tracks/ruby/exercises/clock/example.rb
|
7215
|
-
- tracks/ruby/exercises/clock/example.tt
|
7216
7211
|
- tracks/ruby/exercises/connect/.meta/.version
|
7217
7212
|
- tracks/ruby/exercises/connect/connect_test.rb
|
7218
7213
|
- tracks/ruby/exercises/connect/example.rb
|
@@ -7222,7 +7217,6 @@ files:
|
|
7222
7217
|
- tracks/ruby/exercises/custom-set/.meta/.version
|
7223
7218
|
- tracks/ruby/exercises/custom-set/custom_set_test.rb
|
7224
7219
|
- tracks/ruby/exercises/custom-set/example.rb
|
7225
|
-
- tracks/ruby/exercises/custom-set/example.tt
|
7226
7220
|
- tracks/ruby/exercises/diamond/diamond_test.rb
|
7227
7221
|
- tracks/ruby/exercises/diamond/example.rb
|
7228
7222
|
- tracks/ruby/exercises/difference-of-squares/.meta/.version
|
@@ -7248,11 +7242,9 @@ files:
|
|
7248
7242
|
- tracks/ruby/exercises/grade-school/grade_school_test.rb
|
7249
7243
|
- tracks/ruby/exercises/grains/.meta/.version
|
7250
7244
|
- tracks/ruby/exercises/grains/example.rb
|
7251
|
-
- tracks/ruby/exercises/grains/example.tt
|
7252
7245
|
- tracks/ruby/exercises/grains/grains_test.rb
|
7253
7246
|
- tracks/ruby/exercises/hamming/.meta/.version
|
7254
7247
|
- tracks/ruby/exercises/hamming/example.rb
|
7255
|
-
- tracks/ruby/exercises/hamming/example.tt
|
7256
7248
|
- tracks/ruby/exercises/hamming/hamming_test.rb
|
7257
7249
|
- tracks/ruby/exercises/hello-world/.meta/.version
|
7258
7250
|
- tracks/ruby/exercises/hello-world/GETTING_STARTED.md
|
@@ -7265,13 +7257,11 @@ files:
|
|
7265
7257
|
- tracks/ruby/exercises/house/house_test.rb
|
7266
7258
|
- tracks/ruby/exercises/isogram/.meta/.version
|
7267
7259
|
- tracks/ruby/exercises/isogram/example.rb
|
7268
|
-
- tracks/ruby/exercises/isogram/example.tt
|
7269
7260
|
- tracks/ruby/exercises/isogram/isogram_test.rb
|
7270
7261
|
- tracks/ruby/exercises/kindergarten-garden/example.rb
|
7271
7262
|
- tracks/ruby/exercises/kindergarten-garden/kindergarten_garden_test.rb
|
7272
7263
|
- tracks/ruby/exercises/largest-series-product/.meta/.version
|
7273
7264
|
- tracks/ruby/exercises/largest-series-product/example.rb
|
7274
|
-
- tracks/ruby/exercises/largest-series-product/example.tt
|
7275
7265
|
- tracks/ruby/exercises/largest-series-product/largest_series_product_test.rb
|
7276
7266
|
- tracks/ruby/exercises/leap/.meta/.version
|
7277
7267
|
- tracks/ruby/exercises/leap/example.rb
|
@@ -7283,7 +7273,6 @@ files:
|
|
7283
7273
|
- tracks/ruby/exercises/list-ops/list_ops_test.rb
|
7284
7274
|
- tracks/ruby/exercises/luhn/.meta/.version
|
7285
7275
|
- tracks/ruby/exercises/luhn/example.rb
|
7286
|
-
- tracks/ruby/exercises/luhn/example.tt
|
7287
7276
|
- tracks/ruby/exercises/luhn/luhn_test.rb
|
7288
7277
|
- tracks/ruby/exercises/matrix/example.rb
|
7289
7278
|
- tracks/ruby/exercises/matrix/matrix_test.rb
|
@@ -7293,13 +7282,11 @@ files:
|
|
7293
7282
|
- tracks/ruby/exercises/minesweeper/minesweeper_test.rb
|
7294
7283
|
- tracks/ruby/exercises/nth-prime/.meta/.version
|
7295
7284
|
- tracks/ruby/exercises/nth-prime/example.rb
|
7296
|
-
- tracks/ruby/exercises/nth-prime/example.tt
|
7297
7285
|
- tracks/ruby/exercises/nth-prime/nth_prime_test.rb
|
7298
7286
|
- tracks/ruby/exercises/nucleotide-count/example.rb
|
7299
7287
|
- tracks/ruby/exercises/nucleotide-count/nucleotide_count_test.rb
|
7300
7288
|
- tracks/ruby/exercises/ocr-numbers/.meta/.version
|
7301
7289
|
- tracks/ruby/exercises/ocr-numbers/example.rb
|
7302
|
-
- tracks/ruby/exercises/ocr-numbers/example.tt
|
7303
7290
|
- tracks/ruby/exercises/ocr-numbers/ocr_numbers_test.rb
|
7304
7291
|
- tracks/ruby/exercises/octal/example.rb
|
7305
7292
|
- tracks/ruby/exercises/octal/octal_test.rb
|
@@ -7307,7 +7294,6 @@ files:
|
|
7307
7294
|
- tracks/ruby/exercises/palindrome-products/palindrome_products_test.rb
|
7308
7295
|
- tracks/ruby/exercises/pangram/.meta/.version
|
7309
7296
|
- tracks/ruby/exercises/pangram/example.rb
|
7310
|
-
- tracks/ruby/exercises/pangram/example.tt
|
7311
7297
|
- tracks/ruby/exercises/pangram/pangram_test.rb
|
7312
7298
|
- tracks/ruby/exercises/pascals-triangle/example.rb
|
7313
7299
|
- tracks/ruby/exercises/pascals-triangle/pascals_triangle_test.rb
|
@@ -7317,7 +7303,6 @@ files:
|
|
7317
7303
|
- tracks/ruby/exercises/phone-number/phone_number_test.rb
|
7318
7304
|
- tracks/ruby/exercises/pig-latin/.meta/.version
|
7319
7305
|
- tracks/ruby/exercises/pig-latin/example.rb
|
7320
|
-
- tracks/ruby/exercises/pig-latin/example.tt
|
7321
7306
|
- tracks/ruby/exercises/pig-latin/pig_latin_test.rb
|
7322
7307
|
- tracks/ruby/exercises/point-mutations/example.rb
|
7323
7308
|
- tracks/ruby/exercises/point-mutations/point_mutations_test.rb
|
@@ -7333,17 +7318,14 @@ files:
|
|
7333
7318
|
- tracks/ruby/exercises/pythagorean-triplet/pythagorean_triplet_test.rb
|
7334
7319
|
- tracks/ruby/exercises/queen-attack/.meta/.version
|
7335
7320
|
- tracks/ruby/exercises/queen-attack/example.rb
|
7336
|
-
- tracks/ruby/exercises/queen-attack/example.tt
|
7337
7321
|
- tracks/ruby/exercises/queen-attack/queen_attack_test.rb
|
7338
7322
|
- tracks/ruby/exercises/rail-fence-cipher/example.rb
|
7339
7323
|
- tracks/ruby/exercises/rail-fence-cipher/rail_fence_cipher_test.rb
|
7340
7324
|
- tracks/ruby/exercises/raindrops/.meta/.version
|
7341
7325
|
- tracks/ruby/exercises/raindrops/example.rb
|
7342
|
-
- tracks/ruby/exercises/raindrops/example.tt
|
7343
7326
|
- tracks/ruby/exercises/raindrops/raindrops_test.rb
|
7344
7327
|
- tracks/ruby/exercises/rna-transcription/.meta/.version
|
7345
7328
|
- tracks/ruby/exercises/rna-transcription/example.rb
|
7346
|
-
- tracks/ruby/exercises/rna-transcription/example.tt
|
7347
7329
|
- tracks/ruby/exercises/rna-transcription/rna_transcription_test.rb
|
7348
7330
|
- tracks/ruby/exercises/robot-name/example.rb
|
7349
7331
|
- tracks/ruby/exercises/robot-name/robot_name_test.rb
|
@@ -7351,17 +7333,14 @@ files:
|
|
7351
7333
|
- tracks/ruby/exercises/robot-simulator/robot_simulator_test.rb
|
7352
7334
|
- tracks/ruby/exercises/roman-numerals/.meta/.version
|
7353
7335
|
- tracks/ruby/exercises/roman-numerals/example.rb
|
7354
|
-
- tracks/ruby/exercises/roman-numerals/example.tt
|
7355
7336
|
- tracks/ruby/exercises/roman-numerals/roman_numerals_test.rb
|
7356
7337
|
- tracks/ruby/exercises/run-length-encoding/.meta/.version
|
7357
7338
|
- tracks/ruby/exercises/run-length-encoding/example.rb
|
7358
|
-
- tracks/ruby/exercises/run-length-encoding/example.tt
|
7359
7339
|
- tracks/ruby/exercises/run-length-encoding/run_length_encoding_test.rb
|
7360
7340
|
- tracks/ruby/exercises/saddle-points/example.rb
|
7361
7341
|
- tracks/ruby/exercises/saddle-points/saddle_points_test.rb
|
7362
7342
|
- tracks/ruby/exercises/say/.meta/.version
|
7363
7343
|
- tracks/ruby/exercises/say/example.rb
|
7364
|
-
- tracks/ruby/exercises/say/example.tt
|
7365
7344
|
- tracks/ruby/exercises/say/say_test.rb
|
7366
7345
|
- tracks/ruby/exercises/scale-generator/example.rb
|
7367
7346
|
- tracks/ruby/exercises/scale-generator/scale_generator_test.rb
|
@@ -7373,7 +7352,6 @@ files:
|
|
7373
7352
|
- tracks/ruby/exercises/series/series_test.rb
|
7374
7353
|
- tracks/ruby/exercises/sieve/.meta/.version
|
7375
7354
|
- tracks/ruby/exercises/sieve/example.rb
|
7376
|
-
- tracks/ruby/exercises/sieve/example.tt
|
7377
7355
|
- tracks/ruby/exercises/sieve/sieve_test.rb
|
7378
7356
|
- tracks/ruby/exercises/simple-cipher/example.rb
|
7379
7357
|
- tracks/ruby/exercises/simple-cipher/simple_cipher_test.rb
|
@@ -7396,7 +7374,6 @@ files:
|
|
7396
7374
|
- tracks/ruby/exercises/transpose/transpose_test.rb
|
7397
7375
|
- tracks/ruby/exercises/triangle/.meta/.version
|
7398
7376
|
- tracks/ruby/exercises/triangle/example.rb
|
7399
|
-
- tracks/ruby/exercises/triangle/example.tt
|
7400
7377
|
- tracks/ruby/exercises/triangle/triangle_test.rb
|
7401
7378
|
- tracks/ruby/exercises/trinary/example.rb
|
7402
7379
|
- tracks/ruby/exercises/trinary/trinary_test.rb
|
@@ -7405,15 +7382,12 @@ files:
|
|
7405
7382
|
- tracks/ruby/exercises/twelve-days/twelve_days_test.rb
|
7406
7383
|
- tracks/ruby/exercises/two-bucket/.meta/.version
|
7407
7384
|
- tracks/ruby/exercises/two-bucket/example.rb
|
7408
|
-
- tracks/ruby/exercises/two-bucket/example.tt
|
7409
7385
|
- tracks/ruby/exercises/two-bucket/two_bucket_test.rb
|
7410
7386
|
- tracks/ruby/exercises/word-count/.meta/.version
|
7411
7387
|
- tracks/ruby/exercises/word-count/example.rb
|
7412
|
-
- tracks/ruby/exercises/word-count/example.tt
|
7413
7388
|
- tracks/ruby/exercises/word-count/word_count_test.rb
|
7414
7389
|
- tracks/ruby/exercises/wordy/.meta/.version
|
7415
7390
|
- tracks/ruby/exercises/wordy/example.rb
|
7416
|
-
- tracks/ruby/exercises/wordy/example.tt
|
7417
7391
|
- tracks/ruby/exercises/wordy/wordy_test.rb
|
7418
7392
|
- tracks/ruby/img/icon.png
|
7419
7393
|
- tracks/ruby/lib/acronym_cases.rb
|
@@ -7431,17 +7405,18 @@ files:
|
|
7431
7405
|
- tracks/ruby/lib/difference_of_squares_cases.rb
|
7432
7406
|
- tracks/ruby/lib/disable_skip.rb
|
7433
7407
|
- tracks/ruby/lib/dominoes_cases.rb
|
7434
|
-
- tracks/ruby/lib/exercise_cases.rb
|
7435
7408
|
- tracks/ruby/lib/generator.rb
|
7436
7409
|
- tracks/ruby/lib/generator/case_values.rb
|
7437
7410
|
- tracks/ruby/lib/generator/command_line.rb
|
7438
7411
|
- tracks/ruby/lib/generator/exercise_cases.rb
|
7439
7412
|
- tracks/ruby/lib/generator/files.rb
|
7413
|
+
- tracks/ruby/lib/generator/files/generator_cases.rb
|
7440
7414
|
- tracks/ruby/lib/generator/files/metadata_files.rb
|
7441
7415
|
- tracks/ruby/lib/generator/files/track_files.rb
|
7442
7416
|
- tracks/ruby/lib/generator/git_command.rb
|
7443
7417
|
- tracks/ruby/lib/generator/repository.rb
|
7444
7418
|
- tracks/ruby/lib/generator/template_values.rb
|
7419
|
+
- tracks/ruby/lib/generator/test_template.erb
|
7445
7420
|
- tracks/ruby/lib/generator/underscore.rb
|
7446
7421
|
- tracks/ruby/lib/gigasecond_cases.rb
|
7447
7422
|
- tracks/ruby/lib/grains_cases.rb
|
@@ -7479,8 +7454,10 @@ files:
|
|
7479
7454
|
- tracks/ruby/test/fixtures/xruby/exercises/alpha/example.tt
|
7480
7455
|
- tracks/ruby/test/fixtures/xruby/lib/alpha_cases.rb
|
7481
7456
|
- tracks/ruby/test/fixtures/xruby/lib/beta_cases.rb
|
7457
|
+
- tracks/ruby/test/fixtures/xruby/lib/generator/test_template.erb
|
7482
7458
|
- tracks/ruby/test/generator/case_values_test.rb
|
7483
7459
|
- tracks/ruby/test/generator/command_line_test.rb
|
7460
|
+
- tracks/ruby/test/generator/files/generate_cases_test.rb
|
7484
7461
|
- tracks/ruby/test/generator/files/metadata_files_test.rb
|
7485
7462
|
- tracks/ruby/test/generator/files/track_files_test.rb
|
7486
7463
|
- tracks/ruby/test/generator/files_test.rb
|
@@ -7781,6 +7758,11 @@ files:
|
|
7781
7758
|
- tracks/rust/exercises/rotational-cipher/example.rs
|
7782
7759
|
- tracks/rust/exercises/rotational-cipher/src/lib.rs
|
7783
7760
|
- tracks/rust/exercises/rotational-cipher/tests/rotational-cipher.rs
|
7761
|
+
- tracks/rust/exercises/run-length-encoding/Cargo.lock
|
7762
|
+
- tracks/rust/exercises/run-length-encoding/Cargo.toml
|
7763
|
+
- tracks/rust/exercises/run-length-encoding/example.rs
|
7764
|
+
- tracks/rust/exercises/run-length-encoding/src/lib.rs
|
7765
|
+
- tracks/rust/exercises/run-length-encoding/tests/run-length-encoding.rs
|
7784
7766
|
- tracks/rust/exercises/scrabble-score/.gitignore
|
7785
7767
|
- tracks/rust/exercises/scrabble-score/Cargo.lock
|
7786
7768
|
- tracks/rust/exercises/scrabble-score/Cargo.toml
|