trackler 2.2.0.0 → 2.2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/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
data/tracks/perl5/docs/TESTS.md
CHANGED
|
@@ -1,34 +1,48 @@
|
|
|
1
|
-
|
|
1
|
+
## Run All Tests
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
There is a Perl 5 script with the extension `.t`, which will be used to test
|
|
4
|
+
your solution. You can run through the tests by using the command:
|
|
5
|
+
|
|
6
|
+
`prove .`
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
Before you start the exercise, the output will likely look something like:
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
```
|
|
11
|
+
./hello-world.t .. 1/4
|
|
12
|
+
# Failed test 'Say Hi!'
|
|
13
|
+
# at ./hello-world.t line 33.
|
|
14
|
+
# got: undef
|
|
15
|
+
# expected: 'Hello, World!'
|
|
16
|
+
# Looks like you failed 1 test of 4.
|
|
17
|
+
./hello-world.t .. Dubious, test returned 1 (wstat 256, 0x100)
|
|
18
|
+
Failed 1/4 subtests
|
|
19
|
+
(less 1 skipped subtest: 2 okay)
|
|
20
|
+
|
|
21
|
+
Test Summary Report
|
|
22
|
+
-------------------
|
|
23
|
+
./hello-world.t (Wstat: 256 Tests: 4 Failed: 1)
|
|
24
|
+
Failed test: 3
|
|
25
|
+
Non-zero exit status: 1
|
|
26
|
+
Files=1, Tests=4, 0 wallclock secs ( 0.03 usr 0.00 sys + 0.08 cusr 0.01 csys = 0.12 CPU)
|
|
27
|
+
Result: FAIL
|
|
28
|
+
```
|
|
29
|
+
You will either need to modify or create a module with the extension `.pm`, and
|
|
30
|
+
write a solution to pass the tests. Once the tests are passing, the output from
|
|
31
|
+
the command above will likely look something like:
|
|
12
32
|
|
|
13
|
-
```
|
|
14
|
-
|
|
33
|
+
```
|
|
34
|
+
./hello-world.t .. ok
|
|
35
|
+
All tests successful.
|
|
36
|
+
Files=1, Tests=4, 1 wallclock secs ( 0.01 usr 0.00 sys + 0.49 cusr 0.06 csys = 0.56 CPU)
|
|
37
|
+
Result: PASS
|
|
38
|
+
```
|
|
15
39
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
|
|
40
|
+
Some exercises may have optional tests. You can test for these by adding the
|
|
41
|
+
flag `-v` (for 'verbose') to the above command, like so:
|
|
19
42
|
|
|
20
|
-
|
|
21
|
-
@ISA = qw(Exporter);
|
|
22
|
-
@EXPORT = ();
|
|
23
|
-
@EXPORT_OK = qw(hey);
|
|
24
|
-
%EXPORT_TAGS = ( DEFAULT => [qw(&hey)],
|
|
25
|
-
);
|
|
43
|
+
`prove . -v`
|
|
26
44
|
|
|
27
|
-
|
|
28
|
-
#
|
|
29
|
-
# Your Perl solution goes here
|
|
30
|
-
#
|
|
31
|
-
}
|
|
45
|
+
As well as showing optional tests, it will include all of the tests that your solution currently passes.
|
|
32
46
|
|
|
33
|
-
|
|
34
|
-
|
|
47
|
+
You can find a more in-depth explanation of the `Test::More` module on
|
|
48
|
+
[perldoc](http://perldoc.perl.org/Test/More.html#I%27m-ok%2c-you%27re-not-ok.).
|
data/tracks/plsql/.travis.yml
CHANGED
data/tracks/plsql/config.json
CHANGED
|
@@ -4,79 +4,106 @@
|
|
|
4
4
|
"repository": "https://github.com/exercism/plsql",
|
|
5
5
|
"active": true,
|
|
6
6
|
"test_pattern": "ut.*plsql",
|
|
7
|
-
"deprecated": [
|
|
8
|
-
|
|
9
|
-
],
|
|
10
7
|
"foregone": [
|
|
11
8
|
|
|
12
9
|
],
|
|
13
10
|
"exercises": [
|
|
14
11
|
{
|
|
15
|
-
"
|
|
12
|
+
"uuid": "b779f211-ecec-45cc-8641-e7cf87ff66ce",
|
|
16
13
|
"slug": "hamming",
|
|
14
|
+
"core": false,
|
|
15
|
+
"unlocked_by": null,
|
|
16
|
+
"difficulty": 1,
|
|
17
17
|
"topics": [
|
|
18
18
|
|
|
19
19
|
]
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
|
-
"
|
|
22
|
+
"uuid": "6722fe30-30d2-4e99-87de-03b1a6eee0d6",
|
|
23
23
|
"slug": "gigasecond",
|
|
24
|
+
"core": false,
|
|
25
|
+
"unlocked_by": null,
|
|
26
|
+
"difficulty": 1,
|
|
24
27
|
"topics": [
|
|
25
28
|
|
|
26
29
|
]
|
|
27
30
|
},
|
|
28
31
|
{
|
|
29
|
-
"
|
|
32
|
+
"uuid": "eec6c29b-fbbb-48d5-a0e9-4c902281390e",
|
|
30
33
|
"slug": "rna-transcription",
|
|
34
|
+
"core": false,
|
|
35
|
+
"unlocked_by": null,
|
|
36
|
+
"difficulty": 1,
|
|
31
37
|
"topics": [
|
|
32
38
|
|
|
33
39
|
]
|
|
34
40
|
},
|
|
35
41
|
{
|
|
36
|
-
"
|
|
42
|
+
"uuid": "2eaf11fe-e56e-4512-b8af-8fb637582a5e",
|
|
37
43
|
"slug": "raindrops",
|
|
44
|
+
"core": false,
|
|
45
|
+
"unlocked_by": null,
|
|
46
|
+
"difficulty": 1,
|
|
38
47
|
"topics": [
|
|
39
48
|
|
|
40
49
|
]
|
|
41
50
|
},
|
|
42
51
|
{
|
|
43
|
-
"
|
|
52
|
+
"uuid": "f630b17b-59c1-448b-8880-85bb0c72ba5a",
|
|
44
53
|
"slug": "difference-of-squares",
|
|
54
|
+
"core": false,
|
|
55
|
+
"unlocked_by": null,
|
|
56
|
+
"difficulty": 1,
|
|
45
57
|
"topics": [
|
|
46
58
|
|
|
47
59
|
]
|
|
48
60
|
},
|
|
49
61
|
{
|
|
50
|
-
"
|
|
62
|
+
"uuid": "fc75b71e-e3e6-43b2-940b-65c06a6f9bc5",
|
|
51
63
|
"slug": "roman-numerals",
|
|
64
|
+
"core": false,
|
|
65
|
+
"unlocked_by": null,
|
|
66
|
+
"difficulty": 1,
|
|
52
67
|
"topics": [
|
|
53
68
|
|
|
54
69
|
]
|
|
55
70
|
},
|
|
56
71
|
{
|
|
57
|
-
"
|
|
72
|
+
"uuid": "bede5fe0-43bf-4483-9fc3-7030df042515",
|
|
58
73
|
"slug": "nth-prime",
|
|
74
|
+
"core": false,
|
|
75
|
+
"unlocked_by": null,
|
|
76
|
+
"difficulty": 1,
|
|
59
77
|
"topics": [
|
|
60
78
|
|
|
61
79
|
]
|
|
62
80
|
},
|
|
63
81
|
{
|
|
64
|
-
"
|
|
82
|
+
"uuid": "50e2a7c5-3f71-448d-b203-65b7c0e3d6d5",
|
|
65
83
|
"slug": "leap",
|
|
84
|
+
"core": false,
|
|
85
|
+
"unlocked_by": null,
|
|
86
|
+
"difficulty": 1,
|
|
66
87
|
"topics": [
|
|
67
88
|
|
|
68
89
|
]
|
|
69
90
|
},
|
|
70
91
|
{
|
|
71
|
-
"
|
|
92
|
+
"uuid": "1d661c32-c75d-4c0b-bf88-ed0112bb1ab2",
|
|
72
93
|
"slug": "grains",
|
|
94
|
+
"core": false,
|
|
95
|
+
"unlocked_by": null,
|
|
96
|
+
"difficulty": 1,
|
|
73
97
|
"topics": [
|
|
74
98
|
|
|
75
99
|
]
|
|
76
100
|
},
|
|
77
101
|
{
|
|
78
|
-
"
|
|
102
|
+
"uuid": "6277f225-5d28-45f1-b020-9b821150ecfe",
|
|
79
103
|
"slug": "binary",
|
|
104
|
+
"core": false,
|
|
105
|
+
"unlocked_by": null,
|
|
106
|
+
"difficulty": 1,
|
|
80
107
|
"topics": [
|
|
81
108
|
|
|
82
109
|
]
|
data/tracks/pony/.travis.yml
CHANGED
|
@@ -5,8 +5,8 @@ sudo apt-get install -y python-software-properties
|
|
|
5
5
|
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
|
|
6
6
|
sudo apt-get update -q
|
|
7
7
|
sudo apt-get install -y \
|
|
8
|
-
wget git apt-transport-https
|
|
9
|
-
zlib1g-dev libncurses5-dev libssl-dev llvm-3.
|
|
8
|
+
wget git apt-transport-https clang-3.9 build-essential \
|
|
9
|
+
zlib1g-dev libncurses5-dev libssl-dev llvm-3.9
|
|
10
10
|
|
|
11
11
|
# Install pcre2 (uncomment if regex package is ever used)
|
|
12
12
|
# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-10.21.tar.bz2
|
|
@@ -16,4 +16,5 @@ sudo apt-get install -y \
|
|
|
16
16
|
|
|
17
17
|
# Insall ponyc
|
|
18
18
|
git clone "https://github.com/ponylang/ponyc"
|
|
19
|
-
|
|
19
|
+
git checkout release
|
|
20
|
+
cd ponyc && make CC=clang-3.9 CXX=clang++-3.9 && sudo make install && cd -
|
data/tracks/prolog/.travis.yml
CHANGED
data/tracks/r/README.md
CHANGED
|
@@ -30,7 +30,7 @@ If stuck or in doubt just ask! We try our best to be friendly and helpful, so do
|
|
|
30
30
|
- [gitter dev](https://gitter.im/exercism/dev): technical questions.
|
|
31
31
|
|
|
32
32
|
### How to contribute
|
|
33
|
-
As a first step we recommend you read the [contributing guide](https://github.com/exercism/
|
|
33
|
+
As a first step we recommend you read the [contributing guide](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md).
|
|
34
34
|
|
|
35
35
|
#### Reporting or fixing bugs
|
|
36
36
|
Typical examples for a bug: A typo, a missing test case, an unclear or ambiguous problem description.
|
|
@@ -43,15 +43,15 @@ If you have a dedicated opinion you are welcome to [write a comment](https://hel
|
|
|
43
43
|
Please be detailed and include motivations or relevant links to support your opinion.
|
|
44
44
|
|
|
45
45
|
#### Porting exercises
|
|
46
|
-
Here is the [list of missing exercises](http://exercism.io/languages/r/todo). See here for more information about [porting an exercise](https://github.com/exercism/
|
|
46
|
+
Here is the [list of missing exercises](http://exercism.io/languages/r/todo). See here for more information about [porting an exercise](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md#porting-an-exercise-to-another-language-track).
|
|
47
47
|
Of course you can also add a totally new exercise, but it might be a good idea to first discuss it in one of [our forums](#asking-for-help).
|
|
48
48
|
|
|
49
49
|
#### Updating an exercise test suite
|
|
50
|
-
Updating the test suite of an existing exercise is a special case because it usually affects all languages. Read more about it [here](https://github.com/exercism/
|
|
50
|
+
Updating the test suite of an existing exercise is a special case because it usually affects all languages. Read more about it [here](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md#updating-an-exercise-test-suite).
|
|
51
51
|
Note that the test suite must run within a couple of seconds.
|
|
52
52
|
|
|
53
53
|
### Repository structure and conventions
|
|
54
|
-
A general description of all the files and directories can be found [here](https://github.com/exercism/
|
|
54
|
+
A general description of all the files and directories can be found [here](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md#track-anatomy).
|
|
55
55
|
|
|
56
56
|
#### Directory structure
|
|
57
57
|
```bash
|
|
@@ -99,7 +99,7 @@ Each exercise has the following structure:
|
|
|
99
99
|
To report a bug you should [create an issue](https://help.github.com/articles/creating-an-issue/) [here](https://github.com/exercism/xr/issues).
|
|
100
100
|
|
|
101
101
|
### Writing a pull request
|
|
102
|
-
To fix a bug you should [create a pull request from a fork](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) [here](https://github.com/exercism/xr/pulls). See also [here](https://github.com/exercism/
|
|
102
|
+
To fix a bug you should [create a pull request from a fork](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) [here](https://github.com/exercism/xr/pulls). See also [here](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md#git-basics) for more information.
|
|
103
103
|
|
|
104
104
|
### Development dependencies
|
|
105
105
|
You'll need to have a recent version of [R](https://cran.r-project.org/) installed on your system, as well as the `testthat` package (run `install.packages('testthat')` from the R console to install) in order to run tests.
|
data/tracks/r/config.json
CHANGED
|
@@ -4,184 +4,256 @@
|
|
|
4
4
|
"repository": "https://github.com/exercism/r",
|
|
5
5
|
"checklist_issue": 5,
|
|
6
6
|
"active": false,
|
|
7
|
-
"deprecated": [
|
|
8
|
-
|
|
9
|
-
],
|
|
10
7
|
"foregone": [
|
|
11
8
|
|
|
12
9
|
],
|
|
13
10
|
"exercises": [
|
|
14
11
|
{
|
|
15
|
-
"
|
|
12
|
+
"uuid": "285404a4-d8f8-469d-b183-920b08ba2430",
|
|
16
13
|
"slug": "hello-world",
|
|
14
|
+
"core": false,
|
|
15
|
+
"unlocked_by": null,
|
|
16
|
+
"difficulty": 1,
|
|
17
17
|
"topics": [
|
|
18
18
|
|
|
19
19
|
]
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
|
-
"
|
|
22
|
+
"uuid": "4be11d9f-db6a-4edd-af35-7d33d2dc9c0f",
|
|
23
23
|
"slug": "leap",
|
|
24
|
+
"core": false,
|
|
25
|
+
"unlocked_by": null,
|
|
26
|
+
"difficulty": 1,
|
|
24
27
|
"topics": [
|
|
25
28
|
|
|
26
29
|
]
|
|
27
30
|
},
|
|
28
31
|
{
|
|
29
|
-
"
|
|
32
|
+
"uuid": "da01ce65-8c7d-4646-ace4-c067d92f656b",
|
|
30
33
|
"slug": "bob",
|
|
34
|
+
"core": false,
|
|
35
|
+
"unlocked_by": null,
|
|
36
|
+
"difficulty": 1,
|
|
31
37
|
"topics": [
|
|
32
38
|
|
|
33
39
|
]
|
|
34
40
|
},
|
|
35
41
|
{
|
|
36
|
-
"
|
|
42
|
+
"uuid": "dcc7171a-6b7d-4749-a300-a7270a095486",
|
|
37
43
|
"slug": "hamming",
|
|
44
|
+
"core": false,
|
|
45
|
+
"unlocked_by": null,
|
|
46
|
+
"difficulty": 1,
|
|
38
47
|
"topics": [
|
|
39
48
|
|
|
40
49
|
]
|
|
41
50
|
},
|
|
42
51
|
{
|
|
43
|
-
"
|
|
52
|
+
"uuid": "12e17ede-ff59-45d1-8c66-b07b7ede5702",
|
|
44
53
|
"slug": "rna-transcription",
|
|
54
|
+
"core": false,
|
|
55
|
+
"unlocked_by": null,
|
|
56
|
+
"difficulty": 1,
|
|
45
57
|
"topics": [
|
|
46
58
|
|
|
47
59
|
]
|
|
48
60
|
},
|
|
49
61
|
{
|
|
50
|
-
"
|
|
62
|
+
"uuid": "6a562684-5938-4ad9-b042-7b44a8cc4561",
|
|
51
63
|
"slug": "difference-of-squares",
|
|
64
|
+
"core": false,
|
|
65
|
+
"unlocked_by": null,
|
|
66
|
+
"difficulty": 1,
|
|
52
67
|
"topics": [
|
|
53
68
|
|
|
54
69
|
]
|
|
55
70
|
},
|
|
56
71
|
{
|
|
57
|
-
"
|
|
72
|
+
"uuid": "955604ef-266f-42c9-abde-ce0fdc2d33ad",
|
|
58
73
|
"slug": "raindrops",
|
|
74
|
+
"core": false,
|
|
75
|
+
"unlocked_by": null,
|
|
76
|
+
"difficulty": 1,
|
|
59
77
|
"topics": [
|
|
60
78
|
|
|
61
79
|
]
|
|
62
80
|
},
|
|
63
81
|
{
|
|
64
|
-
"
|
|
82
|
+
"uuid": "fb1b7105-98f5-4f4f-8f5c-c410844cc4d3",
|
|
65
83
|
"slug": "grains",
|
|
84
|
+
"core": false,
|
|
85
|
+
"unlocked_by": null,
|
|
86
|
+
"difficulty": 1,
|
|
66
87
|
"topics": [
|
|
67
88
|
|
|
68
89
|
]
|
|
69
90
|
},
|
|
70
91
|
{
|
|
71
|
-
"
|
|
92
|
+
"uuid": "105a3de5-3dea-4880-927a-6eed89a97a07",
|
|
72
93
|
"slug": "anagram",
|
|
94
|
+
"core": false,
|
|
95
|
+
"unlocked_by": null,
|
|
96
|
+
"difficulty": 1,
|
|
73
97
|
"topics": [
|
|
74
98
|
|
|
75
99
|
]
|
|
76
100
|
},
|
|
77
101
|
{
|
|
78
|
-
"
|
|
102
|
+
"uuid": "b8b3a324-8d62-49d4-ba28-886883e5c549",
|
|
79
103
|
"slug": "space-age",
|
|
104
|
+
"core": false,
|
|
105
|
+
"unlocked_by": null,
|
|
106
|
+
"difficulty": 1,
|
|
80
107
|
"topics": [
|
|
81
108
|
|
|
82
109
|
]
|
|
83
110
|
},
|
|
84
111
|
{
|
|
85
|
-
"
|
|
112
|
+
"uuid": "581b968c-f78f-4b60-9eb0-8c73eeeb96af",
|
|
86
113
|
"slug": "sum-of-multiples",
|
|
114
|
+
"core": false,
|
|
115
|
+
"unlocked_by": null,
|
|
116
|
+
"difficulty": 1,
|
|
87
117
|
"topics": [
|
|
88
118
|
|
|
89
119
|
]
|
|
90
120
|
},
|
|
91
121
|
{
|
|
92
|
-
"
|
|
122
|
+
"uuid": "a7cbf043-504b-4fc8-b7fb-33a88ac7962d",
|
|
93
123
|
"slug": "word-count",
|
|
124
|
+
"core": false,
|
|
125
|
+
"unlocked_by": null,
|
|
126
|
+
"difficulty": 1,
|
|
94
127
|
"topics": [
|
|
95
128
|
|
|
96
129
|
]
|
|
97
130
|
},
|
|
98
131
|
{
|
|
99
|
-
"
|
|
132
|
+
"uuid": "e5166378-e3fc-4393-b4f8-4c36da444c56",
|
|
100
133
|
"slug": "phone-number",
|
|
134
|
+
"core": false,
|
|
135
|
+
"unlocked_by": null,
|
|
136
|
+
"difficulty": 1,
|
|
101
137
|
"topics": [
|
|
102
138
|
|
|
103
139
|
]
|
|
104
140
|
},
|
|
105
141
|
{
|
|
106
|
-
"
|
|
142
|
+
"uuid": "8bde91c5-2fe7-4f8d-91ec-ed05284b9a49",
|
|
107
143
|
"slug": "rotational-cipher",
|
|
144
|
+
"core": false,
|
|
145
|
+
"unlocked_by": null,
|
|
146
|
+
"difficulty": 1,
|
|
108
147
|
"topics": [
|
|
109
148
|
|
|
110
149
|
]
|
|
111
150
|
},
|
|
112
151
|
{
|
|
113
|
-
"
|
|
152
|
+
"uuid": "c82dfe0c-77c9-4a3b-8110-962a9547ac64",
|
|
114
153
|
"slug": "scrabble-score",
|
|
154
|
+
"core": false,
|
|
155
|
+
"unlocked_by": null,
|
|
156
|
+
"difficulty": 1,
|
|
115
157
|
"topics": [
|
|
116
158
|
|
|
117
159
|
]
|
|
118
160
|
},
|
|
119
161
|
{
|
|
120
|
-
"
|
|
162
|
+
"uuid": "4ea6d28b-f2bd-4785-ad9f-8eed6a9c67eb",
|
|
121
163
|
"slug": "isogram",
|
|
164
|
+
"core": false,
|
|
165
|
+
"unlocked_by": null,
|
|
166
|
+
"difficulty": 1,
|
|
122
167
|
"topics": [
|
|
123
168
|
|
|
124
169
|
]
|
|
125
170
|
},
|
|
126
171
|
{
|
|
127
|
-
"
|
|
172
|
+
"uuid": "3fd2d6dd-6d4d-4b7f-9f1e-0de11899dcb5",
|
|
128
173
|
"slug": "beer-song",
|
|
129
|
-
"
|
|
130
|
-
|
|
174
|
+
"core": false,
|
|
175
|
+
"unlocked_by": null,
|
|
176
|
+
"difficulty": 1,
|
|
177
|
+
"topics": [
|
|
178
|
+
|
|
131
179
|
]
|
|
132
180
|
},
|
|
133
181
|
{
|
|
134
|
-
"
|
|
182
|
+
"uuid": "cef7ba44-5b9a-4fc3-b853-9b598e743ba8",
|
|
135
183
|
"slug": "perfect-numbers",
|
|
184
|
+
"core": false,
|
|
185
|
+
"unlocked_by": null,
|
|
186
|
+
"difficulty": 1,
|
|
136
187
|
"topics": [
|
|
137
188
|
|
|
138
189
|
]
|
|
139
190
|
},
|
|
140
191
|
{
|
|
141
|
-
"
|
|
192
|
+
"uuid": "ee849e23-d709-4e4a-ab89-07a87e13e4fb",
|
|
142
193
|
"slug": "prime-factors",
|
|
194
|
+
"core": false,
|
|
195
|
+
"unlocked_by": null,
|
|
196
|
+
"difficulty": 1,
|
|
143
197
|
"topics": [
|
|
144
198
|
|
|
145
199
|
]
|
|
146
200
|
},
|
|
147
201
|
{
|
|
148
|
-
"
|
|
202
|
+
"uuid": "dabc8218-8ab8-4918-85d3-0afd5b6791c6",
|
|
149
203
|
"slug": "sieve",
|
|
204
|
+
"core": false,
|
|
205
|
+
"unlocked_by": null,
|
|
206
|
+
"difficulty": 1,
|
|
150
207
|
"topics": [
|
|
151
208
|
|
|
152
209
|
]
|
|
153
210
|
},
|
|
154
211
|
{
|
|
155
|
-
"
|
|
212
|
+
"uuid": "a1b4bde3-2ee7-42dd-85c5-4303ae546d15",
|
|
156
213
|
"slug": "largest-series-product",
|
|
214
|
+
"core": false,
|
|
215
|
+
"unlocked_by": null,
|
|
216
|
+
"difficulty": 1,
|
|
157
217
|
"topics": [
|
|
158
218
|
|
|
159
219
|
]
|
|
160
220
|
},
|
|
161
221
|
{
|
|
162
|
-
"
|
|
222
|
+
"uuid": "33157f48-a2d9-4fae-a9c8-5df547473f1a",
|
|
163
223
|
"slug": "luhn",
|
|
224
|
+
"core": false,
|
|
225
|
+
"unlocked_by": null,
|
|
226
|
+
"difficulty": 1,
|
|
164
227
|
"topics": [
|
|
165
228
|
|
|
166
229
|
]
|
|
167
230
|
},
|
|
168
231
|
{
|
|
169
|
-
"
|
|
232
|
+
"uuid": "eacc30e1-d02c-4ccb-b1f7-3d4f16358726",
|
|
170
233
|
"slug": "secret-handshake",
|
|
234
|
+
"core": false,
|
|
235
|
+
"unlocked_by": null,
|
|
236
|
+
"difficulty": 1,
|
|
171
237
|
"topics": [
|
|
172
238
|
|
|
173
239
|
]
|
|
174
240
|
},
|
|
175
241
|
{
|
|
176
|
-
"
|
|
242
|
+
"uuid": "f3e93545-7466-4635-b508-7e02517fdf06",
|
|
177
243
|
"slug": "pascals-triangle",
|
|
244
|
+
"core": false,
|
|
245
|
+
"unlocked_by": null,
|
|
246
|
+
"difficulty": 1,
|
|
178
247
|
"topics": [
|
|
179
248
|
|
|
180
249
|
]
|
|
181
250
|
},
|
|
182
251
|
{
|
|
183
|
-
"
|
|
252
|
+
"uuid": "acf63670-7e56-47c1-9f33-7ec076d5270f",
|
|
184
253
|
"slug": "tournament",
|
|
254
|
+
"core": false,
|
|
255
|
+
"unlocked_by": null,
|
|
256
|
+
"difficulty": 1,
|
|
185
257
|
"topics": [
|
|
186
258
|
|
|
187
259
|
]
|