trackler 2.2.1.71 → 2.2.1.72
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/book-store/canonical-data.json +9 -2
- data/problem-specifications/exercises/word-count/canonical-data.json +9 -0
- data/tracks/bash/CONTRIBUTING.md +199 -0
- data/tracks/bash/config.json +24 -11
- data/tracks/bash/exercises/triangle/README.md +38 -0
- data/tracks/bash/exercises/triangle/example.sh +56 -0
- data/tracks/bash/exercises/triangle/triangle_test.sh +126 -0
- data/tracks/bash/img/canonical-data-example.png +0 -0
- data/tracks/bash/img/create-pr.png +0 -0
- data/tracks/bash/img/fork-repository.png +0 -0
- data/tracks/c/exercises/acronym/makefile +1 -1
- data/tracks/c/exercises/all-your-base/makefile +1 -1
- data/tracks/c/exercises/allergies/makefile +1 -1
- data/tracks/c/exercises/anagram/makefile +1 -1
- data/tracks/c/exercises/atbash-cipher/makefile +1 -1
- data/tracks/c/exercises/beer-song/makefile +1 -1
- data/tracks/c/exercises/binary-search/makefile +1 -1
- data/tracks/c/exercises/binary/makefile +1 -1
- data/tracks/c/exercises/bob/makefile +1 -1
- data/tracks/c/exercises/clock/makefile +1 -1
- data/tracks/c/exercises/collatz-conjecture/makefile +1 -1
- data/tracks/c/exercises/difference-of-squares/makefile +1 -1
- data/tracks/c/exercises/gigasecond/makefile +1 -1
- data/tracks/c/exercises/grains/makefile +1 -1
- data/tracks/c/exercises/hamming/makefile +1 -1
- data/tracks/c/exercises/hamming/test/test_hamming.c +2 -2
- data/tracks/c/exercises/hello-world/makefile +1 -1
- data/tracks/c/exercises/isogram/makefile +1 -1
- data/tracks/c/exercises/largest-series-product/makefile +1 -1
- data/tracks/c/exercises/leap/makefile +1 -1
- data/tracks/c/exercises/meetup/makefile +1 -1
- data/tracks/c/exercises/nth-prime/makefile +1 -1
- data/tracks/c/exercises/nucleotide-count/makefile +1 -1
- data/tracks/c/exercises/palindrome-products/makefile +1 -1
- data/tracks/c/exercises/pangram/makefile +1 -1
- data/tracks/c/exercises/pascals-triangle/makefile +1 -1
- data/tracks/c/exercises/perfect-numbers/makefile +1 -1
- data/tracks/c/exercises/phone-number/makefile +1 -1
- data/tracks/c/exercises/queen-attack/makefile +1 -1
- data/tracks/c/exercises/raindrops/makefile +1 -1
- data/tracks/c/exercises/react/makefile +1 -1
- data/tracks/c/exercises/rna-transcription/makefile +1 -1
- data/tracks/c/exercises/robot-simulator/makefile +1 -1
- data/tracks/c/exercises/roman-numerals/makefile +1 -1
- data/tracks/c/exercises/scrabble-score/makefile +1 -1
- data/tracks/c/exercises/series/makefile +1 -1
- data/tracks/c/exercises/sieve/makefile +1 -1
- data/tracks/c/exercises/space-age/makefile +1 -1
- data/tracks/c/exercises/sublist/makefile +1 -1
- data/tracks/c/exercises/sum-of-multiples/makefile +1 -1
- data/tracks/c/exercises/triangle/makefile +1 -1
- data/tracks/c/exercises/word-count/makefile +1 -1
- data/tracks/delphi/exercises/allergies/README.md +1 -1
- data/tracks/delphi/exercises/bank-account/README.md +1 -1
- data/tracks/delphi/exercises/beer-song/README.md +1 -1
- data/tracks/delphi/exercises/binary-search/README.md +1 -1
- data/tracks/delphi/exercises/bob/README.md +1 -1
- data/tracks/delphi/exercises/book-store/README.md +1 -1
- data/tracks/delphi/exercises/book-store/uBookStoreExample.pas +34 -14
- data/tracks/delphi/exercises/book-store/uBookStoreTests.pas +36 -1
- data/tracks/delphi/exercises/bowling/README.md +1 -1
- data/tracks/delphi/exercises/circular-buffer/README.md +1 -1
- data/tracks/delphi/exercises/clock/README.md +1 -1
- data/tracks/delphi/exercises/collatz-conjecture/README.md +1 -1
- data/tracks/delphi/exercises/etl/README.md +1 -1
- data/tracks/delphi/exercises/grains/README.md +1 -1
- data/tracks/delphi/exercises/hamming/README.md +1 -1
- data/tracks/delphi/exercises/hello-world/README.md +1 -1
- data/tracks/delphi/exercises/leap/README.md +1 -1
- data/tracks/delphi/exercises/minesweeper/README.md +1 -1
- data/tracks/delphi/exercises/nucleotide-count/README.md +1 -1
- data/tracks/delphi/exercises/perfect-numbers/README.md +1 -1
- data/tracks/delphi/exercises/phone-number/README.md +1 -1
- data/tracks/delphi/exercises/pig-latin/README.md +1 -1
- data/tracks/delphi/exercises/poker/README.md +1 -1
- data/tracks/delphi/exercises/raindrops/README.md +1 -1
- data/tracks/delphi/exercises/reverse-string/README.md +1 -1
- data/tracks/delphi/exercises/rna-transcription/README.md +1 -1
- data/tracks/delphi/exercises/roman-numerals/README.md +1 -1
- data/tracks/delphi/exercises/saddle-points/README.md +1 -1
- data/tracks/delphi/exercises/triangle/README.md +1 -1
- data/tracks/delphi/exercises/two-fer/README.md +1 -1
- data/tracks/delphi/exercises/wordy/README.md +1 -1
- data/tracks/ecmascript/.travis.yml +1 -1
- data/tracks/ecmascript/Makefile +4 -5
- data/tracks/ecmascript/README.md +2 -1
- data/tracks/ecmascript/config.json +12 -0
- data/tracks/ecmascript/exercises/change/package.json +5 -3
- data/tracks/ecmascript/exercises/protein-translation/package.json +2 -2
- data/tracks/ecmascript/exercises/react/README.md +41 -0
- data/tracks/ecmascript/exercises/react/example.js +101 -0
- data/tracks/ecmascript/exercises/react/package.json +71 -0
- data/tracks/ecmascript/exercises/react/react.spec.js +211 -0
- data/tracks/ecmascript/exercises/rectangles/package.json +1 -2
- data/tracks/ecmascript/exercises/rotational-cipher/package.json +1 -2
- data/tracks/ecmascript/exercises/spiral-matrix/package.json +1 -2
- data/tracks/ecmascript/exercises/transpose/package.json +2 -2
- data/tracks/erlang/docs/ABOUT.md +1 -1
- data/tracks/go/exercises/binary-search/.meta/gen.go +55 -0
- data/tracks/go/exercises/binary-search/binary_search_test.go +26 -167
- data/tracks/go/exercises/binary-search/cases_test.go +73 -0
- data/tracks/go/exercises/binary-search/example.go +8 -30
- data/tracks/go/exercises/nth-prime/.meta/gen.go +76 -0
- data/tracks/go/exercises/nth-prime/cases_test.go +43 -0
- data/tracks/go/exercises/nth-prime/nth_prime_test.go +4 -18
- data/tracks/go/exercises/prime-factors/.meta/gen.go +54 -0
- data/tracks/go/exercises/prime-factors/cases_test.go +48 -0
- data/tracks/go/exercises/prime-factors/prime_factors_test.go +4 -19
- data/tracks/groovy/config.json +13 -1
- data/tracks/groovy/exercises/linked-list/DoubleLinkedList.groovy +19 -0
- data/tracks/groovy/exercises/linked-list/DoubleLinkedListSpec.groovy +79 -0
- data/tracks/groovy/exercises/linked-list/Example.groovy +57 -0
- data/tracks/groovy/exercises/linked-list/README.md +49 -0
- data/tracks/java/bin/run-journey-test-from-ci.sh +1 -1
- data/tracks/java/config.json +10 -0
- data/tracks/java/config/maintainers.json +8 -1
- data/tracks/java/docs/MAINTAINING.md +3 -3
- data/tracks/java/exercises/accumulate/.meta/src/reference/java/Accumulate.java +2 -2
- data/tracks/java/exercises/binary/.meta/src/reference/java/Binary.java +3 -3
- data/tracks/java/exercises/circular-buffer/.meta/src/reference/java/BufferIOException.java +1 -1
- data/tracks/java/exercises/circular-buffer/.meta/src/reference/java/CircularBuffer.java +6 -6
- data/tracks/java/exercises/circular-buffer/src/main/java/BufferIOException.java +1 -1
- data/tracks/java/exercises/clock/.meta/src/reference/java/Clock.java +3 -3
- data/tracks/java/exercises/crypto-square/.meta/src/reference/java/Crypto.java +7 -7
- data/tracks/java/exercises/etl/.meta/src/reference/java/Etl.java +2 -2
- data/tracks/java/exercises/etl/src/main/java/Etl.java +2 -2
- data/tracks/java/exercises/kindergarten-garden/.meta/src/reference/java/KindergartenGarden.java +4 -4
- data/tracks/java/exercises/kindergarten-garden/.meta/src/reference/java/Plant.java +2 -2
- data/tracks/java/exercises/kindergarten-garden/src/main/java/Plant.java +2 -2
- data/tracks/java/exercises/nth-prime/.meta/src/reference/java/PrimeCalculator.java +2 -2
- data/tracks/java/exercises/reverse-string/.meta/src/reference/java/ReverseString.java +7 -0
- data/tracks/java/exercises/reverse-string/.meta/version +1 -0
- data/tracks/java/exercises/reverse-string/README.md +25 -0
- data/tracks/java/exercises/reverse-string/build.gradle +17 -0
- data/tracks/java/exercises/reverse-string/src/main/java/ReverseString.java +7 -0
- data/tracks/java/exercises/reverse-string/src/test/java/ReverseStringTest.java +37 -0
- data/tracks/java/exercises/run-length-encoding/.meta/src/reference/java/RunLengthEncoding.java +4 -4
- data/tracks/java/exercises/settings.gradle +1 -0
- data/tracks/kotlin/docs/RESOURCES.md +1 -1
- data/tracks/kotlin/exercises/accumulate/build.gradle +1 -1
- data/tracks/kotlin/exercises/acronym/build.gradle +1 -1
- data/tracks/kotlin/exercises/all-your-base/build.gradle +1 -1
- data/tracks/kotlin/exercises/allergies/build.gradle +1 -1
- data/tracks/kotlin/exercises/anagram/build.gradle +1 -1
- data/tracks/kotlin/exercises/atbash-cipher/build.gradle +1 -1
- data/tracks/kotlin/exercises/bank-account/build.gradle +1 -1
- data/tracks/kotlin/exercises/beer-song/build.gradle +1 -1
- data/tracks/kotlin/exercises/binary-search/build.gradle +1 -1
- data/tracks/kotlin/exercises/binary/build.gradle +1 -1
- data/tracks/kotlin/exercises/bob/build.gradle +1 -1
- data/tracks/kotlin/exercises/bracket-push/build.gradle +1 -1
- data/tracks/kotlin/exercises/change/build.gradle +1 -1
- data/tracks/kotlin/exercises/clock/build.gradle +1 -1
- data/tracks/kotlin/exercises/collatz-conjecture/build.gradle +1 -1
- data/tracks/kotlin/exercises/complex-numbers/build.gradle +1 -1
- data/tracks/kotlin/exercises/diamond/build.gradle +1 -1
- data/tracks/kotlin/exercises/difference-of-squares/build.gradle +1 -1
- data/tracks/kotlin/exercises/etl/build.gradle +1 -1
- data/tracks/kotlin/exercises/flatten-array/build.gradle +1 -1
- data/tracks/kotlin/exercises/forth/build.gradle +1 -1
- data/tracks/kotlin/exercises/gigasecond/build.gradle +1 -1
- data/tracks/kotlin/exercises/grade-school/build.gradle +1 -1
- data/tracks/kotlin/exercises/grains/build.gradle +1 -1
- data/tracks/kotlin/exercises/hamming/build.gradle +1 -1
- data/tracks/kotlin/exercises/hello-world/build.gradle +1 -1
- data/tracks/kotlin/exercises/hexadecimal/build.gradle +1 -1
- data/tracks/kotlin/exercises/isogram/build.gradle +1 -1
- data/tracks/kotlin/exercises/largest-series-product/build.gradle +1 -1
- data/tracks/kotlin/exercises/leap/build.gradle +1 -1
- data/tracks/kotlin/exercises/linked-list/build.gradle +1 -1
- data/tracks/kotlin/exercises/list-ops/build.gradle +1 -1
- data/tracks/kotlin/exercises/luhn/build.gradle +1 -1
- data/tracks/kotlin/exercises/meetup/build.gradle +1 -1
- data/tracks/kotlin/exercises/minesweeper/build.gradle +1 -1
- data/tracks/kotlin/exercises/nth-prime/build.gradle +1 -1
- data/tracks/kotlin/exercises/nucleotide-count/build.gradle +1 -1
- data/tracks/kotlin/exercises/pangram/build.gradle +1 -1
- data/tracks/kotlin/exercises/pascals-triangle/build.gradle +1 -1
- data/tracks/kotlin/exercises/perfect-numbers/build.gradle +1 -1
- data/tracks/kotlin/exercises/phone-number/build.gradle +1 -1
- data/tracks/kotlin/exercises/pig-latin/build.gradle +1 -1
- data/tracks/kotlin/exercises/prime-factors/build.gradle +1 -1
- data/tracks/kotlin/exercises/raindrops/build.gradle +1 -1
- data/tracks/kotlin/exercises/react/build.gradle +1 -1
- data/tracks/kotlin/exercises/rna-transcription/build.gradle +1 -1
- data/tracks/kotlin/exercises/robot-name/build.gradle +1 -1
- data/tracks/kotlin/exercises/robot-simulator/build.gradle +1 -1
- data/tracks/kotlin/exercises/roman-numerals/build.gradle +1 -1
- data/tracks/kotlin/exercises/rotational-cipher/build.gradle +1 -1
- data/tracks/kotlin/exercises/saddle-points/build.gradle +1 -1
- data/tracks/kotlin/exercises/say/build.gradle +1 -1
- data/tracks/kotlin/exercises/scrabble-score/build.gradle +1 -1
- data/tracks/kotlin/exercises/secret-handshake/build.gradle +1 -1
- data/tracks/kotlin/exercises/series/build.gradle +1 -1
- data/tracks/kotlin/exercises/sieve/build.gradle +1 -1
- data/tracks/kotlin/exercises/simple-cipher/README.md +4 -6
- data/tracks/kotlin/exercises/simple-cipher/build.gradle +1 -1
- data/tracks/kotlin/exercises/space-age/build.gradle +1 -1
- data/tracks/kotlin/exercises/spiral-matrix/build.gradle +1 -1
- data/tracks/kotlin/exercises/strain/build.gradle +1 -1
- data/tracks/kotlin/exercises/sublist/build.gradle +1 -1
- data/tracks/kotlin/exercises/sum-of-multiples/build.gradle +1 -1
- data/tracks/kotlin/exercises/triangle/build.gradle +1 -1
- data/tracks/kotlin/exercises/two-fer/build.gradle +1 -1
- data/tracks/kotlin/exercises/word-count/build.gradle +1 -1
- data/tracks/lua/.gitignore +1 -0
- data/tracks/lua/config.json +12 -0
- data/tracks/lua/exercises/isbn-verifier/README.md +52 -0
- data/tracks/lua/exercises/isbn-verifier/example.lua +16 -0
- data/tracks/lua/exercises/isbn-verifier/isbn-verifier_spec.lua +55 -0
- data/tracks/ocaml/.travis-ci.sh +1 -1
- data/tracks/ocaml/.travis.yml +1 -1
- data/tracks/ocaml/README.md +1 -1
- data/tracks/perl6/config.json +10 -0
- data/tracks/perl6/exercises/acronym/Acronym.pm6 +4 -0
- data/tracks/perl6/exercises/acronym/Example.pm6 +5 -0
- data/tracks/perl6/exercises/acronym/README.md +33 -0
- data/tracks/perl6/exercises/acronym/acronym.t +96 -0
- data/tracks/perl6/exercises/acronym/example.yaml +19 -0
- data/tracks/perl6/exercises/word-count/Example.pm6 +1 -1
- data/tracks/perl6/exercises/word-count/WordCount.pm6 +1 -1
- data/tracks/perl6/exercises/word-count/example.yaml +2 -2
- data/tracks/perl6/exercises/word-count/word-count.t +11 -2
- data/tracks/pony/docs/RESOURCES.md +1 -1
- data/tracks/purescript/docs/INSTALLATION.md +1 -3
- data/tracks/python/config.json +1 -1
- data/tracks/r/exercises/word-count/test_word-count.R +5 -0
- data/tracks/ruby/README.md +73 -10
- data/tracks/rust/config.json +34 -0
- data/tracks/rust/exercises/book-store/Cargo.toml +1 -1
- data/tracks/rust/exercises/book-store/tests/book-store.rs +7 -0
- data/tracks/rust/exercises/diffie-hellman/.gitignore +9 -0
- data/tracks/rust/exercises/diffie-hellman/Cargo-example.toml +6 -0
- data/tracks/rust/exercises/diffie-hellman/Cargo.toml +5 -0
- data/tracks/rust/exercises/diffie-hellman/README.md +77 -0
- data/tracks/rust/exercises/diffie-hellman/example.rs +15 -0
- data/tracks/rust/exercises/diffie-hellman/src/lib.rs +11 -0
- data/tracks/rust/exercises/diffie-hellman/tests/diffie-hellman.rs +60 -0
- data/tracks/rust/exercises/macros/.gitignore +3 -0
- data/tracks/rust/exercises/macros/.meta/description.md +29 -0
- data/tracks/rust/exercises/macros/.meta/metadata.yml +3 -0
- data/tracks/rust/exercises/macros/Cargo.toml +6 -0
- data/tracks/rust/exercises/macros/README.md +70 -0
- data/tracks/rust/exercises/macros/example.rs +16 -0
- data/tracks/rust/exercises/macros/src/lib.rs +6 -0
- data/tracks/rust/exercises/macros/tests/macros.rs +62 -0
- data/tracks/rust/exercises/simple-linked-list/.gitignore +7 -0
- data/tracks/rust/exercises/simple-linked-list/.meta/hints.md +34 -0
- data/tracks/rust/exercises/simple-linked-list/Cargo.toml +5 -0
- data/tracks/rust/exercises/simple-linked-list/README.md +96 -0
- data/tracks/rust/exercises/simple-linked-list/example.rs +87 -0
- data/tracks/rust/exercises/simple-linked-list/src/lib.rs +46 -0
- data/tracks/rust/exercises/simple-linked-list/tests/simple-linked-list.rs +91 -0
- data/tracks/swift/.travis.yml +1 -1
- data/tracks/swift/config.json +24 -0
- data/tracks/swift/exercises/isbn-verifier/Package.swift +5 -0
- data/tracks/swift/exercises/isbn-verifier/README.md +39 -0
- data/tracks/swift/exercises/isbn-verifier/Sources/IsbnVerifier.swift +1 -0
- data/tracks/swift/exercises/isbn-verifier/Sources/IsbnVerifierExample.swift +35 -0
- data/tracks/swift/exercises/isbn-verifier/Tests/IsbnVerifierTests/IsbnVerifierTests.swift +75 -0
- data/tracks/swift/exercises/isbn-verifier/Tests/LinuxMain.swift +6 -0
- data/tracks/swift/exercises/two-fer/Package.swift +5 -0
- data/tracks/swift/exercises/two-fer/README.md +54 -0
- data/tracks/swift/exercises/two-fer/Sources/TwoFer.swift +1 -0
- data/tracks/swift/exercises/two-fer/Sources/TwoFerExample.swift +6 -0
- data/tracks/swift/exercises/two-fer/Tests/LinuxMain.swift +6 -0
- data/tracks/swift/exercises/two-fer/Tests/TwoFerTests/TwoFerTests.swift +25 -0
- metadata +71 -2
@@ -37,7 +37,7 @@ A binary search is a dichotomic divide and conquer search algorithm.
|
|
37
37
|
## Testing
|
38
38
|
|
39
39
|
In order to run the tests for this track, you will need to install
|
40
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
40
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
41
41
|
|
42
42
|
### Loading Exercises into Delphi
|
43
43
|
|
@@ -14,7 +14,7 @@ He answers 'Whatever.' to anything else.
|
|
14
14
|
## Testing
|
15
15
|
|
16
16
|
In order to run the tests for this track, you will need to install
|
17
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
17
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
18
18
|
|
19
19
|
### Loading Exercises into Delphi
|
20
20
|
|
@@ -70,7 +70,7 @@ And $51.20 is the price with the biggest discount.
|
|
70
70
|
## Testing
|
71
71
|
|
72
72
|
In order to run the tests for this track, you will need to install
|
73
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
73
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
74
74
|
|
75
75
|
### Loading Exercises into Delphi
|
76
76
|
|
@@ -11,7 +11,7 @@ type
|
|
11
11
|
function NewBasket(aBasket: TArray<Integer>): IBasket;
|
12
12
|
|
13
13
|
implementation
|
14
|
-
uses System.SysUtils;
|
14
|
+
uses System.SysUtils, System.Generics.collections, System.Math;
|
15
15
|
|
16
16
|
const
|
17
17
|
seriesBooks = '12345';
|
@@ -27,6 +27,7 @@ type
|
|
27
27
|
private
|
28
28
|
fSingleBookPrice: extended;
|
29
29
|
fBasket: string;
|
30
|
+
fIntList: TList<integer>;
|
30
31
|
class function Head(inStr: string): string; static;
|
31
32
|
class function Tail(inStr: string): string; static;
|
32
33
|
class function ConvertIntArrayToString(const aIntArray: TArray<Integer>): string; static;
|
@@ -65,6 +66,9 @@ end;
|
|
65
66
|
constructor TBasket.Create(aBasket: TArray<Integer>);
|
66
67
|
begin
|
67
68
|
fSingleBookPrice := 8;
|
69
|
+
fIntList := TList<integer>.Create;
|
70
|
+
fIntList.AddRange(aBasket);
|
71
|
+
fIntList.Sort;
|
68
72
|
fBasket := ConvertIntArrayToString(aBasket);
|
69
73
|
end;
|
70
74
|
|
@@ -108,26 +112,42 @@ begin
|
|
108
112
|
end;
|
109
113
|
|
110
114
|
function TBasket.Total:extended;
|
111
|
-
var
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
115
|
+
var
|
116
|
+
subBaskets : TArray<String>;
|
117
|
+
subResult : array[0..1] of extended;
|
118
|
+
lSortedBasket : TArray<integer>;
|
119
|
+
|
120
|
+
function computeTotal: extended;
|
121
|
+
var wrkSubBasket: string;
|
122
|
+
totalBooks : integer;
|
123
|
+
subTotal : extended;
|
124
|
+
begin
|
125
|
+
result := 0;
|
126
|
+
for wrkSubBasket in subBaskets do
|
127
|
+
begin
|
128
|
+
totalBooks := wrkSubBasket.Length;
|
129
|
+
subTotal := totalBooks * (fSingleBookPrice * DiscountPercentage(wrkSubBasket));
|
130
|
+
Result := Result + subTotal;
|
131
|
+
end;
|
132
|
+
end;
|
133
|
+
|
116
134
|
begin
|
135
|
+
fillchar(subResult, sizeof(extended), #0);
|
136
|
+
|
117
137
|
subBaskets := GroupBasket;
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
138
|
+
subResult[0] := computeTotal;
|
139
|
+
|
140
|
+
lSortedBasket := fIntList.ToArray;
|
141
|
+
fBasket := ConvertIntArrayToString(lSortedBasket);
|
142
|
+
subBaskets := GroupBasket;
|
143
|
+
subResult[1] := computeTotal;
|
144
|
+
|
145
|
+
result := min(subResult[0], subResult[1]);
|
125
146
|
end;
|
126
147
|
|
127
148
|
function TBasket.DiscountPercentage(inStr : string):extended;
|
128
149
|
var numDiffBooks: integer;
|
129
150
|
begin
|
130
|
-
result := 1;
|
131
151
|
numDiffBooks := NumberOfDifferentBooks(inStr);
|
132
152
|
result := CDiscounts[numDiffBooks];
|
133
153
|
end;
|
@@ -4,12 +4,15 @@ interface
|
|
4
4
|
uses
|
5
5
|
DUnitX.TestFramework;
|
6
6
|
|
7
|
+
const
|
8
|
+
CanonicalVersion = '1.1.0';
|
9
|
+
|
7
10
|
type
|
8
11
|
[TestFixture]
|
9
12
|
hpTests = class(TObject)
|
10
13
|
public
|
11
14
|
[Test]
|
12
|
-
//
|
15
|
+
// [Ignore('Comment the "[Ignore]" statement to run the test')]
|
13
16
|
procedure A_basket_containing_only_a_single_book;
|
14
17
|
|
15
18
|
[Test]
|
@@ -55,6 +58,10 @@ type
|
|
55
58
|
[Test]
|
56
59
|
[Ignore]
|
57
60
|
procedure A_basket_containing_twelve_books_consisting_of_three_copies_of_the_first_two_books_plus_two_each_of_the_remaining_three_books_in_the_series;
|
61
|
+
|
62
|
+
[Test]
|
63
|
+
[Ignore]
|
64
|
+
procedure Four_groups_of_four_are_cheaper_than_two_groups_each_of_five_and_three;
|
58
65
|
end;
|
59
66
|
|
60
67
|
implementation
|
@@ -130,6 +137,34 @@ begin
|
|
130
137
|
assert.AreEqual(Expected, fBasket.Total, MinDelta, format('Total should be %0.2f',[Expected]));
|
131
138
|
end;
|
132
139
|
|
140
|
+
procedure hpTests.Four_groups_of_four_are_cheaper_than_two_groups_each_of_five_and_three;
|
141
|
+
var Basket: TArray<integer>;
|
142
|
+
fBasket: IBasket;
|
143
|
+
Expected: double;
|
144
|
+
begin
|
145
|
+
SetLength(Basket, 16);
|
146
|
+
Basket[0] := 1;
|
147
|
+
Basket[1] := 1;
|
148
|
+
Basket[2] := 2;
|
149
|
+
Basket[3] := 2;
|
150
|
+
Basket[4] := 3;
|
151
|
+
Basket[5] := 3;
|
152
|
+
Basket[6] := 4;
|
153
|
+
Basket[7] := 5;
|
154
|
+
Basket[8] := 1;
|
155
|
+
Basket[9] := 1;
|
156
|
+
Basket[10] := 2;
|
157
|
+
Basket[11] := 2;
|
158
|
+
Basket[12] := 3;
|
159
|
+
Basket[13] := 3;
|
160
|
+
Basket[14] := 4;
|
161
|
+
Basket[15] := 5;
|
162
|
+
Expected := 102.40;
|
163
|
+
|
164
|
+
fBasket := NewBasket(Basket);
|
165
|
+
assert.AreEqual(Expected, fBasket.Total, MinDelta, format('Total should be %0.2f',[Expected]));
|
166
|
+
end;
|
167
|
+
|
133
168
|
procedure hpTests.A_basket_with_four_different_books;
|
134
169
|
var Basket: TArray<integer>;
|
135
170
|
fBasket: IBasket;
|
@@ -63,7 +63,7 @@ support two operations:
|
|
63
63
|
## Testing
|
64
64
|
|
65
65
|
In order to run the tests for this track, you will need to install
|
66
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
66
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
67
67
|
|
68
68
|
### Loading Exercises into Delphi
|
69
69
|
|
@@ -53,7 +53,7 @@ the buffer is once again full.
|
|
53
53
|
## Testing
|
54
54
|
|
55
55
|
In order to run the tests for this track, you will need to install
|
56
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
56
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
57
57
|
|
58
58
|
### Loading Exercises into Delphi
|
59
59
|
|
@@ -9,7 +9,7 @@ Two clocks that represent the same time should be equal to each other.
|
|
9
9
|
## Testing
|
10
10
|
|
11
11
|
In order to run the tests for this track, you will need to install
|
12
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
12
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
13
13
|
|
14
14
|
### Loading Exercises into Delphi
|
15
15
|
|
@@ -29,7 +29,7 @@ Resulting in 9 steps. So for input n = 12, the return value would be 9.
|
|
29
29
|
## Testing
|
30
30
|
|
31
31
|
In order to run the tests for this track, you will need to install
|
32
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
32
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
33
33
|
|
34
34
|
### Loading Exercises into Delphi
|
35
35
|
|
@@ -49,7 +49,7 @@ game while being scored at 4 in the Hawaiian-language version.
|
|
49
49
|
## Testing
|
50
50
|
|
51
51
|
In order to run the tests for this track, you will need to install
|
52
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
52
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
53
53
|
|
54
54
|
### Loading Exercises into Delphi
|
55
55
|
|
@@ -29,7 +29,7 @@ experiment make the code better? Worse? Did you learn anything from it?
|
|
29
29
|
## Testing
|
30
30
|
|
31
31
|
In order to run the tests for this track, you will need to install
|
32
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
32
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
33
33
|
|
34
34
|
### Loading Exercises into Delphi
|
35
35
|
|
@@ -38,7 +38,7 @@ of equal length differently.
|
|
38
38
|
## Testing
|
39
39
|
|
40
40
|
In order to run the tests for this track, you will need to install
|
41
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
41
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
42
42
|
|
43
43
|
### Loading Exercises into Delphi
|
44
44
|
|
@@ -17,7 +17,7 @@ If everything goes well, you will be ready to fetch your first real exercise.
|
|
17
17
|
## Testing
|
18
18
|
|
19
19
|
In order to run the tests for this track, you will need to install
|
20
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
20
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
21
21
|
|
22
22
|
### Loading Exercises into Delphi
|
23
23
|
|
@@ -29,7 +29,7 @@ phenomenon, go watch [this youtube video][video].
|
|
29
29
|
## Testing
|
30
30
|
|
31
31
|
In order to run the tests for this track, you will need to install
|
32
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
32
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
33
33
|
|
34
34
|
### Loading Exercises into Delphi
|
35
35
|
|
@@ -29,7 +29,7 @@ into this:
|
|
29
29
|
## Testing
|
30
30
|
|
31
31
|
In order to run the tests for this track, you will need to install
|
32
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
32
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
33
33
|
|
34
34
|
### Loading Exercises into Delphi
|
35
35
|
|
@@ -15,7 +15,7 @@ Here is an analogy:
|
|
15
15
|
## Testing
|
16
16
|
|
17
17
|
In order to run the tests for this track, you will need to install
|
18
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
18
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
19
19
|
|
20
20
|
### Loading Exercises into Delphi
|
21
21
|
|
@@ -20,7 +20,7 @@ Implement a way to determine whether a given number is **perfect**. Depending on
|
|
20
20
|
## Testing
|
21
21
|
|
22
22
|
In order to run the tests for this track, you will need to install
|
23
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
23
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
24
24
|
|
25
25
|
### Loading Exercises into Delphi
|
26
26
|
|
@@ -31,7 +31,7 @@ should all produce the output
|
|
31
31
|
## Testing
|
32
32
|
|
33
33
|
In order to run the tests for this track, you will need to install
|
34
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
34
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
35
35
|
|
36
36
|
### Loading Exercises into Delphi
|
37
37
|
|
@@ -20,7 +20,7 @@ See <http://en.wikipedia.org/wiki/Pig_latin> for more details.
|
|
20
20
|
## Testing
|
21
21
|
|
22
22
|
In order to run the tests for this track, you will need to install
|
23
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
23
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
24
24
|
|
25
25
|
### Loading Exercises into Delphi
|
26
26
|
|
@@ -8,7 +8,7 @@ overview of poker hands.
|
|
8
8
|
## Testing
|
9
9
|
|
10
10
|
In order to run the tests for this track, you will need to install
|
11
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
11
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
12
12
|
|
13
13
|
### Loading Exercises into Delphi
|
14
14
|
|
@@ -20,7 +20,7 @@ Convert a number to a string, the contents of which depend on the number's facto
|
|
20
20
|
## Testing
|
21
21
|
|
22
22
|
In order to run the tests for this track, you will need to install
|
23
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
23
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
24
24
|
|
25
25
|
### Loading Exercises into Delphi
|
26
26
|
|
@@ -9,7 +9,7 @@ output: "looc"
|
|
9
9
|
## Testing
|
10
10
|
|
11
11
|
In order to run the tests for this track, you will need to install
|
12
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
12
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
13
13
|
|
14
14
|
### Loading Exercises into Delphi
|
15
15
|
|
@@ -21,7 +21,7 @@ each nucleotide with its complement:
|
|
21
21
|
## Testing
|
22
22
|
|
23
23
|
In order to run the tests for this track, you will need to install
|
24
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
24
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
25
25
|
|
26
26
|
### Loading Exercises into Delphi
|
27
27
|
|
@@ -45,7 +45,7 @@ See also: http://www.novaroma.org/via_romana/numbers.html
|
|
45
45
|
## Testing
|
46
46
|
|
47
47
|
In order to run the tests for this track, you will need to install
|
48
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
48
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
49
49
|
|
50
50
|
### Loading Exercises into Delphi
|
51
51
|
|
@@ -29,7 +29,7 @@ but the tests for this exercise follow the above unambiguous definition.
|
|
29
29
|
## Testing
|
30
30
|
|
31
31
|
In order to run the tests for this track, you will need to install
|
32
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
32
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
33
33
|
|
34
34
|
### Loading Exercises into Delphi
|
35
35
|
|
@@ -25,7 +25,7 @@ a single line. Feel free to add your own code/tests to check for degenerate tria
|
|
25
25
|
## Testing
|
26
26
|
|
27
27
|
In order to run the tests for this track, you will need to install
|
28
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
28
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
29
29
|
|
30
30
|
### Loading Exercises into Delphi
|
31
31
|
|
@@ -15,7 +15,7 @@ If no name is given, the result should be "One for you, one for me."
|
|
15
15
|
## Testing
|
16
16
|
|
17
17
|
In order to run the tests for this track, you will need to install
|
18
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
18
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
19
19
|
|
20
20
|
### Loading Exercises into Delphi
|
21
21
|
|
@@ -54,7 +54,7 @@ If you'd like, handle exponentials.
|
|
54
54
|
## Testing
|
55
55
|
|
56
56
|
In order to run the tests for this track, you will need to install
|
57
|
-
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/
|
57
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
58
58
|
|
59
59
|
### Loading Exercises into Delphi
|
60
60
|
|
data/tracks/ecmascript/Makefile
CHANGED
@@ -17,11 +17,6 @@ TSTFILE := "$(subst _,-,$(ASSIGNMENT)).spec.$(FILEEXT)"
|
|
17
17
|
SOURCE_PKG_MD5 ?= "`./bin/md5-hash ./package.json`"
|
18
18
|
PKG_FILES= $(shell find ./exercises/*/* -maxdepth 1 -name package.json)
|
19
19
|
|
20
|
-
test-package-files:
|
21
|
-
@for pkg in $(PKG_FILES); do \
|
22
|
-
! ./bin/md5-hash $$pkg | grep -qv $(SOURCE_PKG_MD5) || { echo "$$pkg does not match main package.json"; exit 1; }; \
|
23
|
-
done
|
24
|
-
|
25
20
|
copy-assignment:
|
26
21
|
@cp package.json exercises/$(ASSIGNMENT)
|
27
22
|
@mkdir -p $(OUTDIR)
|
@@ -37,6 +32,10 @@ test-assignment:
|
|
37
32
|
@rm -rf $(OUTDIR)
|
38
33
|
|
39
34
|
test-travis:
|
35
|
+
@echo "Checking that exercise package.json files match main package.json..."
|
36
|
+
@for pkg in $(PKG_FILES); do \
|
37
|
+
! ./bin/md5-hash $$pkg | grep -qv $(SOURCE_PKG_MD5) || { echo "$$pkg does not match main package.json. Please run 'make test' locally and commit the results."; exit 1; }; \
|
38
|
+
done
|
40
39
|
@echo "Preparing tests..."
|
41
40
|
@for assignment in $(ASSIGNMENTS); do ASSIGNMENT=$$assignment $(MAKE) -s copy-assignment || exit 1; done
|
42
41
|
@node_modules/.bin/jest --bail $(OUTDIR)
|
data/tracks/ecmascript/README.md
CHANGED
@@ -25,7 +25,8 @@ and suggesting changes that conform to best practices.
|
|
25
25
|
The make script will test all exercises:
|
26
26
|
|
27
27
|
make test
|
28
|
-
|
28
|
+
|
29
|
+
Note: `make test` is recommended BEFORE submitting a PR. It will test your submission, and help guard against unintentional, unrelated changes.
|
29
30
|
#### Test Specific Assignment
|
30
31
|
Pass the exercise name to make script to run the tests for a specific exercise:
|
31
32
|
|
@@ -510,6 +510,18 @@
|
|
510
510
|
"Exception handling"
|
511
511
|
]
|
512
512
|
},
|
513
|
+
{
|
514
|
+
"uuid": "303c6969-9446-41aa-871a-11223a43e810",
|
515
|
+
"slug": "react",
|
516
|
+
"core": false,
|
517
|
+
"unlocked_by": null,
|
518
|
+
"difficulty": 8,
|
519
|
+
"topics": [
|
520
|
+
"Algorithms",
|
521
|
+
"Events",
|
522
|
+
"Reactive programming"
|
523
|
+
]
|
524
|
+
},
|
513
525
|
{
|
514
526
|
"uuid": "f77ac2d1-cf3a-497d-bf04-b484a5a9cb37",
|
515
527
|
"slug": "raindrops",
|