trackler 2.2.1.6 → 2.2.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/tracks/c/README.md +27 -0
- data/tracks/coffeescript/config.json +1 -0
- data/tracks/coldfusion/config.json +1 -1
- data/tracks/crystal/README.md +27 -7
- data/tracks/crystal/config/maintainers.json +25 -0
- data/tracks/crystal/generator/spec/remote_data_file_spec.cr +1 -1
- data/tracks/crystal/generator/src/exercise_generator.cr +1 -1
- data/tracks/crystal/generator/src/remote_data_file.cr +2 -2
- data/tracks/csharp/config.json +1 -2
- data/tracks/csharp/config/maintainers.json +55 -0
- data/tracks/csharp/docs/EXERCISE_README_INSERT.md +1 -1
- data/tracks/csharp/exercises/accumulate/README.md +1 -1
- data/tracks/csharp/exercises/acronym/README.md +1 -1
- data/tracks/csharp/exercises/all-your-base/README.md +1 -1
- data/tracks/csharp/exercises/allergies/README.md +1 -1
- data/tracks/csharp/exercises/alphametics/README.md +1 -1
- data/tracks/csharp/exercises/anagram/README.md +1 -1
- data/tracks/csharp/exercises/atbash-cipher/README.md +1 -1
- data/tracks/csharp/exercises/bank-account/README.md +1 -1
- data/tracks/csharp/exercises/beer-song/README.md +1 -1
- data/tracks/csharp/exercises/binary-search-tree/README.md +1 -1
- data/tracks/csharp/exercises/binary-search/README.md +1 -1
- data/tracks/csharp/exercises/bob/README.md +1 -1
- data/tracks/csharp/exercises/book-store/README.md +1 -1
- data/tracks/csharp/exercises/bowling/README.md +1 -1
- data/tracks/csharp/exercises/bracket-push/README.md +1 -1
- data/tracks/csharp/exercises/change/README.md +1 -1
- data/tracks/csharp/exercises/circular-buffer/README.md +1 -1
- data/tracks/csharp/exercises/clock/README.md +1 -1
- data/tracks/csharp/exercises/connect/README.md +1 -1
- data/tracks/csharp/exercises/crypto-square/README.md +1 -1
- data/tracks/csharp/exercises/custom-set/README.md +1 -1
- data/tracks/csharp/exercises/diamond/README.md +1 -1
- data/tracks/csharp/exercises/difference-of-squares/README.md +1 -1
- data/tracks/csharp/exercises/diffie-hellman/README.md +1 -1
- data/tracks/csharp/exercises/dominoes/README.md +1 -1
- data/tracks/csharp/exercises/dot-dsl/README.md +1 -1
- data/tracks/csharp/exercises/error-handling/README.md +1 -1
- data/tracks/csharp/exercises/etl/README.md +1 -1
- data/tracks/csharp/exercises/flatten-array/README.md +1 -1
- data/tracks/csharp/exercises/food-chain/README.md +1 -1
- data/tracks/csharp/exercises/forth/README.md +1 -1
- data/tracks/csharp/exercises/gigasecond/README.md +1 -1
- data/tracks/csharp/exercises/go-counting/README.md +1 -1
- data/tracks/csharp/exercises/grade-school/README.md +1 -1
- data/tracks/csharp/exercises/grains/README.md +1 -1
- data/tracks/csharp/exercises/grep/README.md +1 -1
- data/tracks/csharp/exercises/hamming/README.md +1 -1
- data/tracks/csharp/exercises/hangman/README.md +1 -1
- data/tracks/csharp/exercises/hello-world/README.md +1 -1
- data/tracks/csharp/exercises/house/README.md +1 -1
- data/tracks/csharp/exercises/isogram/README.md +1 -1
- data/tracks/csharp/exercises/kindergarten-garden/README.md +1 -1
- data/tracks/csharp/exercises/largest-series-product/README.md +1 -1
- data/tracks/csharp/exercises/leap/README.md +1 -1
- data/tracks/csharp/exercises/ledger/README.md +1 -1
- data/tracks/csharp/exercises/linked-list/README.md +1 -1
- data/tracks/csharp/exercises/list-ops/README.md +1 -1
- data/tracks/csharp/exercises/luhn/README.md +1 -1
- data/tracks/csharp/exercises/markdown/README.md +1 -1
- data/tracks/csharp/exercises/matrix/README.md +1 -1
- data/tracks/csharp/exercises/meetup/README.md +1 -1
- data/tracks/csharp/exercises/minesweeper/README.md +1 -1
- data/tracks/csharp/exercises/nth-prime/README.md +1 -1
- data/tracks/csharp/exercises/nucleotide-count/README.md +1 -1
- data/tracks/csharp/exercises/ocr-numbers/README.md +1 -1
- data/tracks/csharp/exercises/palindrome-products/README.md +1 -1
- data/tracks/csharp/exercises/pangram/README.md +1 -1
- data/tracks/csharp/exercises/parallel-letter-frequency/README.md +1 -1
- data/tracks/csharp/exercises/pascals-triangle/README.md +1 -1
- data/tracks/csharp/exercises/perfect-numbers/README.md +1 -1
- data/tracks/csharp/exercises/phone-number/README.md +1 -1
- data/tracks/csharp/exercises/pig-latin/README.md +1 -1
- data/tracks/csharp/exercises/poker/README.md +1 -1
- data/tracks/csharp/exercises/pov/README.md +1 -1
- data/tracks/csharp/exercises/prime-factors/README.md +1 -1
- data/tracks/csharp/exercises/protein-translation/README.md +1 -1
- data/tracks/csharp/exercises/proverb/README.md +1 -1
- data/tracks/csharp/exercises/pythagorean-triplet/README.md +1 -1
- data/tracks/csharp/exercises/queen-attack/README.md +1 -1
- data/tracks/csharp/exercises/rail-fence-cipher/README.md +1 -1
- data/tracks/csharp/exercises/raindrops/README.md +1 -1
- data/tracks/csharp/exercises/react/README.md +1 -1
- data/tracks/csharp/exercises/rectangles/README.md +1 -1
- data/tracks/csharp/exercises/rna-transcription/README.md +1 -1
- data/tracks/csharp/exercises/robot-name/README.md +1 -1
- data/tracks/csharp/exercises/robot-simulator/README.md +1 -1
- data/tracks/csharp/exercises/roman-numerals/README.md +1 -1
- data/tracks/csharp/exercises/rotational-cipher/README.md +1 -1
- data/tracks/csharp/exercises/run-length-encoding/README.md +1 -1
- data/tracks/csharp/exercises/saddle-points/README.md +1 -1
- data/tracks/csharp/exercises/say/README.md +1 -1
- data/tracks/csharp/exercises/scale-generator/README.md +1 -1
- data/tracks/csharp/exercises/scrabble-score/README.md +1 -1
- data/tracks/csharp/exercises/secret-handshake/README.md +1 -1
- data/tracks/csharp/exercises/series/README.md +1 -1
- data/tracks/csharp/exercises/sgf-parsing/README.md +1 -1
- data/tracks/csharp/exercises/sieve/README.md +1 -1
- data/tracks/csharp/exercises/simple-cipher/README.md +1 -1
- data/tracks/csharp/exercises/simple-linked-list/README.md +1 -1
- data/tracks/csharp/exercises/space-age/README.md +1 -1
- data/tracks/csharp/exercises/strain/README.md +1 -1
- data/tracks/csharp/exercises/sublist/README.md +1 -1
- data/tracks/csharp/exercises/sum-of-multiples/README.md +1 -1
- data/tracks/csharp/exercises/tournament/README.md +1 -1
- data/tracks/csharp/exercises/transpose/README.md +1 -1
- data/tracks/csharp/exercises/tree-building/README.md +1 -1
- data/tracks/csharp/exercises/triangle/README.md +1 -1
- data/tracks/csharp/exercises/twelve-days/README.md +1 -1
- data/tracks/csharp/exercises/two-bucket/README.md +1 -1
- data/tracks/csharp/exercises/variable-length-quantity/README.md +1 -1
- data/tracks/csharp/exercises/word-count/README.md +1 -1
- data/tracks/csharp/exercises/word-search/README.md +1 -1
- data/tracks/csharp/exercises/wordy/README.md +1 -1
- data/tracks/csharp/exercises/zebra-puzzle/README.md +1 -1
- data/tracks/csharp/exercises/zipper/README.md +1 -1
- data/tracks/d/config.json +1 -0
- data/tracks/dart/config/maintainers.json +15 -0
- data/tracks/ecmascript/config.json +76 -193
- data/tracks/ecmascript/exercises/twelve-days/README.md +66 -0
- data/tracks/ecmascript/exercises/twelve-days/example.js +53 -0
- data/tracks/ecmascript/exercises/twelve-days/package.json +68 -0
- data/tracks/ecmascript/exercises/twelve-days/twelve-days.spec.js +106 -0
- data/tracks/factor/config.json +1 -1
- data/tracks/fsharp/config/maintainers.json +35 -0
- data/tracks/go/config.json +82 -38
- data/tracks/go/config/maintainers.json +13 -22
- data/tracks/go/exercises/bowling/cases_test.go +11 -11
- data/tracks/go/exercises/forth/cases_test.go +7 -7
- data/tracks/go/exercises/forth/example.go +1 -1
- data/tracks/go/exercises/forth/forth_test.go +1 -1
- data/tracks/go/exercises/hamming/cases_test.go +7 -7
- data/tracks/go/exercises/hamming/hamming.go +1 -1
- data/tracks/go/exercises/phone-number/cases_test.go +2 -7
- data/tracks/go/exercises/phone-number/example.go +1 -1
- data/tracks/go/exercises/phone-number/phone_number_test.go +1 -1
- data/tracks/go/exercises/rna-transcription/cases_test.go +7 -7
- data/tracks/go/exercises/secret-handshake/cases_test.go +1 -1
- data/tracks/groovy/config.json +1 -0
- data/tracks/haxe/config.json +1 -1
- data/tracks/java/.travis.yml +1 -1
- data/tracks/java/config/maintainers.json +20 -0
- data/tracks/java/exercises/custom-set/src/test/java/CustomSetTest.java +1 -1
- data/tracks/java/exercises/word-count/src/test/java/WordCountTest.java +1 -1
- data/tracks/javascript/config.json +229 -247
- data/tracks/kotlin/config/maintainers.json +35 -0
- data/tracks/lfe/config/maintainers.json +15 -0
- data/tracks/lisp/config/maintainers.json +55 -0
- data/tracks/ocaml/config.json +0 -5
- data/tracks/ocaml/config/maintainers.json +25 -0
- data/tracks/perl5/config/maintainers.json +25 -0
- data/tracks/perl6/config/maintainers.json +25 -0
- data/tracks/pony/config/maintainers.json +15 -0
- data/tracks/pony/exercises/atbash-cipher/example.pony +2 -2
- data/tracks/pony/exercises/beer-song/example.pony +1 -1
- data/tracks/pony/exercises/bob/example.pony +1 -1
- data/tracks/pony/exercises/difference-of-squares/example.pony +1 -1
- data/tracks/pony/exercises/hamming/test.pony +12 -12
- data/tracks/pony/exercises/pascals-triangle/example.pony +1 -1
- data/tracks/pony/exercises/pascals-triangle/test.pony +6 -6
- data/tracks/pony/exercises/rna-transcription/test.pony +3 -3
- data/tracks/pony/exercises/roman-numerals/test.pony +3 -3
- data/tracks/purescript/config/maintainers.json +35 -0
- data/tracks/r/config.json +140 -81
- data/tracks/r/exercises/collatz-conjecture/README.md +43 -0
- data/tracks/r/exercises/collatz-conjecture/collatz-conjecture.R +3 -0
- data/tracks/r/exercises/collatz-conjecture/example.R +13 -0
- data/tracks/r/exercises/collatz-conjecture/test_collatz-conjecture.R +28 -0
- data/tracks/r/exercises/nucleotide-count/README.md +43 -0
- data/tracks/r/exercises/nucleotide-count/example.R +17 -0
- data/tracks/r/exercises/nucleotide-count/nucleotide-count.R +3 -0
- data/tracks/r/exercises/nucleotide-count/test_nucleotide-count.R +51 -0
- data/tracks/r/exercises/pangram/README.md +25 -0
- data/tracks/r/exercises/pangram/example.R +14 -0
- data/tracks/r/exercises/pangram/pangram.R +3 -0
- data/tracks/r/exercises/pangram/test_pangram.R +42 -0
- data/tracks/r/exercises/triangle/.meta/hints.md +4 -0
- data/tracks/r/exercises/triangle/README.md +41 -0
- data/tracks/r/exercises/triangle/example.R +23 -0
- data/tracks/r/exercises/triangle/test_triangle.R +72 -0
- data/tracks/r/exercises/triangle/triangle.R +3 -0
- data/tracks/rust/config.json +32 -1
- data/tracks/rust/config/maintainers.json +1 -6
- data/tracks/rust/exercises/acronym/tests/acronym.rs +1 -1
- data/tracks/rust/exercises/beer-song/example.rs +1 -1
- data/tracks/rust/exercises/circular-buffer/example.rs +8 -10
- data/tracks/rust/exercises/circular-buffer/tests/circular-buffer.rs +2 -2
- data/tracks/rust/exercises/clock/.meta/hints.md +10 -0
- data/tracks/rust/exercises/clock/Cargo.lock +4 -0
- data/tracks/rust/exercises/clock/Cargo.toml +6 -0
- data/tracks/rust/exercises/clock/README.md +57 -0
- data/tracks/rust/exercises/clock/example.rs +32 -0
- data/tracks/{ocaml/exercises/point-mutations/example.ml → rust/exercises/clock/src/lib.rs} +0 -0
- data/tracks/rust/exercises/clock/tests/clock.rs +331 -0
- data/tracks/rust/exercises/custom-set/tests/custom-set.rs +3 -3
- data/tracks/rust/exercises/dominoes/example.rs +1 -1
- data/tracks/rust/exercises/grade-school/example.rs +1 -1
- data/tracks/rust/exercises/hamming/example.rs +1 -1
- data/tracks/rust/exercises/nth-prime/Cargo.lock +4 -0
- data/tracks/rust/exercises/nth-prime/Cargo.toml +6 -0
- data/tracks/rust/exercises/nth-prime/README.md +47 -0
- data/tracks/rust/exercises/nth-prime/example.rs +28 -0
- data/tracks/rust/exercises/nth-prime/src/lib.rs +0 -0
- data/tracks/rust/exercises/nth-prime/tests/nth-prime.rs +30 -0
- data/tracks/rust/exercises/parallel-letter-frequency/example.rs +1 -1
- data/tracks/rust/exercises/phone-number/example.rs +1 -1
- data/tracks/rust/exercises/pythagorean-triplet/Cargo.lock +4 -0
- data/tracks/rust/exercises/pythagorean-triplet/Cargo.toml +6 -0
- data/tracks/rust/exercises/pythagorean-triplet/README.md +56 -0
- data/tracks/rust/exercises/pythagorean-triplet/example.rs +11 -0
- data/tracks/rust/exercises/pythagorean-triplet/src/lib.rs +0 -0
- data/tracks/rust/exercises/pythagorean-triplet/tests/pythagorean-triplet.rs +6 -0
- data/tracks/rust/exercises/rna-transcription/tests/rna-transcription.rs +1 -1
- data/tracks/rust/exercises/robot-name/tests/robot-name.rs +2 -2
- data/tracks/rust/exercises/say/example.rs +4 -4
- data/tracks/rust/exercises/say/tests/say.rs +4 -4
- data/tracks/rust/exercises/tournament/example.rs +2 -2
- data/tracks/scala/config/maintainers.json +10 -6
- data/tracks/scala/exercises/bracket-push/example.scala +2 -2
- data/tracks/scala/exercises/bracket-push/src/test/scala/BracketPushTest.scala +74 -0
- data/tracks/scala/exercises/crypto-square/example.scala +9 -9
- data/tracks/scala/exercises/crypto-square/src/test/scala/CryptoSquareTest.scala +33 -41
- data/tracks/scala/testgen/src/main/scala/BracketPushTestGenerator.scala +9 -38
- data/tracks/scala/testgen/src/main/scala/CryptoSquareTestGenerator.scala +17 -0
- data/tracks/sml/config.json +1 -1
- data/tracks/swift/config/maintainers.json +35 -0
- data/tracks/swift/docs/ABOUT.md +15 -5
- data/tracks/vimscript/config/maintainers.json +35 -0
- metadata +58 -8
- data/tracks/ocaml/exercises/point-mutations/Makefile +0 -8
- data/tracks/ocaml/exercises/point-mutations/README.md +0 -81
- data/tracks/ocaml/exercises/point-mutations/dna.mli +0 -6
- data/tracks/scala/exercises/bracket-push/src/test/scala/BracketsTest.scala +0 -68
- data/tracks/scala/exercises/crypto-square/src/main/scala/CryptoSquare.scala +0 -11
@@ -0,0 +1,35 @@
|
|
1
|
+
{
|
2
|
+
"maintainers": [
|
3
|
+
{
|
4
|
+
"github_username": "michel-slm",
|
5
|
+
"show_on_website": false,
|
6
|
+
"alumnus": false,
|
7
|
+
"name": null,
|
8
|
+
"bio": null,
|
9
|
+
"link_text": null,
|
10
|
+
"link_url": null,
|
11
|
+
"avatar_url": null
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"github_username": "sdavids13",
|
15
|
+
"show_on_website": false,
|
16
|
+
"alumnus": false,
|
17
|
+
"name": null,
|
18
|
+
"bio": null,
|
19
|
+
"link_text": null,
|
20
|
+
"link_url": null,
|
21
|
+
"avatar_url": null
|
22
|
+
},
|
23
|
+
{
|
24
|
+
"github_username": "stkent",
|
25
|
+
"show_on_website": false,
|
26
|
+
"alumnus": false,
|
27
|
+
"name": null,
|
28
|
+
"bio": null,
|
29
|
+
"link_text": null,
|
30
|
+
"link_url": null,
|
31
|
+
"avatar_url": null
|
32
|
+
}
|
33
|
+
],
|
34
|
+
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
|
35
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
{
|
2
|
+
"maintainers": [
|
3
|
+
{
|
4
|
+
"github_username": "yurrriq",
|
5
|
+
"show_on_website": false,
|
6
|
+
"alumnus": false,
|
7
|
+
"name": null,
|
8
|
+
"bio": null,
|
9
|
+
"link_text": null,
|
10
|
+
"link_url": null,
|
11
|
+
"avatar_url": null
|
12
|
+
}
|
13
|
+
],
|
14
|
+
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
|
15
|
+
}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
{
|
2
|
+
"maintainers": [
|
3
|
+
{
|
4
|
+
"github_username": "verdammelt",
|
5
|
+
"show_on_website": false,
|
6
|
+
"alumnus": false,
|
7
|
+
"name": null,
|
8
|
+
"bio": null,
|
9
|
+
"link_text": null,
|
10
|
+
"link_url": null,
|
11
|
+
"avatar_url": null
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"github_username": "oubiwann",
|
15
|
+
"show_on_website": false,
|
16
|
+
"alumnus": false,
|
17
|
+
"name": null,
|
18
|
+
"bio": null,
|
19
|
+
"link_text": null,
|
20
|
+
"link_url": null,
|
21
|
+
"avatar_url": null
|
22
|
+
},
|
23
|
+
{
|
24
|
+
"github_username": "arguello",
|
25
|
+
"show_on_website": false,
|
26
|
+
"alumnus": false,
|
27
|
+
"name": null,
|
28
|
+
"bio": null,
|
29
|
+
"link_text": null,
|
30
|
+
"link_url": null,
|
31
|
+
"avatar_url": null
|
32
|
+
},
|
33
|
+
{
|
34
|
+
"github_username": "yurrriq",
|
35
|
+
"show_on_website": false,
|
36
|
+
"alumnus": false,
|
37
|
+
"name": null,
|
38
|
+
"bio": null,
|
39
|
+
"link_text": null,
|
40
|
+
"link_url": null,
|
41
|
+
"avatar_url": null
|
42
|
+
},
|
43
|
+
{
|
44
|
+
"github_username": "wobh",
|
45
|
+
"show_on_website": false,
|
46
|
+
"alumnus": false,
|
47
|
+
"name": null,
|
48
|
+
"bio": null,
|
49
|
+
"link_text": null,
|
50
|
+
"link_url": null,
|
51
|
+
"avatar_url": null
|
52
|
+
}
|
53
|
+
],
|
54
|
+
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
|
55
|
+
}
|
data/tracks/ocaml/config.json
CHANGED
@@ -418,11 +418,6 @@
|
|
418
418
|
"uuid": "d0c937ef-3c7b-40be-891d-3024129b443f",
|
419
419
|
"slug": "hexadecimal",
|
420
420
|
"deprecated": true
|
421
|
-
},
|
422
|
-
{
|
423
|
-
"uuid": "1a78aecb-521a-4bcf-a618-fd50a3d4fdc7",
|
424
|
-
"slug": "point-mutations",
|
425
|
-
"deprecated": true
|
426
421
|
}
|
427
422
|
],
|
428
423
|
"foregone": [
|
@@ -0,0 +1,25 @@
|
|
1
|
+
{
|
2
|
+
"maintainers": [
|
3
|
+
{
|
4
|
+
"github_username": "dvberkel",
|
5
|
+
"show_on_website": false,
|
6
|
+
"alumnus": false,
|
7
|
+
"name": null,
|
8
|
+
"bio": null,
|
9
|
+
"link_text": null,
|
10
|
+
"link_url": null,
|
11
|
+
"avatar_url": null
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"github_username": "stevejb71",
|
15
|
+
"show_on_website": false,
|
16
|
+
"alumnus": false,
|
17
|
+
"name": null,
|
18
|
+
"bio": null,
|
19
|
+
"link_text": null,
|
20
|
+
"link_url": null,
|
21
|
+
"avatar_url": null
|
22
|
+
}
|
23
|
+
],
|
24
|
+
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
|
25
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
{
|
2
|
+
"maintainers": [
|
3
|
+
{
|
4
|
+
"github_username": "kotp",
|
5
|
+
"show_on_website": false,
|
6
|
+
"alumnus": false,
|
7
|
+
"name": null,
|
8
|
+
"bio": null,
|
9
|
+
"link_text": null,
|
10
|
+
"link_url": null,
|
11
|
+
"avatar_url": null
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"github_username": "mienaikage",
|
15
|
+
"show_on_website": false,
|
16
|
+
"alumnus": false,
|
17
|
+
"name": null,
|
18
|
+
"bio": null,
|
19
|
+
"link_text": null,
|
20
|
+
"link_url": null,
|
21
|
+
"avatar_url": null
|
22
|
+
}
|
23
|
+
],
|
24
|
+
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
|
25
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
{
|
2
|
+
"maintainers": [
|
3
|
+
{
|
4
|
+
"github_username": "kotp",
|
5
|
+
"show_on_website": false,
|
6
|
+
"alumnus": false,
|
7
|
+
"name": null,
|
8
|
+
"bio": null,
|
9
|
+
"link_text": null,
|
10
|
+
"link_url": null,
|
11
|
+
"avatar_url": null
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"github_username": "mienaikage",
|
15
|
+
"show_on_website": false,
|
16
|
+
"alumnus": false,
|
17
|
+
"name": null,
|
18
|
+
"bio": null,
|
19
|
+
"link_text": null,
|
20
|
+
"link_url": null,
|
21
|
+
"avatar_url": null
|
22
|
+
}
|
23
|
+
],
|
24
|
+
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
|
25
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
{
|
2
|
+
"maintainers": [
|
3
|
+
{
|
4
|
+
"github_username": "Theodus",
|
5
|
+
"show_on_website": false,
|
6
|
+
"alumnus": false,
|
7
|
+
"name": null,
|
8
|
+
"bio": null,
|
9
|
+
"link_text": null,
|
10
|
+
"link_url": null,
|
11
|
+
"avatar_url": null
|
12
|
+
}
|
13
|
+
],
|
14
|
+
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
|
15
|
+
}
|
@@ -13,7 +13,7 @@ primitive Atbash
|
|
13
13
|
|
14
14
|
fun _group(groups: Array[String ref], c: U8): Array[String ref]^ =>
|
15
15
|
let last_idx = groups.size() - 1
|
16
|
-
let last = try groups(last_idx) else String end
|
16
|
+
let last = try groups(last_idx)? else String end
|
17
17
|
if last.size() < 5 then
|
18
18
|
last.push(c)
|
19
19
|
else
|
@@ -28,7 +28,7 @@ primitive Atbash
|
|
28
28
|
Iter[U8](input.lower().values())
|
29
29
|
.filter(this~_transposable())
|
30
30
|
.map[U8]({(c: U8): U8 => Atbash._transpose(c)})
|
31
|
-
.fold[Array[String ref]](this~_group(), [String(6)]))
|
31
|
+
.fold[Array[String ref]](this~_group(), [String(6)])?)
|
32
32
|
else
|
33
33
|
recover String end
|
34
34
|
end
|
@@ -11,16 +11,16 @@ class iso _TestHammingDistance is UnitTest
|
|
11
11
|
fun name(): String => "hamming/HammingDistance"
|
12
12
|
|
13
13
|
fun apply(h: TestHelper) ? =>
|
14
|
-
h.assert_eq[USize](0, HammingDistance("A", "A"))
|
15
|
-
h.assert_eq[USize](0, HammingDistance("GGACTGA", "GGACTGA"))
|
16
|
-
h.assert_eq[USize](1, HammingDistance("A", "G"))
|
17
|
-
h.assert_eq[USize](2, HammingDistance("AG", "CT"))
|
18
|
-
h.assert_eq[USize](1, HammingDistance("AT", "CT"))
|
19
|
-
h.assert_eq[USize](1, HammingDistance("GGACG", "GGTCG"))
|
20
|
-
h.assert_eq[USize](2, HammingDistance("ACCAGGG", "ACTATGG"))
|
21
|
-
h.assert_eq[USize](1, HammingDistance("AGG", "AGA"))
|
22
|
-
h.assert_eq[USize](4, HammingDistance("GATACA", "GCATAA"))
|
23
|
-
h.assert_eq[USize](9, HammingDistance("GGACGGATTCTG", "AGGACGGATTCT"))
|
14
|
+
h.assert_eq[USize](0, HammingDistance("A", "A")?)
|
15
|
+
h.assert_eq[USize](0, HammingDistance("GGACTGA", "GGACTGA")?)
|
16
|
+
h.assert_eq[USize](1, HammingDistance("A", "G")?)
|
17
|
+
h.assert_eq[USize](2, HammingDistance("AG", "CT")?)
|
18
|
+
h.assert_eq[USize](1, HammingDistance("AT", "CT")?)
|
19
|
+
h.assert_eq[USize](1, HammingDistance("GGACG", "GGTCG")?)
|
20
|
+
h.assert_eq[USize](2, HammingDistance("ACCAGGG", "ACTATGG")?)
|
21
|
+
h.assert_eq[USize](1, HammingDistance("AGG", "AGA")?)
|
22
|
+
h.assert_eq[USize](4, HammingDistance("GATACA", "GCATAA")?)
|
23
|
+
h.assert_eq[USize](9, HammingDistance("GGACGGATTCTG", "AGGACGGATTCT")?)
|
24
24
|
|
25
|
-
h.assert_error({()? => HammingDistance("GAT", "GA")})
|
26
|
-
h.assert_error({()? => HammingDistance("GA", "GAC")})
|
25
|
+
h.assert_error({()? => HammingDistance("GAT", "GA")?})
|
26
|
+
h.assert_error({()? => HammingDistance("GA", "GAC")?})
|
@@ -12,11 +12,11 @@ class iso _TestPascalsTriangle is UnitTest
|
|
12
12
|
fun name(): String => "pascals-triangle"
|
13
13
|
|
14
14
|
fun apply(h: TestHelper) ? =>
|
15
|
-
assert_rows_eq(h, 0, Array[Array[USize]])
|
16
|
-
assert_rows_eq(h, 1, [[1]])
|
17
|
-
assert_rows_eq(h, 2, [[1]; [1; 1]])
|
18
|
-
assert_rows_eq(h, 3, [[1]; [1; 1]; [1; 2; 1]])
|
19
|
-
assert_rows_eq(h, 4, [[1]; [1; 1]; [1; 2; 1]; [1; 3; 3; 1]])
|
15
|
+
assert_rows_eq(h, 0, Array[Array[USize]])?
|
16
|
+
assert_rows_eq(h, 1, [[1]])?
|
17
|
+
assert_rows_eq(h, 2, [[1]; [1; 1]])?
|
18
|
+
assert_rows_eq(h, 3, [[1]; [1; 1]; [1; 2; 1]])?
|
19
|
+
assert_rows_eq(h, 4, [[1]; [1; 1]; [1; 2; 1]; [1; 3; 3; 1]])?
|
20
20
|
|
21
21
|
fun assert_rows_eq(
|
22
22
|
h: TestHelper,
|
@@ -27,5 +27,5 @@ class iso _TestPascalsTriangle is UnitTest
|
|
27
27
|
let t = PascalsTriangle.rows(count)
|
28
28
|
h.assert_eq[USize](t.size(), expected.size())
|
29
29
|
for i in Range(0, expected.size()) do
|
30
|
-
h.assert_array_eq[USize](expected(i)
|
30
|
+
h.assert_array_eq[USize](expected(i)?, t(i)?)
|
31
31
|
end
|
@@ -25,8 +25,8 @@ class iso _TestRNATrancription is UnitTest
|
|
25
25
|
]
|
26
26
|
|
27
27
|
for (input, expected) in tests.values() do
|
28
|
-
h.assert_eq[String](ToRNA(input)
|
28
|
+
h.assert_eq[String](ToRNA(input)?, expected)
|
29
29
|
end
|
30
30
|
|
31
|
-
h.assert_error({() ? => ToRNA("U")})
|
32
|
-
h.assert_error({() ? => ToRNA("ACGTXXXCTTAA")})
|
31
|
+
h.assert_error({() ? => ToRNA("U")?})
|
32
|
+
h.assert_error({() ? => ToRNA("ACGTXXXCTTAA")?})
|
@@ -35,11 +35,11 @@ class iso _TestRomanNumerals is UnitTest
|
|
35
35
|
|
36
36
|
for test in tests.values() do
|
37
37
|
try
|
38
|
-
h.assert_eq[String](RomanNumerals(test._1)
|
38
|
+
h.assert_eq[String](RomanNumerals(test._1)?, test._2)
|
39
39
|
else
|
40
40
|
h.fail()
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
h.assert_error({() ? => RomanNumerals(-1)})
|
45
|
-
h.assert_error({() ? => RomanNumerals(4000)})
|
44
|
+
h.assert_error({() ? => RomanNumerals(-1)?})
|
45
|
+
h.assert_error({() ? => RomanNumerals(4000)?})
|
@@ -0,0 +1,35 @@
|
|
1
|
+
{
|
2
|
+
"maintainers": [
|
3
|
+
{
|
4
|
+
"github_username": "paf31",
|
5
|
+
"show_on_website": false,
|
6
|
+
"alumnus": false,
|
7
|
+
"name": null,
|
8
|
+
"bio": null,
|
9
|
+
"link_text": null,
|
10
|
+
"link_url": null,
|
11
|
+
"avatar_url": null
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"github_username": "joshburgess",
|
15
|
+
"show_on_website": false,
|
16
|
+
"alumnus": false,
|
17
|
+
"name": null,
|
18
|
+
"bio": null,
|
19
|
+
"link_text": null,
|
20
|
+
"link_url": null,
|
21
|
+
"avatar_url": null
|
22
|
+
},
|
23
|
+
{
|
24
|
+
"github_username": "lpil",
|
25
|
+
"show_on_website": false,
|
26
|
+
"alumnus": false,
|
27
|
+
"name": null,
|
28
|
+
"bio": null,
|
29
|
+
"link_text": null,
|
30
|
+
"link_url": null,
|
31
|
+
"avatar_url": null
|
32
|
+
}
|
33
|
+
],
|
34
|
+
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
|
35
|
+
}
|
data/tracks/r/config.json
CHANGED
@@ -9,51 +9,43 @@
|
|
9
9
|
{
|
10
10
|
"uuid": "285404a4-d8f8-469d-b183-920b08ba2430",
|
11
11
|
"slug": "hello-world",
|
12
|
-
"core":
|
13
|
-
"unlocked_by": null,
|
12
|
+
"core": true,
|
14
13
|
"difficulty": 1,
|
15
14
|
"topics": [
|
16
|
-
|
15
|
+
"text_formatting",
|
16
|
+
"optional_values"
|
17
17
|
]
|
18
18
|
},
|
19
19
|
{
|
20
20
|
"uuid": "4be11d9f-db6a-4edd-af35-7d33d2dc9c0f",
|
21
21
|
"slug": "leap",
|
22
|
-
"core":
|
23
|
-
"unlocked_by": null,
|
22
|
+
"core": true,
|
24
23
|
"difficulty": 1,
|
25
24
|
"topics": [
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
{
|
30
|
-
"uuid": "da01ce65-8c7d-4646-ace4-c067d92f656b",
|
31
|
-
"slug": "bob",
|
32
|
-
"core": false,
|
33
|
-
"unlocked_by": null,
|
34
|
-
"difficulty": 1,
|
35
|
-
"topics": [
|
36
|
-
|
25
|
+
"booleans",
|
26
|
+
"integers",
|
27
|
+
"logic"
|
37
28
|
]
|
38
29
|
},
|
39
30
|
{
|
40
31
|
"uuid": "dcc7171a-6b7d-4749-a300-a7270a095486",
|
41
32
|
"slug": "hamming",
|
42
|
-
"core":
|
43
|
-
"unlocked_by": null,
|
33
|
+
"core": true,
|
44
34
|
"difficulty": 1,
|
45
35
|
"topics": [
|
46
|
-
|
36
|
+
"strings",
|
37
|
+
"filtering"
|
47
38
|
]
|
48
39
|
},
|
49
40
|
{
|
50
41
|
"uuid": "12e17ede-ff59-45d1-8c66-b07b7ede5702",
|
51
42
|
"slug": "rna-transcription",
|
52
43
|
"core": false,
|
53
|
-
"unlocked_by":
|
44
|
+
"unlocked_by": "hamming",
|
54
45
|
"difficulty": 1,
|
55
46
|
"topics": [
|
56
|
-
|
47
|
+
"strings",
|
48
|
+
"transforming"
|
57
49
|
]
|
58
50
|
},
|
59
51
|
{
|
@@ -63,17 +55,18 @@
|
|
63
55
|
"unlocked_by": null,
|
64
56
|
"difficulty": 1,
|
65
57
|
"topics": [
|
66
|
-
|
58
|
+
"integers",
|
59
|
+
"mathematics"
|
67
60
|
]
|
68
61
|
},
|
69
62
|
{
|
70
63
|
"uuid": "955604ef-266f-42c9-abde-ce0fdc2d33ad",
|
71
64
|
"slug": "raindrops",
|
72
|
-
"core":
|
73
|
-
"unlocked_by": null,
|
65
|
+
"core": true,
|
74
66
|
"difficulty": 1,
|
75
67
|
"topics": [
|
76
|
-
|
68
|
+
"text_formatting",
|
69
|
+
"filtering"
|
77
70
|
]
|
78
71
|
},
|
79
72
|
{
|
@@ -83,17 +76,28 @@
|
|
83
76
|
"unlocked_by": null,
|
84
77
|
"difficulty": 1,
|
85
78
|
"topics": [
|
86
|
-
|
79
|
+
"integers",
|
80
|
+
"mathematics"
|
81
|
+
]
|
82
|
+
},
|
83
|
+
{
|
84
|
+
"uuid": "da01ce65-8c7d-4646-ace4-c067d92f656b",
|
85
|
+
"slug": "bob",
|
86
|
+
"core": true,
|
87
|
+
"difficulty": 2,
|
88
|
+
"topics": [
|
89
|
+
"control_flow_conditionals",
|
90
|
+
"strings"
|
87
91
|
]
|
88
92
|
},
|
89
93
|
{
|
90
94
|
"uuid": "105a3de5-3dea-4880-927a-6eed89a97a07",
|
91
95
|
"slug": "anagram",
|
92
|
-
"core":
|
93
|
-
"
|
94
|
-
"difficulty": 1,
|
96
|
+
"core": true,
|
97
|
+
"difficulty": 3,
|
95
98
|
"topics": [
|
96
|
-
|
99
|
+
"strings",
|
100
|
+
"filtering"
|
97
101
|
]
|
98
102
|
},
|
99
103
|
{
|
@@ -103,157 +107,212 @@
|
|
103
107
|
"unlocked_by": null,
|
104
108
|
"difficulty": 1,
|
105
109
|
"topics": [
|
106
|
-
|
110
|
+
"floating_point_numbers"
|
107
111
|
]
|
108
112
|
},
|
109
113
|
{
|
110
114
|
"uuid": "581b968c-f78f-4b60-9eb0-8c73eeeb96af",
|
111
115
|
"slug": "sum-of-multiples",
|
112
|
-
"core":
|
113
|
-
"
|
114
|
-
"difficulty": 1,
|
116
|
+
"core": true,
|
117
|
+
"difficulty": 2,
|
115
118
|
"topics": [
|
116
|
-
|
119
|
+
"lists",
|
120
|
+
"mathematics"
|
117
121
|
]
|
118
122
|
},
|
119
123
|
{
|
120
124
|
"uuid": "a7cbf043-504b-4fc8-b7fb-33a88ac7962d",
|
121
125
|
"slug": "word-count",
|
122
|
-
"core":
|
123
|
-
"
|
124
|
-
"difficulty": 1,
|
126
|
+
"core": true,
|
127
|
+
"difficulty": 2,
|
125
128
|
"topics": [
|
126
|
-
|
129
|
+
"strings",
|
130
|
+
"transforming"
|
127
131
|
]
|
128
132
|
},
|
129
133
|
{
|
130
134
|
"uuid": "e5166378-e3fc-4393-b4f8-4c36da444c56",
|
131
135
|
"slug": "phone-number",
|
132
|
-
"core":
|
133
|
-
"
|
134
|
-
"difficulty": 1,
|
136
|
+
"core": true,
|
137
|
+
"difficulty": 2,
|
135
138
|
"topics": [
|
136
|
-
|
139
|
+
"parsing",
|
140
|
+
"transforming"
|
137
141
|
]
|
138
142
|
},
|
139
143
|
{
|
140
144
|
"uuid": "8bde91c5-2fe7-4f8d-91ec-ed05284b9a49",
|
141
145
|
"slug": "rotational-cipher",
|
142
|
-
"core":
|
143
|
-
"
|
144
|
-
"difficulty": 1,
|
146
|
+
"core": true,
|
147
|
+
"difficulty": 3,
|
145
148
|
"topics": [
|
146
|
-
|
149
|
+
"strings"
|
147
150
|
]
|
148
151
|
},
|
149
152
|
{
|
150
153
|
"uuid": "c82dfe0c-77c9-4a3b-8110-962a9547ac64",
|
151
154
|
"slug": "scrabble-score",
|
152
155
|
"core": false,
|
153
|
-
"unlocked_by":
|
154
|
-
"difficulty":
|
156
|
+
"unlocked_by": "word-count",
|
157
|
+
"difficulty": 2,
|
155
158
|
"topics": [
|
156
|
-
|
159
|
+
"strings",
|
160
|
+
"transforming"
|
157
161
|
]
|
158
162
|
},
|
159
163
|
{
|
160
164
|
"uuid": "4ea6d28b-f2bd-4785-ad9f-8eed6a9c67eb",
|
161
165
|
"slug": "isogram",
|
162
166
|
"core": false,
|
163
|
-
"unlocked_by":
|
164
|
-
"difficulty":
|
167
|
+
"unlocked_by": "anagram",
|
168
|
+
"difficulty": 2,
|
165
169
|
"topics": [
|
166
|
-
|
170
|
+
"strings",
|
171
|
+
"filtering"
|
167
172
|
]
|
168
173
|
},
|
169
174
|
{
|
170
175
|
"uuid": "3fd2d6dd-6d4d-4b7f-9f1e-0de11899dcb5",
|
171
176
|
"slug": "beer-song",
|
172
177
|
"core": false,
|
173
|
-
"unlocked_by":
|
174
|
-
"difficulty":
|
178
|
+
"unlocked_by": "bob",
|
179
|
+
"difficulty": 3,
|
175
180
|
"topics": [
|
176
|
-
|
181
|
+
"control_flow_conditionals",
|
182
|
+
"text_formatting"
|
177
183
|
]
|
178
184
|
},
|
179
185
|
{
|
180
186
|
"uuid": "cef7ba44-5b9a-4fc3-b853-9b598e743ba8",
|
181
187
|
"slug": "perfect-numbers",
|
182
188
|
"core": false,
|
183
|
-
"unlocked_by":
|
184
|
-
"difficulty":
|
189
|
+
"unlocked_by": "leap",
|
190
|
+
"difficulty": 2,
|
185
191
|
"topics": [
|
186
|
-
|
192
|
+
"integers",
|
193
|
+
"control_flow_conditionals"
|
187
194
|
]
|
188
195
|
},
|
189
196
|
{
|
190
197
|
"uuid": "ee849e23-d709-4e4a-ab89-07a87e13e4fb",
|
191
198
|
"slug": "prime-factors",
|
192
199
|
"core": false,
|
193
|
-
"unlocked_by":
|
194
|
-
"difficulty":
|
200
|
+
"unlocked_by": "sum-of-multiples",
|
201
|
+
"difficulty": 3,
|
195
202
|
"topics": [
|
196
|
-
|
203
|
+
"integers",
|
204
|
+
"mathematics"
|
197
205
|
]
|
198
206
|
},
|
199
207
|
{
|
200
208
|
"uuid": "dabc8218-8ab8-4918-85d3-0afd5b6791c6",
|
201
209
|
"slug": "sieve",
|
202
210
|
"core": false,
|
203
|
-
"unlocked_by":
|
204
|
-
"difficulty":
|
211
|
+
"unlocked_by": "sum-of-multiples",
|
212
|
+
"difficulty": 3,
|
205
213
|
"topics": [
|
206
|
-
|
214
|
+
"filtering",
|
215
|
+
"mathematics"
|
207
216
|
]
|
208
217
|
},
|
209
218
|
{
|
210
219
|
"uuid": "a1b4bde3-2ee7-42dd-85c5-4303ae546d15",
|
211
220
|
"slug": "largest-series-product",
|
212
|
-
"core":
|
213
|
-
"
|
214
|
-
"difficulty": 1,
|
221
|
+
"core": true,
|
222
|
+
"difficulty": 3,
|
215
223
|
"topics": [
|
216
|
-
|
224
|
+
"strings",
|
225
|
+
"integers",
|
226
|
+
"transforming"
|
217
227
|
]
|
218
228
|
},
|
219
229
|
{
|
220
230
|
"uuid": "33157f48-a2d9-4fae-a9c8-5df547473f1a",
|
221
231
|
"slug": "luhn",
|
222
232
|
"core": false,
|
223
|
-
"unlocked_by":
|
224
|
-
"difficulty":
|
233
|
+
"unlocked_by": "phone-number",
|
234
|
+
"difficulty": 3,
|
225
235
|
"topics": [
|
226
|
-
|
236
|
+
"strings",
|
237
|
+
"algorithms",
|
238
|
+
"transforming"
|
227
239
|
]
|
228
240
|
},
|
229
241
|
{
|
230
242
|
"uuid": "eacc30e1-d02c-4ccb-b1f7-3d4f16358726",
|
231
243
|
"slug": "secret-handshake",
|
232
244
|
"core": false,
|
233
|
-
"unlocked_by":
|
234
|
-
"difficulty":
|
245
|
+
"unlocked_by": "raindrops",
|
246
|
+
"difficulty": 2,
|
235
247
|
"topics": [
|
236
|
-
|
248
|
+
"control_flow_conditionals",
|
249
|
+
"bitwise_ operations"
|
237
250
|
]
|
238
251
|
},
|
239
252
|
{
|
240
253
|
"uuid": "f3e93545-7466-4635-b508-7e02517fdf06",
|
241
254
|
"slug": "pascals-triangle",
|
242
255
|
"core": false,
|
243
|
-
"unlocked_by":
|
244
|
-
"difficulty":
|
256
|
+
"unlocked_by": "sum-of-multiples",
|
257
|
+
"difficulty": 3,
|
245
258
|
"topics": [
|
246
|
-
|
259
|
+
"control_flow_conditionals",
|
260
|
+
"mathematics"
|
247
261
|
]
|
248
262
|
},
|
249
263
|
{
|
250
264
|
"uuid": "acf63670-7e56-47c1-9f33-7ec076d5270f",
|
251
265
|
"slug": "tournament",
|
252
266
|
"core": false,
|
253
|
-
"unlocked_by":
|
254
|
-
"difficulty":
|
267
|
+
"unlocked_by": "phone-number",
|
268
|
+
"difficulty": 4,
|
255
269
|
"topics": [
|
256
|
-
|
270
|
+
"text_formatting",
|
271
|
+
"parsing"
|
272
|
+
]
|
273
|
+
},
|
274
|
+
{
|
275
|
+
"uuid": "a81a1820-5da7-4e6e-99f2-17d71d37bd99",
|
276
|
+
"slug": "nucleotide-count",
|
277
|
+
"core": false,
|
278
|
+
"unlocked_by": "word-count",
|
279
|
+
"difficulty": 2,
|
280
|
+
"topics": [
|
281
|
+
"lists",
|
282
|
+
"transforming"
|
283
|
+
]
|
284
|
+
},
|
285
|
+
{
|
286
|
+
"uuid": "022148a9-0c8f-42f3-8f32-2cc1cb5d7f7e",
|
287
|
+
"slug": "pangram",
|
288
|
+
"core": false,
|
289
|
+
"unlocked_by": "anagram",
|
290
|
+
"difficulty": 2,
|
291
|
+
"topics": [
|
292
|
+
"regular_expressions",
|
293
|
+
"strings"
|
294
|
+
]
|
295
|
+
},
|
296
|
+
{
|
297
|
+
"uuid": "d3b2f968-32e2-4df7-a29a-f02ba2c7d581",
|
298
|
+
"slug": "triangle",
|
299
|
+
"core": false,
|
300
|
+
"unlocked_by": "sum-of-multiples",
|
301
|
+
"difficulty": 3,
|
302
|
+
"topics": [
|
303
|
+
"classes",
|
304
|
+
"mathematics"
|
305
|
+
]
|
306
|
+
},
|
307
|
+
{
|
308
|
+
"uuid": "4f38e325-587f-4a80-8c8f-6c45ec710e80",
|
309
|
+
"slug": "collatz-conjecture",
|
310
|
+
"core": false,
|
311
|
+
"unlocked_by": "sum-of-multiples",
|
312
|
+
"difficulty": 2,
|
313
|
+
"topics": [
|
314
|
+
"control_flow_conditionals",
|
315
|
+
"recursion"
|
257
316
|
]
|
258
317
|
}
|
259
318
|
]
|