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.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/common/exercises/perfect-numbers/metadata.yml +1 -1
  3. data/lib/trackler/version.rb +1 -1
  4. data/tracks/csharp/config.json +17 -0
  5. data/tracks/csharp/exercises/exercises.csproj +1 -1
  6. data/tracks/csharp/exercises/react/Example.cs +124 -0
  7. data/tracks/csharp/exercises/react/HINTS.md +3 -0
  8. data/tracks/csharp/exercises/react/ReactTest.cs +121 -0
  9. data/tracks/csharp/exercises/tree-building/Example.cs +73 -0
  10. data/tracks/csharp/exercises/tree-building/TreeBuilding.cs +67 -0
  11. data/tracks/csharp/exercises/tree-building/TreeBuildingTest.cs +228 -0
  12. data/tracks/ecmascript/exercises/accumulate/package.json +1 -1
  13. data/tracks/ecmascript/exercises/acronym/package.json +1 -1
  14. data/tracks/ecmascript/exercises/all-your-base/package.json +1 -1
  15. data/tracks/ecmascript/exercises/allergies/package.json +1 -1
  16. data/tracks/ecmascript/exercises/anagram/package.json +1 -1
  17. data/tracks/ecmascript/exercises/atbash-cipher/package.json +1 -1
  18. data/tracks/ecmascript/exercises/beer-song/package.json +1 -1
  19. data/tracks/ecmascript/exercises/binary-search-tree/package.json +1 -1
  20. data/tracks/ecmascript/exercises/binary-search/package.json +1 -1
  21. data/tracks/ecmascript/exercises/binary/package.json +1 -1
  22. data/tracks/ecmascript/exercises/bob/package.json +1 -1
  23. data/tracks/ecmascript/exercises/bracket-push/package.json +1 -1
  24. data/tracks/ecmascript/exercises/circular-buffer/package.json +1 -1
  25. data/tracks/ecmascript/exercises/clock/package.json +1 -1
  26. data/tracks/ecmascript/exercises/crypto-square/package.json +1 -1
  27. data/tracks/ecmascript/exercises/custom-set/package.json +1 -1
  28. data/tracks/ecmascript/exercises/diamond/package.json +1 -1
  29. data/tracks/ecmascript/exercises/difference-of-squares/package.json +1 -1
  30. data/tracks/ecmascript/exercises/etl/package.json +1 -1
  31. data/tracks/ecmascript/exercises/food-chain/package.json +1 -1
  32. data/tracks/ecmascript/exercises/gigasecond/package.json +1 -1
  33. data/tracks/ecmascript/exercises/grade-school/package.json +1 -1
  34. data/tracks/ecmascript/exercises/grains/package.json +1 -1
  35. data/tracks/ecmascript/exercises/hamming/package.json +1 -1
  36. data/tracks/ecmascript/exercises/hello-world/package.json +1 -1
  37. data/tracks/ecmascript/exercises/hexadecimal/package.json +1 -1
  38. data/tracks/ecmascript/exercises/isogram/package.json +1 -1
  39. data/tracks/ecmascript/exercises/kindergarten-garden/package.json +1 -1
  40. data/tracks/ecmascript/exercises/largest-series-product/package.json +1 -1
  41. data/tracks/ecmascript/exercises/leap/package.json +1 -1
  42. data/tracks/ecmascript/exercises/linked-list/package.json +1 -1
  43. data/tracks/ecmascript/exercises/luhn/package.json +1 -1
  44. data/tracks/ecmascript/exercises/matrix/package.json +1 -1
  45. data/tracks/ecmascript/exercises/meetup/package.json +1 -1
  46. data/tracks/ecmascript/exercises/nth-prime/package.json +1 -1
  47. data/tracks/ecmascript/exercises/ocr-numbers/package.json +1 -1
  48. data/tracks/ecmascript/exercises/octal/package.json +1 -1
  49. data/tracks/ecmascript/exercises/palindrome-products/package.json +1 -1
  50. data/tracks/ecmascript/exercises/pangram/package.json +1 -1
  51. data/tracks/ecmascript/exercises/pascals-triangle/package.json +1 -1
  52. data/tracks/ecmascript/exercises/phone-number/package.json +1 -1
  53. data/tracks/ecmascript/exercises/pig-latin/package.json +1 -1
  54. data/tracks/ecmascript/exercises/prime-factors/package.json +1 -1
  55. data/tracks/ecmascript/exercises/pythagorean-triplet/package.json +1 -1
  56. data/tracks/ecmascript/exercises/queen-attack/package.json +1 -1
  57. data/tracks/ecmascript/exercises/raindrops/package.json +1 -1
  58. data/tracks/ecmascript/exercises/rna-transcription/package.json +1 -1
  59. data/tracks/ecmascript/exercises/robot-name/package.json +1 -1
  60. data/tracks/ecmascript/exercises/robot-simulator/package.json +1 -1
  61. data/tracks/ecmascript/exercises/roman-numerals/package.json +1 -1
  62. data/tracks/ecmascript/exercises/saddle-points/package.json +1 -1
  63. data/tracks/ecmascript/exercises/say/package.json +1 -1
  64. data/tracks/ecmascript/exercises/scrabble-score/package.json +1 -1
  65. data/tracks/ecmascript/exercises/secret-handshake/package.json +1 -1
  66. data/tracks/ecmascript/exercises/series/package.json +1 -1
  67. data/tracks/ecmascript/exercises/sieve/package.json +1 -1
  68. data/tracks/ecmascript/exercises/simple-cipher/package.json +1 -1
  69. data/tracks/ecmascript/exercises/space-age/package.json +1 -1
  70. data/tracks/ecmascript/exercises/strain/package.json +1 -1
  71. data/tracks/ecmascript/exercises/sum-of-multiples/package.json +1 -1
  72. data/tracks/ecmascript/exercises/triangle/package.json +1 -1
  73. data/tracks/ecmascript/exercises/trinary/package.json +1 -1
  74. data/tracks/ecmascript/exercises/two-bucket/package.json +1 -1
  75. data/tracks/ecmascript/exercises/word-count/package.json +1 -1
  76. data/tracks/ecmascript/exercises/wordy/package.json +1 -1
  77. data/tracks/ecmascript/package.json +1 -1
  78. data/tracks/elixir/docs/ABOUT.md +1 -1
  79. data/tracks/haskell/config.json +6 -0
  80. data/tracks/haskell/exercises/run-length-encoding/examples/success-standard/package.yaml +16 -0
  81. data/tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs +21 -0
  82. data/tracks/haskell/exercises/run-length-encoding/package.yaml +19 -0
  83. data/tracks/haskell/exercises/run-length-encoding/src/RunLength.hs +7 -0
  84. data/tracks/haskell/exercises/run-length-encoding/stack.yaml +1 -0
  85. data/tracks/haskell/exercises/run-length-encoding/test/Tests.hs +75 -0
  86. data/tracks/javascript/config.json +8 -1
  87. data/tracks/javascript/exercises/run-length-encoding/example.js +11 -0
  88. data/tracks/javascript/exercises/run-length-encoding/run-length-encoding.spec.js +41 -0
  89. data/tracks/pascal/.gitignore +2 -0
  90. data/tracks/pascal/config.json +8 -8
  91. data/tracks/pascal/exercises/{Hello-World → hello-world}/uHelloWorldExample.pas +0 -0
  92. data/tracks/pascal/exercises/{Hello-World → hello-world}/uTestHelloWorld.pas +0 -0
  93. metadata +18 -36
  94. data/tracks/pascal/exercises/Hello-World/TestHelloWorld.dpr +0 -60
  95. data/tracks/pascal/exercises/Hello-World/TestHelloWorld.dproj +0 -176
  96. data/tracks/pascal/exercises/allergies/AllergyTests.dpr +0 -60
  97. data/tracks/pascal/exercises/allergies/AllergyTests.dproj +0 -176
  98. data/tracks/pascal/exercises/bank-account/BankAccountTests.dpr +0 -60
  99. data/tracks/pascal/exercises/bank-account/BankAccountTests.dproj +0 -176
  100. data/tracks/pascal/exercises/beer-song/BeerSongTests.dpr +0 -60
  101. data/tracks/pascal/exercises/beer-song/BeerSongTests.dproj +0 -176
  102. data/tracks/pascal/exercises/binary-search/BinarySearchTest.dpr +0 -60
  103. data/tracks/pascal/exercises/binary-search/BinarySearchTest.dproj +0 -176
  104. data/tracks/pascal/exercises/bob/BobTests.dpr +0 -60
  105. data/tracks/pascal/exercises/bob/BobTests.dproj +0 -176
  106. data/tracks/pascal/exercises/book-store/BookStoreTests.dpr +0 -60
  107. data/tracks/pascal/exercises/book-store/BookStoreTests.dproj +0 -176
  108. data/tracks/pascal/exercises/bowling/BowlingTests.dpr +0 -60
  109. data/tracks/pascal/exercises/bowling/BowlingTests.dproj +0 -176
  110. data/tracks/pascal/exercises/circular-buffer/CircularBufferTests.dpr +0 -60
  111. data/tracks/pascal/exercises/circular-buffer/CircularBufferTests.dproj +0 -176
  112. data/tracks/pascal/exercises/clock/ClockTest.dpr +0 -60
  113. data/tracks/pascal/exercises/clock/ClockTest.dproj +0 -176
  114. data/tracks/pascal/exercises/etl/ETLtests.dpr +0 -60
  115. data/tracks/pascal/exercises/etl/ETLtests.dproj +0 -176
  116. data/tracks/pascal/exercises/hamming/Hamming.dpr +0 -60
  117. data/tracks/pascal/exercises/hamming/Hamming.dproj +0 -176
  118. data/tracks/pascal/exercises/leap/LeapTest.dpr +0 -60
  119. data/tracks/pascal/exercises/leap/LeapTest.dproj +0 -176
  120. data/tracks/pascal/exercises/nucleotide-count/NucleotideCountTest.dpr +0 -60
  121. data/tracks/pascal/exercises/nucleotide-count/NucleotideCountTest.dproj +0 -176
  122. data/tracks/pascal/exercises/perfect-numbers/PerfectNumbersTest.dpr +0 -60
  123. data/tracks/pascal/exercises/perfect-numbers/PerfectNumbersTest.dproj +0 -176
  124. data/tracks/pascal/exercises/phone-number/PhoneNumberTests.dpr +0 -60
  125. data/tracks/pascal/exercises/phone-number/PhoneNumberTests.dproj +0 -176
@@ -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](https://erlangcentral.org/euc-2014-robert-virding-hitchhikers-tour-of-the-beam/#.VmsIIBorJE4).
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
 
@@ -22,6 +22,12 @@
22
22
  "topics": [
23
23
  ]
24
24
  },
25
+ {
26
+ "slug": "run-length-encoding",
27
+ "difficulty": 1,
28
+ "topics": [
29
+ ]
30
+ },
25
31
  {
26
32
  "slug": "rna-transcription",
27
33
  "difficulty": 1,
@@ -0,0 +1,16 @@
1
+ name: run-length-encoding
2
+
3
+ dependencies:
4
+ - base
5
+
6
+ library:
7
+ exposed-modules: RunLength
8
+ source-dirs: src
9
+
10
+ tests:
11
+ test:
12
+ main: Tests.hs
13
+ source-dirs: test
14
+ dependencies:
15
+ - run-length-encoding
16
+ - hspec
@@ -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,7 @@
1
+ module RunLength (decode, encode) where
2
+
3
+ decode :: String -> String
4
+ decode = undefined
5
+
6
+ encode :: String -> String
7
+ encode = undefined
@@ -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
+ });
@@ -2,3 +2,5 @@
2
2
  .DS_Store
3
3
  bin/configlet
4
4
  bin/configlet.exe
5
+ *.dpr
6
+ *.dproj
@@ -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": [
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.14
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-29 00:00:00.000000000 Z
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/leap/LeapTest.dpr
5104
- - tracks/pascal/exercises/leap/LeapTest.dproj
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.