trackler 2.1.0.1 → 2.1.0.2
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/lib/trackler/version.rb +1 -1
- data/tracks/elixir/config.json +17 -0
- data/tracks/elixir/exercises/matrix/example.exs +63 -0
- data/tracks/elixir/exercises/matrix/matrix.exs +48 -0
- data/tracks/elixir/exercises/matrix/matrix_test.exs +58 -0
- data/tracks/elixir/exercises/twelve-days/example.exs +53 -0
- data/tracks/elixir/exercises/twelve-days/twelve_days.exs +25 -0
- data/tracks/elixir/exercises/twelve-days/twelve_days_test.exs +86 -0
- data/tracks/go/exercises/change/.meta/gen.go +1 -3
- data/tracks/go/exercises/change/cases_test.go +1 -0
- data/tracks/go/exercises/forth/example.go +1 -1
- data/tracks/go/exercises/raindrops/.meta/gen.go +1 -3
- data/tracks/go/exercises/raindrops/cases_test.go +5 -1
- data/tracks/go/exercises/raindrops/example.go +1 -1
- data/tracks/go/exercises/raindrops/raindrops.go +1 -1
- data/tracks/go/exercises/raindrops/raindrops_test.go +1 -1
- data/tracks/java/config.json +5 -5
- data/tracks/java/exercises/isogram/src/example/java/IsogramChecker.java +23 -27
- data/tracks/java/exercises/isogram/src/test/java/IsogramCheckerTest.java +77 -0
- data/tracks/javascript/config.json +9 -0
- data/tracks/javascript/exercises/proverb/example.js +36 -0
- data/tracks/javascript/exercises/proverb/proverb.spec.js +78 -0
- data/tracks/ruby/README.md +0 -33
- data/tracks/ruby/exercises/acronym/.meta/.version +1 -1
- data/tracks/ruby/exercises/acronym/acronym_test.rb +14 -9
- data/tracks/ruby/exercises/acronym/example.rb +1 -1
- data/tracks/ruby/exercises/acronym/example.tt +7 -4
- data/tracks/ruby/exercises/all-your-base/all_your_base_test.rb +1 -1
- data/tracks/ruby/exercises/all-your-base/example.tt +4 -3
- data/tracks/ruby/exercises/alphametics/alphametics_test.rb +2 -1
- data/tracks/ruby/exercises/alphametics/example.tt +2 -1
- data/tracks/ruby/exercises/anagram/anagram_test.rb +35 -20
- data/tracks/ruby/exercises/anagram/example.rb +1 -1
- data/tracks/ruby/exercises/anagram/example.tt +5 -2
- data/tracks/ruby/exercises/beer-song/beer_song_test.rb +1 -0
- data/tracks/ruby/exercises/beer-song/example.tt +6 -4
- data/tracks/ruby/exercises/binary/binary_test.rb +3 -2
- data/tracks/ruby/exercises/binary/example.tt +5 -2
- data/tracks/ruby/exercises/bowling/bowling_test.rb +39 -40
- data/tracks/ruby/exercises/bowling/example.tt +2 -2
- data/tracks/ruby/exercises/bracket-push/.meta/.version +1 -1
- data/tracks/ruby/exercises/bracket-push/bracket_push_test.rb +7 -3
- data/tracks/ruby/exercises/bracket-push/example.rb +1 -1
- data/tracks/ruby/exercises/bracket-push/example.tt +5 -2
- data/tracks/ruby/exercises/clock/clock_test.rb +40 -41
- data/tracks/ruby/exercises/clock/example.tt +5 -2
- data/tracks/ruby/exercises/connect/.meta/.version +1 -1
- data/tracks/ruby/exercises/connect/connect_test.rb +20 -3
- data/tracks/ruby/exercises/connect/example.rb +1 -1
- data/tracks/ruby/exercises/connect/example.tt +3 -1
- data/tracks/ruby/exercises/custom-set/custom_set_test.rb +1 -2
- data/tracks/ruby/exercises/custom-set/example.tt +5 -2
- data/tracks/ruby/exercises/difference-of-squares/difference_of_squares_test.rb +6 -5
- data/tracks/ruby/exercises/difference-of-squares/example.tt +8 -4
- data/tracks/ruby/exercises/dominoes/dominoes_test.rb +1 -1
- data/tracks/ruby/exercises/dominoes/example.tt +1 -1
- data/tracks/ruby/exercises/gigasecond/.meta/.version +1 -1
- data/tracks/ruby/exercises/gigasecond/example.rb +1 -1
- data/tracks/ruby/exercises/gigasecond/example.tt +7 -5
- data/tracks/ruby/exercises/gigasecond/gigasecond_test.rb +11 -16
- data/tracks/ruby/exercises/grains/example.tt +5 -3
- data/tracks/ruby/exercises/grains/grains_test.rb +2 -1
- data/tracks/ruby/exercises/hello-world/example.tt +1 -1
- data/tracks/ruby/exercises/hello-world/hello_world_test.rb +1 -1
- data/tracks/ruby/exercises/isogram/.meta/.version +1 -1
- data/tracks/ruby/exercises/isogram/example.rb +1 -1
- data/tracks/ruby/exercises/isogram/example.tt +6 -4
- data/tracks/ruby/exercises/isogram/isogram_test.rb +18 -10
- data/tracks/ruby/exercises/largest-series-product/.meta/.version +1 -1
- data/tracks/ruby/exercises/largest-series-product/example.rb +1 -1
- data/tracks/ruby/exercises/largest-series-product/example.tt +7 -5
- data/tracks/ruby/exercises/largest-series-product/largest_series_product_test.rb +11 -21
- data/tracks/ruby/exercises/leap/.meta/.version +1 -1
- data/tracks/ruby/exercises/leap/example.rb +1 -1
- data/tracks/ruby/exercises/leap/example.tt +6 -4
- data/tracks/ruby/exercises/leap/leap_test.rb +11 -25
- data/tracks/ruby/exercises/nth-prime/example.tt +7 -5
- data/tracks/ruby/exercises/nth-prime/nth_prime_test.rb +2 -3
- data/tracks/ruby/exercises/pangram/example.tt +5 -3
- data/tracks/ruby/exercises/pangram/pangram_test.rb +2 -1
- data/tracks/ruby/exercises/queen-attack/example.tt +2 -2
- data/tracks/ruby/exercises/queen-attack/queen_attack_test.rb +14 -15
- data/tracks/ruby/exercises/raindrops/example.tt +7 -4
- data/tracks/ruby/exercises/raindrops/raindrops_test.rb +38 -38
- data/tracks/ruby/exercises/rna-transcription/example.tt +6 -3
- data/tracks/ruby/exercises/rna-transcription/rna_transcription_test.rb +4 -5
- data/tracks/ruby/exercises/roman-numerals/example.tt +7 -4
- data/tracks/ruby/exercises/roman-numerals/roman_numerals_test.rb +5 -5
- data/tracks/ruby/exercises/run-length-encoding/.meta/.version +1 -1
- data/tracks/ruby/exercises/run-length-encoding/example.rb +1 -1
- data/tracks/ruby/exercises/run-length-encoding/example.tt +6 -3
- data/tracks/ruby/exercises/run-length-encoding/run_length_encoding_test.rb +70 -28
- data/tracks/ruby/exercises/say/example.tt +7 -5
- data/tracks/ruby/exercises/say/say_test.rb +3 -2
- data/tracks/ruby/exercises/sieve/example.tt +4 -1
- data/tracks/ruby/exercises/sieve/sieve_test.rb +1 -3
- data/tracks/ruby/exercises/tournament/example.tt +4 -1
- data/tracks/ruby/exercises/tournament/tournament_test.rb +1 -2
- data/tracks/ruby/exercises/transpose/example.tt +5 -2
- data/tracks/ruby/exercises/transpose/transpose_test.rb +1 -2
- data/tracks/ruby/exercises/triangle/example.tt +5 -3
- data/tracks/ruby/exercises/triangle/triangle_test.rb +1 -3
- data/tracks/ruby/exercises/two-bucket/example.tt +7 -4
- data/tracks/ruby/exercises/two-bucket/two_bucket_test.rb +9 -9
- data/tracks/ruby/exercises/word-count/example.tt +6 -4
- data/tracks/ruby/exercises/word-count/word_count_test.rb +2 -3
- data/tracks/ruby/exercises/wordy/example.tt +5 -3
- data/tracks/ruby/exercises/wordy/wordy_test.rb +2 -1
- data/tracks/ruby/lib/acronym_cases.rb +3 -15
- data/tracks/ruby/lib/all_your_base_cases.rb +22 -54
- data/tracks/ruby/lib/alphametics_cases.rb +12 -27
- data/tracks/ruby/lib/anagram_cases.rb +7 -15
- data/tracks/ruby/lib/beer_song_cases.rb +7 -24
- data/tracks/ruby/lib/binary_cases.rb +5 -18
- data/tracks/ruby/lib/bowling_cases.rb +24 -24
- data/tracks/ruby/lib/bracket_push_cases.rb +6 -21
- data/tracks/ruby/lib/clock_cases.rb +6 -25
- data/tracks/ruby/lib/connect_cases.rb +2 -20
- data/tracks/ruby/lib/custom_set_cases.rb +14 -35
- data/tracks/ruby/lib/difference_of_squares_cases.rb +5 -26
- data/tracks/ruby/lib/dominoes_cases.rb +2 -11
- data/tracks/ruby/lib/generator/case_values.rb +25 -0
- data/tracks/ruby/lib/generator/exercise_cases.rb +11 -0
- data/tracks/ruby/lib/generator/files/track_files.rb +7 -2
- data/tracks/ruby/lib/generator/template_values.rb +12 -7
- data/tracks/ruby/lib/gigasecond_cases.rb +4 -18
- data/tracks/ruby/lib/grains_cases.rb +11 -38
- data/tracks/ruby/lib/hamming_cases.rb +0 -6
- data/tracks/ruby/lib/hello_world_cases.rb +2 -14
- data/tracks/ruby/lib/isogram_cases.rb +8 -16
- data/tracks/ruby/lib/largest_series_product_cases.rb +10 -16
- data/tracks/ruby/lib/leap_cases.rb +3 -16
- data/tracks/ruby/lib/luhn_cases.rb +0 -6
- data/tracks/ruby/lib/nth_prime_cases.rb +11 -13
- data/tracks/ruby/lib/ocr_numbers_cases.rb +0 -5
- data/tracks/ruby/lib/pangram_cases.rb +2 -19
- data/tracks/ruby/lib/pig_latin_cases.rb +0 -5
- data/tracks/ruby/lib/queen_attack_cases.rb +14 -37
- data/tracks/ruby/lib/raindrops_cases.rb +3 -15
- data/tracks/ruby/lib/rna_transcription_cases.rb +2 -14
- data/tracks/ruby/lib/roman_numerals_cases.rb +7 -10
- data/tracks/ruby/lib/run_length_encoding_cases.rb +4 -25
- data/tracks/ruby/lib/say_cases.rb +3 -14
- data/tracks/ruby/lib/sieve_cases.rb +1 -15
- data/tracks/ruby/lib/tournament_cases.rb +1 -14
- data/tracks/ruby/lib/transpose_cases.rb +1 -14
- data/tracks/ruby/lib/triangle_cases.rb +8 -27
- data/tracks/ruby/lib/two_bucket_cases.rb +7 -17
- data/tracks/ruby/lib/word_count_cases.rb +1 -13
- data/tracks/ruby/lib/wordy_cases.rb +4 -27
- data/tracks/ruby/test/fixtures/metadata/exercises/complex/canonical-data.json +45 -0
- data/tracks/ruby/test/fixtures/xruby/lib/beta_cases.rb +7 -0
- data/tracks/ruby/test/generator/case_values_test.rb +30 -0
- data/tracks/ruby/test/generator/files/track_files_test.rb +2 -3
- data/tracks/ruby/test/generator/template_values_test.rb +44 -3
- data/tracks/ruby/test/wordy_cases_test.rb +4 -65
- metadata +14 -4
- data/tracks/java/exercises/isogram/src/test/java/IsogramTest.java +0 -80
- data/tracks/ruby/test/grains_cases_test.rb +0 -103
|
@@ -2,30 +2,6 @@ require 'json'
|
|
|
2
2
|
require_relative 'test_helper'
|
|
3
3
|
|
|
4
4
|
class WordyCaseTest < Minitest::Test
|
|
5
|
-
def test_test_name
|
|
6
|
-
test_case = WordyCase.new(description: 'description')
|
|
7
|
-
|
|
8
|
-
assert_equal 'test_description', test_case.test_name
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def test_test_name_with_description_with_spaces
|
|
12
|
-
test_case = WordyCase.new(description: 'description with spaces')
|
|
13
|
-
|
|
14
|
-
assert_equal 'test_description_with_spaces', test_case.test_name
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def test_skipped_with_zero_index
|
|
18
|
-
test_case = WordyCase.new(index: 0)
|
|
19
|
-
|
|
20
|
-
assert_equal '# skip', test_case.skipped
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def test_skipped_with_non_zero_index
|
|
24
|
-
test_case = WordyCase.new(index: 1)
|
|
25
|
-
|
|
26
|
-
assert_equal 'skip', test_case.skipped
|
|
27
|
-
end
|
|
28
|
-
|
|
29
5
|
def test_workload_with_expected_and_no_message
|
|
30
6
|
test_case = WordyCase.new(expected: 1, input: 1)
|
|
31
7
|
|
|
@@ -38,12 +14,13 @@ class WordyCaseTest < Minitest::Test
|
|
|
38
14
|
end
|
|
39
15
|
|
|
40
16
|
def test_workload_with_expected_and_message
|
|
41
|
-
test_case = WordyCase.new(expected: 1, input:
|
|
17
|
+
test_case = WordyCase.new(expected: 1, input: 'What is -3 plus 7 multiplied by -2?')
|
|
18
|
+
message = test_case.send(:message)
|
|
42
19
|
|
|
43
20
|
expected_workload = [
|
|
44
|
-
|
|
21
|
+
"question = 'What is -3 plus 7 multiplied by -2?'",
|
|
45
22
|
' answer = WordProblem.new(question).answer',
|
|
46
|
-
' message = "
|
|
23
|
+
' message = "' + message[0..-3] + '#{answer}"',
|
|
47
24
|
' assert_equal(1, answer, message)',
|
|
48
25
|
].join("\n")
|
|
49
26
|
|
|
@@ -63,41 +40,3 @@ class WordyCaseTest < Minitest::Test
|
|
|
63
40
|
assert_equal expected_workload, test_case.workload
|
|
64
41
|
end
|
|
65
42
|
end
|
|
66
|
-
|
|
67
|
-
class WordyCasePrProcessorTest < Minitest::Test
|
|
68
|
-
def test_call_as_non_special_case
|
|
69
|
-
row = { 'input' => '' }
|
|
70
|
-
processed_row = WordyCase::PreProcessor.call(row)
|
|
71
|
-
|
|
72
|
-
assert_equal({ 'input' => '', 'message' => nil }, processed_row)
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
def test_call_as_special_case
|
|
76
|
-
row = { 'input' => 'What is -3 plus 7 multiplied by -2?' }
|
|
77
|
-
processed_row = WordyCase::PreProcessor.call(row)
|
|
78
|
-
expected_row = {
|
|
79
|
-
'input' => 'What is -3 plus 7 multiplied by -2?',
|
|
80
|
-
'message' => 'You should ignore order of precedence. -3 + 7 * -2 = -8, not %s',
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
assert_equal expected_row, processed_row
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
class WordyCasesTest < Minitest::Test
|
|
88
|
-
def test_call
|
|
89
|
-
json = {
|
|
90
|
-
cases: [
|
|
91
|
-
{ description: 'test 1' },
|
|
92
|
-
{ description: 'test 2' },
|
|
93
|
-
]
|
|
94
|
-
}.to_json
|
|
95
|
-
|
|
96
|
-
expected_cases = [
|
|
97
|
-
WordyCase.new(description: 'test 1', message: nil, index: 0),
|
|
98
|
-
WordyCase.new(description: 'test 2', message: nil, index: 1),
|
|
99
|
-
]
|
|
100
|
-
|
|
101
|
-
assert_equal expected_cases, WordyCases.call(json)
|
|
102
|
-
end
|
|
103
|
-
end
|
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.2
|
|
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-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rubyzip
|
|
@@ -2563,6 +2563,9 @@ files:
|
|
|
2563
2563
|
- tracks/elixir/exercises/markdown/example.exs
|
|
2564
2564
|
- tracks/elixir/exercises/markdown/markdown.exs
|
|
2565
2565
|
- tracks/elixir/exercises/markdown/markdown_test.exs
|
|
2566
|
+
- tracks/elixir/exercises/matrix/example.exs
|
|
2567
|
+
- tracks/elixir/exercises/matrix/matrix.exs
|
|
2568
|
+
- tracks/elixir/exercises/matrix/matrix_test.exs
|
|
2566
2569
|
- tracks/elixir/exercises/meetup/example.exs
|
|
2567
2570
|
- tracks/elixir/exercises/meetup/meetup.exs
|
|
2568
2571
|
- tracks/elixir/exercises/meetup/meetup_test.exs
|
|
@@ -2684,6 +2687,9 @@ files:
|
|
|
2684
2687
|
- tracks/elixir/exercises/triangle/example.exs
|
|
2685
2688
|
- tracks/elixir/exercises/triangle/triangle.exs
|
|
2686
2689
|
- tracks/elixir/exercises/triangle/triangle_test.exs
|
|
2690
|
+
- tracks/elixir/exercises/twelve-days/example.exs
|
|
2691
|
+
- tracks/elixir/exercises/twelve-days/twelve_days.exs
|
|
2692
|
+
- tracks/elixir/exercises/twelve-days/twelve_days_test.exs
|
|
2687
2693
|
- tracks/elixir/exercises/word-count/example.exs
|
|
2688
2694
|
- tracks/elixir/exercises/word-count/word_count.exs
|
|
2689
2695
|
- tracks/elixir/exercises/word-count/word_count_test.exs
|
|
@@ -4424,7 +4430,7 @@ files:
|
|
|
4424
4430
|
- tracks/java/exercises/isogram/build.gradle
|
|
4425
4431
|
- tracks/java/exercises/isogram/src/example/java/IsogramChecker.java
|
|
4426
4432
|
- tracks/java/exercises/isogram/src/main/java/.keep
|
|
4427
|
-
- tracks/java/exercises/isogram/src/test/java/
|
|
4433
|
+
- tracks/java/exercises/isogram/src/test/java/IsogramCheckerTest.java
|
|
4428
4434
|
- tracks/java/exercises/largest-series-product/build.gradle
|
|
4429
4435
|
- tracks/java/exercises/largest-series-product/src/example/java/LargestSeriesProductCalculator.java
|
|
4430
4436
|
- tracks/java/exercises/largest-series-product/src/main/java/LargestSeriesProductCalculator.java
|
|
@@ -4742,6 +4748,8 @@ files:
|
|
|
4742
4748
|
- tracks/javascript/exercises/point-mutations/point-mutations.spec.js
|
|
4743
4749
|
- tracks/javascript/exercises/prime-factors/example.js
|
|
4744
4750
|
- tracks/javascript/exercises/prime-factors/prime-factors.spec.js
|
|
4751
|
+
- tracks/javascript/exercises/proverb/example.js
|
|
4752
|
+
- tracks/javascript/exercises/proverb/proverb.spec.js
|
|
4745
4753
|
- tracks/javascript/exercises/pythagorean-triplet/example.js
|
|
4746
4754
|
- tracks/javascript/exercises/pythagorean-triplet/pythagorean-triplet.spec.js
|
|
4747
4755
|
- tracks/javascript/exercises/queen-attack/example.js
|
|
@@ -7425,6 +7433,7 @@ files:
|
|
|
7425
7433
|
- tracks/ruby/lib/dominoes_cases.rb
|
|
7426
7434
|
- tracks/ruby/lib/exercise_cases.rb
|
|
7427
7435
|
- tracks/ruby/lib/generator.rb
|
|
7436
|
+
- tracks/ruby/lib/generator/case_values.rb
|
|
7428
7437
|
- tracks/ruby/lib/generator/command_line.rb
|
|
7429
7438
|
- tracks/ruby/lib/generator/exercise_cases.rb
|
|
7430
7439
|
- tracks/ruby/lib/generator/files.rb
|
|
@@ -7464,11 +7473,13 @@ files:
|
|
|
7464
7473
|
- tracks/ruby/lib/word_count_cases.rb
|
|
7465
7474
|
- tracks/ruby/lib/wordy_cases.rb
|
|
7466
7475
|
- tracks/ruby/test/fixtures/metadata/exercises/alpha/canonical-data.json
|
|
7476
|
+
- tracks/ruby/test/fixtures/metadata/exercises/complex/canonical-data.json
|
|
7467
7477
|
- tracks/ruby/test/fixtures/xruby/exercises/alpha/.meta/.version
|
|
7468
7478
|
- tracks/ruby/test/fixtures/xruby/exercises/alpha/example.rb
|
|
7469
7479
|
- tracks/ruby/test/fixtures/xruby/exercises/alpha/example.tt
|
|
7470
7480
|
- tracks/ruby/test/fixtures/xruby/lib/alpha_cases.rb
|
|
7471
7481
|
- tracks/ruby/test/fixtures/xruby/lib/beta_cases.rb
|
|
7482
|
+
- tracks/ruby/test/generator/case_values_test.rb
|
|
7472
7483
|
- tracks/ruby/test/generator/command_line_test.rb
|
|
7473
7484
|
- tracks/ruby/test/generator/files/metadata_files_test.rb
|
|
7474
7485
|
- tracks/ruby/test/generator/files/track_files_test.rb
|
|
@@ -7478,7 +7489,6 @@ files:
|
|
|
7478
7489
|
- tracks/ruby/test/generator/template_values_test.rb
|
|
7479
7490
|
- tracks/ruby/test/generator/underscore_test.rb
|
|
7480
7491
|
- tracks/ruby/test/generator_test.rb
|
|
7481
|
-
- tracks/ruby/test/grains_cases_test.rb
|
|
7482
7492
|
- tracks/ruby/test/tasks/exercise_test.rb
|
|
7483
7493
|
- tracks/ruby/test/tasks/exercise_test_tasks_test.rb
|
|
7484
7494
|
- tracks/ruby/test/tasks/exercise_tests_runner_test.rb
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
package test;
|
|
2
|
-
|
|
3
|
-
import static org.junit.Assert.*;
|
|
4
|
-
|
|
5
|
-
import org.junit.Ignore;
|
|
6
|
-
import org.junit.Test;
|
|
7
|
-
import example.IsogramChecker;
|
|
8
|
-
|
|
9
|
-
public class IsogramTest {
|
|
10
|
-
|
|
11
|
-
@Test
|
|
12
|
-
public void testIsogram() {
|
|
13
|
-
IsogramChecker iso = new IsogramChecker();
|
|
14
|
-
assertTrue(iso.isIsogram("duplicates"));
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
@Ignore
|
|
18
|
-
@Test
|
|
19
|
-
public void testNotIsogram() {
|
|
20
|
-
IsogramChecker iso = new IsogramChecker();
|
|
21
|
-
assertFalse(iso.isIsogram("eleven"));
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
@Ignore
|
|
25
|
-
@Test
|
|
26
|
-
public void testMediumLongIsogram() {
|
|
27
|
-
IsogramChecker iso = new IsogramChecker();
|
|
28
|
-
assertTrue(iso.isIsogram("subdermatoglyphic"));
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
@Ignore
|
|
32
|
-
@Test
|
|
33
|
-
public void testCaseInsensitive() {
|
|
34
|
-
IsogramChecker iso = new IsogramChecker();
|
|
35
|
-
assertFalse(iso.isIsogram("Alphabet"));
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
@Ignore
|
|
39
|
-
@Test
|
|
40
|
-
public void testIsogramWithHyphen() {
|
|
41
|
-
IsogramChecker iso = new IsogramChecker();
|
|
42
|
-
assertTrue(iso.isIsogram("thumbscrew-japingly"));
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
@Ignore
|
|
46
|
-
@Test
|
|
47
|
-
public void testIgnoresMultipleHyphens() {
|
|
48
|
-
IsogramChecker iso = new IsogramChecker();
|
|
49
|
-
assertTrue(iso.isIsogram("Hjelmqvist-Gryb-Zock-Pfund-Wax"));
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
@Ignore
|
|
53
|
-
@Test
|
|
54
|
-
public void testWorksWithGermanLetters() {
|
|
55
|
-
IsogramChecker iso = new IsogramChecker();
|
|
56
|
-
assertTrue(iso.isIsogram("Heizölrückstoßabdämpfung"));
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
@Ignore
|
|
60
|
-
@Test
|
|
61
|
-
public void testIgnoresSpaces() {
|
|
62
|
-
IsogramChecker iso = new IsogramChecker();
|
|
63
|
-
assertFalse(iso.isIsogram("the quick brown fox"));
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
@Ignore
|
|
67
|
-
@Test
|
|
68
|
-
public void testIgnoresSpaces2() {
|
|
69
|
-
IsogramChecker iso = new IsogramChecker();
|
|
70
|
-
assertTrue(iso.isIsogram("Emily Jung Schwartzkopf"));
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
@Ignore
|
|
74
|
-
@Test
|
|
75
|
-
public void testDuplicateAccentedLetters() {
|
|
76
|
-
IsogramChecker iso = new IsogramChecker();
|
|
77
|
-
assertFalse(iso.isIsogram("éléphant"));
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
require 'json'
|
|
2
|
-
require_relative 'test_helper'
|
|
3
|
-
|
|
4
|
-
class GrainsTest < Minitest::Test
|
|
5
|
-
def test_test_name
|
|
6
|
-
test_case = GrainsCase.new(description: 'description')
|
|
7
|
-
|
|
8
|
-
assert_equal 'test_description', test_case.test_name
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def test_test_name_when_description_has_spaces
|
|
12
|
-
test_case = GrainsCase.new(description: 'description with spaces')
|
|
13
|
-
|
|
14
|
-
assert_equal 'test_description_with_spaces', test_case.test_name
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def test_workload_is_not_implemented
|
|
18
|
-
assert_raises(NotImplementedError) { GrainsCase.new.workload }
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def test_skipped_with_zero_index
|
|
22
|
-
assert_equal '# skip', GrainsCase.new(index: 0).skipped
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def test_skipped_with_non_zero_index
|
|
26
|
-
assert_equal 'skip', GrainsCase.new(index: 1).skipped
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
class SquareMethodTest < Minitest::Test
|
|
31
|
-
def test_workload_when_expected_is_negative
|
|
32
|
-
test_case = GrainsCase::SquareMethod.new(expected: -1, input: 10)
|
|
33
|
-
|
|
34
|
-
assert_equal 'assert_raises(ArgumentError) { Grains.square(10) }',
|
|
35
|
-
test_case.workload
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def test_workload_when_expected_is_positive
|
|
39
|
-
test_case = GrainsCase::SquareMethod.new(expected: 1, input: 10)
|
|
40
|
-
|
|
41
|
-
assert_equal 'assert_equal 1, Grains.square(10)', test_case.workload
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def test_workload_with_large_expected_number
|
|
45
|
-
test_case = GrainsCase::SquareMethod.new(expected: 10000, input: 10)
|
|
46
|
-
|
|
47
|
-
assert_equal 'assert_equal 10_000, Grains.square(10)', test_case.workload
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
class TotalMethodTest < Minitest::Test
|
|
52
|
-
def test_workload
|
|
53
|
-
test_case = GrainsCase::TotalMethod.new(expected: 1)
|
|
54
|
-
|
|
55
|
-
assert_equal 'assert_equal 1, Grains.total', test_case.workload
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def test_workload_with_large_expected_number
|
|
59
|
-
test_case = GrainsCase::TotalMethod.new(expected: 10000)
|
|
60
|
-
|
|
61
|
-
assert_equal 'assert_equal 10_000, Grains.total', test_case.workload
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
class GrainsCasesTest < Minitest::Test
|
|
66
|
-
def test_handling_of_json
|
|
67
|
-
json = {
|
|
68
|
-
square: {
|
|
69
|
-
cases: [
|
|
70
|
-
{},
|
|
71
|
-
{},
|
|
72
|
-
],
|
|
73
|
-
},
|
|
74
|
-
total: {
|
|
75
|
-
}
|
|
76
|
-
}.to_json
|
|
77
|
-
|
|
78
|
-
cases = GrainsCases.call(json)
|
|
79
|
-
|
|
80
|
-
assert_instance_of GrainsCase::SquareMethod, cases[0]
|
|
81
|
-
assert_instance_of GrainsCase::SquareMethod, cases[1]
|
|
82
|
-
assert_instance_of GrainsCase::TotalMethod, cases[2]
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def test_continuous_index
|
|
86
|
-
json = {
|
|
87
|
-
square: {
|
|
88
|
-
cases: [
|
|
89
|
-
{},
|
|
90
|
-
{},
|
|
91
|
-
],
|
|
92
|
-
},
|
|
93
|
-
total: {
|
|
94
|
-
}
|
|
95
|
-
}.to_json
|
|
96
|
-
|
|
97
|
-
cases = GrainsCases.call(json)
|
|
98
|
-
|
|
99
|
-
assert_equal 0, cases[0].index
|
|
100
|
-
assert_equal 1, cases[1].index
|
|
101
|
-
assert_equal 2, cases[2].index
|
|
102
|
-
end
|
|
103
|
-
end
|