trackler 2.0.6.33 → 2.0.6.34
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/delphi/exercises/beer-song/inputdata.txt +7 -0
- data/tracks/delphi/exercises/beer-song/uBeerSongExample.pas +12 -12
- data/tracks/delphi/exercises/beer-song/uBeerSongTests.pas +74 -59
- data/tracks/elixir/exercises/grains/example.exs +3 -2
- data/tracks/elixir/exercises/grains/grains_test.exs +24 -8
- data/tracks/go/exercises/binary-search/binary_search_test.go +8 -0
- data/tracks/go/exercises/binary-search/example.go +2 -0
- data/tracks/go/exercises/binary/binary_test.go +5 -2
- data/tracks/go/exercises/variable-length-quantity/example.go +2 -0
- data/tracks/go/exercises/variable-length-quantity/variable_length_quantity_test.go +8 -0
- data/tracks/go/exercises/word-count/word_count_test.go +4 -1
- data/tracks/julia/config.json +26 -0
- data/tracks/julia/exercises/gigasecond/example.jl +1 -0
- data/tracks/julia/exercises/gigasecond/gigasecond.jl +3 -0
- data/tracks/julia/exercises/gigasecond/runtests.jl +15 -0
- data/tracks/julia/exercises/roman-numerals/example.jl +21 -0
- data/tracks/julia/exercises/roman-numerals/roman-numerals.jl +3 -0
- data/tracks/julia/exercises/roman-numerals/runtests.jl +37 -0
- data/tracks/julia/exercises/transpose/example.jl +20 -0
- data/tracks/julia/exercises/transpose/runtests.jl +212 -0
- data/tracks/julia/exercises/transpose/transpose.jl +3 -0
- data/tracks/kotlin/.travis.yml +5 -2
- data/tracks/kotlin/bin/{build.sh → unit-tests.sh} +8 -6
- data/tracks/kotlin/exercises/_template/build.gradle +6 -0
- data/tracks/kotlin/exercises/accumulate/build.gradle +6 -0
- data/tracks/kotlin/exercises/accumulate/src/test/kotlin/AccumulateTest.kt +7 -0
- data/tracks/kotlin/exercises/acronym/build.gradle +6 -0
- data/tracks/kotlin/exercises/acronym/src/test/kotlin/AcronymTest.kt +7 -0
- data/tracks/kotlin/exercises/allergies/build.gradle +6 -0
- data/tracks/kotlin/exercises/allergies/src/test/kotlin/AllergiesTest.kt +20 -0
- data/tracks/kotlin/exercises/anagram/build.gradle +6 -0
- data/tracks/kotlin/exercises/anagram/src/test/kotlin/AnagramTest.kt +11 -0
- data/tracks/kotlin/exercises/atbash-cipher/build.gradle +6 -0
- data/tracks/kotlin/exercises/atbash-cipher/src/test/kotlin/AtbashTest.kt +3 -0
- data/tracks/kotlin/exercises/beer-song/build.gradle +6 -0
- data/tracks/kotlin/exercises/beer-song/src/test/kotlin/BeerSongTest.kt +13 -0
- data/tracks/kotlin/exercises/binary-search/build.gradle +6 -0
- data/tracks/kotlin/exercises/binary-search/src/test/kotlin/BinarySearchTest.kt +9 -0
- data/tracks/kotlin/exercises/binary/build.gradle +6 -0
- data/tracks/kotlin/exercises/binary/src/test/kotlin/BinaryTest.kt +2 -0
- data/tracks/kotlin/exercises/bob/build.gradle +6 -0
- data/tracks/kotlin/exercises/bob/src/test/kotlin/BobTest.kt +19 -0
- data/tracks/kotlin/exercises/bracket-push/build.gradle +6 -0
- data/tracks/kotlin/exercises/bracket-push/src/test/kotlin/BracketPushTest.kt +2 -0
- data/tracks/kotlin/exercises/build.gradle +17 -1
- data/tracks/kotlin/exercises/change/build.gradle +6 -0
- data/tracks/kotlin/exercises/change/src/test/kotlin/ChangeTest.kt +9 -0
- data/tracks/kotlin/exercises/difference-of-squares/build.gradle +6 -0
- data/tracks/kotlin/exercises/difference-of-squares/src/test/kotlin/SquaresTest.kt +13 -1
- data/tracks/kotlin/exercises/etl/build.gradle +6 -0
- data/tracks/kotlin/exercises/etl/src/test/kotlin/ETLTest.kt +5 -0
- data/tracks/kotlin/exercises/flatten-array/build.gradle +6 -0
- data/tracks/kotlin/exercises/flatten-array/src/test/kotlin/FlattenerTest.kt +9 -1
- data/tracks/kotlin/exercises/gigasecond/build.gradle +6 -0
- data/tracks/kotlin/exercises/gigasecond/src/test/kotlin/GigasecondTest.kt +6 -0
- data/tracks/kotlin/exercises/grade-school/build.gradle +6 -0
- data/tracks/kotlin/exercises/grade-school/src/test/kotlin/SchoolTest.kt +8 -0
- data/tracks/kotlin/exercises/hamming/build.gradle +6 -0
- data/tracks/kotlin/exercises/hamming/src/test/kotlin/HammingTest.kt +10 -0
- data/tracks/kotlin/exercises/hello-world/build.gradle +6 -0
- data/tracks/kotlin/exercises/hello-world/src/test/kotlin/HelloWorldTest.kt +6 -0
- data/tracks/kotlin/exercises/hexadecimal/build.gradle +6 -0
- data/tracks/kotlin/exercises/hexadecimal/src/test/kotlin/HexadecimalTest.kt +2 -0
- data/tracks/kotlin/exercises/isogram/build.gradle +6 -0
- data/tracks/kotlin/exercises/isogram/src/test/kotlin/IsogramTest.kt +2 -0
- data/tracks/kotlin/exercises/largest-series-product/build.gradle +6 -0
- data/tracks/kotlin/exercises/largest-series-product/src/test/kotlin/SeriesInvalidInputTest.kt +5 -0
- data/tracks/kotlin/exercises/largest-series-product/src/test/kotlin/SeriesValidInputTest.kt +2 -0
- data/tracks/kotlin/exercises/leap/build.gradle +6 -0
- data/tracks/kotlin/exercises/leap/src/test/kotlin/LeapTest.kt +8 -0
- data/tracks/kotlin/exercises/linked-list/build.gradle +6 -0
- data/tracks/kotlin/exercises/linked-list/src/test/kotlin/DequeTest.kt +6 -0
- data/tracks/kotlin/exercises/luhn/build.gradle +6 -0
- data/tracks/kotlin/exercises/luhn/src/test/kotlin/LuhnTest.kt +11 -0
- data/tracks/kotlin/exercises/nth-prime/build.gradle +6 -0
- data/tracks/kotlin/exercises/nth-prime/src/test/kotlin/PrimeTest.kt +6 -0
- data/tracks/kotlin/exercises/nucleotide-count/build.gradle +6 -0
- data/tracks/kotlin/exercises/nucleotide-count/src/test/kotlin/NucleotideTest.kt +12 -1
- data/tracks/kotlin/exercises/pangram/build.gradle +6 -0
- data/tracks/kotlin/exercises/pangram/src/test/kotlin/PangramTest.kt +11 -0
- data/tracks/kotlin/exercises/pascals-triangle/build.gradle +6 -0
- data/tracks/kotlin/exercises/pascals-triangle/src/test/kotlin/PascalsTriangleTest.kt +5 -0
- data/tracks/kotlin/exercises/phone-number/build.gradle +6 -0
- data/tracks/kotlin/exercises/phone-number/src/test/kotlin/PhoneNumberTest.kt +9 -0
- data/tracks/kotlin/exercises/pig-latin/build.gradle +6 -0
- data/tracks/kotlin/exercises/pig-latin/src/test/kotlin/PigLatinTest.kt +2 -0
- data/tracks/kotlin/exercises/raindrops/build.gradle +6 -0
- data/tracks/kotlin/exercises/raindrops/src/test/kotlin/RaindropsTest.kt +2 -0
- data/tracks/kotlin/exercises/rna-transcription/build.gradle +6 -0
- data/tracks/kotlin/exercises/rna-transcription/src/test/kotlin/RnaTranscriptionTest.kt +8 -1
- data/tracks/kotlin/exercises/robot-name/build.gradle +6 -0
- data/tracks/kotlin/exercises/robot-name/src/test/kotlin/RobotTest.kt +4 -0
- data/tracks/kotlin/exercises/roman-numerals/build.gradle +6 -0
- data/tracks/kotlin/exercises/roman-numerals/src/test/kotlin/RomanNumeralTest.kt +2 -0
- data/tracks/kotlin/exercises/scrabble-score/build.gradle +6 -0
- data/tracks/kotlin/exercises/scrabble-score/src/test/kotlin/ScrabbleScoreTest.kt +2 -0
- data/tracks/kotlin/exercises/series/build.gradle +6 -0
- data/tracks/kotlin/exercises/series/src/test/kotlin/SeriesTest.kt +4 -0
- data/tracks/kotlin/exercises/sieve/build.gradle +6 -0
- data/tracks/kotlin/exercises/sieve/src/test/kotlin/SieveTest.kt +4 -0
- data/tracks/kotlin/exercises/simple-cipher/build.gradle +6 -0
- data/tracks/kotlin/exercises/simple-cipher/src/test/kotlin/IncorrectKeyCipherTest.kt +6 -0
- data/tracks/kotlin/exercises/simple-cipher/src/test/kotlin/RandomKeyCipherTest.kt +7 -0
- data/tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt +9 -0
- data/tracks/kotlin/exercises/space-age/build.gradle +6 -0
- data/tracks/kotlin/exercises/space-age/src/test/kotlin/SpaceAgeTest.kt +10 -0
- data/tracks/kotlin/exercises/strain/build.gradle +6 -0
- data/tracks/kotlin/exercises/strain/src/test/kotlin/StrainTest.kt +13 -0
- data/tracks/kotlin/exercises/word-count/build.gradle +6 -0
- data/tracks/kotlin/exercises/word-count/src/test/kotlin/WordCountTest.kt +8 -0
- data/tracks/objective-c/circle.yml +1 -1
- data/tracks/perl6/.travis.yml +2 -2
- data/tracks/perl6/config.json +5 -0
- data/tracks/perl6/docs/TESTS.md +78 -18
- data/tracks/perl6/exercises/allergies/{Example.p6 → Example.pm} +0 -0
- data/tracks/perl6/exercises/allergies/allergies.t +2 -7
- data/tracks/perl6/exercises/atbash-cipher/{Example.p6 → Example.pm} +0 -0
- data/tracks/perl6/exercises/atbash-cipher/cipher.t +2 -7
- data/tracks/perl6/exercises/linked-list/Example.pm6 +51 -0
- data/tracks/perl6/exercises/linked-list/linked-list.t +91 -0
- data/tracks/perl6/exercises/space-age/{Example.p6 → Example.pm} +0 -0
- data/tracks/perl6/exercises/space-age/space-age.t +2 -7
- data/tracks/perl6/exercises/trinary/{Example.p6 → Example.pm} +0 -0
- data/tracks/perl6/exercises/trinary/trinary.t +2 -7
- data/tracks/perl6/exercises/wordy/{Example.p6 → Example.pm} +0 -0
- data/tracks/perl6/exercises/wordy/wordy.t +2 -7
- data/tracks/pony/README.md +4 -27
- data/tracks/pony/config.json +16 -0
- data/tracks/pony/exercises/atbash-cipher/example.pony +40 -0
- data/tracks/pony/exercises/atbash-cipher/test.pony +67 -0
- data/tracks/pony/exercises/beer-song/example.pony +44 -0
- data/tracks/pony/exercises/beer-song/test.pony +27 -0
- data/tracks/pony/exercises/rna-transcription/test.pony +1 -1
- data/tracks/prolog/docs/INSTALLATION.md +1 -1
- data/tracks/prolog/docs/TESTS.md +2 -2
- metadata +24 -8
File without changes
|
@@ -5,13 +5,8 @@ use JSON::Tiny;
|
|
5
5
|
|
6
6
|
use lib ( my $dir = IO::Path.new($?FILE).parent ).path;
|
7
7
|
|
8
|
-
my $
|
9
|
-
|
10
|
-
|
11
|
-
my $module = first { $dir.child($_).e }, |@potential_module
|
12
|
-
or die "No file '$module_name.p6' found\n";
|
13
|
-
|
14
|
-
require $module <&age-on>;
|
8
|
+
my $module = %*ENV<EXERCISM> ?? 'Example' !! 'SpaceAge';
|
9
|
+
require ::($module) <&age-on>;
|
15
10
|
|
16
11
|
plan 8;
|
17
12
|
|
File without changes
|
@@ -4,13 +4,8 @@ use Test;
|
|
4
4
|
|
5
5
|
use lib ( my $dir = IO::Path.new($?FILE).parent ).path;
|
6
6
|
|
7
|
-
my $
|
8
|
-
|
9
|
-
|
10
|
-
my $module = first { $dir.child($_).e }, |@potential_module
|
11
|
-
or die "No file '$module_name.p6' found\n";
|
12
|
-
|
13
|
-
require $module <&to-decimal>;
|
7
|
+
my $module = %*ENV<EXERCISM> ?? 'Example' !! 'Trinary';
|
8
|
+
require ::($module) <&to-decimal>;
|
14
9
|
|
15
10
|
my @cases = (
|
16
11
|
{
|
File without changes
|
@@ -5,13 +5,8 @@ use JSON::Tiny;
|
|
5
5
|
|
6
6
|
use lib ( my $dir = IO::Path.new($?FILE).parent ).path;
|
7
7
|
|
8
|
-
my $
|
9
|
-
|
10
|
-
|
11
|
-
my $module = first { $dir.child($_).e }, |@potential_module
|
12
|
-
or die "No file '$module_name.p6' found\n";
|
13
|
-
|
14
|
-
require $module <&answer>;
|
8
|
+
my $module = %*ENV<EXERCISM> ?? 'Example' !! 'Wordy';
|
9
|
+
require ::($module) <&answer>;
|
15
10
|
|
16
11
|
plan 16;
|
17
12
|
|
data/tracks/pony/README.md
CHANGED
@@ -1,35 +1,12 @@
|
|
1
1
|
# xPony
|
2
2
|
|
3
|
-
|
3
|
+
[![Build Status](https://travis-ci.org/exercism/xpony.svg?branch=master)](https://travis-ci.org/exercism/xpony)
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
First, install [ponyc](https://github.com/CausalityLtd/ponyc).
|
8
|
-
|
9
|
-
There's a tutorial and sandbox for playing with Pony at [ponylang.org](http://ponylang.org)
|
10
|
-
|
11
|
-
NB `ponyc` will not work without Unicode support for PCRE, available
|
12
|
-
starting in libpcre 10.10. Most OSs ship with libpcre 8.x, so you'll
|
13
|
-
probably need to download and compile the latest [PCRE](http://pcre.org/)
|
14
|
-
|
15
|
-
(You can do this after installing ponyc, it's okay.)
|
16
|
-
|
17
|
-
Then write your example and the test using [ponytest](https://github.com/CausalityLtd/ponyc/tree/master/packages/ponytest).
|
18
|
-
|
19
|
-
The `ponyc` compiler doesn't care what your files are called, so you can just
|
20
|
-
call your example `example.pony`; the Main actor will be in the test file,
|
21
|
-
so it's all good.
|
22
|
-
|
23
|
-
## Running tests
|
24
|
-
|
25
|
-
Run `ponyc` in your exercise directory. if it compiles, you did something right.
|
26
|
-
|
27
|
-
The compiled binary, `./exercise-name` runs the tests in its Main actor, so
|
28
|
-
just run the binary and see if your tests passed.
|
5
|
+
Exercism exercises in Pony.
|
29
6
|
|
30
7
|
## Contributing Guide
|
31
8
|
|
32
|
-
Please see the [contributing guide](https://github.com/exercism/x-
|
9
|
+
Please see the [contributing guide](https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md).
|
33
10
|
|
34
11
|
## License
|
35
12
|
|
@@ -38,4 +15,4 @@ The MIT License (MIT)
|
|
38
15
|
Copyright (c) 2015 Katrina Owen, _@kytrinyx.com
|
39
16
|
|
40
17
|
### Pony icon
|
41
|
-
The icon of a pony in use here is in the public domain.
|
18
|
+
The icon of a pony in use here is in the public domain.
|
data/tracks/pony/config.json
CHANGED
@@ -71,6 +71,22 @@
|
|
71
71
|
"errors",
|
72
72
|
"math"
|
73
73
|
]
|
74
|
+
},
|
75
|
+
{
|
76
|
+
"slug": "beer-song",
|
77
|
+
"difficulty": 1,
|
78
|
+
"topics": [
|
79
|
+
"strings",
|
80
|
+
"match"
|
81
|
+
]
|
82
|
+
},
|
83
|
+
{
|
84
|
+
"slug": "atbash-cipher",
|
85
|
+
"difficulty": 1,
|
86
|
+
"topics": [
|
87
|
+
"strings",
|
88
|
+
"iterators"
|
89
|
+
]
|
74
90
|
}
|
75
91
|
]
|
76
92
|
}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
use "itertools"
|
2
|
+
|
3
|
+
primitive Atbash
|
4
|
+
fun _transpose(c: U8): U8 =>
|
5
|
+
if (('a' <= c) and (c <= 'z')) then
|
6
|
+
('z' - c) + 'a'
|
7
|
+
else
|
8
|
+
c
|
9
|
+
end
|
10
|
+
|
11
|
+
fun _transposable(c: U8): Bool =>
|
12
|
+
(('a' <= c) and (c <= 'z')) or (('0' <= c) and (c <= '9'))
|
13
|
+
|
14
|
+
fun _group(groups: Array[String ref], c: U8): Array[String ref]^ =>
|
15
|
+
let last_idx = groups.size() - 1
|
16
|
+
let last = try groups(last_idx) else String end
|
17
|
+
if last.size() < 5 then
|
18
|
+
last.push(c)
|
19
|
+
else
|
20
|
+
last.push(' ')
|
21
|
+
groups.push(String(6).>push(c))
|
22
|
+
end
|
23
|
+
groups
|
24
|
+
|
25
|
+
fun encode(input: String): String iso^ =>
|
26
|
+
try
|
27
|
+
String.join(
|
28
|
+
Iter[U8](input.lower().values())
|
29
|
+
.filter(this~_transposable())
|
30
|
+
.map[U8]({(c: U8): U8 => Atbash._transpose(c)})
|
31
|
+
.fold[Array[String ref]](this~_group(), [String(6)]))
|
32
|
+
else
|
33
|
+
recover String end
|
34
|
+
end
|
35
|
+
|
36
|
+
fun decode(input: String): String iso^ =>
|
37
|
+
Iter[U8](input.values())
|
38
|
+
.filter({(c: U8): Bool => c != ' '})
|
39
|
+
.map[U8](this~_transpose())
|
40
|
+
.collect[String iso](recover String end)
|
@@ -0,0 +1,67 @@
|
|
1
|
+
use "ponytest"
|
2
|
+
|
3
|
+
actor Main is TestList
|
4
|
+
new create(env: Env) =>
|
5
|
+
PonyTest(env, this)
|
6
|
+
|
7
|
+
fun tag tests(test: PonyTest) =>
|
8
|
+
test(_TestAtbashEncode)
|
9
|
+
test(_TestAtbashDecode)
|
10
|
+
|
11
|
+
class iso _TestAtbashEncode is UnitTest
|
12
|
+
fun name(): String => "atbash-cipher/Atbash.encode"
|
13
|
+
|
14
|
+
fun apply(h: TestHelper) =>
|
15
|
+
let tests = [
|
16
|
+
(
|
17
|
+
"yes",
|
18
|
+
"bvh"
|
19
|
+
),(
|
20
|
+
"no",
|
21
|
+
"ml"
|
22
|
+
),(
|
23
|
+
"OMG",
|
24
|
+
"lnt"
|
25
|
+
),(
|
26
|
+
"O M G",
|
27
|
+
"lnt"
|
28
|
+
),(
|
29
|
+
"mindblowingly",
|
30
|
+
"nrmwy oldrm tob"
|
31
|
+
),(
|
32
|
+
"Testing,1 2 3, testing.",
|
33
|
+
"gvhgr mt123 gvhgr mt"
|
34
|
+
),(
|
35
|
+
"Truth is fiction.",
|
36
|
+
"gifgs rhurx grlm"
|
37
|
+
),(
|
38
|
+
"The quick brown fox jumps over the lazy dog.",
|
39
|
+
"gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt"
|
40
|
+
)
|
41
|
+
]
|
42
|
+
for (input, expected) in tests.values() do
|
43
|
+
h.assert_eq[String](Atbash.encode(input), expected)
|
44
|
+
end
|
45
|
+
|
46
|
+
class iso _TestAtbashDecode is UnitTest
|
47
|
+
fun name(): String => "atbash-cipher/Atbash.decode"
|
48
|
+
|
49
|
+
fun apply(h: TestHelper) =>
|
50
|
+
let tests = [
|
51
|
+
(
|
52
|
+
"vcvix rhn",
|
53
|
+
"exercism"
|
54
|
+
),(
|
55
|
+
"zmlyh gzxov rhlug vmzhg vkkrm thglm v",
|
56
|
+
"anobstacleisoftenasteppingstone"
|
57
|
+
),(
|
58
|
+
"gvhgr mt123 gvhgr mt",
|
59
|
+
"testing123testing"
|
60
|
+
),(
|
61
|
+
"gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt",
|
62
|
+
"thequickbrownfoxjumpsoverthelazydog"
|
63
|
+
)
|
64
|
+
]
|
65
|
+
for (input, expected) in tests.values() do
|
66
|
+
h.assert_eq[String](Atbash.decode(input), expected)
|
67
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
use "collections"
|
2
|
+
use "itertools"
|
3
|
+
|
4
|
+
primitive BeerSong
|
5
|
+
fun verse(n: USize): String =>
|
6
|
+
match n
|
7
|
+
| 0 =>
|
8
|
+
"""
|
9
|
+
No more bottles of beer on the wall, no more bottles of beer.
|
10
|
+
Go to the store and buy some more, 99 bottles of beer on the wall.
|
11
|
+
"""
|
12
|
+
| 1 =>
|
13
|
+
"""
|
14
|
+
1 bottle of beer on the wall, 1 bottle of beer.
|
15
|
+
Take it down and pass it around, no more bottles of beer on the wall.
|
16
|
+
"""
|
17
|
+
| 2 =>
|
18
|
+
"""
|
19
|
+
2 bottles of beer on the wall, 2 bottles of beer.
|
20
|
+
Take one down and pass it around, 1 bottle of beer on the wall.
|
21
|
+
"""
|
22
|
+
else
|
23
|
+
let ns: String = n.string()
|
24
|
+
let ns': String = (n - 1).string()
|
25
|
+
recover String
|
26
|
+
.>append(ns)
|
27
|
+
.>append(" bottles of beer on the wall, ")
|
28
|
+
.>append(ns)
|
29
|
+
.>append(" bottles of beer.\nTake one down and pass it around, ")
|
30
|
+
.>append(ns')
|
31
|
+
.>append(" bottles of beer on the wall.\n")
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
fun sing(start: USize, stop: USize): String iso^ =>
|
36
|
+
try
|
37
|
+
String.join(
|
38
|
+
Iter[USize](Reverse(start, stop))
|
39
|
+
.map[String]({(n: USize): String => BeerSong.verse(n) + "\n"})
|
40
|
+
.collect(Array[String](start - stop)))
|
41
|
+
.>pop()
|
42
|
+
else
|
43
|
+
recover String end
|
44
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
use "ponytest"
|
2
|
+
|
3
|
+
actor Main is TestList
|
4
|
+
new create(env: Env) =>
|
5
|
+
PonyTest(env, this)
|
6
|
+
|
7
|
+
fun tag tests(test: PonyTest) =>
|
8
|
+
test(_TestBeerSong)
|
9
|
+
|
10
|
+
class iso _TestBeerSong is UnitTest
|
11
|
+
fun name(): String => "beer-song/BeerSong"
|
12
|
+
|
13
|
+
fun apply(h: TestHelper) =>
|
14
|
+
h.assert_eq[String](BeerSong.verse(0),
|
15
|
+
"No more bottles of beer on the wall, no more bottles of beer.\nGo to the store and buy some more, 99 bottles of beer on the wall.\n")
|
16
|
+
h.assert_eq[String](BeerSong.verse(1),
|
17
|
+
"1 bottle of beer on the wall, 1 bottle of beer.\nTake it down and pass it around, no more bottles of beer on the wall.\n")
|
18
|
+
h.assert_eq[String](BeerSong.verse(2),
|
19
|
+
"2 bottles of beer on the wall, 2 bottles of beer.\nTake one down and pass it around, 1 bottle of beer on the wall.\n")
|
20
|
+
h.assert_eq[String](BeerSong.verse(44),
|
21
|
+
"44 bottles of beer on the wall, 44 bottles of beer.\nTake one down and pass it around, 43 bottles of beer on the wall.\n")
|
22
|
+
h.assert_eq[String](BeerSong.verse(99),
|
23
|
+
"99 bottles of beer on the wall, 99 bottles of beer.\nTake one down and pass it around, 98 bottles of beer on the wall.\n")
|
24
|
+
h.assert_eq[String](BeerSong.sing(3, 0),
|
25
|
+
"3 bottles of beer on the wall, 3 bottles of beer.\nTake one down and pass it around, 2 bottles of beer on the wall.\n\n2 bottles of beer on the wall, 2 bottles of beer.\nTake one down and pass it around, 1 bottle of beer on the wall.\n\n1 bottle of beer on the wall, 1 bottle of beer.\nTake it down and pass it around, no more bottles of beer on the wall.\n\nNo more bottles of beer on the wall, no more bottles of beer.\nGo to the store and buy some more, 99 bottles of beer on the wall.\n")
|
26
|
+
h.assert_eq[String](BeerSong.sing(99, 0),
|
27
|
+
"99 bottles of beer on the wall, 99 bottles of beer.\nTake one down and pass it around, 98 bottles of beer on the wall.\n\n98 bottles of beer on the wall, 98 bottles of beer.\nTake one down and pass it around, 97 bottles of beer on the wall.\n\n97 bottles of beer on the wall, 97 bottles of beer.\nTake one down and pass it around, 96 bottles of beer on the wall.\n\n96 bottles of beer on the wall, 96 bottles of beer.\nTake one down and pass it around, 95 bottles of beer on the wall.\n\n95 bottles of beer on the wall, 95 bottles of beer.\nTake one down and pass it around, 94 bottles of beer on the wall.\n\n94 bottles of beer on the wall, 94 bottles of beer.\nTake one down and pass it around, 93 bottles of beer on the wall.\n\n93 bottles of beer on the wall, 93 bottles of beer.\nTake one down and pass it around, 92 bottles of beer on the wall.\n\n92 bottles of beer on the wall, 92 bottles of beer.\nTake one down and pass it around, 91 bottles of beer on the wall.\n\n91 bottles of beer on the wall, 91 bottles of beer.\nTake one down and pass it around, 90 bottles of beer on the wall.\n\n90 bottles of beer on the wall, 90 bottles of beer.\nTake one down and pass it around, 89 bottles of beer on the wall.\n\n89 bottles of beer on the wall, 89 bottles of beer.\nTake one down and pass it around, 88 bottles of beer on the wall.\n\n88 bottles of beer on the wall, 88 bottles of beer.\nTake one down and pass it around, 87 bottles of beer on the wall.\n\n87 bottles of beer on the wall, 87 bottles of beer.\nTake one down and pass it around, 86 bottles of beer on the wall.\n\n86 bottles of beer on the wall, 86 bottles of beer.\nTake one down and pass it around, 85 bottles of beer on the wall.\n\n85 bottles of beer on the wall, 85 bottles of beer.\nTake one down and pass it around, 84 bottles of beer on the wall.\n\n84 bottles of beer on the wall, 84 bottles of beer.\nTake one down and pass it around, 83 bottles of beer on the wall.\n\n83 bottles of beer on the wall, 83 bottles of beer.\nTake one down and pass it around, 82 bottles of beer on the wall.\n\n82 bottles of beer on the wall, 82 bottles of beer.\nTake one down and pass it around, 81 bottles of beer on the wall.\n\n81 bottles of beer on the wall, 81 bottles of beer.\nTake one down and pass it around, 80 bottles of beer on the wall.\n\n80 bottles of beer on the wall, 80 bottles of beer.\nTake one down and pass it around, 79 bottles of beer on the wall.\n\n79 bottles of beer on the wall, 79 bottles of beer.\nTake one down and pass it around, 78 bottles of beer on the wall.\n\n78 bottles of beer on the wall, 78 bottles of beer.\nTake one down and pass it around, 77 bottles of beer on the wall.\n\n77 bottles of beer on the wall, 77 bottles of beer.\nTake one down and pass it around, 76 bottles of beer on the wall.\n\n76 bottles of beer on the wall, 76 bottles of beer.\nTake one down and pass it around, 75 bottles of beer on the wall.\n\n75 bottles of beer on the wall, 75 bottles of beer.\nTake one down and pass it around, 74 bottles of beer on the wall.\n\n74 bottles of beer on the wall, 74 bottles of beer.\nTake one down and pass it around, 73 bottles of beer on the wall.\n\n73 bottles of beer on the wall, 73 bottles of beer.\nTake one down and pass it around, 72 bottles of beer on the wall.\n\n72 bottles of beer on the wall, 72 bottles of beer.\nTake one down and pass it around, 71 bottles of beer on the wall.\n\n71 bottles of beer on the wall, 71 bottles of beer.\nTake one down and pass it around, 70 bottles of beer on the wall.\n\n70 bottles of beer on the wall, 70 bottles of beer.\nTake one down and pass it around, 69 bottles of beer on the wall.\n\n69 bottles of beer on the wall, 69 bottles of beer.\nTake one down and pass it around, 68 bottles of beer on the wall.\n\n68 bottles of beer on the wall, 68 bottles of beer.\nTake one down and pass it around, 67 bottles of beer on the wall.\n\n67 bottles of beer on the wall, 67 bottles of beer.\nTake one down and pass it around, 66 bottles of beer on the wall.\n\n66 bottles of beer on the wall, 66 bottles of beer.\nTake one down and pass it around, 65 bottles of beer on the wall.\n\n65 bottles of beer on the wall, 65 bottles of beer.\nTake one down and pass it around, 64 bottles of beer on the wall.\n\n64 bottles of beer on the wall, 64 bottles of beer.\nTake one down and pass it around, 63 bottles of beer on the wall.\n\n63 bottles of beer on the wall, 63 bottles of beer.\nTake one down and pass it around, 62 bottles of beer on the wall.\n\n62 bottles of beer on the wall, 62 bottles of beer.\nTake one down and pass it around, 61 bottles of beer on the wall.\n\n61 bottles of beer on the wall, 61 bottles of beer.\nTake one down and pass it around, 60 bottles of beer on the wall.\n\n60 bottles of beer on the wall, 60 bottles of beer.\nTake one down and pass it around, 59 bottles of beer on the wall.\n\n59 bottles of beer on the wall, 59 bottles of beer.\nTake one down and pass it around, 58 bottles of beer on the wall.\n\n58 bottles of beer on the wall, 58 bottles of beer.\nTake one down and pass it around, 57 bottles of beer on the wall.\n\n57 bottles of beer on the wall, 57 bottles of beer.\nTake one down and pass it around, 56 bottles of beer on the wall.\n\n56 bottles of beer on the wall, 56 bottles of beer.\nTake one down and pass it around, 55 bottles of beer on the wall.\n\n55 bottles of beer on the wall, 55 bottles of beer.\nTake one down and pass it around, 54 bottles of beer on the wall.\n\n54 bottles of beer on the wall, 54 bottles of beer.\nTake one down and pass it around, 53 bottles of beer on the wall.\n\n53 bottles of beer on the wall, 53 bottles of beer.\nTake one down and pass it around, 52 bottles of beer on the wall.\n\n52 bottles of beer on the wall, 52 bottles of beer.\nTake one down and pass it around, 51 bottles of beer on the wall.\n\n51 bottles of beer on the wall, 51 bottles of beer.\nTake one down and pass it around, 50 bottles of beer on the wall.\n\n50 bottles of beer on the wall, 50 bottles of beer.\nTake one down and pass it around, 49 bottles of beer on the wall.\n\n49 bottles of beer on the wall, 49 bottles of beer.\nTake one down and pass it around, 48 bottles of beer on the wall.\n\n48 bottles of beer on the wall, 48 bottles of beer.\nTake one down and pass it around, 47 bottles of beer on the wall.\n\n47 bottles of beer on the wall, 47 bottles of beer.\nTake one down and pass it around, 46 bottles of beer on the wall.\n\n46 bottles of beer on the wall, 46 bottles of beer.\nTake one down and pass it around, 45 bottles of beer on the wall.\n\n45 bottles of beer on the wall, 45 bottles of beer.\nTake one down and pass it around, 44 bottles of beer on the wall.\n\n44 bottles of beer on the wall, 44 bottles of beer.\nTake one down and pass it around, 43 bottles of beer on the wall.\n\n43 bottles of beer on the wall, 43 bottles of beer.\nTake one down and pass it around, 42 bottles of beer on the wall.\n\n42 bottles of beer on the wall, 42 bottles of beer.\nTake one down and pass it around, 41 bottles of beer on the wall.\n\n41 bottles of beer on the wall, 41 bottles of beer.\nTake one down and pass it around, 40 bottles of beer on the wall.\n\n40 bottles of beer on the wall, 40 bottles of beer.\nTake one down and pass it around, 39 bottles of beer on the wall.\n\n39 bottles of beer on the wall, 39 bottles of beer.\nTake one down and pass it around, 38 bottles of beer on the wall.\n\n38 bottles of beer on the wall, 38 bottles of beer.\nTake one down and pass it around, 37 bottles of beer on the wall.\n\n37 bottles of beer on the wall, 37 bottles of beer.\nTake one down and pass it around, 36 bottles of beer on the wall.\n\n36 bottles of beer on the wall, 36 bottles of beer.\nTake one down and pass it around, 35 bottles of beer on the wall.\n\n35 bottles of beer on the wall, 35 bottles of beer.\nTake one down and pass it around, 34 bottles of beer on the wall.\n\n34 bottles of beer on the wall, 34 bottles of beer.\nTake one down and pass it around, 33 bottles of beer on the wall.\n\n33 bottles of beer on the wall, 33 bottles of beer.\nTake one down and pass it around, 32 bottles of beer on the wall.\n\n32 bottles of beer on the wall, 32 bottles of beer.\nTake one down and pass it around, 31 bottles of beer on the wall.\n\n31 bottles of beer on the wall, 31 bottles of beer.\nTake one down and pass it around, 30 bottles of beer on the wall.\n\n30 bottles of beer on the wall, 30 bottles of beer.\nTake one down and pass it around, 29 bottles of beer on the wall.\n\n29 bottles of beer on the wall, 29 bottles of beer.\nTake one down and pass it around, 28 bottles of beer on the wall.\n\n28 bottles of beer on the wall, 28 bottles of beer.\nTake one down and pass it around, 27 bottles of beer on the wall.\n\n27 bottles of beer on the wall, 27 bottles of beer.\nTake one down and pass it around, 26 bottles of beer on the wall.\n\n26 bottles of beer on the wall, 26 bottles of beer.\nTake one down and pass it around, 25 bottles of beer on the wall.\n\n25 bottles of beer on the wall, 25 bottles of beer.\nTake one down and pass it around, 24 bottles of beer on the wall.\n\n24 bottles of beer on the wall, 24 bottles of beer.\nTake one down and pass it around, 23 bottles of beer on the wall.\n\n23 bottles of beer on the wall, 23 bottles of beer.\nTake one down and pass it around, 22 bottles of beer on the wall.\n\n22 bottles of beer on the wall, 22 bottles of beer.\nTake one down and pass it around, 21 bottles of beer on the wall.\n\n21 bottles of beer on the wall, 21 bottles of beer.\nTake one down and pass it around, 20 bottles of beer on the wall.\n\n20 bottles of beer on the wall, 20 bottles of beer.\nTake one down and pass it around, 19 bottles of beer on the wall.\n\n19 bottles of beer on the wall, 19 bottles of beer.\nTake one down and pass it around, 18 bottles of beer on the wall.\n\n18 bottles of beer on the wall, 18 bottles of beer.\nTake one down and pass it around, 17 bottles of beer on the wall.\n\n17 bottles of beer on the wall, 17 bottles of beer.\nTake one down and pass it around, 16 bottles of beer on the wall.\n\n16 bottles of beer on the wall, 16 bottles of beer.\nTake one down and pass it around, 15 bottles of beer on the wall.\n\n15 bottles of beer on the wall, 15 bottles of beer.\nTake one down and pass it around, 14 bottles of beer on the wall.\n\n14 bottles of beer on the wall, 14 bottles of beer.\nTake one down and pass it around, 13 bottles of beer on the wall.\n\n13 bottles of beer on the wall, 13 bottles of beer.\nTake one down and pass it around, 12 bottles of beer on the wall.\n\n12 bottles of beer on the wall, 12 bottles of beer.\nTake one down and pass it around, 11 bottles of beer on the wall.\n\n11 bottles of beer on the wall, 11 bottles of beer.\nTake one down and pass it around, 10 bottles of beer on the wall.\n\n10 bottles of beer on the wall, 10 bottles of beer.\nTake one down and pass it around, 9 bottles of beer on the wall.\n\n9 bottles of beer on the wall, 9 bottles of beer.\nTake one down and pass it around, 8 bottles of beer on the wall.\n\n8 bottles of beer on the wall, 8 bottles of beer.\nTake one down and pass it around, 7 bottles of beer on the wall.\n\n7 bottles of beer on the wall, 7 bottles of beer.\nTake one down and pass it around, 6 bottles of beer on the wall.\n\n6 bottles of beer on the wall, 6 bottles of beer.\nTake one down and pass it around, 5 bottles of beer on the wall.\n\n5 bottles of beer on the wall, 5 bottles of beer.\nTake one down and pass it around, 4 bottles of beer on the wall.\n\n4 bottles of beer on the wall, 4 bottles of beer.\nTake one down and pass it around, 3 bottles of beer on the wall.\n\n3 bottles of beer on the wall, 3 bottles of beer.\nTake one down and pass it around, 2 bottles of beer on the wall.\n\n2 bottles of beer on the wall, 2 bottles of beer.\nTake one down and pass it around, 1 bottle of beer on the wall.\n\n1 bottle of beer on the wall, 1 bottle of beer.\nTake it down and pass it around, no more bottles of beer on the wall.\n\nNo more bottles of beer on the wall, no more bottles of beer.\nGo to the store and buy some more, 99 bottles of beer on the wall.\n")
|
@@ -4,5 +4,5 @@
|
|
4
4
|
|
5
5
|
**Windows Users**: Download the source for your machine from the (SWI Prolog Website)[http://www.swi-prolog.org/download/stable].
|
6
6
|
|
7
|
-
**Linux Users**: Follow the instructions for your distro from (here)[http://www.swi-prolog.org/build/
|
7
|
+
**Linux Users**: Follow the instructions for your distro from (here)[http://www.swi-prolog.org/build/unix.html].
|
8
8
|
|
data/tracks/prolog/docs/TESTS.md
CHANGED
@@ -25,6 +25,6 @@ In both cases, replace `hello_world.pl` and `hello_world_tests.plt` with the
|
|
25
25
|
name of the exercise you are implementing.
|
26
26
|
|
27
27
|
When you first begin an exercise, only the first test will run. The rest have
|
28
|
-
been skipped by adding `condition(
|
29
|
-
test passes, un-skip the next test by changing `pending` in `condition(
|
28
|
+
been skipped by adding `condition(pending)` to the `test` goal. Once the first
|
29
|
+
test passes, un-skip the next test by changing `pending` in `condition(pending)`
|
30
30
|
to `true`. Repeat for each test until they are all running and passing.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trackler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.6.
|
4
|
+
version: 2.0.6.34
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katrina Owen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -1589,6 +1589,7 @@ files:
|
|
1589
1589
|
- tracks/delphi/exercises/bank-account/uBankAccountExample.pas
|
1590
1590
|
- tracks/delphi/exercises/bank-account/uBankAccountTests.pas
|
1591
1591
|
- tracks/delphi/exercises/beer-song/BeerSongTests.dpr
|
1592
|
+
- tracks/delphi/exercises/beer-song/inputdata.txt
|
1592
1593
|
- tracks/delphi/exercises/beer-song/uBeerSongExample.pas
|
1593
1594
|
- tracks/delphi/exercises/beer-song/uBeerSongTests.pas
|
1594
1595
|
- tracks/delphi/exercises/binary-search/BinarySearchTest.dpr
|
@@ -4276,6 +4277,9 @@ files:
|
|
4276
4277
|
- tracks/julia/exercises/difference-of-squares/difference-of-squares.jl
|
4277
4278
|
- tracks/julia/exercises/difference-of-squares/example.jl
|
4278
4279
|
- tracks/julia/exercises/difference-of-squares/runtests.jl
|
4280
|
+
- tracks/julia/exercises/gigasecond/example.jl
|
4281
|
+
- tracks/julia/exercises/gigasecond/gigasecond.jl
|
4282
|
+
- tracks/julia/exercises/gigasecond/runtests.jl
|
4279
4283
|
- tracks/julia/exercises/hamming/example.jl
|
4280
4284
|
- tracks/julia/exercises/hamming/hamming.jl
|
4281
4285
|
- tracks/julia/exercises/hamming/runtests.jl
|
@@ -4291,6 +4295,9 @@ files:
|
|
4291
4295
|
- tracks/julia/exercises/rna-transcription/example.jl
|
4292
4296
|
- tracks/julia/exercises/rna-transcription/rna-transcription.jl
|
4293
4297
|
- tracks/julia/exercises/rna-transcription/runtests.jl
|
4298
|
+
- tracks/julia/exercises/roman-numerals/example.jl
|
4299
|
+
- tracks/julia/exercises/roman-numerals/roman-numerals.jl
|
4300
|
+
- tracks/julia/exercises/roman-numerals/runtests.jl
|
4294
4301
|
- tracks/julia/exercises/scrabble-score/example.jl
|
4295
4302
|
- tracks/julia/exercises/scrabble-score/runtests.jl
|
4296
4303
|
- tracks/julia/exercises/scrabble-score/scrabble-score.jl
|
@@ -4300,6 +4307,9 @@ files:
|
|
4300
4307
|
- tracks/julia/exercises/sieve/example.jl
|
4301
4308
|
- tracks/julia/exercises/sieve/runtests.jl
|
4302
4309
|
- tracks/julia/exercises/sieve/sieve.jl
|
4310
|
+
- tracks/julia/exercises/transpose/example.jl
|
4311
|
+
- tracks/julia/exercises/transpose/runtests.jl
|
4312
|
+
- tracks/julia/exercises/transpose/transpose.jl
|
4303
4313
|
- tracks/julia/exercises/trinary/example.jl
|
4304
4314
|
- tracks/julia/exercises/trinary/runtests.jl
|
4305
4315
|
- tracks/julia/exercises/trinary/trinary.jl
|
@@ -4314,8 +4324,8 @@ files:
|
|
4314
4324
|
- tracks/kotlin/LICENSE
|
4315
4325
|
- tracks/kotlin/README.md
|
4316
4326
|
- tracks/kotlin/SETUP.md
|
4317
|
-
- tracks/kotlin/bin/build.sh
|
4318
4327
|
- tracks/kotlin/bin/fetch-configlet
|
4328
|
+
- tracks/kotlin/bin/unit-tests.sh
|
4319
4329
|
- tracks/kotlin/config.json
|
4320
4330
|
- tracks/kotlin/docs/ABOUT.md
|
4321
4331
|
- tracks/kotlin/docs/INSTALLATION.md
|
@@ -5632,12 +5642,12 @@ files:
|
|
5632
5642
|
- tracks/perl6/docs/TESTS.md
|
5633
5643
|
- tracks/perl6/exercises/accumulate/Example.pm
|
5634
5644
|
- tracks/perl6/exercises/accumulate/accumulate.t
|
5635
|
-
- tracks/perl6/exercises/allergies/Example.
|
5645
|
+
- tracks/perl6/exercises/allergies/Example.pm
|
5636
5646
|
- tracks/perl6/exercises/allergies/allergies.t
|
5637
5647
|
- tracks/perl6/exercises/allergies/cases.json
|
5638
5648
|
- tracks/perl6/exercises/anagram/Example.pm
|
5639
5649
|
- tracks/perl6/exercises/anagram/anagram.t
|
5640
|
-
- tracks/perl6/exercises/atbash-cipher/Example.
|
5650
|
+
- tracks/perl6/exercises/atbash-cipher/Example.pm
|
5641
5651
|
- tracks/perl6/exercises/atbash-cipher/cases.json
|
5642
5652
|
- tracks/perl6/exercises/atbash-cipher/cipher.t
|
5643
5653
|
- tracks/perl6/exercises/binary/Example.pm
|
@@ -5653,6 +5663,8 @@ files:
|
|
5653
5663
|
- tracks/perl6/exercises/hello-world/hello-world.t
|
5654
5664
|
- tracks/perl6/exercises/leap/Example.pm
|
5655
5665
|
- tracks/perl6/exercises/leap/leap.t
|
5666
|
+
- tracks/perl6/exercises/linked-list/Example.pm6
|
5667
|
+
- tracks/perl6/exercises/linked-list/linked-list.t
|
5656
5668
|
- tracks/perl6/exercises/phone-number/Example.pm
|
5657
5669
|
- tracks/perl6/exercises/phone-number/cases.json
|
5658
5670
|
- tracks/perl6/exercises/phone-number/phone.t
|
@@ -5664,14 +5676,14 @@ files:
|
|
5664
5676
|
- tracks/perl6/exercises/robot-name/robot.t
|
5665
5677
|
- tracks/perl6/exercises/scrabble-score/Example.pm
|
5666
5678
|
- tracks/perl6/exercises/scrabble-score/scrabble_score.t
|
5667
|
-
- tracks/perl6/exercises/space-age/Example.
|
5679
|
+
- tracks/perl6/exercises/space-age/Example.pm
|
5668
5680
|
- tracks/perl6/exercises/space-age/cases.json
|
5669
5681
|
- tracks/perl6/exercises/space-age/space-age.t
|
5670
|
-
- tracks/perl6/exercises/trinary/Example.
|
5682
|
+
- tracks/perl6/exercises/trinary/Example.pm
|
5671
5683
|
- tracks/perl6/exercises/trinary/trinary.t
|
5672
5684
|
- tracks/perl6/exercises/word-count/Example.pm
|
5673
5685
|
- tracks/perl6/exercises/word-count/word_count.t
|
5674
|
-
- tracks/perl6/exercises/wordy/Example.
|
5686
|
+
- tracks/perl6/exercises/wordy/Example.pm
|
5675
5687
|
- tracks/perl6/exercises/wordy/cases.json
|
5676
5688
|
- tracks/perl6/exercises/wordy/wordy.t
|
5677
5689
|
- tracks/perl6/img/icon.png
|
@@ -5835,6 +5847,10 @@ files:
|
|
5835
5847
|
- tracks/pony/docs/TESTS.md
|
5836
5848
|
- tracks/pony/exercises/anagram/example.pony
|
5837
5849
|
- tracks/pony/exercises/anagram/test.pony
|
5850
|
+
- tracks/pony/exercises/atbash-cipher/example.pony
|
5851
|
+
- tracks/pony/exercises/atbash-cipher/test.pony
|
5852
|
+
- tracks/pony/exercises/beer-song/example.pony
|
5853
|
+
- tracks/pony/exercises/beer-song/test.pony
|
5838
5854
|
- tracks/pony/exercises/bob/example.pony
|
5839
5855
|
- tracks/pony/exercises/bob/test.pony
|
5840
5856
|
- tracks/pony/exercises/difference-of-squares/example.pony
|