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.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/elixir/config.json +17 -0
  4. data/tracks/elixir/exercises/matrix/example.exs +63 -0
  5. data/tracks/elixir/exercises/matrix/matrix.exs +48 -0
  6. data/tracks/elixir/exercises/matrix/matrix_test.exs +58 -0
  7. data/tracks/elixir/exercises/twelve-days/example.exs +53 -0
  8. data/tracks/elixir/exercises/twelve-days/twelve_days.exs +25 -0
  9. data/tracks/elixir/exercises/twelve-days/twelve_days_test.exs +86 -0
  10. data/tracks/go/exercises/change/.meta/gen.go +1 -3
  11. data/tracks/go/exercises/change/cases_test.go +1 -0
  12. data/tracks/go/exercises/forth/example.go +1 -1
  13. data/tracks/go/exercises/raindrops/.meta/gen.go +1 -3
  14. data/tracks/go/exercises/raindrops/cases_test.go +5 -1
  15. data/tracks/go/exercises/raindrops/example.go +1 -1
  16. data/tracks/go/exercises/raindrops/raindrops.go +1 -1
  17. data/tracks/go/exercises/raindrops/raindrops_test.go +1 -1
  18. data/tracks/java/config.json +5 -5
  19. data/tracks/java/exercises/isogram/src/example/java/IsogramChecker.java +23 -27
  20. data/tracks/java/exercises/isogram/src/test/java/IsogramCheckerTest.java +77 -0
  21. data/tracks/javascript/config.json +9 -0
  22. data/tracks/javascript/exercises/proverb/example.js +36 -0
  23. data/tracks/javascript/exercises/proverb/proverb.spec.js +78 -0
  24. data/tracks/ruby/README.md +0 -33
  25. data/tracks/ruby/exercises/acronym/.meta/.version +1 -1
  26. data/tracks/ruby/exercises/acronym/acronym_test.rb +14 -9
  27. data/tracks/ruby/exercises/acronym/example.rb +1 -1
  28. data/tracks/ruby/exercises/acronym/example.tt +7 -4
  29. data/tracks/ruby/exercises/all-your-base/all_your_base_test.rb +1 -1
  30. data/tracks/ruby/exercises/all-your-base/example.tt +4 -3
  31. data/tracks/ruby/exercises/alphametics/alphametics_test.rb +2 -1
  32. data/tracks/ruby/exercises/alphametics/example.tt +2 -1
  33. data/tracks/ruby/exercises/anagram/anagram_test.rb +35 -20
  34. data/tracks/ruby/exercises/anagram/example.rb +1 -1
  35. data/tracks/ruby/exercises/anagram/example.tt +5 -2
  36. data/tracks/ruby/exercises/beer-song/beer_song_test.rb +1 -0
  37. data/tracks/ruby/exercises/beer-song/example.tt +6 -4
  38. data/tracks/ruby/exercises/binary/binary_test.rb +3 -2
  39. data/tracks/ruby/exercises/binary/example.tt +5 -2
  40. data/tracks/ruby/exercises/bowling/bowling_test.rb +39 -40
  41. data/tracks/ruby/exercises/bowling/example.tt +2 -2
  42. data/tracks/ruby/exercises/bracket-push/.meta/.version +1 -1
  43. data/tracks/ruby/exercises/bracket-push/bracket_push_test.rb +7 -3
  44. data/tracks/ruby/exercises/bracket-push/example.rb +1 -1
  45. data/tracks/ruby/exercises/bracket-push/example.tt +5 -2
  46. data/tracks/ruby/exercises/clock/clock_test.rb +40 -41
  47. data/tracks/ruby/exercises/clock/example.tt +5 -2
  48. data/tracks/ruby/exercises/connect/.meta/.version +1 -1
  49. data/tracks/ruby/exercises/connect/connect_test.rb +20 -3
  50. data/tracks/ruby/exercises/connect/example.rb +1 -1
  51. data/tracks/ruby/exercises/connect/example.tt +3 -1
  52. data/tracks/ruby/exercises/custom-set/custom_set_test.rb +1 -2
  53. data/tracks/ruby/exercises/custom-set/example.tt +5 -2
  54. data/tracks/ruby/exercises/difference-of-squares/difference_of_squares_test.rb +6 -5
  55. data/tracks/ruby/exercises/difference-of-squares/example.tt +8 -4
  56. data/tracks/ruby/exercises/dominoes/dominoes_test.rb +1 -1
  57. data/tracks/ruby/exercises/dominoes/example.tt +1 -1
  58. data/tracks/ruby/exercises/gigasecond/.meta/.version +1 -1
  59. data/tracks/ruby/exercises/gigasecond/example.rb +1 -1
  60. data/tracks/ruby/exercises/gigasecond/example.tt +7 -5
  61. data/tracks/ruby/exercises/gigasecond/gigasecond_test.rb +11 -16
  62. data/tracks/ruby/exercises/grains/example.tt +5 -3
  63. data/tracks/ruby/exercises/grains/grains_test.rb +2 -1
  64. data/tracks/ruby/exercises/hello-world/example.tt +1 -1
  65. data/tracks/ruby/exercises/hello-world/hello_world_test.rb +1 -1
  66. data/tracks/ruby/exercises/isogram/.meta/.version +1 -1
  67. data/tracks/ruby/exercises/isogram/example.rb +1 -1
  68. data/tracks/ruby/exercises/isogram/example.tt +6 -4
  69. data/tracks/ruby/exercises/isogram/isogram_test.rb +18 -10
  70. data/tracks/ruby/exercises/largest-series-product/.meta/.version +1 -1
  71. data/tracks/ruby/exercises/largest-series-product/example.rb +1 -1
  72. data/tracks/ruby/exercises/largest-series-product/example.tt +7 -5
  73. data/tracks/ruby/exercises/largest-series-product/largest_series_product_test.rb +11 -21
  74. data/tracks/ruby/exercises/leap/.meta/.version +1 -1
  75. data/tracks/ruby/exercises/leap/example.rb +1 -1
  76. data/tracks/ruby/exercises/leap/example.tt +6 -4
  77. data/tracks/ruby/exercises/leap/leap_test.rb +11 -25
  78. data/tracks/ruby/exercises/nth-prime/example.tt +7 -5
  79. data/tracks/ruby/exercises/nth-prime/nth_prime_test.rb +2 -3
  80. data/tracks/ruby/exercises/pangram/example.tt +5 -3
  81. data/tracks/ruby/exercises/pangram/pangram_test.rb +2 -1
  82. data/tracks/ruby/exercises/queen-attack/example.tt +2 -2
  83. data/tracks/ruby/exercises/queen-attack/queen_attack_test.rb +14 -15
  84. data/tracks/ruby/exercises/raindrops/example.tt +7 -4
  85. data/tracks/ruby/exercises/raindrops/raindrops_test.rb +38 -38
  86. data/tracks/ruby/exercises/rna-transcription/example.tt +6 -3
  87. data/tracks/ruby/exercises/rna-transcription/rna_transcription_test.rb +4 -5
  88. data/tracks/ruby/exercises/roman-numerals/example.tt +7 -4
  89. data/tracks/ruby/exercises/roman-numerals/roman_numerals_test.rb +5 -5
  90. data/tracks/ruby/exercises/run-length-encoding/.meta/.version +1 -1
  91. data/tracks/ruby/exercises/run-length-encoding/example.rb +1 -1
  92. data/tracks/ruby/exercises/run-length-encoding/example.tt +6 -3
  93. data/tracks/ruby/exercises/run-length-encoding/run_length_encoding_test.rb +70 -28
  94. data/tracks/ruby/exercises/say/example.tt +7 -5
  95. data/tracks/ruby/exercises/say/say_test.rb +3 -2
  96. data/tracks/ruby/exercises/sieve/example.tt +4 -1
  97. data/tracks/ruby/exercises/sieve/sieve_test.rb +1 -3
  98. data/tracks/ruby/exercises/tournament/example.tt +4 -1
  99. data/tracks/ruby/exercises/tournament/tournament_test.rb +1 -2
  100. data/tracks/ruby/exercises/transpose/example.tt +5 -2
  101. data/tracks/ruby/exercises/transpose/transpose_test.rb +1 -2
  102. data/tracks/ruby/exercises/triangle/example.tt +5 -3
  103. data/tracks/ruby/exercises/triangle/triangle_test.rb +1 -3
  104. data/tracks/ruby/exercises/two-bucket/example.tt +7 -4
  105. data/tracks/ruby/exercises/two-bucket/two_bucket_test.rb +9 -9
  106. data/tracks/ruby/exercises/word-count/example.tt +6 -4
  107. data/tracks/ruby/exercises/word-count/word_count_test.rb +2 -3
  108. data/tracks/ruby/exercises/wordy/example.tt +5 -3
  109. data/tracks/ruby/exercises/wordy/wordy_test.rb +2 -1
  110. data/tracks/ruby/lib/acronym_cases.rb +3 -15
  111. data/tracks/ruby/lib/all_your_base_cases.rb +22 -54
  112. data/tracks/ruby/lib/alphametics_cases.rb +12 -27
  113. data/tracks/ruby/lib/anagram_cases.rb +7 -15
  114. data/tracks/ruby/lib/beer_song_cases.rb +7 -24
  115. data/tracks/ruby/lib/binary_cases.rb +5 -18
  116. data/tracks/ruby/lib/bowling_cases.rb +24 -24
  117. data/tracks/ruby/lib/bracket_push_cases.rb +6 -21
  118. data/tracks/ruby/lib/clock_cases.rb +6 -25
  119. data/tracks/ruby/lib/connect_cases.rb +2 -20
  120. data/tracks/ruby/lib/custom_set_cases.rb +14 -35
  121. data/tracks/ruby/lib/difference_of_squares_cases.rb +5 -26
  122. data/tracks/ruby/lib/dominoes_cases.rb +2 -11
  123. data/tracks/ruby/lib/generator/case_values.rb +25 -0
  124. data/tracks/ruby/lib/generator/exercise_cases.rb +11 -0
  125. data/tracks/ruby/lib/generator/files/track_files.rb +7 -2
  126. data/tracks/ruby/lib/generator/template_values.rb +12 -7
  127. data/tracks/ruby/lib/gigasecond_cases.rb +4 -18
  128. data/tracks/ruby/lib/grains_cases.rb +11 -38
  129. data/tracks/ruby/lib/hamming_cases.rb +0 -6
  130. data/tracks/ruby/lib/hello_world_cases.rb +2 -14
  131. data/tracks/ruby/lib/isogram_cases.rb +8 -16
  132. data/tracks/ruby/lib/largest_series_product_cases.rb +10 -16
  133. data/tracks/ruby/lib/leap_cases.rb +3 -16
  134. data/tracks/ruby/lib/luhn_cases.rb +0 -6
  135. data/tracks/ruby/lib/nth_prime_cases.rb +11 -13
  136. data/tracks/ruby/lib/ocr_numbers_cases.rb +0 -5
  137. data/tracks/ruby/lib/pangram_cases.rb +2 -19
  138. data/tracks/ruby/lib/pig_latin_cases.rb +0 -5
  139. data/tracks/ruby/lib/queen_attack_cases.rb +14 -37
  140. data/tracks/ruby/lib/raindrops_cases.rb +3 -15
  141. data/tracks/ruby/lib/rna_transcription_cases.rb +2 -14
  142. data/tracks/ruby/lib/roman_numerals_cases.rb +7 -10
  143. data/tracks/ruby/lib/run_length_encoding_cases.rb +4 -25
  144. data/tracks/ruby/lib/say_cases.rb +3 -14
  145. data/tracks/ruby/lib/sieve_cases.rb +1 -15
  146. data/tracks/ruby/lib/tournament_cases.rb +1 -14
  147. data/tracks/ruby/lib/transpose_cases.rb +1 -14
  148. data/tracks/ruby/lib/triangle_cases.rb +8 -27
  149. data/tracks/ruby/lib/two_bucket_cases.rb +7 -17
  150. data/tracks/ruby/lib/word_count_cases.rb +1 -13
  151. data/tracks/ruby/lib/wordy_cases.rb +4 -27
  152. data/tracks/ruby/test/fixtures/metadata/exercises/complex/canonical-data.json +45 -0
  153. data/tracks/ruby/test/fixtures/xruby/lib/beta_cases.rb +7 -0
  154. data/tracks/ruby/test/generator/case_values_test.rb +30 -0
  155. data/tracks/ruby/test/generator/files/track_files_test.rb +2 -3
  156. data/tracks/ruby/test/generator/template_values_test.rb +44 -3
  157. data/tracks/ruby/test/wordy_cases_test.rb +4 -65
  158. metadata +14 -4
  159. data/tracks/java/exercises/isogram/src/test/java/IsogramTest.java +0 -80
  160. data/tracks/ruby/test/grains_cases_test.rb +0 -103
@@ -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: 1, message: 'test %s')
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
- 'question = \'1\'',
21
+ "question = 'What is -3 plus 7 multiplied by -2?'",
45
22
  ' answer = WordProblem.new(question).answer',
46
- ' message = "test #{answer}"',
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.1
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-26 00:00:00.000000000 Z
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/IsogramTest.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