trackler 2.0.0.2 → 2.0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
![IntelliJ 14 CE -- Gradle import dialog](http://x.exercism.io/v3/tracks/kotlin/docs/img/mac-osx--idea-ce-gradle-import-dialog.png)
|
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
|
![Run tests through IDEA JUnit Runner, NOT Gradle](http://x.exercism.io/v3/tracks/kotlin/docs/img/mac-osx--idea-ce-run-unit-tests.png)
|
@@ -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
|
+
```
|