trackler 2.0.6.10 → 2.0.6.11

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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/common/exercises/circular-buffer/canonical-data.json +343 -0
  3. data/common/exercises/luhn/description.md +4 -1
  4. data/common/exercises/secret-handshake/canonical-data.json +67 -0
  5. data/common/exercises/secret-handshake/description.md +6 -8
  6. data/common/exercises/variable-length-quantity/canonical-data.json +147 -0
  7. data/lib/trackler/version.rb +1 -1
  8. data/tracks/ceylon/.gitignore +1 -0
  9. data/tracks/ceylon/.travis.yml +6 -1
  10. data/tracks/ceylon/README.md +143 -4
  11. data/tracks/ceylon/bin/test-all-exercises +13 -0
  12. data/tracks/ceylon/bin/test-exercise +30 -0
  13. data/tracks/ceylon/config.json +33 -3
  14. data/tracks/ceylon/{SETUP.md → exercises/TRACK_HINTS.md} +0 -0
  15. data/tracks/ceylon/exercises/anagram/example/Anagram.ceylon +8 -0
  16. data/tracks/ceylon/exercises/anagram/source/anagram/Anagram.ceylon +3 -0
  17. data/tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon +47 -0
  18. data/tracks/ceylon/exercises/anagram/source/anagram/module.ceylon +3 -0
  19. data/tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon +18 -0
  20. data/tracks/ceylon/exercises/bracket-push/example/module.ceylon +4 -0
  21. data/tracks/ceylon/exercises/bracket-push/source/bracketpush/Brackets.ceylon +3 -0
  22. data/tracks/ceylon/exercises/bracket-push/source/bracketpush/BracketsTest.ceylon +37 -0
  23. data/tracks/ceylon/exercises/bracket-push/source/bracketpush/module.ceylon +3 -0
  24. data/tracks/ceylon/exercises/leap/example/Leap.ceylon +3 -0
  25. data/tracks/ceylon/exercises/leap/source/leap/Leap.ceylon +3 -0
  26. data/tracks/ceylon/exercises/leap/source/leap/LeapTest.ceylon +10 -0
  27. data/tracks/ceylon/exercises/leap/source/leap/module.ceylon +3 -0
  28. data/tracks/ceylon/exercises/sieve/example/Sieve.ceylon +24 -0
  29. data/tracks/ceylon/exercises/sieve/example/module.ceylon +4 -0
  30. data/tracks/ceylon/exercises/sieve/source/sieve/Sieve.ceylon +3 -0
  31. data/tracks/ceylon/exercises/sieve/source/sieve/SieveTest.ceylon +23 -0
  32. data/tracks/ceylon/exercises/sieve/source/sieve/module.ceylon +3 -0
  33. data/tracks/csharp/.travis.yml +4 -0
  34. data/tracks/elm/SETUP.md +5 -4
  35. data/tracks/fsharp/.travis.yml +4 -0
  36. data/tracks/go/config.json +6 -2
  37. data/tracks/go/exercises/luhn/example.go +5 -4
  38. data/tracks/go/exercises/luhn/luhn_test.go +18 -34
  39. data/tracks/java/exercises/word-count/src/test/java/WordCountTest.java +10 -13
  40. data/tracks/lua/docs/ABOUT.md +1 -1
  41. data/tracks/lua/docs/LEARNING.md +1 -0
  42. data/tracks/lua/docs/RESOURCES.md +6 -1
  43. data/tracks/lua/exercises/flatten-array/flatten-array_spec.lua +11 -0
  44. data/tracks/lua/exercises/luhn/example.lua +11 -27
  45. data/tracks/lua/exercises/luhn/luhn_spec.lua +12 -39
  46. data/tracks/ocaml/exercises/all-your-base/all_your_base.mli +0 -2
  47. data/tracks/ocaml/exercises/bracket-push/bracket_push.mli +0 -2
  48. data/tracks/ocaml/exercises/luhn/example.ml +12 -16
  49. data/tracks/ocaml/exercises/luhn/luhn.mli +1 -2
  50. data/tracks/ocaml/exercises/luhn/test.ml +15 -12
  51. data/tracks/php/config.json +8 -0
  52. data/tracks/php/exercises/grains/example.php +63 -0
  53. data/tracks/php/exercises/grains/grains_test.php +82 -0
  54. data/tracks/pony/config.json +26 -14
  55. data/tracks/pony/exercises/anagram/example.pony +17 -73
  56. data/tracks/pony/exercises/anagram/test.pony +6 -13
  57. data/tracks/pony/exercises/bob/example.pony +24 -24
  58. data/tracks/pony/exercises/bob/test.pony +16 -34
  59. data/tracks/pony/exercises/difference-of-squares/example.pony +13 -25
  60. data/tracks/pony/exercises/difference-of-squares/test.pony +9 -16
  61. data/tracks/pony/exercises/hamming/example.pony +8 -23
  62. data/tracks/pony/exercises/hamming/test.pony +16 -30
  63. data/tracks/pony/exercises/hello-world/example.pony +3 -9
  64. data/tracks/pony/exercises/hello-world/test.pony +2 -11
  65. data/tracks/pony/exercises/leap/example.pony +4 -10
  66. data/tracks/pony/exercises/leap/test.pony +2 -11
  67. data/tracks/ruby/lib/generator/command_line.rb +5 -6
  68. data/tracks/ruby/lib/generator/repository.rb +13 -13
  69. data/tracks/ruby/lib/tasks/exercise_test_tasks.rb +2 -4
  70. data/tracks/ruby/lib/tasks/exercise_tests_runner.rb +6 -8
  71. data/tracks/ruby/test/generator/repository_test.rb +26 -34
  72. data/tracks/rust/README.md +1 -1
  73. data/tracks/scheme/config.json +5 -0
  74. data/tracks/scheme/docs/ABOUT.md +7 -0
  75. data/tracks/scheme/exercises/scrabble-score/example.scm +16 -0
  76. data/tracks/scheme/exercises/scrabble-score/scrabble-score-test.scm +57 -0
  77. data/tracks/scheme/exercises/scrabble-score/scrabble-score.scm +2 -0
  78. metadata +33 -5
  79. data/tracks/ceylon/exercises/.keep +0 -0
  80. data/tracks/ceylon/img/.keep +0 -0
@@ -33,30 +33,30 @@ module Generator
33
33
  end
34
34
  end
35
35
 
36
+ # This exists to give us a clue as to what we are delegating to.
37
+ class RepositoryDelegator < SimpleDelegator
38
+ end
39
+
36
40
  # A repository that also logs its progress.
37
- class LoggingRepository < Repository
38
- def initialize(paths:, exercise_name:, logger:)
39
- super(paths: paths, exercise_name: exercise_name)
41
+ class LoggingRepository < RepositoryDelegator
42
+ def initialize(repository:, logger:)
43
+ __setobj__ @repository = repository
40
44
  @logger = logger
41
45
  end
42
46
 
43
47
  def update_tests_version
44
- super
45
- @logger.info "Incremented tests version to #{version}"
48
+ @repository.update_tests_version
49
+ @logger.debug "Incremented tests version to #{version}"
46
50
  end
47
51
 
48
52
  def update_example_solution
49
- super
50
- @logger.info "Updated version in example solution to #{version}"
53
+ @repository.update_example_solution
54
+ @logger.debug "Updated version in example solution to #{version}"
51
55
  end
52
56
 
53
57
  def create_tests_file
54
- super
55
- @logger.info "Generated tests for #{exercise_name}"
58
+ @repository.create_tests_file
59
+ @logger.info "Generated #{exercise_name} tests version #{version}"
56
60
  end
57
61
  end
58
-
59
- # This exists to give us a clue as to what we are delegating to.
60
- class RepositoryDelegator < SimpleDelegator
61
- end
62
62
  end
@@ -21,10 +21,8 @@ class ExerciseTestTasks
21
21
 
22
22
  private
23
23
 
24
- attr_reader :options, :test_runner
25
-
26
24
  def exercises
27
- @_exercises ||= Exercise.all
25
+ @exercises ||= Exercise.all
28
26
  end
29
27
 
30
28
  def define_task_for_all_exercises
@@ -34,7 +32,7 @@ class ExerciseTestTasks
34
32
 
35
33
  def define_task_for(exercise)
36
34
  task exercise do
37
- test_runner.new(exercise: exercise, test_options: options).run
35
+ @test_runner.new(exercise: exercise, test_options: @options).run
38
36
  end
39
37
  end
40
38
  end
@@ -1,4 +1,4 @@
1
- require "rake/file_utils_ext"
1
+ require 'rake/file_utils_ext'
2
2
  require 'tmpdir'
3
3
 
4
4
  class ExerciseTestsRunner
@@ -10,9 +10,9 @@ class ExerciseTestsRunner
10
10
  end
11
11
 
12
12
  def run
13
- puts "\n\n#{'-'*64}\nrunning tests for: #{exercise}"
13
+ puts "\n\n#{'-' * 64}\nrunning tests for: #{@exercise}"
14
14
 
15
- Dir.mktmpdir(exercise.name) do |dir|
15
+ Dir.mktmpdir(@exercise.name) do |dir|
16
16
  setup_exercise_files_in(dir)
17
17
  run_exercise_tests_in(dir)
18
18
  end
@@ -20,14 +20,12 @@ class ExerciseTestsRunner
20
20
 
21
21
  private
22
22
 
23
- attr_reader :exercise, :test_options
24
-
25
23
  def setup_exercise_files_in(dir)
26
- FileUtils.cp_r exercise.directory, dir
27
- FileUtils.mv "#{dir}/#{exercise.example_file}", "#{dir}/#{exercise.testable_example_file}"
24
+ FileUtils.cp_r @exercise.directory, dir
25
+ FileUtils.mv "#{dir}/#{@exercise.example_file}", "#{dir}/#{@exercise.testable_example_file}"
28
26
  end
29
27
 
30
28
  def run_exercise_tests_in(dir)
31
- ruby "-I lib -r disable_skip.rb #{dir}/#{exercise.test_file} #{test_options}"
29
+ ruby "-I lib -r disable_skip.rb #{dir}/#{@exercise.test_file} #{@test_options}"
32
30
  end
33
31
  end
@@ -47,52 +47,44 @@ module Generator
47
47
  end
48
48
 
49
49
  class LoggingRepositoryTest < Minitest::Test
50
- FixturePaths = Paths.new(
51
- metadata: 'test/fixtures/metadata',
52
- track: 'test/fixtures/xruby'
53
- )
50
+ def test_create_tests_file
51
+ mock_repository = Minitest::Mock.new
52
+ mock_repository.expect :create_tests_file, nil
53
+ mock_repository.expect :exercise_name, 'alpha'
54
+ mock_repository.expect :version, 2
55
+ mock_logger = Minitest::Mock.new
56
+ mock_logger.expect :info, nil, ['Generated alpha tests version 2']
54
57
 
55
- def test_update_tests_version
56
- fake_version = 2
58
+ subject = LoggingRepository.new(repository: mock_repository, logger: mock_logger)
59
+ subject.create_tests_file
60
+
61
+ mock_repository.verify
62
+ end
57
63
 
64
+ def test_update_tests_version
65
+ mock_repository = Minitest::Mock.new
66
+ mock_repository.expect :update_tests_version, nil
67
+ mock_repository.expect :version, 2
58
68
  mock_logger = Minitest::Mock.new
59
- mock_logger.expect :info, nil, ["Incremented tests version to #{fake_version}"]
69
+ mock_logger.expect :debug, nil, ['Incremented tests version to 2']
60
70
 
61
- mock_tests_version = Minitest::Mock.new.expect :increment, fake_version
62
- subject = LoggingRepository.new(paths: FixturePaths, exercise_name: 'alpha', logger: mock_logger)
63
- subject.define_singleton_method(:tests_version) { mock_tests_version }
64
- subject.define_singleton_method(:version) { fake_version }
71
+ subject = LoggingRepository.new(repository: mock_repository, logger: mock_logger)
65
72
  subject.update_tests_version
66
- mock_logger.verify
73
+
74
+ mock_repository.verify
67
75
  end
68
76
 
69
77
  def test_update_example_solution
70
- fake_version = 2
78
+ mock_repository = Minitest::Mock.new
79
+ mock_repository.expect :update_example_solution, nil
80
+ mock_repository.expect :version, 2
71
81
  mock_logger = Minitest::Mock.new
72
- mock_logger.expect :info, nil, ["Updated version in example solution to #{fake_version}"]
73
-
74
- mock_example_solution = Minitest::Mock.new.expect :update_version, nil, [2]
75
- subject = LoggingRepository.new(paths: FixturePaths, exercise_name: 'alpha', logger: mock_logger)
76
- subject.define_singleton_method(:example_solution) { mock_example_solution }
77
- subject.define_singleton_method(:version) { fake_version }
82
+ mock_logger.expect :debug, nil, ['Updated version in example solution to 2']
78
83
 
84
+ subject = LoggingRepository.new(repository: mock_repository, logger: mock_logger)
79
85
  subject.update_example_solution
80
- mock_logger.verify
81
- end
82
86
 
83
- # Too much to set up here :(
84
- def test_create_tests_file
85
- mock_logger = Minitest::Mock.new.expect :info, nil, ['Generated tests for alpha']
86
-
87
- mock_tests_template = Minitest::Mock.new.expect :to_s, 'template'
88
- mock_template_values = Minitest::Mock.new
89
- mock_minitest_tests = Minitest::Mock.new.expect :generate, nil, [{ template: 'template', values: mock_template_values }]
90
- subject = LoggingRepository.new(paths: FixturePaths, exercise_name: 'alpha', logger: mock_logger)
91
- subject.define_singleton_method(:minitest_tests) { mock_minitest_tests }
92
- subject.define_singleton_method(:tests_template) { mock_tests_template }
93
- subject.define_singleton_method(:template_values) { mock_template_values }
94
- subject.create_tests_file
95
- mock_logger.verify
87
+ mock_repository.verify
96
88
  end
97
89
  end
98
90
  end
@@ -6,7 +6,7 @@ Exercism exercises in Rust
6
6
 
7
7
  ## Contributing Guide
8
8
 
9
- Please see the [contributing guide](https://github.com/exercism/x-api/blob/master/CONTRIBUTING.md#the-exercise-data)
9
+ Please see the [contributing guide](https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md)
10
10
 
11
11
  ## License
12
12
 
@@ -68,6 +68,11 @@
68
68
  "slug": "list-ops",
69
69
  "difficulty": 1,
70
70
  "topics": []
71
+ },
72
+ {
73
+ "slug": "scrabble-score",
74
+ "difficulty": 1,
75
+ "topics": []
71
76
  }
72
77
 
73
78
  ],
@@ -0,0 +1,7 @@
1
+ Scheme is a tail-recursive and statically scoped dialect of the Lisp programming language.
2
+ It was built to have uncomplicated semantics and several different ways to form
3
+ expressions. Multiple programming paradigms, including functional, message,
4
+ and imperative, find easy expression in Scheme.
5
+
6
+ Scheme was invented by Guy Lewis Steele Jr. and Gerald Jay Sussman.
7
+ To learn more about Scheme, take a look at [MIT's Scheme page](https://groups.csail.mit.edu/mac/projects/scheme/index.html).
@@ -0,0 +1,16 @@
1
+ (define-module (scrabble-score)
2
+ #:export (score))
3
+
4
+ (define (letter-score letter)
5
+ (case (char-downcase letter)
6
+ [(#\a #\e #\i #\o #\u #\l #\n #\r #\s #\t) 1]
7
+ [(#\d #\g) 2]
8
+ [(#\b #\c #\m #\p) 3]
9
+ [(#\f #\h #\v #\w #\y) 4]
10
+ [(#\k) 5]
11
+ [(#\j #\x) 8]
12
+ [(#\q #\z) 10]
13
+ [else 0]))
14
+
15
+ (define (score word)
16
+ (string-fold (lambda (letter acc) (+ acc (letter-score letter))) 0 word))
@@ -0,0 +1,57 @@
1
+ ;; Load SRFI-64 lightweight testing specification
2
+ (use-modules (srfi srfi-64))
3
+
4
+ ;; Suppress log file output. To write logs, comment out the following line:
5
+ (module-define! (resolve-module '(srfi srfi-64)) 'test-log-to-file #f)
6
+
7
+ ;; Require module
8
+ (add-to-load-path (dirname (current-filename)))
9
+ (use-modules (scrabble-score))
10
+
11
+ (test-begin "hello-world")
12
+
13
+ (test-assert "a is worth one point"
14
+ (equal? (score "a")
15
+ 1))
16
+
17
+ (test-assert "scoring is case insensitive"
18
+ (equal? (score "A")
19
+ 1))
20
+
21
+ (test-assert "f is worth four"
22
+ (equal? (score "f")
23
+ 4))
24
+
25
+ (test-assert "two one point letters make a two point word"
26
+ (equal? (score "at")
27
+ 2))
28
+
29
+ (test-assert "three letter word"
30
+ (equal? (score "zoo")
31
+ 12))
32
+
33
+ (test-assert "medium word"
34
+ (equal? (score "street")
35
+ 6))
36
+
37
+ (test-assert "longer words with valuable letters"
38
+ (equal? (score "quirky")
39
+ 22))
40
+
41
+ (test-assert "long mixed case word"
42
+ (equal? (score "OxyphenButazone")
43
+ 41))
44
+
45
+ (test-assert "english scrabble letters score"
46
+ (equal? (score "pinata")
47
+ 8))
48
+
49
+ (test-assert "non english scrabble letters do not score"
50
+ (equal? (score "piñata")
51
+ 7))
52
+
53
+ (test-assert "empty words are worth zero"
54
+ (equal? (score "")
55
+ 0))
56
+
57
+ (test-end "hello-world")
@@ -0,0 +1,2 @@
1
+ (define-module (scrabble-score)
2
+ #:export (score))
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.0.6.10
4
+ version: 2.0.6.11
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-01-12 00:00:00.000000000 Z
11
+ date: 2017-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -160,6 +160,7 @@ files:
160
160
  - common/exercises/change/canonical-data.json
161
161
  - common/exercises/change/description.md
162
162
  - common/exercises/change/metadata.yml
163
+ - common/exercises/circular-buffer/canonical-data.json
163
164
  - common/exercises/circular-buffer/description.md
164
165
  - common/exercises/circular-buffer/metadata.yml
165
166
  - common/exercises/clock/canonical-data.json
@@ -347,6 +348,7 @@ files:
347
348
  - common/exercises/scrabble-score/canonical-data.json
348
349
  - common/exercises/scrabble-score/description.md
349
350
  - common/exercises/scrabble-score/metadata.yml
351
+ - common/exercises/secret-handshake/canonical-data.json
350
352
  - common/exercises/secret-handshake/description.md
351
353
  - common/exercises/secret-handshake/metadata.yml
352
354
  - common/exercises/series/description.md
@@ -389,6 +391,7 @@ files:
389
391
  - common/exercises/two-bucket/canonical-data.json
390
392
  - common/exercises/two-bucket/description.md
391
393
  - common/exercises/two-bucket/metadata.yml
394
+ - common/exercises/variable-length-quantity/canonical-data.json
392
395
  - common/exercises/variable-length-quantity/description.md
393
396
  - common/exercises/variable-length-quantity/metadata.yml
394
397
  - common/exercises/word-count/canonical-data.json
@@ -729,16 +732,34 @@ files:
729
732
  - tracks/ceylon/.travis.yml
730
733
  - tracks/ceylon/LICENSE
731
734
  - tracks/ceylon/README.md
732
- - tracks/ceylon/SETUP.md
733
735
  - tracks/ceylon/bin/fetch-configlet
736
+ - tracks/ceylon/bin/test-all-exercises
737
+ - tracks/ceylon/bin/test-exercise
734
738
  - tracks/ceylon/config.json
735
739
  - tracks/ceylon/docs/ABOUT.md
736
740
  - tracks/ceylon/docs/INSTALLATION.md
737
741
  - tracks/ceylon/docs/LEARNING.md
738
742
  - tracks/ceylon/docs/RESOURCES.md
739
743
  - tracks/ceylon/docs/TESTS.md
740
- - tracks/ceylon/exercises/.keep
741
- - tracks/ceylon/img/.keep
744
+ - tracks/ceylon/exercises/TRACK_HINTS.md
745
+ - tracks/ceylon/exercises/anagram/example/Anagram.ceylon
746
+ - tracks/ceylon/exercises/anagram/source/anagram/Anagram.ceylon
747
+ - tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
748
+ - tracks/ceylon/exercises/anagram/source/anagram/module.ceylon
749
+ - tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
750
+ - tracks/ceylon/exercises/bracket-push/example/module.ceylon
751
+ - tracks/ceylon/exercises/bracket-push/source/bracketpush/Brackets.ceylon
752
+ - tracks/ceylon/exercises/bracket-push/source/bracketpush/BracketsTest.ceylon
753
+ - tracks/ceylon/exercises/bracket-push/source/bracketpush/module.ceylon
754
+ - tracks/ceylon/exercises/leap/example/Leap.ceylon
755
+ - tracks/ceylon/exercises/leap/source/leap/Leap.ceylon
756
+ - tracks/ceylon/exercises/leap/source/leap/LeapTest.ceylon
757
+ - tracks/ceylon/exercises/leap/source/leap/module.ceylon
758
+ - tracks/ceylon/exercises/sieve/example/Sieve.ceylon
759
+ - tracks/ceylon/exercises/sieve/example/module.ceylon
760
+ - tracks/ceylon/exercises/sieve/source/sieve/Sieve.ceylon
761
+ - tracks/ceylon/exercises/sieve/source/sieve/SieveTest.ceylon
762
+ - tracks/ceylon/exercises/sieve/source/sieve/module.ceylon
742
763
  - tracks/ceylon/img/icon.png
743
764
  - tracks/clojure/.git
744
765
  - tracks/clojure/.gitignore
@@ -4496,6 +4517,7 @@ files:
4496
4517
  - tracks/lua/config.json
4497
4518
  - tracks/lua/docs/ABOUT.md
4498
4519
  - tracks/lua/docs/INSTALLATION.md
4520
+ - tracks/lua/docs/LEARNING.md
4499
4521
  - tracks/lua/docs/RESOURCES.md
4500
4522
  - tracks/lua/docs/TESTS.md
4501
4523
  - tracks/lua/exercises/accumulate/accumulate_spec.lua
@@ -5416,6 +5438,8 @@ files:
5416
5438
  - tracks/php/exercises/etl/example.php
5417
5439
  - tracks/php/exercises/gigasecond/example.php
5418
5440
  - tracks/php/exercises/gigasecond/gigasecond_test.php
5441
+ - tracks/php/exercises/grains/example.php
5442
+ - tracks/php/exercises/grains/grains_test.php
5419
5443
  - tracks/php/exercises/hamming/example.php
5420
5444
  - tracks/php/exercises/hamming/hamming.php
5421
5445
  - tracks/php/exercises/hamming/hamming_test.php
@@ -6894,6 +6918,7 @@ files:
6894
6918
  - tracks/scheme/bin/fetch-configlet
6895
6919
  - tracks/scheme/bin/stub.sh
6896
6920
  - tracks/scheme/config.json
6921
+ - tracks/scheme/docs/ABOUT.md
6897
6922
  - tracks/scheme/docs/INSTALLATION.md
6898
6923
  - tracks/scheme/docs/RESOURCES.md
6899
6924
  - tracks/scheme/docs/TESTS.md
@@ -6936,6 +6961,9 @@ files:
6936
6961
  - tracks/scheme/exercises/robot-name/example.scm
6937
6962
  - tracks/scheme/exercises/robot-name/robot-name-test.scm
6938
6963
  - tracks/scheme/exercises/robot-name/robot.scm
6964
+ - tracks/scheme/exercises/scrabble-score/example.scm
6965
+ - tracks/scheme/exercises/scrabble-score/scrabble-score-test.scm
6966
+ - tracks/scheme/exercises/scrabble-score/scrabble-score.scm
6939
6967
  - tracks/scheme/img/icon.png
6940
6968
  - tracks/sml/.git
6941
6969
  - tracks/sml/.gitignore
File without changes
File without changes