trackler 2.0.5.14 → 2.0.5.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/common/exercises/perfect-numbers/metadata.yml +1 -1
- data/lib/trackler/version.rb +1 -1
- data/tracks/csharp/config.json +17 -0
- data/tracks/csharp/exercises/exercises.csproj +1 -1
- data/tracks/csharp/exercises/react/Example.cs +124 -0
- data/tracks/csharp/exercises/react/HINTS.md +3 -0
- data/tracks/csharp/exercises/react/ReactTest.cs +121 -0
- data/tracks/csharp/exercises/tree-building/Example.cs +73 -0
- data/tracks/csharp/exercises/tree-building/TreeBuilding.cs +67 -0
- data/tracks/csharp/exercises/tree-building/TreeBuildingTest.cs +228 -0
- data/tracks/ecmascript/exercises/accumulate/package.json +1 -1
- data/tracks/ecmascript/exercises/acronym/package.json +1 -1
- data/tracks/ecmascript/exercises/all-your-base/package.json +1 -1
- data/tracks/ecmascript/exercises/allergies/package.json +1 -1
- data/tracks/ecmascript/exercises/anagram/package.json +1 -1
- data/tracks/ecmascript/exercises/atbash-cipher/package.json +1 -1
- data/tracks/ecmascript/exercises/beer-song/package.json +1 -1
- data/tracks/ecmascript/exercises/binary-search-tree/package.json +1 -1
- data/tracks/ecmascript/exercises/binary-search/package.json +1 -1
- data/tracks/ecmascript/exercises/binary/package.json +1 -1
- data/tracks/ecmascript/exercises/bob/package.json +1 -1
- data/tracks/ecmascript/exercises/bracket-push/package.json +1 -1
- data/tracks/ecmascript/exercises/circular-buffer/package.json +1 -1
- data/tracks/ecmascript/exercises/clock/package.json +1 -1
- data/tracks/ecmascript/exercises/crypto-square/package.json +1 -1
- data/tracks/ecmascript/exercises/custom-set/package.json +1 -1
- data/tracks/ecmascript/exercises/diamond/package.json +1 -1
- data/tracks/ecmascript/exercises/difference-of-squares/package.json +1 -1
- data/tracks/ecmascript/exercises/etl/package.json +1 -1
- data/tracks/ecmascript/exercises/food-chain/package.json +1 -1
- data/tracks/ecmascript/exercises/gigasecond/package.json +1 -1
- data/tracks/ecmascript/exercises/grade-school/package.json +1 -1
- data/tracks/ecmascript/exercises/grains/package.json +1 -1
- data/tracks/ecmascript/exercises/hamming/package.json +1 -1
- data/tracks/ecmascript/exercises/hello-world/package.json +1 -1
- data/tracks/ecmascript/exercises/hexadecimal/package.json +1 -1
- data/tracks/ecmascript/exercises/isogram/package.json +1 -1
- data/tracks/ecmascript/exercises/kindergarten-garden/package.json +1 -1
- data/tracks/ecmascript/exercises/largest-series-product/package.json +1 -1
- data/tracks/ecmascript/exercises/leap/package.json +1 -1
- data/tracks/ecmascript/exercises/linked-list/package.json +1 -1
- data/tracks/ecmascript/exercises/luhn/package.json +1 -1
- data/tracks/ecmascript/exercises/matrix/package.json +1 -1
- data/tracks/ecmascript/exercises/meetup/package.json +1 -1
- data/tracks/ecmascript/exercises/nth-prime/package.json +1 -1
- data/tracks/ecmascript/exercises/ocr-numbers/package.json +1 -1
- data/tracks/ecmascript/exercises/octal/package.json +1 -1
- data/tracks/ecmascript/exercises/palindrome-products/package.json +1 -1
- data/tracks/ecmascript/exercises/pangram/package.json +1 -1
- data/tracks/ecmascript/exercises/pascals-triangle/package.json +1 -1
- data/tracks/ecmascript/exercises/phone-number/package.json +1 -1
- data/tracks/ecmascript/exercises/pig-latin/package.json +1 -1
- data/tracks/ecmascript/exercises/prime-factors/package.json +1 -1
- data/tracks/ecmascript/exercises/pythagorean-triplet/package.json +1 -1
- data/tracks/ecmascript/exercises/queen-attack/package.json +1 -1
- data/tracks/ecmascript/exercises/raindrops/package.json +1 -1
- data/tracks/ecmascript/exercises/rna-transcription/package.json +1 -1
- data/tracks/ecmascript/exercises/robot-name/package.json +1 -1
- data/tracks/ecmascript/exercises/robot-simulator/package.json +1 -1
- data/tracks/ecmascript/exercises/roman-numerals/package.json +1 -1
- data/tracks/ecmascript/exercises/saddle-points/package.json +1 -1
- data/tracks/ecmascript/exercises/say/package.json +1 -1
- data/tracks/ecmascript/exercises/scrabble-score/package.json +1 -1
- data/tracks/ecmascript/exercises/secret-handshake/package.json +1 -1
- data/tracks/ecmascript/exercises/series/package.json +1 -1
- data/tracks/ecmascript/exercises/sieve/package.json +1 -1
- data/tracks/ecmascript/exercises/simple-cipher/package.json +1 -1
- data/tracks/ecmascript/exercises/space-age/package.json +1 -1
- data/tracks/ecmascript/exercises/strain/package.json +1 -1
- data/tracks/ecmascript/exercises/sum-of-multiples/package.json +1 -1
- data/tracks/ecmascript/exercises/triangle/package.json +1 -1
- data/tracks/ecmascript/exercises/trinary/package.json +1 -1
- data/tracks/ecmascript/exercises/two-bucket/package.json +1 -1
- data/tracks/ecmascript/exercises/word-count/package.json +1 -1
- data/tracks/ecmascript/exercises/wordy/package.json +1 -1
- data/tracks/ecmascript/package.json +1 -1
- data/tracks/elixir/docs/ABOUT.md +1 -1
- data/tracks/haskell/config.json +6 -0
- data/tracks/haskell/exercises/run-length-encoding/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs +21 -0
- data/tracks/haskell/exercises/run-length-encoding/package.yaml +19 -0
- data/tracks/haskell/exercises/run-length-encoding/src/RunLength.hs +7 -0
- data/tracks/haskell/exercises/run-length-encoding/stack.yaml +1 -0
- data/tracks/haskell/exercises/run-length-encoding/test/Tests.hs +75 -0
- data/tracks/javascript/config.json +8 -1
- data/tracks/javascript/exercises/run-length-encoding/example.js +11 -0
- data/tracks/javascript/exercises/run-length-encoding/run-length-encoding.spec.js +41 -0
- data/tracks/pascal/.gitignore +2 -0
- data/tracks/pascal/config.json +8 -8
- data/tracks/pascal/exercises/{Hello-World → hello-world}/uHelloWorldExample.pas +0 -0
- data/tracks/pascal/exercises/{Hello-World → hello-world}/uTestHelloWorld.pas +0 -0
- metadata +18 -36
- data/tracks/pascal/exercises/Hello-World/TestHelloWorld.dpr +0 -60
- data/tracks/pascal/exercises/Hello-World/TestHelloWorld.dproj +0 -176
- data/tracks/pascal/exercises/allergies/AllergyTests.dpr +0 -60
- data/tracks/pascal/exercises/allergies/AllergyTests.dproj +0 -176
- data/tracks/pascal/exercises/bank-account/BankAccountTests.dpr +0 -60
- data/tracks/pascal/exercises/bank-account/BankAccountTests.dproj +0 -176
- data/tracks/pascal/exercises/beer-song/BeerSongTests.dpr +0 -60
- data/tracks/pascal/exercises/beer-song/BeerSongTests.dproj +0 -176
- data/tracks/pascal/exercises/binary-search/BinarySearchTest.dpr +0 -60
- data/tracks/pascal/exercises/binary-search/BinarySearchTest.dproj +0 -176
- data/tracks/pascal/exercises/bob/BobTests.dpr +0 -60
- data/tracks/pascal/exercises/bob/BobTests.dproj +0 -176
- data/tracks/pascal/exercises/book-store/BookStoreTests.dpr +0 -60
- data/tracks/pascal/exercises/book-store/BookStoreTests.dproj +0 -176
- data/tracks/pascal/exercises/bowling/BowlingTests.dpr +0 -60
- data/tracks/pascal/exercises/bowling/BowlingTests.dproj +0 -176
- data/tracks/pascal/exercises/circular-buffer/CircularBufferTests.dpr +0 -60
- data/tracks/pascal/exercises/circular-buffer/CircularBufferTests.dproj +0 -176
- data/tracks/pascal/exercises/clock/ClockTest.dpr +0 -60
- data/tracks/pascal/exercises/clock/ClockTest.dproj +0 -176
- data/tracks/pascal/exercises/etl/ETLtests.dpr +0 -60
- data/tracks/pascal/exercises/etl/ETLtests.dproj +0 -176
- data/tracks/pascal/exercises/hamming/Hamming.dpr +0 -60
- data/tracks/pascal/exercises/hamming/Hamming.dproj +0 -176
- data/tracks/pascal/exercises/leap/LeapTest.dpr +0 -60
- data/tracks/pascal/exercises/leap/LeapTest.dproj +0 -176
- data/tracks/pascal/exercises/nucleotide-count/NucleotideCountTest.dpr +0 -60
- data/tracks/pascal/exercises/nucleotide-count/NucleotideCountTest.dproj +0 -176
- data/tracks/pascal/exercises/perfect-numbers/PerfectNumbersTest.dpr +0 -60
- data/tracks/pascal/exercises/perfect-numbers/PerfectNumbersTest.dproj +0 -176
- data/tracks/pascal/exercises/phone-number/PhoneNumberTests.dpr +0 -60
- data/tracks/pascal/exercises/phone-number/PhoneNumberTests.dproj +0 -176
data/tracks/elixir/docs/ABOUT.md
CHANGED
@@ -6,7 +6,7 @@ José Valim, the creator of Elixir, explains [here](https://vimeo.com/53221562)
|
|
6
6
|
3. Soft-Real-Time
|
7
7
|
4. Hot-Code-Swapped (can introduce new code without stopping the server)
|
8
8
|
|
9
|
-
Elixir actually compiles down to [bytecode](https://en.wikipedia.org/wiki/Bytecode) and then runs on the [BEAM Erlang Virtual Machine](
|
9
|
+
Elixir actually compiles down to [bytecode](https://en.wikipedia.org/wiki/Bytecode) and then runs on the [BEAM Erlang Virtual Machine](http://erlangcentral.org/videos/euc-2014-robert-virding-hitchhikers-tour-of-the-beam/).
|
10
10
|
|
11
11
|
There is no "conversion cost" for calling Erlang, meaning you can run Erlang code right next to Elixir code.
|
12
12
|
|
data/tracks/haskell/config.json
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
module RunLength (decode, encode) where
|
2
|
+
|
3
|
+
import Data.Char (isDigit)
|
4
|
+
|
5
|
+
decode :: String -> String
|
6
|
+
decode "" = ""
|
7
|
+
decode s = replicate n c ++ decode rest
|
8
|
+
where
|
9
|
+
i = takeWhile isDigit s
|
10
|
+
n = if null i then 1 else read i
|
11
|
+
c = head $ filter (not . isDigit) s
|
12
|
+
rest = drop (1 + length i) s
|
13
|
+
|
14
|
+
encode :: String -> String
|
15
|
+
encode "" = ""
|
16
|
+
encode s = i ++ c : encode rest
|
17
|
+
where
|
18
|
+
c = head s
|
19
|
+
l = length $ takeWhile (== c) s
|
20
|
+
i = if l == 1 then "" else show l
|
21
|
+
rest = drop l s
|
@@ -0,0 +1,19 @@
|
|
1
|
+
name: run-length-encoding
|
2
|
+
|
3
|
+
dependencies:
|
4
|
+
- base
|
5
|
+
|
6
|
+
library:
|
7
|
+
exposed-modules: RunLength
|
8
|
+
source-dirs: src
|
9
|
+
dependencies:
|
10
|
+
# - foo # List here the packages you
|
11
|
+
# - bar # want to use in your solution.
|
12
|
+
|
13
|
+
tests:
|
14
|
+
test:
|
15
|
+
main: Tests.hs
|
16
|
+
source-dirs: test
|
17
|
+
dependencies:
|
18
|
+
- run-length-encoding
|
19
|
+
- hspec
|
@@ -0,0 +1 @@
|
|
1
|
+
resolver: lts-7.9
|
@@ -0,0 +1,75 @@
|
|
1
|
+
{-# LANGUAGE RecordWildCards #-}
|
2
|
+
|
3
|
+
import Data.Foldable (for_)
|
4
|
+
import Test.Hspec (Spec, describe, it, shouldBe)
|
5
|
+
import Test.Hspec.Runner (configFastFail, defaultConfig, hspecWith)
|
6
|
+
|
7
|
+
import RunLength (encode, decode)
|
8
|
+
|
9
|
+
main :: IO ()
|
10
|
+
main = hspecWith defaultConfig {configFastFail = True} specs
|
11
|
+
|
12
|
+
specs :: Spec
|
13
|
+
specs = describe "run-length-encoding" $ do
|
14
|
+
describe "decode" $ for_ decodeCases $ test decode
|
15
|
+
describe "encode" $ for_ encodeCases $ test encode
|
16
|
+
describe "both" $ for_ bothCases $ test (decode . encode)
|
17
|
+
where
|
18
|
+
test f Case{..} = it description $ f input `shouldBe` expected
|
19
|
+
|
20
|
+
-- Test cases adapted from file
|
21
|
+
-- `exercism/x-common/exercises/run-length-encoding/canonical-data.json`
|
22
|
+
-- on 2016-12-26.
|
23
|
+
|
24
|
+
data Case = Case { description :: String
|
25
|
+
, input :: String
|
26
|
+
, expected :: String
|
27
|
+
}
|
28
|
+
|
29
|
+
encodeCases :: [Case]
|
30
|
+
encodeCases =
|
31
|
+
[ Case { description = "encode empty string"
|
32
|
+
, input = ""
|
33
|
+
, expected = ""
|
34
|
+
}
|
35
|
+
, Case { description = "encode single characters only"
|
36
|
+
, input = "XYZ"
|
37
|
+
, expected = "XYZ"
|
38
|
+
}
|
39
|
+
, Case { description = "encode simple"
|
40
|
+
, input = "AABBBCCCC"
|
41
|
+
, expected = "2A3B4C"
|
42
|
+
}
|
43
|
+
, Case { description = "encode with single values"
|
44
|
+
, input = "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB"
|
45
|
+
, expected = "12WB12W3B24WB"
|
46
|
+
}
|
47
|
+
]
|
48
|
+
|
49
|
+
decodeCases :: [Case]
|
50
|
+
decodeCases =
|
51
|
+
[ Case { description = "decode empty string"
|
52
|
+
, input = ""
|
53
|
+
, expected = ""
|
54
|
+
}
|
55
|
+
, Case { description = "decode single characters only"
|
56
|
+
, input = "XYZ"
|
57
|
+
, expected = "XYZ"
|
58
|
+
}
|
59
|
+
, Case { description = "decode simple"
|
60
|
+
, input = "2A3B4C"
|
61
|
+
, expected = "AABBBCCCC"
|
62
|
+
}
|
63
|
+
, Case { description = "decode with single values"
|
64
|
+
, input = "12WB12W3B24WB"
|
65
|
+
, expected = "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB"
|
66
|
+
}
|
67
|
+
]
|
68
|
+
|
69
|
+
bothCases :: [Case]
|
70
|
+
bothCases =
|
71
|
+
[ Case { description = "decode . encode combination"
|
72
|
+
, input = "zzz ZZ zZ"
|
73
|
+
, expected = "zzz ZZ zZ"
|
74
|
+
}
|
75
|
+
]
|
@@ -71,7 +71,8 @@
|
|
71
71
|
"two-bucket",
|
72
72
|
"bowling",
|
73
73
|
"diamond",
|
74
|
-
"all-your-base"
|
74
|
+
"all-your-base",
|
75
|
+
"run-length-encoding"
|
75
76
|
],
|
76
77
|
"exercises": [
|
77
78
|
{
|
@@ -475,6 +476,12 @@
|
|
475
476
|
"difficulty": 1,
|
476
477
|
"topics": [
|
477
478
|
]
|
479
|
+
},
|
480
|
+
{
|
481
|
+
"slug": "run-length-encoding",
|
482
|
+
"difficulty": 1,
|
483
|
+
"topics": [
|
484
|
+
]
|
478
485
|
}
|
479
486
|
],
|
480
487
|
"deprecated": [
|
@@ -0,0 +1,11 @@
|
|
1
|
+
exports.encode = function encode(plaintext) {
|
2
|
+
return plaintext.replace(/([\w\s])\1*/g, function(match) {
|
3
|
+
return match.length > 1 ? match.length + match[0] : match[0];
|
4
|
+
});
|
5
|
+
};
|
6
|
+
|
7
|
+
exports.decode = function decode(cypher) {
|
8
|
+
return cypher.replace(/(\d+)(\w|\s)/g, function(match, repeats, char) {
|
9
|
+
return new Array(+repeats + 1).join(char);
|
10
|
+
});
|
11
|
+
};
|
@@ -0,0 +1,41 @@
|
|
1
|
+
var RLE = require('./run-length-encoding');
|
2
|
+
|
3
|
+
describe('Run-length encoding', function() {
|
4
|
+
|
5
|
+
it('encode empty string', function() {
|
6
|
+
expect(RLE.encode('')).toEqual('');
|
7
|
+
});
|
8
|
+
|
9
|
+
xit('encode single characters only', function() {
|
10
|
+
expect(RLE.encode('XYZ')).toEqual('XYZ');
|
11
|
+
});
|
12
|
+
|
13
|
+
xit('decode empty string', function() {
|
14
|
+
expect(RLE.decode('')).toEqual('');
|
15
|
+
});
|
16
|
+
|
17
|
+
xit('decode single characters only', function() {
|
18
|
+
expect(RLE.decode('XYZ')).toEqual('XYZ');
|
19
|
+
});
|
20
|
+
|
21
|
+
xit('encode simple', function() {
|
22
|
+
expect(RLE.encode('AABBBCCCC')).toEqual('2A3B4C');
|
23
|
+
});
|
24
|
+
|
25
|
+
xit('decode simple', function() {
|
26
|
+
expect(RLE.decode('2A3B4C')).toEqual('AABBBCCCC');
|
27
|
+
});
|
28
|
+
|
29
|
+
xit('encode with single values', function() {
|
30
|
+
expect(RLE.encode('WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB')).toEqual('12WB12W3B24WB');
|
31
|
+
});
|
32
|
+
|
33
|
+
xit('decode with single values', function() {
|
34
|
+
expect(RLE.decode('12WB12W3B24WB')).toEqual('WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB');
|
35
|
+
});
|
36
|
+
|
37
|
+
xit('decode(encode(...))combination', function() {
|
38
|
+
expect(RLE.decode(RLE.encode('zzz ZZ zZ'))).toEqual('zzz ZZ zZ');
|
39
|
+
});
|
40
|
+
|
41
|
+
});
|
data/tracks/pascal/.gitignore
CHANGED
data/tracks/pascal/config.json
CHANGED
@@ -74,14 +74,6 @@
|
|
74
74
|
"Transforming"
|
75
75
|
]
|
76
76
|
},
|
77
|
-
{
|
78
|
-
"slug": "binary-search",
|
79
|
-
"difficulty": 3,
|
80
|
-
"topics": [
|
81
|
-
"Searching",
|
82
|
-
"Arrays"
|
83
|
-
]
|
84
|
-
},
|
85
77
|
{
|
86
78
|
"slug": "book-store",
|
87
79
|
"difficulty": 6
|
@@ -126,6 +118,14 @@
|
|
126
118
|
"Time",
|
127
119
|
"Structural equality"
|
128
120
|
]
|
121
|
+
},
|
122
|
+
{
|
123
|
+
"slug": "circular-buffer",
|
124
|
+
"difficulty": 5,
|
125
|
+
"topics": [
|
126
|
+
"Queues",
|
127
|
+
"Classes"
|
128
|
+
]
|
129
129
|
}
|
130
130
|
],
|
131
131
|
"ignored": [
|
File without changes
|
File without changes
|
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.5.
|
4
|
+
version: 2.0.5.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katrina Owen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-12-
|
11
|
+
date: 2016-12-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -1410,6 +1410,9 @@ files:
|
|
1410
1410
|
- tracks/csharp/exercises/rail-fence-cipher/RailFenceCipherTest.cs
|
1411
1411
|
- tracks/csharp/exercises/raindrops/Example.cs
|
1412
1412
|
- tracks/csharp/exercises/raindrops/RaindropsTest.cs
|
1413
|
+
- tracks/csharp/exercises/react/Example.cs
|
1414
|
+
- tracks/csharp/exercises/react/HINTS.md
|
1415
|
+
- tracks/csharp/exercises/react/ReactTest.cs
|
1413
1416
|
- tracks/csharp/exercises/rectangles/Example.cs
|
1414
1417
|
- tracks/csharp/exercises/rectangles/RectanglesTest.cs
|
1415
1418
|
- tracks/csharp/exercises/rna-transcription/ComplementTest.cs
|
@@ -1455,6 +1458,9 @@ files:
|
|
1455
1458
|
- tracks/csharp/exercises/tournament/TournamentTest.cs
|
1456
1459
|
- tracks/csharp/exercises/transpose/Example.cs
|
1457
1460
|
- tracks/csharp/exercises/transpose/TransposeTest.cs
|
1461
|
+
- tracks/csharp/exercises/tree-building/Example.cs
|
1462
|
+
- tracks/csharp/exercises/tree-building/TreeBuilding.cs
|
1463
|
+
- tracks/csharp/exercises/tree-building/TreeBuildingTest.cs
|
1458
1464
|
- tracks/csharp/exercises/triangle/Example.cs
|
1459
1465
|
- tracks/csharp/exercises/triangle/TriangleTest.cs
|
1460
1466
|
- tracks/csharp/exercises/twelve-days/Example.cs
|
@@ -3298,6 +3304,12 @@ files:
|
|
3298
3304
|
- tracks/haskell/exercises/roman-numerals/src/Roman.hs
|
3299
3305
|
- tracks/haskell/exercises/roman-numerals/stack.yaml
|
3300
3306
|
- tracks/haskell/exercises/roman-numerals/test/Tests.hs
|
3307
|
+
- tracks/haskell/exercises/run-length-encoding/examples/success-standard/package.yaml
|
3308
|
+
- tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
|
3309
|
+
- tracks/haskell/exercises/run-length-encoding/package.yaml
|
3310
|
+
- tracks/haskell/exercises/run-length-encoding/src/RunLength.hs
|
3311
|
+
- tracks/haskell/exercises/run-length-encoding/stack.yaml
|
3312
|
+
- tracks/haskell/exercises/run-length-encoding/test/Tests.hs
|
3301
3313
|
- tracks/haskell/exercises/saddle-points/examples/success-standard/package.yaml
|
3302
3314
|
- tracks/haskell/exercises/saddle-points/examples/success-standard/src/Matrix.hs
|
3303
3315
|
- tracks/haskell/exercises/saddle-points/package.yaml
|
@@ -3866,6 +3878,8 @@ files:
|
|
3866
3878
|
- tracks/javascript/exercises/robot-simulator/robot-simulator.spec.js
|
3867
3879
|
- tracks/javascript/exercises/roman-numerals/example.js
|
3868
3880
|
- tracks/javascript/exercises/roman-numerals/roman-numerals.spec.js
|
3881
|
+
- tracks/javascript/exercises/run-length-encoding/example.js
|
3882
|
+
- tracks/javascript/exercises/run-length-encoding/run-length-encoding.spec.js
|
3869
3883
|
- tracks/javascript/exercises/saddle-points/example.js
|
3870
3884
|
- tracks/javascript/exercises/saddle-points/saddle-points.spec.js
|
3871
3885
|
- tracks/javascript/exercises/say/example.js
|
@@ -5052,68 +5066,36 @@ files:
|
|
5052
5066
|
- tracks/pascal/docs/RESOURCES.md
|
5053
5067
|
- tracks/pascal/docs/TESTS.md
|
5054
5068
|
- tracks/pascal/exercises/.keep
|
5055
|
-
- tracks/pascal/exercises/Hello-World/TestHelloWorld.dpr
|
5056
|
-
- tracks/pascal/exercises/Hello-World/TestHelloWorld.dproj
|
5057
|
-
- tracks/pascal/exercises/Hello-World/uHelloWorldExample.pas
|
5058
|
-
- tracks/pascal/exercises/Hello-World/uTestHelloWorld.pas
|
5059
|
-
- tracks/pascal/exercises/allergies/AllergyTests.dpr
|
5060
|
-
- tracks/pascal/exercises/allergies/AllergyTests.dproj
|
5061
5069
|
- tracks/pascal/exercises/allergies/uAllergiesExample.pas
|
5062
5070
|
- tracks/pascal/exercises/allergies/uAllergyTests.pas
|
5063
|
-
- tracks/pascal/exercises/bank-account/BankAccountTests.dpr
|
5064
|
-
- tracks/pascal/exercises/bank-account/BankAccountTests.dproj
|
5065
5071
|
- tracks/pascal/exercises/bank-account/uBankAccountExample.pas
|
5066
5072
|
- tracks/pascal/exercises/bank-account/uBankAccountTests.pas
|
5067
|
-
- tracks/pascal/exercises/beer-song/BeerSongTests.dpr
|
5068
|
-
- tracks/pascal/exercises/beer-song/BeerSongTests.dproj
|
5069
5073
|
- tracks/pascal/exercises/beer-song/uBeerSongExample.pas
|
5070
5074
|
- tracks/pascal/exercises/beer-song/uBeerSongTests.pas
|
5071
|
-
- tracks/pascal/exercises/binary-search/BinarySearchTest.dpr
|
5072
|
-
- tracks/pascal/exercises/binary-search/BinarySearchTest.dproj
|
5073
5075
|
- tracks/pascal/exercises/binary-search/uBinarySearchExample.pas
|
5074
5076
|
- tracks/pascal/exercises/binary-search/uBinarySearchTest.pas
|
5075
|
-
- tracks/pascal/exercises/bob/BobTests.dpr
|
5076
|
-
- tracks/pascal/exercises/bob/BobTests.dproj
|
5077
5077
|
- tracks/pascal/exercises/bob/uBobExample.pas
|
5078
5078
|
- tracks/pascal/exercises/bob/uBobTests.pas
|
5079
|
-
- tracks/pascal/exercises/book-store/BookStoreTests.dpr
|
5080
|
-
- tracks/pascal/exercises/book-store/BookStoreTests.dproj
|
5081
5079
|
- tracks/pascal/exercises/book-store/uBookStoreExample.pas
|
5082
5080
|
- tracks/pascal/exercises/book-store/uBookStoreTests.pas
|
5083
|
-
- tracks/pascal/exercises/bowling/BowlingTests.dpr
|
5084
|
-
- tracks/pascal/exercises/bowling/BowlingTests.dproj
|
5085
5081
|
- tracks/pascal/exercises/bowling/uBowlingExample.pas
|
5086
5082
|
- tracks/pascal/exercises/bowling/uBowlingTests.pas
|
5087
|
-
- tracks/pascal/exercises/circular-buffer/CircularBufferTests.dpr
|
5088
|
-
- tracks/pascal/exercises/circular-buffer/CircularBufferTests.dproj
|
5089
5083
|
- tracks/pascal/exercises/circular-buffer/uCircularBufferExample.pas
|
5090
5084
|
- tracks/pascal/exercises/circular-buffer/uCircularBufferTests.pas
|
5091
|
-
- tracks/pascal/exercises/clock/ClockTest.dpr
|
5092
|
-
- tracks/pascal/exercises/clock/ClockTest.dproj
|
5093
5085
|
- tracks/pascal/exercises/clock/uClockExample.pas
|
5094
5086
|
- tracks/pascal/exercises/clock/uClockTest.pas
|
5095
|
-
- tracks/pascal/exercises/etl/ETLtests.dpr
|
5096
|
-
- tracks/pascal/exercises/etl/ETLtests.dproj
|
5097
5087
|
- tracks/pascal/exercises/etl/uETLexample.pas
|
5098
5088
|
- tracks/pascal/exercises/etl/uETLtests.pas
|
5099
|
-
- tracks/pascal/exercises/hamming/Hamming.dpr
|
5100
|
-
- tracks/pascal/exercises/hamming/Hamming.dproj
|
5101
5089
|
- tracks/pascal/exercises/hamming/uHammingExample.pas
|
5102
5090
|
- tracks/pascal/exercises/hamming/uHammingTests.pas
|
5103
|
-
- tracks/pascal/exercises/
|
5104
|
-
- tracks/pascal/exercises/
|
5091
|
+
- tracks/pascal/exercises/hello-world/uHelloWorldExample.pas
|
5092
|
+
- tracks/pascal/exercises/hello-world/uTestHelloWorld.pas
|
5105
5093
|
- tracks/pascal/exercises/leap/uLeapExample.pas
|
5106
5094
|
- tracks/pascal/exercises/leap/uLeapTests.pas
|
5107
|
-
- tracks/pascal/exercises/nucleotide-count/NucleotideCountTest.dpr
|
5108
|
-
- tracks/pascal/exercises/nucleotide-count/NucleotideCountTest.dproj
|
5109
5095
|
- tracks/pascal/exercises/nucleotide-count/uNucleotideCountExample.pas
|
5110
5096
|
- tracks/pascal/exercises/nucleotide-count/uNucleotideCountTest.pas
|
5111
|
-
- tracks/pascal/exercises/perfect-numbers/PerfectNumbersTest.dpr
|
5112
|
-
- tracks/pascal/exercises/perfect-numbers/PerfectNumbersTest.dproj
|
5113
5097
|
- tracks/pascal/exercises/perfect-numbers/uPerfectNumbersExample.pas
|
5114
5098
|
- tracks/pascal/exercises/perfect-numbers/uPerfectNumbersTest.pas
|
5115
|
-
- tracks/pascal/exercises/phone-number/PhoneNumberTests.dpr
|
5116
|
-
- tracks/pascal/exercises/phone-number/PhoneNumberTests.dproj
|
5117
5099
|
- tracks/pascal/exercises/phone-number/uPhoneNumberExample.pas
|
5118
5100
|
- tracks/pascal/exercises/phone-number/uPhoneNumberTests.pas
|
5119
5101
|
- tracks/pascal/img/.keep
|
@@ -1,60 +0,0 @@
|
|
1
|
-
program TestHelloWorld;
|
2
|
-
|
3
|
-
{$IFNDEF TESTINSIGHT}
|
4
|
-
{$APPTYPE CONSOLE}
|
5
|
-
{$ENDIF}{$STRONGLINKTYPES ON}
|
6
|
-
uses
|
7
|
-
System.SysUtils,
|
8
|
-
{$IFDEF TESTINSIGHT}
|
9
|
-
TestInsight.DUnitX,
|
10
|
-
{$ENDIF }
|
11
|
-
DUnitX.Loggers.Console,
|
12
|
-
DUnitX.Loggers.Xml.NUnit,
|
13
|
-
DUnitX.TestFramework,
|
14
|
-
uTestHelloWorld in 'uTestHelloWorld.pas',
|
15
|
-
uHelloWorld in 'uHelloWorld.pas';
|
16
|
-
|
17
|
-
var
|
18
|
-
runner : ITestRunner;
|
19
|
-
results : IRunResults;
|
20
|
-
logger : ITestLogger;
|
21
|
-
nunitLogger : ITestLogger;
|
22
|
-
begin
|
23
|
-
{$IFDEF TESTINSIGHT}
|
24
|
-
TestInsight.DUnitX.RunRegisteredTests;
|
25
|
-
exit;
|
26
|
-
{$ENDIF}
|
27
|
-
try
|
28
|
-
//Check command line options, will exit if invalid
|
29
|
-
TDUnitX.CheckCommandLine;
|
30
|
-
//Create the test runner
|
31
|
-
runner := TDUnitX.CreateRunner;
|
32
|
-
//Tell the runner to use RTTI to find Fixtures
|
33
|
-
runner.UseRTTI := True;
|
34
|
-
//tell the runner how we will log things
|
35
|
-
//Log to the console window
|
36
|
-
logger := TDUnitXConsoleLogger.Create(true);
|
37
|
-
runner.AddLogger(logger);
|
38
|
-
//Generate an NUnit compatible XML File
|
39
|
-
nunitLogger := TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile);
|
40
|
-
runner.AddLogger(nunitLogger);
|
41
|
-
runner.FailsOnNoAsserts := False; //When true, Assertions must be made during tests;
|
42
|
-
|
43
|
-
//Run tests
|
44
|
-
results := runner.Execute;
|
45
|
-
if not results.AllPassed then
|
46
|
-
System.ExitCode := EXIT_ERRORS;
|
47
|
-
|
48
|
-
{$IFNDEF CI}
|
49
|
-
//We don't want this happening when running under CI.
|
50
|
-
if TDUnitX.Options.ExitBehavior = TDUnitXExitBehavior.Pause then
|
51
|
-
begin
|
52
|
-
System.Write('Done.. press <Enter> key to quit.');
|
53
|
-
System.Readln;
|
54
|
-
end;
|
55
|
-
{$ENDIF}
|
56
|
-
except
|
57
|
-
on E: Exception do
|
58
|
-
System.Writeln(E.ClassName, ': ', E.Message);
|
59
|
-
end;
|
60
|
-
end.
|