trackler 2.2.0.0 → 2.2.0.1
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/problem-specifications/CONTRIBUTING.md +1 -1
- data/tracks/bash/.travis.yml +1 -1
- data/tracks/bash/config.json +30 -3
- data/tracks/c/README.md +1 -1
- data/tracks/c/config.json +131 -39
- data/tracks/ceylon/README.md +6 -6
- data/tracks/ceylon/config.json +21 -3
- data/tracks/chapel/.travis.yml +1 -1
- data/tracks/clojurescript/.travis.yml +1 -1
- data/tracks/clojurescript/README.md +6 -6
- data/tracks/clojurescript/exercises/.keep +0 -0
- data/tracks/coffeescript/.travis.yml +1 -1
- data/tracks/coldfusion/.travis.yml +1 -1
- data/tracks/coq/.travis.yml +1 -1
- data/tracks/cpp/CMakeLists.txt +1 -0
- data/tracks/cpp/README.md +1 -1
- data/tracks/cpp/config.json +8 -0
- data/tracks/cpp/exercises/atbash-cipher/CMakeLists.txt +52 -0
- data/tracks/cpp/exercises/atbash-cipher/atbash_cipher_test.cpp +68 -0
- data/tracks/cpp/exercises/atbash-cipher/example.cpp +54 -0
- data/tracks/cpp/exercises/atbash-cipher/example.h +13 -0
- data/tracks/csharp/config.json +315 -6
- data/tracks/d/.travis.yml +1 -1
- data/tracks/dart/README.md +2 -2
- data/tracks/dart/config.json +21 -3
- data/tracks/delphi/README.md +1 -1
- data/tracks/delphi/config.json +83 -1
- data/tracks/ecmascript/config.json +10 -0
- data/tracks/ecmascript/exercises/accumulate/accumulate.spec.js +3 -9
- data/tracks/ecmascript/exercises/acronym/acronym.spec.js +2 -2
- data/tracks/ecmascript/exercises/all-your-base/all-your-base.spec.js +131 -133
- data/tracks/ecmascript/exercises/all-your-base/example.js +1 -3
- data/tracks/ecmascript/exercises/allergies/allergies.spec.js +8 -10
- data/tracks/ecmascript/exercises/allergies/example.js +3 -5
- data/tracks/ecmascript/exercises/alphametics/alphametics.spec.js +61 -63
- data/tracks/ecmascript/exercises/alphametics/example.js +99 -99
- data/tracks/ecmascript/exercises/anagram/anagram.spec.js +35 -37
- data/tracks/ecmascript/exercises/anagram/example.js +1 -3
- data/tracks/ecmascript/exercises/atbash-cipher/atbash-cipher.spec.js +1 -3
- data/tracks/ecmascript/exercises/atbash-cipher/example.js +3 -3
- data/tracks/ecmascript/exercises/beer-song/beer-song.spec.js +0 -2
- data/tracks/ecmascript/exercises/beer-song/example.js +9 -9
- data/tracks/ecmascript/exercises/binary/binary.spec.js +1 -2
- data/tracks/ecmascript/exercises/binary/example.js +3 -3
- data/tracks/ecmascript/exercises/binary-search/binary-search.spec.js +1 -3
- data/tracks/ecmascript/exercises/binary-search-tree/binary-search-tree.spec.js +13 -15
- data/tracks/ecmascript/exercises/binary-search-tree/example.js +2 -2
- data/tracks/ecmascript/exercises/bob/bob.spec.js +1 -3
- data/tracks/ecmascript/exercises/bob/example.js +3 -3
- data/tracks/ecmascript/exercises/bracket-push/example.js +2 -2
- data/tracks/ecmascript/exercises/circular-buffer/circular-buffer.spec.js +10 -12
- data/tracks/ecmascript/exercises/circular-buffer/example.js +12 -11
- data/tracks/ecmascript/exercises/clock/clock.spec.js +0 -8
- data/tracks/ecmascript/exercises/clock/example.js +11 -11
- data/tracks/ecmascript/exercises/connect/connect.spec.js +75 -77
- data/tracks/ecmascript/exercises/connect/example.js +27 -29
- data/tracks/ecmascript/exercises/crypto-square/crypto-square.spec.js +11 -11
- data/tracks/ecmascript/exercises/crypto-square/example.js +11 -10
- data/tracks/ecmascript/exercises/custom-set/custom-set.spec.js +2 -4
- data/tracks/ecmascript/exercises/custom-set/example.js +1 -1
- data/tracks/ecmascript/exercises/diamond/diamond.spec.js +20 -21
- data/tracks/ecmascript/exercises/diamond/example.js +12 -13
- data/tracks/ecmascript/exercises/difference-of-squares/difference-of-squares.spec.js +0 -5
- data/tracks/ecmascript/exercises/diffie-hellman/diffie-hellman.spec.js +7 -28
- data/tracks/ecmascript/exercises/etl/etl.spec.js +36 -18
- data/tracks/ecmascript/exercises/etl/example.js +3 -3
- data/tracks/ecmascript/exercises/flatten-array/example.js +1 -1
- data/tracks/ecmascript/exercises/flatten-array/flatten-array.spec.js +2 -3
- data/tracks/ecmascript/exercises/food-chain/example.js +12 -12
- data/tracks/ecmascript/exercises/food-chain/food-chain.spec.js +0 -1
- data/tracks/ecmascript/exercises/gigasecond/example.js +1 -1
- data/tracks/ecmascript/exercises/gigasecond/gigasecond.spec.js +0 -1
- data/tracks/ecmascript/exercises/grade-school/grade-school.spec.js +18 -19
- data/tracks/ecmascript/exercises/grains/grains.spec.js +0 -1
- data/tracks/ecmascript/exercises/hamming/example.js +3 -3
- data/tracks/ecmascript/exercises/hamming/hamming.spec.js +5 -6
- data/tracks/ecmascript/exercises/hello-world/example.js +1 -1
- data/tracks/ecmascript/exercises/hello-world/hello-world.spec.js +1 -1
- data/tracks/ecmascript/exercises/hexadecimal/example.js +2 -2
- data/tracks/ecmascript/exercises/hexadecimal/hexadecimal.spec.js +9 -11
- data/tracks/ecmascript/exercises/isogram/isogram.spec.js +22 -23
- data/tracks/ecmascript/exercises/kindergarten-garden/example.js +7 -7
- data/tracks/ecmascript/exercises/kindergarten-garden/kindergarten-garden.spec.js +0 -5
- data/tracks/ecmascript/exercises/largest-series-product/example.js +4 -8
- data/tracks/ecmascript/exercises/largest-series-product/largest-series-product.spec.js +5 -7
- data/tracks/ecmascript/exercises/leap/leap.spec.js +4 -6
- data/tracks/ecmascript/exercises/linked-list/example.js +2 -2
- data/tracks/ecmascript/exercises/list-ops/example.js +19 -19
- data/tracks/ecmascript/exercises/list-ops/list-ops.spec.js +2 -18
- data/tracks/ecmascript/exercises/luhn/example.js +1 -1
- data/tracks/ecmascript/exercises/luhn/luhn.spec.js +1 -3
- data/tracks/ecmascript/exercises/matrix/example.js +2 -4
- data/tracks/ecmascript/exercises/matrix/matrix.spec.js +0 -2
- data/tracks/ecmascript/exercises/meetup/example.js +12 -15
- data/tracks/ecmascript/exercises/meetup/meetup.spec.js +0 -2
- data/tracks/ecmascript/exercises/minesweeper/example.js +60 -0
- data/tracks/ecmascript/exercises/minesweeper/minesweeper.spec.js +174 -0
- data/tracks/ecmascript/exercises/minesweeper/package.json +69 -0
- data/tracks/ecmascript/exercises/nth-prime/example.js +3 -2
- data/tracks/ecmascript/exercises/nth-prime/nth-prime.spec.js +0 -1
- data/tracks/ecmascript/exercises/ocr-numbers/example.js +3 -3
- data/tracks/ecmascript/exercises/ocr-numbers/ocr-numbers.spec.js +16 -18
- data/tracks/ecmascript/exercises/octal/example.js +1 -1
- data/tracks/ecmascript/exercises/octal/octal.spec.js +0 -2
- data/tracks/ecmascript/exercises/palindrome-products/example.js +14 -11
- data/tracks/ecmascript/exercises/palindrome-products/palindrome-products.spec.js +15 -18
- data/tracks/ecmascript/exercises/pangram/example.js +6 -5
- data/tracks/ecmascript/exercises/pangram/pangram.spec.js +10 -12
- data/tracks/ecmascript/exercises/pascals-triangle/example.js +2 -2
- data/tracks/ecmascript/exercises/pascals-triangle/pascals-triangle.spec.js +6 -8
- data/tracks/ecmascript/exercises/perfect-numbers/example.js +3 -5
- data/tracks/ecmascript/exercises/perfect-numbers/perfect-numbers.spec.js +0 -10
- data/tracks/ecmascript/exercises/phone-number/example.js +2 -2
- data/tracks/ecmascript/exercises/phone-number/phone-number.spec.js +0 -2
- data/tracks/ecmascript/exercises/pig-latin/example.js +4 -4
- data/tracks/ecmascript/exercises/pig-latin/pig-latin.spec.js +0 -1
- data/tracks/ecmascript/exercises/prime-factors/example.js +2 -2
- data/tracks/ecmascript/exercises/prime-factors/prime-factors.spec.js +0 -2
- data/tracks/ecmascript/exercises/pythagorean-triplet/pythagorean-triplet.spec.js +3 -11
- data/tracks/ecmascript/exercises/queen-attack/example.js +17 -17
- data/tracks/ecmascript/exercises/queen-attack/queen-attack.spec.js +7 -8
- data/tracks/ecmascript/exercises/raindrops/example.js +1 -1
- data/tracks/ecmascript/exercises/raindrops/raindrops.spec.js +1 -2
- data/tracks/ecmascript/exercises/rna-transcription/example.js +5 -5
- data/tracks/ecmascript/exercises/rna-transcription/rna-transcription.spec.js +4 -5
- data/tracks/ecmascript/exercises/robot-name/example.js +6 -6
- data/tracks/ecmascript/exercises/robot-name/robot-name.spec.js +10 -11
- data/tracks/ecmascript/exercises/robot-simulator/example.js +1 -1
- data/tracks/ecmascript/exercises/robot-simulator/robot-simulator.spec.js +31 -32
- data/tracks/ecmascript/exercises/roman-numerals/example.js +16 -16
- data/tracks/ecmascript/exercises/saddle-points/saddle-points.spec.js +3 -3
- data/tracks/ecmascript/exercises/say/example.js +25 -25
- data/tracks/ecmascript/exercises/say/say.spec.js +2 -3
- data/tracks/ecmascript/exercises/scrabble-score/example.js +27 -9
- data/tracks/ecmascript/exercises/scrabble-score/scrabble-score.spec.js +6 -7
- data/tracks/ecmascript/exercises/secret-handshake/example.js +2 -3
- data/tracks/ecmascript/exercises/secret-handshake/secret-handshake.spec.js +3 -5
- data/tracks/ecmascript/exercises/series/series.spec.js +1 -3
- data/tracks/ecmascript/exercises/sieve/example.js +4 -3
- data/tracks/ecmascript/exercises/sieve/sieve.spec.js +0 -2
- data/tracks/ecmascript/exercises/simple-cipher/example.js +8 -9
- data/tracks/ecmascript/exercises/simple-cipher/simple-cipher.spec.js +4 -4
- data/tracks/ecmascript/exercises/space-age/example.js +1 -1
- data/tracks/ecmascript/exercises/space-age/space-age.spec.js +9 -11
- data/tracks/ecmascript/exercises/strain/example.js +4 -4
- data/tracks/ecmascript/exercises/strain/strain.spec.js +14 -16
- data/tracks/ecmascript/exercises/sum-of-multiples/example.js +4 -4
- data/tracks/ecmascript/exercises/triangle/triangle.spec.js +2 -4
- data/tracks/ecmascript/exercises/trinary/example.js +3 -3
- data/tracks/ecmascript/exercises/trinary/trinary.spec.js +0 -2
- data/tracks/ecmascript/exercises/two-bucket/example.js +30 -27
- data/tracks/ecmascript/exercises/two-bucket/two-bucket.spec.js +4 -8
- data/tracks/ecmascript/exercises/word-count/example.js +2 -2
- data/tracks/ecmascript/exercises/word-count/word-count.spec.js +2 -3
- data/tracks/ecmascript/exercises/wordy/example.js +6 -6
- data/tracks/ecmascript/exercises/wordy/wordy.spec.js +2 -4
- data/tracks/factor/config.json +15 -6
- data/tracks/fortran/.travis.yml +1 -1
- data/tracks/fsharp/config.json +312 -10
- data/tracks/go/README.md +1 -1
- data/tracks/go/config.json +523 -155
- data/tracks/haskell/README.md +2 -2
- data/tracks/haskell/config.json +256 -7
- data/tracks/haxe/.travis.yml +1 -1
- data/tracks/haxe/Makefile +2 -2
- data/tracks/haxe/config.json +8 -5
- data/tracks/java/CONTRIBUTING.md +2 -2
- data/tracks/java/config.json +277 -17
- data/tracks/java/exercises/rotational-cipher/build.gradle +17 -0
- data/tracks/java/exercises/rotational-cipher/src/example/java/RotationalCipher.java +37 -0
- data/tracks/java/exercises/rotational-cipher/src/main/java/.keep +0 -0
- data/tracks/java/exercises/rotational-cipher/src/test/java/RotationalCipherTest.java +81 -0
- data/tracks/java/exercises/settings.gradle +1 -0
- data/tracks/java/exercises/twelve-days/src/main/java/TwelveDays.java +4 -0
- data/tracks/julia/.travis.yml +1 -1
- data/tracks/julia/README.md +1 -1
- data/tracks/kotlin/README.md +2 -2
- data/tracks/kotlin/exercises/hello-world/TUTORIAL.md +3 -3
- data/tracks/lisp/config.json +97 -3
- data/tracks/lisp/exercises/pascals-triangle/example.lisp +21 -0
- data/tracks/lisp/exercises/pascals-triangle/pascal.lisp +7 -0
- data/tracks/lisp/exercises/pascals-triangle/pascals-triangle-test.lisp +34 -0
- data/tracks/lua/.travis.yml +1 -1
- data/tracks/lua/README.md +1 -1
- data/tracks/mips/.travis.yml +1 -1
- data/tracks/mips/config.json +56 -17
- data/tracks/nasm/.travis.yml +1 -1
- data/tracks/nim/.travis.yml +1 -1
- data/tracks/ocaml/README.md +3 -3
- data/tracks/ocaml/config.json +130 -4
- data/tracks/perl5/docs/TESTS.md +40 -26
- data/tracks/plsql/.travis.yml +1 -1
- data/tracks/plsql/config.json +40 -13
- data/tracks/pony/.travis.yml +1 -1
- data/tracks/pony/bin/install-deps +4 -3
- data/tracks/prolog/.travis.yml +1 -1
- data/tracks/r/README.md +5 -5
- data/tracks/r/config.json +102 -30
- data/tracks/rust/.travis.yml +1 -1
- data/tracks/rust/config.json +172 -4
- data/tracks/rust/docs/EXERCISE_README_INSERT.md +1 -1
- data/tracks/sml/config.json +26 -3
- data/tracks/vimscript/config.json +60 -3
- metadata +16 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6b39bf536179101d4a80589e4eb0063f540d4d8
|
4
|
+
data.tar.gz: a9c7f68cfa36b6c9f620d867a8ee72daa59caa24
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16d09a7ab8c27ce704facfe2b10c6eed0907f15dd755fb131c8bc6b3712139de8474a1bd081b7c496c30ea19ffa19f54ee7cb44d35e1c67bfabf53cf94a6dd0a
|
7
|
+
data.tar.gz: 3acfc68e0e4218095d78bbd489d95a867bcf90d3f1f78b5f004590addf8d6bb32887605d3193251098e48baed46193ce98aa5147aaea9158e912d6135ecc04da
|
data/lib/trackler/version.rb
CHANGED
@@ -169,7 +169,7 @@ Some language tracks are experimenting with generating test suites from shared
|
|
169
169
|
test data. This is because various interesting edge cases are discovered as
|
170
170
|
people discuss solutions, but these edge cases are usually then only added
|
171
171
|
to a single language track. By standardising the inputs and outputs, it becomes
|
172
|
-
easier to
|
172
|
+
easier to improve the exercises across all the languages.
|
173
173
|
|
174
174
|
There are two possible scenarios, described below.
|
175
175
|
|
data/tracks/bash/.travis.yml
CHANGED
data/tracks/bash/config.json
CHANGED
@@ -6,78 +6,105 @@
|
|
6
6
|
"active": false,
|
7
7
|
"exercises": [
|
8
8
|
{
|
9
|
+
"uuid": "4e2533dd-3af5-400b-869d-78140764d533",
|
9
10
|
"slug": "hello-world",
|
11
|
+
"core": false,
|
12
|
+
"unlocked_by": null,
|
10
13
|
"difficulty": 1,
|
11
14
|
"topics": [
|
12
15
|
|
13
16
|
]
|
14
17
|
},
|
15
18
|
{
|
19
|
+
"uuid": "176c1a86-28b1-4848-9f87-bd6ae10db6ba",
|
16
20
|
"slug": "gigasecond",
|
21
|
+
"core": false,
|
22
|
+
"unlocked_by": null,
|
17
23
|
"difficulty": 1,
|
18
24
|
"topics": [
|
19
25
|
|
20
26
|
]
|
21
27
|
},
|
22
28
|
{
|
29
|
+
"uuid": "e24451fd-761d-4d20-81d9-e470486ec44a",
|
23
30
|
"slug": "leap",
|
31
|
+
"core": false,
|
32
|
+
"unlocked_by": null,
|
24
33
|
"difficulty": 1,
|
25
34
|
"topics": [
|
26
35
|
|
27
36
|
]
|
28
37
|
},
|
29
38
|
{
|
39
|
+
"uuid": "68103f44-b442-48e6-b2b5-09001f73e926",
|
30
40
|
"slug": "hamming",
|
41
|
+
"core": false,
|
42
|
+
"unlocked_by": null,
|
31
43
|
"difficulty": 1,
|
32
44
|
"topics": [
|
33
45
|
|
34
46
|
]
|
35
47
|
},
|
36
48
|
{
|
49
|
+
"uuid": "8a62e53e-59c2-42d5-96e5-a0f8f9b5d177",
|
37
50
|
"slug": "rna-transcription",
|
51
|
+
"core": false,
|
52
|
+
"unlocked_by": null,
|
38
53
|
"difficulty": 1,
|
39
54
|
"topics": [
|
40
55
|
|
41
56
|
]
|
42
57
|
},
|
43
58
|
{
|
59
|
+
"uuid": "1a9c8d65-43ee-435e-8c55-9a45c14a71fb",
|
44
60
|
"slug": "raindrops",
|
61
|
+
"core": false,
|
62
|
+
"unlocked_by": null,
|
45
63
|
"difficulty": 1,
|
46
64
|
"topics": [
|
47
65
|
|
48
66
|
]
|
49
67
|
},
|
50
68
|
{
|
69
|
+
"uuid": "9ac0b041-a7aa-4b0c-952a-d38d35e2cd65",
|
51
70
|
"slug": "bob",
|
71
|
+
"core": false,
|
72
|
+
"unlocked_by": null,
|
52
73
|
"difficulty": 1,
|
53
74
|
"topics": [
|
54
75
|
|
55
76
|
]
|
56
77
|
},
|
57
78
|
{
|
79
|
+
"uuid": "ca5139b4-8b2f-44ea-8d83-0b8ca7674436",
|
58
80
|
"slug": "difference-of-squares",
|
81
|
+
"core": false,
|
82
|
+
"unlocked_by": null,
|
59
83
|
"difficulty": 1,
|
60
84
|
"topics": [
|
61
85
|
|
62
86
|
]
|
63
87
|
},
|
64
88
|
{
|
89
|
+
"uuid": "33d9eb48-5958-4e98-afc0-8cff89577c86",
|
65
90
|
"slug": "anagram",
|
91
|
+
"core": false,
|
92
|
+
"unlocked_by": null,
|
66
93
|
"difficulty": 1,
|
67
94
|
"topics": [
|
68
95
|
|
69
96
|
]
|
70
97
|
},
|
71
98
|
{
|
99
|
+
"uuid": "a7e2018a-c454-4fe0-ad35-229304306648",
|
72
100
|
"slug": "pangram",
|
101
|
+
"core": false,
|
102
|
+
"unlocked_by": null,
|
73
103
|
"difficulty": 1,
|
74
104
|
"topics": [
|
75
105
|
|
76
106
|
]
|
77
107
|
}
|
78
|
-
],
|
79
|
-
"deprecated": [
|
80
|
-
|
81
108
|
],
|
82
109
|
"foregone": [
|
83
110
|
|
data/tracks/c/README.md
CHANGED
@@ -4,7 +4,7 @@ Exercism problems in C
|
|
4
4
|
|
5
5
|
## Contributing Guide
|
6
6
|
|
7
|
-
Please see the [Exercism contributing guide](https://github.com/exercism/
|
7
|
+
Please see the [Exercism contributing guide](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md) for general contribution tips.
|
8
8
|
|
9
9
|
## Coding Style
|
10
10
|
|
data/tracks/c/config.json
CHANGED
@@ -6,7 +6,9 @@
|
|
6
6
|
"active": false,
|
7
7
|
"exercises": [
|
8
8
|
{
|
9
|
+
"uuid": "a0278e53-728d-4c04-9a0e-d6f7fe7ce98f",
|
9
10
|
"slug": "hello-world",
|
11
|
+
"core": true,
|
10
12
|
"difficulty": 1,
|
11
13
|
"topics": [
|
12
14
|
"control-flow (if-statements)",
|
@@ -15,7 +17,9 @@
|
|
15
17
|
]
|
16
18
|
},
|
17
19
|
{
|
20
|
+
"uuid": "7167e43c-04bd-4c6c-a446-a37384d42626",
|
18
21
|
"slug": "isogram",
|
22
|
+
"core": true,
|
19
23
|
"difficulty": 1,
|
20
24
|
"topics": [
|
21
25
|
"arrays",
|
@@ -25,8 +29,11 @@
|
|
25
29
|
]
|
26
30
|
},
|
27
31
|
{
|
28
|
-
"
|
32
|
+
"uuid": "82b19968-03f9-4e17-b729-db6c3e2abfa4",
|
29
33
|
"slug": "anagram",
|
34
|
+
"core": false,
|
35
|
+
"unlocked_by": "acronym",
|
36
|
+
"difficulty": 5,
|
30
37
|
"topics": [
|
31
38
|
"strings",
|
32
39
|
"filtering",
|
@@ -35,23 +42,30 @@
|
|
35
42
|
]
|
36
43
|
},
|
37
44
|
{
|
38
|
-
"
|
45
|
+
"uuid": "24721f7a-4123-470f-81e2-a252e56f3ceb",
|
39
46
|
"slug": "leap",
|
47
|
+
"core": false,
|
48
|
+
"unlocked_by": null,
|
49
|
+
"difficulty": 1,
|
40
50
|
"topics": [
|
41
51
|
"logic",
|
42
52
|
"control-flow (if-else statements)"
|
43
53
|
]
|
44
54
|
},
|
45
55
|
{
|
46
|
-
"
|
56
|
+
"uuid": "532393f6-dedc-40fc-872e-b265450fd007",
|
47
57
|
"slug": "gigasecond",
|
58
|
+
"core": true,
|
59
|
+
"difficulty": 1,
|
48
60
|
"topics": [
|
49
61
|
"dates"
|
50
62
|
]
|
51
63
|
},
|
52
64
|
{
|
53
|
-
"
|
65
|
+
"uuid": "500c2f8c-7404-47e7-8064-8c426b0632ea",
|
54
66
|
"slug": "hamming",
|
67
|
+
"core": true,
|
68
|
+
"difficulty": 2,
|
55
69
|
"topics": [
|
56
70
|
"arrays",
|
57
71
|
"strings",
|
@@ -59,24 +73,33 @@
|
|
59
73
|
]
|
60
74
|
},
|
61
75
|
{
|
62
|
-
"
|
76
|
+
"uuid": "b69b0f46-644c-4e98-8e31-34e392477f57",
|
63
77
|
"slug": "raindrops",
|
78
|
+
"core": false,
|
79
|
+
"unlocked_by": null,
|
80
|
+
"difficulty": 2,
|
64
81
|
"topics": [
|
65
82
|
"strings",
|
66
83
|
"control-flow (if-else statements)"
|
67
84
|
]
|
68
85
|
},
|
69
86
|
{
|
70
|
-
"
|
87
|
+
"uuid": "a559ee05-0ce8-4071-a159-b7a54ef3215c",
|
71
88
|
"slug": "bob",
|
89
|
+
"core": false,
|
90
|
+
"unlocked_by": "beer-song",
|
91
|
+
"difficulty": 5,
|
72
92
|
"topics": [
|
73
93
|
"strings",
|
74
94
|
"control-flow (if-else statements)"
|
75
95
|
]
|
76
96
|
},
|
77
97
|
{
|
78
|
-
"
|
98
|
+
"uuid": "08904f5e-3b07-4f0b-9dc6-6e371df1ef02",
|
79
99
|
"slug": "acronym",
|
100
|
+
"core": false,
|
101
|
+
"unlocked_by": "isogram",
|
102
|
+
"difficulty": 1,
|
80
103
|
"topics": [
|
81
104
|
"strings",
|
82
105
|
"memory management",
|
@@ -84,8 +107,10 @@
|
|
84
107
|
]
|
85
108
|
},
|
86
109
|
{
|
87
|
-
"
|
110
|
+
"uuid": "f9b3b7f1-c49a-421b-a38d-b740f1910ca5",
|
88
111
|
"slug": "grains",
|
112
|
+
"core": true,
|
113
|
+
"difficulty": 1,
|
89
114
|
"topics": [
|
90
115
|
"control-flow (loops)",
|
91
116
|
"bitwise operations",
|
@@ -93,8 +118,11 @@
|
|
93
118
|
]
|
94
119
|
},
|
95
120
|
{
|
96
|
-
"
|
121
|
+
"uuid": "d64646d1-5af9-4bdc-b637-5c56447e6693",
|
97
122
|
"slug": "largest-series-product",
|
123
|
+
"core": false,
|
124
|
+
"unlocked_by": "palindrome-products",
|
125
|
+
"difficulty": 5,
|
98
126
|
"topics": [
|
99
127
|
"control-flow (loops)",
|
100
128
|
"strings",
|
@@ -102,8 +130,11 @@
|
|
102
130
|
]
|
103
131
|
},
|
104
132
|
{
|
105
|
-
"
|
133
|
+
"uuid": "70c0e2d6-70a4-499f-86e3-6e209b494a5d",
|
106
134
|
"slug": "pangram",
|
135
|
+
"core": false,
|
136
|
+
"unlocked_by": "isogram",
|
137
|
+
"difficulty": 3,
|
107
138
|
"topics": [
|
108
139
|
"strings",
|
109
140
|
"control-flow (if-else statements)",
|
@@ -111,8 +142,11 @@
|
|
111
142
|
]
|
112
143
|
},
|
113
144
|
{
|
114
|
-
"
|
145
|
+
"uuid": "1b3144fe-8e9f-46bc-9206-74cad1c5b088",
|
115
146
|
"slug": "all-your-base",
|
147
|
+
"core": false,
|
148
|
+
"unlocked_by": "binary",
|
149
|
+
"difficulty": 3,
|
116
150
|
"topics": [
|
117
151
|
"arrays",
|
118
152
|
"control-flow (if-else statements)",
|
@@ -120,8 +154,11 @@
|
|
120
154
|
]
|
121
155
|
},
|
122
156
|
{
|
123
|
-
"
|
157
|
+
"uuid": "5f88968b-7c02-4846-9f38-cec55d19df66",
|
124
158
|
"slug": "nth-prime",
|
159
|
+
"core": false,
|
160
|
+
"unlocked_by": "sieve",
|
161
|
+
"difficulty": 4,
|
125
162
|
"topics": [
|
126
163
|
"control-flow (if-else statements)",
|
127
164
|
"control-flow (loops)",
|
@@ -129,8 +166,10 @@
|
|
129
166
|
]
|
130
167
|
},
|
131
168
|
{
|
132
|
-
"
|
169
|
+
"uuid": "5d988d28-2ef7-46e7-b706-011cc5ecb6fc",
|
133
170
|
"slug": "beer-song",
|
171
|
+
"core": true,
|
172
|
+
"difficulty": 2,
|
134
173
|
"topics": [
|
135
174
|
"strings",
|
136
175
|
"control-flow (if-else statements)",
|
@@ -138,8 +177,11 @@
|
|
138
177
|
]
|
139
178
|
},
|
140
179
|
{
|
141
|
-
"
|
180
|
+
"uuid": "47308cfb-357a-4d61-852f-49b26ee2b236",
|
142
181
|
"slug": "rna-transcription",
|
182
|
+
"core": false,
|
183
|
+
"unlocked_by": "hamming",
|
184
|
+
"difficulty": 2,
|
143
185
|
"topics": [
|
144
186
|
"strings",
|
145
187
|
"control-flow (case statements)",
|
@@ -147,23 +189,30 @@
|
|
147
189
|
]
|
148
190
|
},
|
149
191
|
{
|
150
|
-
"
|
192
|
+
"uuid": "3531b23c-7a23-47b7-88f4-ff8519d0392b",
|
151
193
|
"slug": "difference-of-squares",
|
194
|
+
"core": true,
|
195
|
+
"difficulty": 1,
|
152
196
|
"topics": [
|
153
197
|
"control-flow (loops)"
|
154
198
|
]
|
155
199
|
},
|
156
200
|
{
|
157
|
-
"
|
201
|
+
"uuid": "a9d8772f-3733-4b84-b8c6-f3c38a8ce5db",
|
158
202
|
"slug": "sum-of-multiples",
|
203
|
+
"core": false,
|
204
|
+
"unlocked_by": "difference-of-squares",
|
205
|
+
"difficulty": 4,
|
159
206
|
"topics": [
|
160
207
|
"control-flow (case statements)",
|
161
208
|
"control-flow (loops)"
|
162
209
|
]
|
163
210
|
},
|
164
211
|
{
|
165
|
-
"
|
212
|
+
"uuid": "23231bc9-4a75-40ab-b934-f8b429b55224",
|
166
213
|
"slug": "binary-search",
|
214
|
+
"core": true,
|
215
|
+
"difficulty": 2,
|
167
216
|
"topics": [
|
168
217
|
"arrays",
|
169
218
|
"control-flow (if-else statements)",
|
@@ -172,8 +221,10 @@
|
|
172
221
|
]
|
173
222
|
},
|
174
223
|
{
|
175
|
-
"
|
224
|
+
"uuid": "db544fba-acf4-47b5-b86c-fc9f0680517d",
|
176
225
|
"slug": "roman-numerals",
|
226
|
+
"core": true,
|
227
|
+
"difficulty": 3,
|
177
228
|
"topics": [
|
178
229
|
"arrays",
|
179
230
|
"memory management",
|
@@ -183,8 +234,11 @@
|
|
183
234
|
]
|
184
235
|
},
|
185
236
|
{
|
186
|
-
"
|
237
|
+
"uuid": "2e2d009b-3bd6-4258-988b-5e36e2e27f3c",
|
187
238
|
"slug": "word-count",
|
239
|
+
"core": false,
|
240
|
+
"unlocked_by": "isogram",
|
241
|
+
"difficulty": 3,
|
188
242
|
"topics": [
|
189
243
|
"strings",
|
190
244
|
"filtering",
|
@@ -193,8 +247,10 @@
|
|
193
247
|
]
|
194
248
|
},
|
195
249
|
{
|
196
|
-
"
|
250
|
+
"uuid": "28bdb8bb-26cd-40c1-91ba-a00fda09eaf2",
|
197
251
|
"slug": "allergies",
|
252
|
+
"core": true,
|
253
|
+
"difficulty": 4,
|
198
254
|
"topics": [
|
199
255
|
"control-flow (if-statements)",
|
200
256
|
"control-flow (loops)",
|
@@ -203,8 +259,10 @@
|
|
203
259
|
]
|
204
260
|
},
|
205
261
|
{
|
206
|
-
"
|
262
|
+
"uuid": "e39c4445-eadd-4bcf-9b49-2256ed38d6fd",
|
207
263
|
"slug": "atbash-cipher",
|
264
|
+
"core": true,
|
265
|
+
"difficulty": 5,
|
208
266
|
"topics": [
|
209
267
|
"control-flow (loops)",
|
210
268
|
"control-flow (if-else statements)",
|
@@ -212,8 +270,10 @@
|
|
212
270
|
]
|
213
271
|
},
|
214
272
|
{
|
215
|
-
"
|
273
|
+
"uuid": "92e18b2f-f137-452e-a21d-045874da84d7",
|
216
274
|
"slug": "phone-number",
|
275
|
+
"core": true,
|
276
|
+
"difficulty": 4,
|
217
277
|
"topics": [
|
218
278
|
"strings",
|
219
279
|
"memory management",
|
@@ -222,8 +282,10 @@
|
|
222
282
|
]
|
223
283
|
},
|
224
284
|
{
|
225
|
-
"
|
285
|
+
"uuid": "3b3d1f61-c580-4a37-9cab-449eeebe7f86",
|
226
286
|
"slug": "clock",
|
287
|
+
"core": true,
|
288
|
+
"difficulty": 2,
|
227
289
|
"topics": [
|
228
290
|
"control-flow (if-statements)",
|
229
291
|
"strings",
|
@@ -232,16 +294,21 @@
|
|
232
294
|
]
|
233
295
|
},
|
234
296
|
{
|
235
|
-
"
|
297
|
+
"uuid": "f1b60913-78d3-4872-a1a3-5ac3930c74ff",
|
236
298
|
"slug": "sieve",
|
299
|
+
"core": true,
|
300
|
+
"difficulty": 2,
|
237
301
|
"topics": [
|
238
302
|
"control-flow (if-statements)",
|
239
303
|
"memory management"
|
240
304
|
]
|
241
305
|
},
|
242
306
|
{
|
243
|
-
"
|
307
|
+
"uuid": "75b292a3-2a94-40f9-8798-608812a6c0f8",
|
244
308
|
"slug": "series",
|
309
|
+
"core": false,
|
310
|
+
"unlocked_by": "atbash-cipher",
|
311
|
+
"difficulty": 2,
|
245
312
|
"topics": [
|
246
313
|
"control-flow (if-statements)",
|
247
314
|
"strings",
|
@@ -250,8 +317,11 @@
|
|
250
317
|
]
|
251
318
|
},
|
252
319
|
{
|
253
|
-
"
|
320
|
+
"uuid": "5c782b4f-862e-4feb-98d6-a0eaf9d43a74",
|
254
321
|
"slug": "meetup",
|
322
|
+
"core": false,
|
323
|
+
"unlocked_by": "gigasecond",
|
324
|
+
"difficulty": 4,
|
255
325
|
"topics": [
|
256
326
|
"control-flow (if-statements)",
|
257
327
|
"strings",
|
@@ -261,8 +331,11 @@
|
|
261
331
|
]
|
262
332
|
},
|
263
333
|
{
|
264
|
-
"
|
334
|
+
"uuid": "ca136f47-07fc-4bd5-9b81-a492ac81a7e6",
|
265
335
|
"slug": "nucleotide-count",
|
336
|
+
"core": false,
|
337
|
+
"unlocked_by": "hamming",
|
338
|
+
"difficulty": 2,
|
266
339
|
"topics": [
|
267
340
|
"control-flow (loops, switch, if-statements)",
|
268
341
|
"strings",
|
@@ -271,8 +344,10 @@
|
|
271
344
|
]
|
272
345
|
},
|
273
346
|
{
|
274
|
-
"
|
347
|
+
"uuid": "87c36588-5917-4790-9566-f7bc21bf41c4",
|
275
348
|
"slug": "robot-simulator",
|
349
|
+
"core": true,
|
350
|
+
"difficulty": 2,
|
276
351
|
"topics": [
|
277
352
|
"strings",
|
278
353
|
"control-flow (if-statements)",
|
@@ -282,8 +357,11 @@
|
|
282
357
|
]
|
283
358
|
},
|
284
359
|
{
|
285
|
-
"
|
360
|
+
"uuid": "4b30bb00-c559-423c-ae1c-9c5eaf9cb1c8",
|
286
361
|
"slug": "triangle",
|
362
|
+
"core": false,
|
363
|
+
"unlocked_by": "pascals-triangle",
|
364
|
+
"difficulty": 1,
|
287
365
|
"topics": [
|
288
366
|
"control-flow (if-else statements)",
|
289
367
|
"Booleans",
|
@@ -292,8 +370,10 @@
|
|
292
370
|
]
|
293
371
|
},
|
294
372
|
{
|
295
|
-
"
|
373
|
+
"uuid": "3ebdb4e4-5e35-48f0-a572-87c40b51475f",
|
296
374
|
"slug": "pascals-triangle",
|
375
|
+
"core": true,
|
376
|
+
"difficulty": 1,
|
297
377
|
"topics": [
|
298
378
|
"control-flow (if-else statements)",
|
299
379
|
"memory management",
|
@@ -301,24 +381,31 @@
|
|
301
381
|
]
|
302
382
|
},
|
303
383
|
{
|
304
|
-
"
|
384
|
+
"uuid": "82bb6c43-668a-4563-bc05-056e45cf86a3",
|
305
385
|
"slug": "perfect-numbers",
|
386
|
+
"core": false,
|
387
|
+
"unlocked_by": "pascals-triangle",
|
388
|
+
"difficulty": 1,
|
306
389
|
"topics": [
|
307
390
|
"control-flow (if-else statements)",
|
308
391
|
"Mathematics"
|
309
392
|
]
|
310
393
|
},
|
311
394
|
{
|
312
|
-
"
|
395
|
+
"uuid": "73e5774c-7d8e-4ed6-9d72-3cb59af441c0",
|
313
396
|
"slug": "binary",
|
397
|
+
"core": true,
|
398
|
+
"difficulty": 1,
|
314
399
|
"topics": [
|
315
400
|
"control-flow (loops)",
|
316
401
|
"control-flow (if-statements)"
|
317
402
|
]
|
318
403
|
},
|
319
404
|
{
|
320
|
-
"
|
405
|
+
"uuid": "b1f13fdd-4c78-443a-8e37-6d0a3fafbc15",
|
321
406
|
"slug": "palindrome-products",
|
407
|
+
"core": true,
|
408
|
+
"difficulty": 2,
|
322
409
|
"topics": [
|
323
410
|
"strings",
|
324
411
|
"structs",
|
@@ -327,8 +414,10 @@
|
|
327
414
|
]
|
328
415
|
},
|
329
416
|
{
|
330
|
-
"
|
417
|
+
"uuid": "2ac990f4-39b0-416e-93ee-217dc0181401",
|
331
418
|
"slug": "scrabble-score",
|
419
|
+
"core": true,
|
420
|
+
"difficulty": 4,
|
332
421
|
"topics": [
|
333
422
|
"structs",
|
334
423
|
"pointers",
|
@@ -337,23 +426,26 @@
|
|
337
426
|
]
|
338
427
|
},
|
339
428
|
{
|
340
|
-
"
|
429
|
+
"uuid": "11a574a6-ffea-4de5-abc1-5566bd200374",
|
341
430
|
"slug": "space-age",
|
431
|
+
"core": false,
|
432
|
+
"unlocked_by": "gigasecond",
|
433
|
+
"difficulty": 1,
|
342
434
|
"topics": [
|
343
435
|
"Functions"
|
344
436
|
]
|
345
437
|
},
|
346
438
|
{
|
347
|
-
"
|
439
|
+
"uuid": "55b87cc2-c3a0-438a-b2b6-116ad6356802",
|
348
440
|
"slug": "react",
|
441
|
+
"core": false,
|
442
|
+
"unlocked_by": "atbash-cipher",
|
443
|
+
"difficulty": 10,
|
349
444
|
"topics": [
|
350
445
|
"memory management",
|
351
446
|
"Functions"
|
352
447
|
]
|
353
448
|
}
|
354
|
-
],
|
355
|
-
"deprecated": [
|
356
|
-
|
357
449
|
],
|
358
450
|
"foregone": [
|
359
451
|
|
data/tracks/ceylon/README.md
CHANGED
@@ -20,15 +20,15 @@ The Exercism-wide [contributing guide](https://github.com/exercism/docs/tree/mas
|
|
20
20
|
|
21
21
|
Depending on what your contribution deals with, you may have to direct it at a certain repository:
|
22
22
|
|
23
|
-
* If your contribution deals with the README for a problem, it should go to [
|
23
|
+
* If your contribution deals with the README for a problem, it should go to [problem-specifications](https://github.com/exercism/problem-specifications).
|
24
24
|
* Otherwise, it probably deals with matters specific to the Ceylon track, in which case it goes to this repository.
|
25
|
-
* If you're not sure, you can try here and we will let you know if it should go in
|
25
|
+
* If you're not sure, you can try here and we will let you know if it should go in problem-specifications.
|
26
26
|
|
27
27
|
#### Porting an exercise
|
28
28
|
|
29
29
|
The Exercism site provides a list of [exercises not on the Ceylon track](http://exercism.io/languages/ceylon/todo).
|
30
30
|
A possible contribution would be to choose one of these exercises and add it to this track.
|
31
|
-
The
|
31
|
+
The Exercism documentation repo has a [guide on porting an exercise](https://github.com/exercism/docs/blob/master/you-can-help/implement-an-exercise-from-specification.md).
|
32
32
|
|
33
33
|
Note that you will need to add the problem to the `exercises` section in `config.json` as well, otherwise it will not be available via `exercism fetch` (or any other means, other than by cloning the repository).
|
34
34
|
|
@@ -50,8 +50,8 @@ This directory should contain the following files and directories, where `<slug>
|
|
50
50
|
* This file provides just the type signatures needed to make the tests compile.
|
51
51
|
* The implementations for all functions should all be `return nothing;`, which will intentionally fail the tests.
|
52
52
|
* `source/<slug>/<Slug>Test.ceylon`: The test file.
|
53
|
-
* If there is an `exercises/<slug>/canonical-data.json` in the `
|
54
|
-
* If you believe a case should be added or removed, try discussing it in the `
|
53
|
+
* If there is an `exercises/<slug>/canonical-data.json` in the [`problem-specifications` repository](https://github.com/exercism/problem-specifications), the test cases should typically be those described in that file.
|
54
|
+
* If you believe a case should be added or removed, try discussing it in the `problem-specifications` repository to see if it would apply to all tracks.
|
55
55
|
* If a modification to the cases only makes sense for the Ceylon track, please note the change in the test file.
|
56
56
|
* If no JSON file is present, you may use the same tests as other languages implementing that exercise.
|
57
57
|
* Typically, we like to use [parameterized tests](https://ceylon-lang.org/blog/2016/02/22/ceylon-test-new-and-noteworthy/#parameterized_tests) to express the tests with minimal duplication in test code.
|
@@ -65,7 +65,7 @@ This directory should contain the following files and directories, where `<slug>
|
|
65
65
|
* *optional*: `example/*.ceylon`
|
66
66
|
* Other files may be included in the `example/` directory if appropriate.
|
67
67
|
|
68
|
-
As a reminder, the README does not need to be added to this track - it is automatically created using the data in [
|
68
|
+
As a reminder, the README does not need to be added to this track - it is automatically created using the data in [problem-specifications](https://github.com/exercism/problem-specifications).
|
69
69
|
However, if there is any Ceylon-specific information that you would like appended to the README, place this in a `HINTS.md` file in the exercise directory (`exercises/<slug>/HINTS.md`).
|
70
70
|
|
71
71
|
### Running the tests
|