trackler 2.0.0.2 → 2.0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/common/exercises/forth/canonical-data.json +1 -1
- data/common/exercises/pangram/canonical-data.json +0 -10
- data/common/exercises/run-length-encoding/canonical-data.json +21 -11
- data/lib/trackler/version.rb +1 -1
- data/tracks/bash/SETUP.md +2 -39
- data/tracks/bash/config.json +0 -9
- data/tracks/bash/exercises/hello-world/HINTS.md +38 -0
- data/tracks/bash/exercises/hello-world/hello_world_test.sh +0 -14
- data/tracks/haskell/.travis.yml +2 -13
- data/tracks/haskell/README.md +2 -1
- data/tracks/haskell/config.json +6 -0
- data/tracks/haskell/exercises/accumulate/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/accumulate/{src/Example.hs → examples/success-standard/src/Accumulate.hs} +0 -0
- data/tracks/haskell/exercises/all-your-base/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/all-your-base/{src/Example.hs → examples/success-standard/src/Base.hs} +0 -0
- data/tracks/haskell/exercises/allergies/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/allergies/{src/Example.hs → examples/success-standard/src/Allergies.hs} +0 -0
- data/tracks/haskell/exercises/alphametics/HINTS.md +5 -0
- data/tracks/haskell/exercises/alphametics/examples/success-standard/package.yaml +18 -0
- data/tracks/haskell/exercises/alphametics/examples/success-standard/src/Alphametics.hs +116 -0
- data/tracks/haskell/exercises/alphametics/package.yaml +20 -0
- data/tracks/haskell/exercises/alphametics/src/Alphametics.hs +4 -0
- data/tracks/haskell/exercises/alphametics/stack.yaml +1 -0
- data/tracks/haskell/exercises/alphametics/test/Tests.hs +78 -0
- data/tracks/haskell/exercises/anagram/examples/{list-string → success-liststring}/package.yaml +0 -1
- data/tracks/haskell/exercises/anagram/examples/{list-string → success-liststring/src}/Anagram.hs +0 -0
- data/tracks/haskell/exercises/anagram/examples/{set-text → success-settext}/package.yaml +0 -0
- data/tracks/haskell/exercises/anagram/examples/{set-text → success-settext/src}/Anagram.hs +0 -0
- data/tracks/haskell/exercises/atbash-cipher/examples/success-standard/package.yaml +18 -0
- data/tracks/haskell/exercises/atbash-cipher/{src/Example.hs → examples/success-standard/src/Atbash.hs} +0 -0
- data/tracks/haskell/exercises/bank-account/examples/success-standard/package.yaml +18 -0
- data/tracks/haskell/exercises/bank-account/{src/Example.hs → examples/success-standard/src/BankAccount.hs} +0 -0
- data/tracks/haskell/exercises/beer-song/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/beer-song/{src/Example.hs → examples/success-standard/src/Beer.hs} +0 -0
- data/tracks/haskell/exercises/binary-search-tree/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/binary-search-tree/{src/Example.hs → examples/success-standard/src/BST.hs} +0 -0
- data/tracks/haskell/exercises/binary/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/binary/{src/Example.hs → examples/success-standard/src/Binary.hs} +0 -0
- data/tracks/haskell/exercises/bob/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/bob/{src/Example.hs → examples/success-standard/src/Bob.hs} +0 -0
- data/tracks/haskell/exercises/change/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/change/{src/Example.hs → examples/success-standard/src/Change.hs} +0 -0
- data/tracks/haskell/exercises/clock/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/clock/{src/Example.hs → examples/success-standard/src/Clock.hs} +0 -0
- data/tracks/haskell/exercises/connect/examples/success-standard/package.yaml +18 -0
- data/tracks/haskell/exercises/connect/{src/Example.hs → examples/success-standard/src/Connect.hs} +0 -0
- data/tracks/haskell/exercises/crypto-square/examples/success-standard/package.yaml +18 -0
- data/tracks/haskell/exercises/crypto-square/{src/Example.hs → examples/success-standard/src/CryptoSquare.hs} +0 -0
- data/tracks/haskell/exercises/custom-set/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/custom-set/{src/Example.hs → examples/success-standard/src/CustomSet.hs} +0 -0
- data/tracks/haskell/exercises/difference-of-squares/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/difference-of-squares/{src/Example.hs → examples/success-standard/src/Squares.hs} +0 -0
- data/tracks/haskell/exercises/etl/examples/success-standard/package.yaml +17 -0
- data/tracks/haskell/exercises/etl/{src/Example.hs → examples/success-standard/src/ETL.hs} +0 -0
- data/tracks/haskell/exercises/food-chain/examples/success-standard/package.yaml +18 -0
- data/tracks/haskell/exercises/food-chain/{src/Example.hs → examples/success-standard/src/FoodChain.hs} +0 -0
- data/tracks/haskell/exercises/forth/HINTS.md +2 -2
- data/tracks/haskell/exercises/forth/examples/success-standard/package.yaml +19 -0
- data/tracks/haskell/exercises/forth/{src/Example.hs → examples/success-standard/src/Forth.hs} +3 -3
- data/tracks/haskell/exercises/forth/package.yaml +0 -1
- data/tracks/haskell/exercises/forth/src/Forth.hs +3 -3
- data/tracks/haskell/exercises/forth/test/Tests.hs +120 -65
- data/tracks/haskell/exercises/gigasecond/examples/success-standard/package.yaml +17 -0
- data/tracks/haskell/exercises/gigasecond/{src/Example.hs → examples/success-standard/src/Gigasecond.hs} +0 -0
- data/tracks/haskell/exercises/go-counting/examples/success-standard/package.yaml +20 -0
- data/tracks/haskell/exercises/go-counting/{src/Example.hs → examples/success-standard/src/Counting.hs} +0 -0
- data/tracks/haskell/exercises/grade-school/examples/success-standard/package.yaml +18 -0
- data/tracks/haskell/exercises/grade-school/{src/Example.hs → examples/success-standard/src/School.hs} +0 -0
- data/tracks/haskell/exercises/grains/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/grains/{src/Example.hs → examples/success-standard/src/Grains.hs} +0 -0
- data/tracks/haskell/exercises/grains/test/Tests.hs +1 -2
- data/tracks/haskell/exercises/hamming/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/hamming/{src/Example.hs → examples/success-standard/src/Hamming.hs} +0 -0
- data/tracks/haskell/exercises/hexadecimal/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/hexadecimal/{src/Example.hs → examples/success-standard/src/Hexadecimal.hs} +0 -0
- data/tracks/haskell/exercises/house/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/house/{src/Example.hs → examples/success-standard/src/House.hs} +0 -0
- data/tracks/haskell/exercises/kindergarten-garden/examples/success-standard/package.yaml +19 -0
- data/tracks/haskell/exercises/kindergarten-garden/{src/Example.hs → examples/success-standard/src/Garden.hs} +0 -0
- data/tracks/haskell/exercises/largest-series-product/examples/success-standard/package.yaml +18 -0
- data/tracks/haskell/exercises/largest-series-product/{src/Example.hs → examples/success-standard/src/Series.hs} +0 -0
- data/tracks/haskell/exercises/leap/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/leap/{src/Example.hs → examples/success-standard/src/LeapYear.hs} +0 -0
- data/tracks/haskell/exercises/lens-person/examples/success-standard/package.yaml +19 -0
- data/tracks/haskell/exercises/lens-person/{src/Example.hs → examples/success-standard/src/Person.hs} +0 -0
- data/tracks/haskell/exercises/linked-list/examples/success-standard/package.yaml +18 -0
- data/tracks/haskell/exercises/linked-list/{src/Example.hs → examples/success-standard/src/Deque.hs} +0 -0
- data/tracks/haskell/exercises/list-ops/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/list-ops/{src/Example.hs → examples/success-standard/src/ListOps.hs} +0 -0
- data/tracks/haskell/exercises/luhn/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/luhn/{src/Example.hs → examples/success-standard/src/Luhn.hs} +0 -0
- data/tracks/haskell/exercises/matrix/examples/success-standard/package.yaml +17 -0
- data/tracks/haskell/exercises/matrix/{src/Example.hs → examples/success-standard/src/Matrix.hs} +0 -0
- data/tracks/haskell/exercises/meetup/examples/success-standard/package.yaml +17 -0
- data/tracks/haskell/exercises/meetup/{src/Example.hs → examples/success-standard/src/Meetup.hs} +0 -0
- data/tracks/haskell/exercises/minesweeper/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/minesweeper/{src/Example.hs → examples/success-standard/src/Minesweeper.hs} +0 -0
- data/tracks/haskell/exercises/nth-prime/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/nth-prime/{src/Example.hs → examples/success-standard/src/Prime.hs} +0 -0
- data/tracks/haskell/exercises/nucleotide-count/examples/success-standard/package.yaml +17 -0
- data/tracks/haskell/exercises/nucleotide-count/{src/Example.hs → examples/success-standard/src/DNA.hs} +0 -0
- data/tracks/haskell/exercises/ocr-numbers/examples/success-standard/package.yaml +19 -0
- data/tracks/haskell/exercises/ocr-numbers/{src/Example.hs → examples/success-standard/src/OCR.hs} +0 -0
- data/tracks/haskell/exercises/octal/examples/success-standard/package.yaml +17 -0
- data/tracks/haskell/exercises/octal/{src/Example.hs → examples/success-standard/src/Octal.hs} +0 -0
- data/tracks/haskell/exercises/palindrome-products/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/palindrome-products/{src/Example.hs → examples/success-standard/src/Palindromes.hs} +0 -0
- data/tracks/haskell/exercises/parallel-letter-frequency/examples/success-standard/package.yaml +20 -0
- data/tracks/haskell/exercises/parallel-letter-frequency/{src/Example.hs → examples/success-standard/src/Frequency.hs} +0 -0
- data/tracks/haskell/exercises/pascals-triangle/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/pascals-triangle/{src/Example.hs → examples/success-standard/src/Triangle.hs} +0 -0
- data/tracks/haskell/exercises/phone-number/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/phone-number/{src/Example.hs → examples/success-standard/src/Phone.hs} +0 -0
- data/tracks/haskell/exercises/pig-latin/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/pig-latin/{src/Example.hs → examples/success-standard/src/PigLatin.hs} +0 -0
- data/tracks/haskell/exercises/pig-latin/test/Tests.hs +2 -1
- data/tracks/haskell/exercises/pov/examples/success-standard/package.yaml +17 -0
- data/tracks/haskell/exercises/pov/{src/Example.hs → examples/success-standard/src/POV.hs} +0 -0
- data/tracks/haskell/exercises/pov/test/Tests.hs +34 -8
- data/tracks/haskell/exercises/prime-factors/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/prime-factors/{src/Example.hs → examples/success-standard/src/PrimeFactors.hs} +0 -0
- data/tracks/haskell/exercises/pythagorean-triplet/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/pythagorean-triplet/{src/Example.hs → examples/success-standard/src/Triplet.hs} +0 -0
- data/tracks/haskell/exercises/queen-attack/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/queen-attack/{src/Example.hs → examples/success-standard/src/Queens.hs} +0 -0
- data/tracks/haskell/exercises/raindrops/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/raindrops/{src/Example.hs → examples/success-standard/src/Raindrops.hs} +0 -0
- data/tracks/haskell/exercises/rna-transcription/examples/success-standard/package.yaml +18 -0
- data/tracks/haskell/exercises/rna-transcription/{src/Example.hs → examples/success-standard/src/DNA.hs} +0 -0
- data/tracks/haskell/exercises/robot-name/examples/success-standard/package.yaml +18 -0
- data/tracks/haskell/exercises/robot-name/{src/Example.hs → examples/success-standard/src/Robot.hs} +0 -0
- data/tracks/haskell/exercises/robot-simulator/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/robot-simulator/{src/Example.hs → examples/success-standard/src/Robot.hs} +0 -0
- data/tracks/haskell/exercises/roman-numerals/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/roman-numerals/{src/Example.hs → examples/success-standard/src/Roman.hs} +0 -0
- data/tracks/haskell/exercises/saddle-points/examples/success-standard/package.yaml +19 -0
- data/tracks/haskell/exercises/saddle-points/{src/Example.hs → examples/success-standard/src/Matrix.hs} +0 -0
- data/tracks/haskell/exercises/say/examples/success-standard/package.yaml +18 -0
- data/tracks/haskell/exercises/say/{src/Example.hs → examples/success-standard/src/Say.hs} +0 -0
- data/tracks/haskell/exercises/say/test/Tests.hs +4 -2
- data/tracks/haskell/exercises/scrabble-score/examples/success-standard/package.yaml +18 -0
- data/tracks/haskell/exercises/scrabble-score/{src/Example.hs → examples/success-standard/src/Scrabble.hs} +0 -0
- data/tracks/haskell/exercises/secret-handshake/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/secret-handshake/{src/Example.hs → examples/success-standard/src/SecretHandshake.hs} +0 -0
- data/tracks/haskell/exercises/series/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/series/{src/Example.hs → examples/success-standard/src/Series.hs} +0 -0
- data/tracks/haskell/exercises/sgf-parsing/examples/success-standard/package.yaml +20 -0
- data/tracks/haskell/exercises/sgf-parsing/{src/Example.hs → examples/success-standard/src/Sgf.hs} +0 -0
- data/tracks/haskell/exercises/sieve/examples/success-standard/package.yaml +18 -0
- data/tracks/haskell/exercises/sieve/{src/Example.hs → examples/success-standard/src/Sieve.hs} +0 -0
- data/tracks/haskell/exercises/simple-cipher/examples/success-standard/package.yaml +18 -0
- data/tracks/haskell/exercises/simple-cipher/{src/Example.hs → examples/success-standard/src/Cipher.hs} +0 -0
- data/tracks/haskell/exercises/simple-linked-list/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/simple-linked-list/{src/Example.hs → examples/success-standard/src/LinkedList.hs} +0 -0
- data/tracks/haskell/exercises/space-age/examples/success-double/package.yaml +0 -3
- data/tracks/haskell/exercises/space-age/examples/success-double/{SpaceAge.hs → src/SpaceAge.hs} +0 -0
- data/tracks/haskell/exercises/space-age/examples/success-rational/package.yaml +0 -3
- data/tracks/haskell/exercises/space-age/examples/success-rational/{SpaceAge.hs → src/SpaceAge.hs} +0 -0
- data/tracks/haskell/exercises/strain/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/strain/{src/Example.hs → examples/success-standard/src/Strain.hs} +0 -0
- data/tracks/haskell/exercises/sublist/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/sublist/{src/Example.hs → examples/success-standard/src/Sublist.hs} +0 -0
- data/tracks/haskell/exercises/sum-of-multiples/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/sum-of-multiples/{src/Example.hs → examples/success-standard/src/SumOfMultiples.hs} +0 -0
- data/tracks/haskell/exercises/triangle/examples/success-standard/package.yaml +18 -0
- data/tracks/haskell/exercises/triangle/{src/Example.hs → examples/success-standard/src/Triangle.hs} +0 -0
- data/tracks/haskell/exercises/trinary/examples/success-standard/package.yaml +17 -0
- data/tracks/haskell/exercises/trinary/{src/Example.hs → examples/success-standard/src/Trinary.hs} +0 -0
- data/tracks/haskell/exercises/word-count/examples/success-newtype/package.yaml +0 -2
- data/tracks/haskell/exercises/word-count/examples/success-newtype/{WordCount.hs → src/WordCount.hs} +0 -0
- data/tracks/haskell/exercises/word-count/examples/success-simple/package.yaml +0 -2
- data/tracks/haskell/exercises/word-count/examples/success-simple/{WordCount.hs → src/WordCount.hs} +0 -0
- data/tracks/haskell/exercises/wordy/examples/success-standard/package.yaml +19 -0
- data/tracks/haskell/exercises/wordy/{src/Example.hs → examples/success-standard/src/WordProblem.hs} +0 -0
- data/tracks/haskell/exercises/zebra-puzzle/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/zebra-puzzle/{src/Example.hs → examples/success-standard/src/ZebraPuzzle.hs} +0 -0
- data/tracks/haskell/exercises/zipper/examples/success-standard/package.yaml +16 -0
- data/tracks/haskell/exercises/zipper/{src/Example.hs → examples/success-standard/src/Zipper.hs} +0 -0
- data/tracks/java/config.json +7 -1
- data/tracks/java/exercises/difference-of-squares/build.gradle +17 -0
- data/tracks/java/exercises/difference-of-squares/src/example/java/.keep +0 -0
- data/tracks/java/exercises/difference-of-squares/src/example/java/Difference.java +20 -0
- data/tracks/java/exercises/difference-of-squares/src/main/java/.keep +0 -0
- data/tracks/java/exercises/difference-of-squares/src/main/java/Difference.java +5 -0
- data/tracks/java/exercises/difference-of-squares/src/test/java/DifferenceTest.java +87 -0
- data/tracks/java/exercises/settings.gradle +1 -0
- data/tracks/kotlin/docs/TESTS.md +97 -13
- data/tracks/ruby/exercises/alphametics/.version +1 -1
- data/tracks/ruby/exercises/alphametics/alphametics_test.rb +55 -45
- data/tracks/ruby/exercises/alphametics/example.rb +100 -63
- data/tracks/ruby/exercises/alphametics/example.tt +7 -6
- data/tracks/ruby/lib/alphametics_cases.rb +49 -13
- data/tracks/ruby/lib/generator.rb +2 -1
- data/tracks/rust/docs/LEARNING.md +1 -0
- data/tracks/rust/exercises/acronym/tests/acronym.rs +6 -0
- metadata +164 -80
data/tracks/haskell/exercises/sublist/{src/Example.hs → examples/success-standard/src/Sublist.hs}
RENAMED
|
File without changes
|
|
File without changes
|
data/tracks/haskell/exercises/triangle/{src/Example.hs → examples/success-standard/src/Triangle.hs}
RENAMED
|
File without changes
|
data/tracks/haskell/exercises/trinary/{src/Example.hs → examples/success-standard/src/Trinary.hs}
RENAMED
|
File without changes
|
data/tracks/haskell/exercises/word-count/examples/success-newtype/{WordCount.hs → src/WordCount.hs}
RENAMED
|
File without changes
|
data/tracks/haskell/exercises/word-count/examples/success-simple/{WordCount.hs → src/WordCount.hs}
RENAMED
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
name: wordy
|
|
2
|
+
|
|
3
|
+
dependencies:
|
|
4
|
+
- base
|
|
5
|
+
|
|
6
|
+
library:
|
|
7
|
+
exposed-modules: WordProblem
|
|
8
|
+
source-dirs: src
|
|
9
|
+
dependencies:
|
|
10
|
+
- attoparsec
|
|
11
|
+
- text
|
|
12
|
+
|
|
13
|
+
tests:
|
|
14
|
+
test:
|
|
15
|
+
main: Tests.hs
|
|
16
|
+
source-dirs: test
|
|
17
|
+
dependencies:
|
|
18
|
+
- wordy
|
|
19
|
+
- hspec
|
data/tracks/haskell/exercises/wordy/{src/Example.hs → examples/success-standard/src/WordProblem.hs}
RENAMED
|
File without changes
|
|
File without changes
|
data/tracks/haskell/exercises/zipper/{src/Example.hs → examples/success-standard/src/Zipper.hs}
RENAMED
|
File without changes
|
data/tracks/java/config.json
CHANGED
|
@@ -42,7 +42,8 @@
|
|
|
42
42
|
"linked-list",
|
|
43
43
|
"nth-prime",
|
|
44
44
|
"pascals-triangle",
|
|
45
|
-
"beer-song"
|
|
45
|
+
"beer-song",
|
|
46
|
+
"difference-of-squares"
|
|
46
47
|
],
|
|
47
48
|
"exercises": [
|
|
48
49
|
{
|
|
@@ -239,6 +240,11 @@
|
|
|
239
240
|
"slug": "beer-song",
|
|
240
241
|
"difficulty": 1,
|
|
241
242
|
"topics": []
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"slug": "difference-of-squares",
|
|
246
|
+
"difficulty": 1,
|
|
247
|
+
"topics": []
|
|
242
248
|
}
|
|
243
249
|
],
|
|
244
250
|
"deprecated": [
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
apply plugin: "java"
|
|
2
|
+
apply plugin: "eclipse"
|
|
3
|
+
apply plugin: "idea"
|
|
4
|
+
|
|
5
|
+
repositories {
|
|
6
|
+
mavenCentral()
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
dependencies {
|
|
10
|
+
testCompile "junit:junit:4.12"
|
|
11
|
+
}
|
|
12
|
+
test {
|
|
13
|
+
testLogging {
|
|
14
|
+
exceptionFormat = 'full'
|
|
15
|
+
events = ["passed", "failed", "skipped"]
|
|
16
|
+
}
|
|
17
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import java.util.stream.IntStream;
|
|
2
|
+
|
|
3
|
+
public final class Difference {
|
|
4
|
+
|
|
5
|
+
public static int computeSquareOfSumTo(final int input) {
|
|
6
|
+
final int sum = input * (input + 1) / 2;
|
|
7
|
+
return (int) Math.pow(sum, 2);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
public static int computeSumOfSquaresTo(final int input) {
|
|
11
|
+
return IntStream.rangeClosed(1, input)
|
|
12
|
+
.map(i -> (int) Math.pow(i, 2))
|
|
13
|
+
.sum();
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
public static int betweenSquareOfSumAndSumOfSquaresTo(final int input) {
|
|
17
|
+
return computeSquareOfSumTo(input) - computeSumOfSquaresTo(input);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import org.junit.Ignore;
|
|
2
|
+
import org.junit.Test;
|
|
3
|
+
|
|
4
|
+
import static org.junit.Assert.assertEquals;
|
|
5
|
+
|
|
6
|
+
public final class DifferenceTest {
|
|
7
|
+
|
|
8
|
+
@Test
|
|
9
|
+
public void testSquareOfSum5() {
|
|
10
|
+
final int expected = 225;
|
|
11
|
+
final int actual = Difference.computeSquareOfSumTo(5);
|
|
12
|
+
assertEquals(expected, actual);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@Ignore
|
|
16
|
+
@Test
|
|
17
|
+
public void testSquareOfSum10() {
|
|
18
|
+
final int expected = 3025;
|
|
19
|
+
final int actual = Difference.computeSquareOfSumTo(10);
|
|
20
|
+
assertEquals(expected, actual);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@Ignore
|
|
24
|
+
@Test
|
|
25
|
+
public void testSquareOfSum100() {
|
|
26
|
+
final int expected = 25502500;
|
|
27
|
+
final int actual = Difference.computeSquareOfSumTo(100);
|
|
28
|
+
assertEquals(expected, actual);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@Ignore
|
|
32
|
+
@Test
|
|
33
|
+
public void testSumOfSquares5() {
|
|
34
|
+
final int expected = 55;
|
|
35
|
+
final int actual = Difference.computeSumOfSquaresTo(5);
|
|
36
|
+
assertEquals(expected, actual);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@Ignore
|
|
40
|
+
@Test
|
|
41
|
+
public void testSumOfSquares10() {
|
|
42
|
+
final int expected = 385;
|
|
43
|
+
final int actual = Difference.computeSumOfSquaresTo(10);
|
|
44
|
+
assertEquals(expected, actual);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@Ignore
|
|
48
|
+
@Test
|
|
49
|
+
public void testSumOfSquares100() {
|
|
50
|
+
final int expected = 338350;
|
|
51
|
+
final int actual = Difference.computeSumOfSquaresTo(100);
|
|
52
|
+
assertEquals(expected, actual);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@Ignore
|
|
56
|
+
@Test
|
|
57
|
+
public void testDifferenceOfSquares0() {
|
|
58
|
+
final int expected = 0;
|
|
59
|
+
final int actual = Difference.betweenSquareOfSumAndSumOfSquaresTo(0);
|
|
60
|
+
assertEquals(expected, actual);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@Ignore
|
|
64
|
+
@Test
|
|
65
|
+
public void testDifferenceOfSquares5() {
|
|
66
|
+
final int expected = 170;
|
|
67
|
+
final int actual = Difference.betweenSquareOfSumAndSumOfSquaresTo(5);
|
|
68
|
+
assertEquals(expected, actual);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@Ignore
|
|
72
|
+
@Test
|
|
73
|
+
public void testDifferenceOfSquares10() {
|
|
74
|
+
final int expected = 2640;
|
|
75
|
+
final int actual = Difference.betweenSquareOfSumAndSumOfSquaresTo(10);
|
|
76
|
+
assertEquals(expected, actual);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@Ignore
|
|
80
|
+
@Test
|
|
81
|
+
public void testDifferenceOfSquares100() {
|
|
82
|
+
final int expected = 25164150;
|
|
83
|
+
final int actual = Difference.betweenSquareOfSumAndSumOfSquaresTo(100);
|
|
84
|
+
assertEquals(expected, actual);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
}
|
data/tracks/kotlin/docs/TESTS.md
CHANGED
|
@@ -46,37 +46,41 @@ Gradle project: [C:\Users\johndoe\exercism\kotlin\etl\build.gradle ](...)
|
|
|
46
46
|
|
|
47
47
|
### Get started with the first exercise
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
In the terminal window, get the first exercise:
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
$ exercism fetch kotlin
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
Not Submitted: 1 problem
|
|
54
|
+
Kotlin (Etl) /Users/johndoe/exercism/kotlin/etl
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
New: 1 problem
|
|
57
|
+
Kotlin (Etl) /Users/johndoe/exercism/kotlin/etl
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
unchanged: 0, updated: 0, new: 1
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
### Running the Tests
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
#### Option 1: IntelliJ
|
|
64
|
+
|
|
65
|
+
1. In the "Welcome to IntelliJ IDEA" window, click the "Open" option.
|
|
66
|
+
|
|
67
|
+
2. Navigate to the `/Users/johndoe/exercism/kotlin/etl` folder. Make sure you've selected the
|
|
64
68
|
"etl" folder. Click "OK".
|
|
65
69
|
|
|
66
|
-
|
|
70
|
+
3. In the "Import Project from Gradle" dialog, check the "auto-import" and "create directories"
|
|
67
71
|
checkboxes and select "Use customizable gradle wrapper".
|
|
68
72
|
|
|
69
73
|

|
|
70
74
|
|
|
71
|
-
|
|
75
|
+
4. Click "OK". IntelliJ will automatically create its project artifacts based on the Gradle project file.
|
|
72
76
|
|
|
73
77
|
* After the project has loaded and you've dismissed the "Tip of the Day" dialog, you may see a
|
|
74
78
|
notice (in the top-right-hand corner), saying, "Unindex remote maven repositories found." you can
|
|
75
79
|
safely dismiss this notice.
|
|
76
80
|
|
|
77
|
-
|
|
81
|
+
5. Open the `README.md` file and carefully read the background for the assignment.
|
|
78
82
|
|
|
79
|
-
|
|
83
|
+
6. Start by running the test suite: In the "Project" view, right-click on the test file
|
|
80
84
|
(`etl\src\test\kotlin\EtlTest`), select "Run", then pick the "EtlTest" that has a JUnit icon to the
|
|
81
85
|
left of it (red and green arrows), NOT the Gradle icon (circular green).
|
|
82
86
|

|
|
@@ -89,3 +93,83 @@ Gradle project: [C:\Users\johndoe\exercism\kotlin\etl\build.gradle ](...)
|
|
|
89
93
|
nice list of what needs to be fixed in the "Messages Make" view.
|
|
90
94
|
|
|
91
95
|
... and away you go!!!
|
|
96
|
+
|
|
97
|
+
#### Option 2: Command Line
|
|
98
|
+
|
|
99
|
+
The Exercism exercises for Kotlin can be built and tested from the command line using [Gradle](https://gradle.org).
|
|
100
|
+
|
|
101
|
+
After [installing Gradle](https://www.jayway.com/2013/05/12/getting-started-with-gradle), you can run the tests for any exercise by running `gradle test`, as long as you're in the same directory as the `build.gradle` file:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
$ pwd
|
|
105
|
+
/Users/johndoe/Code/exercism/kotlin/hello-world
|
|
106
|
+
|
|
107
|
+
$ gradle test
|
|
108
|
+
...
|
|
109
|
+
|
|
110
|
+
:test
|
|
111
|
+
|
|
112
|
+
HelloWorldTest > helloSampleName FAILED
|
|
113
|
+
org.junit.ComparisonFailure at HelloWorldTest.kt:25
|
|
114
|
+
|
|
115
|
+
HelloWorldTest > helloNullName FAILED
|
|
116
|
+
org.junit.ComparisonFailure at HelloWorldTest.kt:20
|
|
117
|
+
|
|
118
|
+
HelloWorldTest > helloBlankName FAILED
|
|
119
|
+
org.junit.ComparisonFailure at HelloWorldTest.kt:13
|
|
120
|
+
|
|
121
|
+
HelloWorldTest > helloNoName FAILED
|
|
122
|
+
org.junit.ComparisonFailure at HelloWorldTest.kt:8
|
|
123
|
+
|
|
124
|
+
HelloWorldTest > helloAnotherSampleName FAILED
|
|
125
|
+
org.junit.ComparisonFailure at HelloWorldTest.kt:30
|
|
126
|
+
|
|
127
|
+
5 tests completed, 5 failed
|
|
128
|
+
:test FAILED
|
|
129
|
+
|
|
130
|
+
FAILURE: Build failed with an exception.
|
|
131
|
+
|
|
132
|
+
* What went wrong:
|
|
133
|
+
Execution failed for task ':test'.
|
|
134
|
+
> There were failing tests. See the report at: file:///Users/johndoe/Code/exercism/kotlin/hello-world/build/reports/tests/test/index.html
|
|
135
|
+
|
|
136
|
+
* Try:
|
|
137
|
+
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
|
|
138
|
+
|
|
139
|
+
BUILD FAILED
|
|
140
|
+
|
|
141
|
+
Total time: 1.141 secs
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
When test cases are failing, you can get more information about the failing tests by including the `test` task's `--info` option:
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
$ gradle test --info
|
|
148
|
+
...
|
|
149
|
+
|
|
150
|
+
:test
|
|
151
|
+
|
|
152
|
+
...
|
|
153
|
+
|
|
154
|
+
HelloWorldTest > helloSampleName FAILED
|
|
155
|
+
org.junit.ComparisonFailure: expected:<Hell[o], Alice!> but was:<Hell[ooo], Alice!>
|
|
156
|
+
at org.junit.Assert.assertEquals(Assert.java:115)
|
|
157
|
+
at kotlin.test.junit.JUnitAsserter.assertEquals(JUnitSupport.kt:23)
|
|
158
|
+
at kotlin.test.AssertionsKt__TestAssertionsKt.assertEquals(TestAssertions.kt:29)
|
|
159
|
+
at kotlin.test.AssertionsKt.assertEquals(Unknown Source)
|
|
160
|
+
at kotlin.test.AssertionsKt__TestAssertionsKt.assertEquals$default(TestAssertions.kt:28)
|
|
161
|
+
at kotlin.test.AssertionsKt.assertEquals$default(Unknown Source)
|
|
162
|
+
at HelloWorldTest.helloSampleName(HelloWorldTest.kt:25)
|
|
163
|
+
|
|
164
|
+
...
|
|
165
|
+
|
|
166
|
+
5 tests completed, 5 failed
|
|
167
|
+
|
|
168
|
+
...
|
|
169
|
+
|
|
170
|
+
BUILD FAILED
|
|
171
|
+
|
|
172
|
+
Total time: 1.162 secs
|
|
173
|
+
|
|
174
|
+
...
|
|
175
|
+
```
|