trackler 2.1.0.2 → 2.1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|