trackler 2.0.0.3 → 2.0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/common/CONTRIBUTING.md +1 -1
  3. data/common/README.md +4 -4
  4. data/common/exercises/bowling/canonical-data.json +8 -0
  5. data/common/exercises/hello-world/description.md +1 -1
  6. data/lib/trackler/version.rb +1 -1
  7. data/tracks/c/.gitignore +1 -0
  8. data/tracks/c/bin/run-tests +3 -0
  9. data/tracks/c/config.json +9 -0
  10. data/tracks/c/exercises/clock/makefile +16 -0
  11. data/tracks/c/exercises/clock/src/clock.h +11 -0
  12. data/tracks/c/exercises/clock/src/example.c +31 -0
  13. data/tracks/c/exercises/clock/test/test_clock.c +489 -0
  14. data/tracks/c/exercises/clock/test/vendor/unity.c +1300 -0
  15. data/tracks/c/exercises/clock/test/vendor/unity.h +274 -0
  16. data/tracks/c/exercises/clock/test/vendor/unity_internals.h +701 -0
  17. data/tracks/coldfusion/config.json +2 -1
  18. data/tracks/coldfusion/img/icon.png +0 -0
  19. data/tracks/crystal/Makefile +11 -15
  20. data/tracks/crystal/SETUP.md +1 -1
  21. data/tracks/crystal/docs/LEARNING.md +5 -3
  22. data/tracks/crystal/docs/TESTS.md +24 -3
  23. data/tracks/crystal/exercises/anagram/{anagram_spec.cr → spec/anagram_spec.cr} +1 -1
  24. data/tracks/crystal/exercises/anagram/{example.cr → src/example.cr} +0 -0
  25. data/tracks/crystal/exercises/atbash-cipher/{atbash_cipher_spec.cr → spec/atbash_cipher_spec.cr} +1 -1
  26. data/tracks/crystal/exercises/atbash-cipher/{example.cr → src/example.cr} +0 -0
  27. data/tracks/crystal/exercises/bob/{bob_spec.cr → spec/bob_spec.cr} +1 -1
  28. data/tracks/crystal/exercises/bob/{example.cr → src/example.cr} +0 -0
  29. data/tracks/crystal/exercises/bracket-push/{bracket_push_spec.cr → spec/bracket_push_spec.cr} +1 -1
  30. data/tracks/crystal/exercises/bracket-push/{example.cr → src/example.cr} +0 -0
  31. data/tracks/crystal/exercises/gigasecond/{gigasecond_spec.cr → spec/gigasecond_spec.cr} +1 -1
  32. data/tracks/crystal/exercises/gigasecond/{example.cr → src/example.cr} +0 -0
  33. data/tracks/crystal/exercises/hamming/{hamming_spec.cr → spec/hamming_spec.cr} +1 -1
  34. data/tracks/crystal/exercises/hamming/{example.cr → src/example.cr} +0 -0
  35. data/tracks/crystal/exercises/hello-world/HINTS.md +32 -0
  36. data/tracks/crystal/exercises/hello-world/{hello_world_spec.cr → spec/hello_world_spec.cr} +1 -1
  37. data/tracks/crystal/exercises/hello-world/{example.cr → src/example.cr} +0 -0
  38. data/tracks/crystal/exercises/largest-series-product/{largest_series_product_spec.cr → spec/largest_series_product_spec.cr} +1 -1
  39. data/tracks/crystal/exercises/largest-series-product/{example.cr → src/example.cr} +0 -0
  40. data/tracks/crystal/exercises/leap/{leap_spec.cr → spec/leap_spec.cr} +1 -1
  41. data/tracks/crystal/exercises/leap/{example.cr → src/example.cr} +0 -0
  42. data/tracks/crystal/exercises/pangram/{pangram_spec.cr → spec/pangram_spec.cr} +1 -1
  43. data/tracks/crystal/exercises/pangram/{example.cr → src/example.cr} +0 -0
  44. data/tracks/crystal/exercises/raindrops/{raindrops_spec.cr → spec/raindrops_spec.cr} +1 -1
  45. data/tracks/crystal/exercises/raindrops/{example.cr → src/example.cr} +0 -0
  46. data/tracks/crystal/exercises/react/{react_spec.cr → spec/react_spec.cr} +1 -1
  47. data/tracks/crystal/exercises/react/{example.cr → src/example.cr} +0 -0
  48. data/tracks/crystal/exercises/rna-transcription/{rna_transcription_spec.cr → spec/rna_transcription_spec.cr} +1 -1
  49. data/tracks/crystal/exercises/rna-transcription/{example.cr → src/example.cr} +0 -0
  50. data/tracks/crystal/exercises/roman-numerals/{roman_numerals_spec.cr → spec/roman_numerals_spec.cr} +1 -1
  51. data/tracks/crystal/exercises/roman-numerals/{example.cr → src/example.cr} +0 -0
  52. data/tracks/crystal/exercises/sieve/{sieve_spec.cr → spec/sieve_spec.cr} +1 -1
  53. data/tracks/crystal/exercises/sieve/{example.cr → src/example.cr} +0 -0
  54. data/tracks/haskell/.travis.yml +4 -2
  55. data/tracks/haskell/config.json +6 -6
  56. data/tracks/haskell/exercises/alphametics/package.yaml +0 -1
  57. data/tracks/haskell/exercises/atbash-cipher/package.yaml +0 -1
  58. data/tracks/haskell/exercises/bank-account/package.yaml +0 -1
  59. data/tracks/haskell/exercises/binary-search-tree/HINTS.md +3 -2
  60. data/tracks/haskell/exercises/binary-search-tree/src/BST.hs +2 -0
  61. data/tracks/haskell/exercises/change/test/Tests.hs +2 -1
  62. data/tracks/haskell/exercises/connect/package.yaml +0 -1
  63. data/tracks/haskell/exercises/crypto-square/package.yaml +0 -1
  64. data/tracks/haskell/exercises/custom-set/HINTS.md +3 -2
  65. data/tracks/haskell/exercises/custom-set/src/CustomSet.hs +3 -2
  66. data/tracks/haskell/exercises/food-chain/package.yaml +0 -1
  67. data/tracks/haskell/exercises/forth/HINTS.md +3 -2
  68. data/tracks/haskell/exercises/forth/src/Forth.hs +2 -0
  69. data/tracks/haskell/exercises/go-counting/package.yaml +0 -1
  70. data/tracks/haskell/exercises/grade-school/package.yaml +0 -1
  71. data/tracks/haskell/exercises/grains/src/Grains.hs +3 -1
  72. data/tracks/haskell/exercises/kindergarten-garden/package.yaml +0 -1
  73. data/tracks/haskell/exercises/largest-series-product/package.yaml +0 -1
  74. data/tracks/haskell/exercises/lens-person/package.yaml +0 -1
  75. data/tracks/haskell/exercises/linked-list/package.yaml +0 -1
  76. data/tracks/haskell/exercises/ocr-numbers/package.yaml +0 -2
  77. data/tracks/haskell/exercises/parallel-letter-frequency/package.yaml +0 -1
  78. data/tracks/haskell/exercises/rna-transcription/package.yaml +0 -1
  79. data/tracks/haskell/exercises/robot-name/package.yaml +0 -1
  80. data/tracks/haskell/exercises/saddle-points/package.yaml +0 -1
  81. data/tracks/haskell/exercises/say/package.yaml +0 -1
  82. data/tracks/haskell/exercises/scrabble-score/package.yaml +0 -1
  83. data/tracks/haskell/exercises/series/HINTS.md +23 -0
  84. data/tracks/haskell/exercises/series/examples/success-byteseqs/package.yaml +19 -0
  85. data/tracks/haskell/exercises/series/examples/success-byteseqs/src/Series.hs +26 -0
  86. data/tracks/haskell/exercises/series/src/Series.hs +2 -1
  87. data/tracks/haskell/exercises/series/test/Tests.hs +16 -11
  88. data/tracks/haskell/exercises/sgf-parsing/package.yaml +0 -1
  89. data/tracks/haskell/exercises/sieve/package.yaml +0 -1
  90. data/tracks/haskell/exercises/simple-cipher/package.yaml +0 -1
  91. data/tracks/haskell/exercises/triangle/package.yaml +0 -1
  92. data/tracks/haskell/exercises/word-count/examples/success-newtype/src/WordCount.hs +7 -4
  93. data/tracks/haskell/exercises/word-count/examples/success-simple/src/WordCount.hs +6 -2
  94. data/tracks/haskell/exercises/word-count/test/Tests.hs +30 -1
  95. data/tracks/haskell/exercises/wordy/package.yaml +0 -2
  96. data/tracks/java/docs/INSTALLATION.md +2 -0
  97. data/tracks/java/exercises/_template/build.gradle +1 -1
  98. data/tracks/java/exercises/accumulate/build.gradle +1 -1
  99. data/tracks/java/exercises/acronym/build.gradle +1 -1
  100. data/tracks/java/exercises/allergies/build.gradle +1 -1
  101. data/tracks/java/exercises/anagram/build.gradle +1 -1
  102. data/tracks/java/exercises/atbash-cipher/build.gradle +1 -1
  103. data/tracks/java/exercises/beer-song/build.gradle +1 -1
  104. data/tracks/java/exercises/binary/build.gradle +1 -1
  105. data/tracks/java/exercises/bob/build.gradle +1 -1
  106. data/tracks/java/exercises/crypto-square/build.gradle +1 -1
  107. data/tracks/java/exercises/etl/build.gradle +1 -1
  108. data/tracks/java/exercises/gigasecond/build.gradle +1 -1
  109. data/tracks/java/exercises/grade-school/build.gradle +1 -1
  110. data/tracks/java/exercises/hamming/build.gradle +1 -1
  111. data/tracks/java/exercises/hello-world/build.gradle +1 -1
  112. data/tracks/java/exercises/hexadecimal/build.gradle +1 -1
  113. data/tracks/java/exercises/linked-list/build.gradle +1 -1
  114. data/tracks/java/exercises/luhn/build.gradle +1 -1
  115. data/tracks/java/exercises/meetup/build.gradle +1 -1
  116. data/tracks/java/exercises/nth-prime/build.gradle +1 -1
  117. data/tracks/java/exercises/nucleotide-count/build.gradle +1 -1
  118. data/tracks/java/exercises/octal/build.gradle +1 -1
  119. data/tracks/java/exercises/pangram/build.gradle +1 -1
  120. data/tracks/java/exercises/pascals-triangle/build.gradle +1 -1
  121. data/tracks/java/exercises/phone-number/build.gradle +1 -1
  122. data/tracks/java/exercises/pig-latin/build.gradle +1 -1
  123. data/tracks/java/exercises/raindrops/build.gradle +1 -1
  124. data/tracks/java/exercises/rna-transcription/build.gradle +1 -1
  125. data/tracks/java/exercises/robot-name/build.gradle +1 -1
  126. data/tracks/java/exercises/roman-numerals/build.gradle +1 -1
  127. data/tracks/java/exercises/scrabble-score/build.gradle +1 -1
  128. data/tracks/java/exercises/sieve/build.gradle +1 -1
  129. data/tracks/java/exercises/simple-cipher/build.gradle +1 -1
  130. data/tracks/java/exercises/simple-linked-list/build.gradle +1 -1
  131. data/tracks/java/exercises/space-age/build.gradle +1 -1
  132. data/tracks/java/exercises/strain/build.gradle +1 -1
  133. data/tracks/java/exercises/triangle/build.gradle +1 -1
  134. data/tracks/java/exercises/trinary/build.gradle +1 -1
  135. data/tracks/java/exercises/word-count/build.gradle +1 -1
  136. data/tracks/ocaml/.travis-ci.sh +1 -1
  137. data/tracks/ocaml/.travis.yml +1 -1
  138. data/tracks/ocaml/README.md +1 -1
  139. data/tracks/ocaml/exercises/hamming/hamming.mli +1 -3
  140. data/tracks/ruby/exercises/leap/.version +1 -1
  141. data/tracks/ruby/exercises/leap/example.tt +3 -3
  142. data/tracks/ruby/exercises/leap/leap_test.rb +3 -4
  143. data/tracks/ruby/lib/leap_cases.rb +2 -2
  144. data/tracks/rust/exercises/bowling/tests/bowling.rs +29 -0
  145. data/tracks/swift/.gitignore +1 -0
  146. data/tracks/swift/.swift-version +1 -0
  147. data/tracks/swift/exercises/bowling/BowlingExample.swift +2 -2
  148. data/tracks/swift/exercises/bowling/BowlingTest.swift +84 -94
  149. data/tracks/swift/exercises/palindrome-products/PalindromeProductsExample.swift +19 -16
  150. data/tracks/tcl/README.md +3 -0
  151. data/tracks/tcl/config.json +2 -1
  152. data/tracks/tcl/img/icon.png +0 -0
  153. metadata +46 -33
  154. data/tracks/crystal/exercises/hello-world/GETTING_STARTED.md +0 -10
@@ -0,0 +1,23 @@
1
+ ## Hints
2
+
3
+ To complete this exercise you need to implement the function `slices`,
4
+ that takes a *text* and returns the subsequences of digits with a
5
+ specified size:
6
+
7
+ If it is your first time solving this exercise, it is recommended that you
8
+ stick to the provided signature:
9
+
10
+ ```haskell
11
+ slices :: Int -> String -> [[Int]]
12
+ ```
13
+
14
+ Later, it may be a good idea to revisit this problem and play with other data
15
+ types and libraries:
16
+
17
+ - `ByteString`, from package *bytestring*.
18
+ - `Sequence`, from package *containers*.
19
+ - `Text`, from package *text*.
20
+ - `Vector`, from package *vector*.
21
+
22
+ The test suite was intentionally designed to accept almost any type signature
23
+ that makes sense, so you are encouraged to find the one you think is the best.
@@ -0,0 +1,19 @@
1
+ name: series
2
+
3
+ dependencies:
4
+ - base
5
+
6
+ library:
7
+ exposed-modules: Series
8
+ source-dirs: src
9
+ dependencies:
10
+ - bytestring
11
+ - containers
12
+
13
+ tests:
14
+ test:
15
+ main: Tests.hs
16
+ source-dirs: test
17
+ dependencies:
18
+ - series
19
+ - hspec
@@ -0,0 +1,26 @@
1
+ module Series (slices) where
2
+
3
+ import Control.Applicative (liftA2)
4
+ import Control.Monad (guard)
5
+ import Data.ByteString.Char8 (ByteString, foldr, length, tails, take)
6
+ import Data.Function (on)
7
+ import Data.Maybe (mapMaybe)
8
+ import Data.Sequence (Seq, empty, fromList, singleton, (<|))
9
+ import Prelude hiding (foldr, length, take)
10
+
11
+ slices :: Num a => Int -> ByteString -> Seq (Seq a)
12
+ slices 0 _ = singleton empty
13
+ slices n bs = fromList
14
+ . mapMaybe toDigits
15
+ . takeWhile ((== n) . length)
16
+ . map (take n)
17
+ . tails
18
+ $ bs
19
+
20
+ toDigits :: Num a => ByteString -> Maybe (Seq a)
21
+ toDigits = foldr (liftA2 (<|) . toDigit) (Just empty)
22
+
23
+ toDigit :: Num a => Char -> Maybe a
24
+ toDigit x = guard (0 <= dec && dec <= 9) >> return (fromIntegral dec)
25
+ where
26
+ dec = ((-) `on` fromEnum) x '0'
@@ -1,3 +1,4 @@
1
1
  module Series (slices) where
2
2
 
3
- slices = undefined
3
+ slices :: Int -> String -> [[Int]]
4
+ slices n xs = undefined
@@ -1,5 +1,8 @@
1
1
  {-# OPTIONS_GHC -fno-warn-type-defaults #-}
2
+ {-# LANGUAGE FlexibleContexts #-}
3
+ {-# LANGUAGE OverloadedStrings #-}
2
4
 
5
+ import GHC.Exts (toList)
3
6
  import Test.Hspec (Spec, describe, it, shouldBe)
4
7
  import Test.Hspec.Runner (configFastFail, defaultConfig, hspecWith)
5
8
 
@@ -11,23 +14,25 @@ main = hspecWith defaultConfig {configFastFail = True} specs
11
14
  specs :: Spec
12
15
  specs = describe "series" $ do
13
16
 
14
- -- As of 2016-09-12, there was no reference file
17
+ -- As of 2016-11-08, there was no reference file
15
18
  -- for the test cases in `exercism/x-common`.
16
19
 
20
+ let x `shouldHaveSlices` yss = (map toList . toList) x `shouldBe` yss
21
+
17
22
  it "slices of one" $ do
18
- slices 1 "" `shouldBe` []
19
- slices 1 "01234" `shouldBe` [[0], [1], [2], [3], [4]]
23
+ slices 1 "" `shouldHaveSlices` []
24
+ slices 1 "01234" `shouldHaveSlices` [[0], [1], [2], [3], [4]]
20
25
 
21
26
  it "slices of two" $ do
22
- slices 2 "" `shouldBe` []
23
- slices 2 "01" `shouldBe` [[0,1]]
24
- slices 2 "01234" `shouldBe` [[0,1], [1,2], [2,3], [3,4]]
27
+ slices 2 "" `shouldHaveSlices` []
28
+ slices 2 "01" `shouldHaveSlices` [[0,1]]
29
+ slices 2 "01234" `shouldHaveSlices` [[0,1], [1,2], [2,3], [3,4]]
25
30
 
26
31
  it "slices of three" $ do
27
- slices 3 "ab" `shouldBe` []
28
- slices 3 "012" `shouldBe` [[0,1,2]]
29
- slices 3 "0123" `shouldBe` [[0,1,2], [1,2,3]]
32
+ slices 3 "ab" `shouldHaveSlices` []
33
+ slices 3 "012" `shouldHaveSlices` [[0,1,2]]
34
+ slices 3 "0123" `shouldHaveSlices` [[0,1,2], [1,2,3]]
30
35
 
31
36
  it "slices of zero" $ do
32
- slices 0 "" `shouldBe` [[]]
33
- slices 0 "012" `shouldBe` [[]]
37
+ slices 0 "" `shouldHaveSlices` [[]]
38
+ slices 0 "012" `shouldHaveSlices` [[]]
@@ -11,7 +11,6 @@ library:
11
11
  dependencies:
12
12
  # - foo # List here the packages you
13
13
  # - bar # want to use in your solution.
14
- - attoparsec
15
14
 
16
15
  tests:
17
16
  test:
@@ -9,7 +9,6 @@ library:
9
9
  dependencies:
10
10
  # - foo # List here the packages you
11
11
  # - bar # want to use in your solution.
12
- - vector
13
12
 
14
13
  tests:
15
14
  test:
@@ -9,7 +9,6 @@ library:
9
9
  dependencies:
10
10
  # - foo # List here the packages you
11
11
  # - bar # want to use in your solution.
12
- - random
13
12
 
14
13
  tests:
15
14
  test:
@@ -9,7 +9,6 @@ library:
9
9
  dependencies:
10
10
  # - foo # List here the packages you
11
11
  # - bar # want to use in your solution.
12
- - containers
13
12
 
14
13
  tests:
15
14
  test:
@@ -2,9 +2,9 @@
2
2
 
3
3
  module WordCount (wordCount) where
4
4
 
5
- import Prelude hiding (null)
5
+ import Prelude hiding (head, init, null, tail)
6
6
  import Data.Char (isAlphaNum)
7
- import Data.Text (Text, null, split, toLower)
7
+ import Data.Text (Text, head, init, null, split, tail, toLower)
8
8
  import Data.MultiSet (MultiSet, Occur, fromList, fromOccurList, toOccurList)
9
9
 
10
10
  import qualified GHC.Exts (IsList(..))
@@ -12,14 +12,17 @@ import qualified GHC.Exts (IsList(..))
12
12
  wordCount :: Text -> Bag Text
13
13
  wordCount = Bag
14
14
  . fromList
15
- . map toLower
16
- . wordsBy (not . isAlphaNum)
15
+ . map (stripQuote . toLower)
16
+ . wordsBy (\c -> not (isAlphaNum c) && c /= '\'')
17
17
 
18
18
  -- The `text` package misses this function that
19
19
  -- exists in package `split`, but works on lists.
20
20
  wordsBy :: (Char -> Bool) -> Text -> [Text]
21
21
  wordsBy p = filter (not . null) . split p
22
22
 
23
+ stripQuote :: Text -> Text
24
+ stripQuote t = if head t == '\'' then init (tail t) else t
25
+
23
26
  -- MultiSet is not an instance of `IsList`, so we create
24
27
  -- a newtype to wrap it, avoiding an orphan instance.
25
28
  newtype Bag a = Bag { toMultiSet :: MultiSet a }
@@ -9,5 +9,9 @@ wordCount :: String -> [(String, Int)]
9
9
  wordCount = map (head &&& length)
10
10
  . group
11
11
  . sort
12
- . map (map toLower)
13
- . wordsBy (not . isAlphaNum)
12
+ . map (stripQuote . map toLower)
13
+ . wordsBy (\c -> not (isAlphaNum c) && c /= '\'')
14
+
15
+ stripQuote :: String -> String
16
+ stripQuote ('\'':t) = init t
17
+ stripQuote s = s
@@ -30,7 +30,7 @@ specs = describe "word-count" $
30
30
  . fromList
31
31
  $ input
32
32
 
33
- -- Test cases adapted from `exercism/x-common/word-count.json` on 2016-07-26.
33
+ -- Test cases adapted from `exercism/x-common/word-count` on 2016-11-06.
34
34
 
35
35
  data Case = Case { description :: String
36
36
  , input :: String
@@ -56,6 +56,18 @@ cases = [ Case { description = "count one word"
56
56
  , ("red" , 1)
57
57
  , ("blue", 1) ]
58
58
  }
59
+ , Case { description = "handles cramped lists"
60
+ , input = "one,two,three"
61
+ , expected = [ ("one" , 1)
62
+ , ("two" , 1)
63
+ , ("three", 1) ]
64
+ }
65
+ , Case { description = "handles expanded lists"
66
+ , input = "one,\ntwo,\nthree"
67
+ , expected = [ ("one" , 1)
68
+ , ("two" , 1)
69
+ , ("three", 1) ]
70
+ }
59
71
  , Case { description = "ignore punctuation"
60
72
  , input = "car : carpet as java : javascript!!&@$%^&"
61
73
  , expected = [ ("car" , 1)
@@ -75,4 +87,21 @@ cases = [ Case { description = "count one word"
75
87
  , expected = [ ("go" , 3)
76
88
  , ("stop", 2) ]
77
89
  }
90
+ , Case { description = "with apostrophes"
91
+ , input = "First: don't laugh. Then: don't cry."
92
+ , expected = [ ("first", 1)
93
+ , ("don't", 2)
94
+ , ("laugh", 1)
95
+ , ("then" , 1)
96
+ , ("cry" , 1) ]
97
+ }
98
+ , Case { description = "with quotations"
99
+ , input = "Joe can't tell between 'large' and large."
100
+ , expected = [ ("joe" , 1)
101
+ , ("can't" , 1)
102
+ , ("tell" , 1)
103
+ , ("between", 1)
104
+ , ("large" , 2)
105
+ , ("and" , 1) ]
106
+ }
78
107
  ]
@@ -9,8 +9,6 @@ library:
9
9
  dependencies:
10
10
  # - foo # List here the packages you
11
11
  # - bar # want to use in your solution.
12
- - attoparsec
13
- - text
14
12
 
15
13
  tests:
16
14
  test:
@@ -108,6 +108,8 @@ If you are using Debian or its derivatives (like Ubuntu or Linux Mint), use APT:
108
108
  - Install Gradle:
109
109
 
110
110
  ```sh
111
+ $ sudo add-apt-repository ppa:cwchien/gradle
112
+ $ sudo apt-get update
111
113
  $ sudo apt-get install gradle
112
114
  ```
113
115
 
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  testCompile "org.assertj:assertj-core:3.2.0"
12
12
  }
13
13
  test {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  testCompile "org.assertj:assertj-core:3.2.0"
12
12
  testCompile "com.google.guava:guava:16+"
13
13
  }
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  testCompile "org.assertj:assertj-core:3.2.0"
12
12
  }
13
13
  test {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
 
13
13
  test {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  testCompile "org.assertj:assertj-core:3.2.0"
12
12
  }
13
13
  test {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  testCompile "org.assertj:assertj-core:3.2.0"
12
12
  }
13
13
  test {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  testCompile "org.assertj:assertj-core:3.2.0"
12
12
  }
13
13
  test {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  testCompile "org.assertj:assertj-core:3.2.0"
12
12
  }
13
13
 
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
 
13
13
  test {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  testCompile "org.assertj:assertj-core:3.2.0"
12
12
  }
13
13
  test {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {
@@ -7,7 +7,7 @@ repositories {
7
7
  }
8
8
 
9
9
  dependencies {
10
- testCompile "junit:junit:4.10"
10
+ testCompile "junit:junit:4.12"
11
11
  }
12
12
  test {
13
13
  testLogging {