From 29cfaa7d8d56f94772eb2e2289fd26a72a872804 Mon Sep 17 00:00:00 2001 From: Peter Tseng Date: Mon, 8 May 2017 00:01:04 -0700 Subject: [PATCH 1/4] change 1.0.0.2: add cases from x-common target > coins, but still can't make: https://github.com/exercism/x-common/pull/535 no unit (1) coins: https://github.com/exercism/x-common/pull/620 --- exercises/change/package.yaml | 2 +- exercises/change/test/Tests.hs | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/exercises/change/package.yaml b/exercises/change/package.yaml index e2278f775..5507097ab 100644 --- a/exercises/change/package.yaml +++ b/exercises/change/package.yaml @@ -1,5 +1,5 @@ name: change -version: 0.9.0.1 # 2016-09-17 +version: 1.0.0.2 dependencies: - base diff --git a/exercises/change/test/Tests.hs b/exercises/change/test/Tests.hs index d788beb0f..d4955d9f5 100644 --- a/exercises/change/test/Tests.hs +++ b/exercises/change/test/Tests.hs @@ -52,6 +52,11 @@ cases = [ Case { description = "single coin change" , target = 999 , expected = Just [2, 2, 5, 20, 20, 50, 100, 100, 100, 100, 100, 100, 100, 100, 100] } + , Case { description = "possible change without unit coins available" + , coins = [2, 5, 10, 20, 50] + , target = 21 + , expected = Just [2, 2, 2, 5, 10] + } , Case { description = "no coins make 0 change" , coins = [1, 5, 10, 21, 25] , target = 0 @@ -62,6 +67,11 @@ cases = [ Case { description = "single coin change" , target = 3 , expected = Nothing } + , Case { description = "error if no combination can add up to target" + , coins = [5, 10] + , target = 94 + , expected = Nothing + } , Case { description = "cannot find negative change values" , coins = [1, 2, 5] , target = -5 From ff8aba451e5a2d385a6c3481b27a8a314ea9b43a Mon Sep 17 00:00:00 2001 From: Peter Tseng Date: Mon, 8 May 2017 00:07:42 -0700 Subject: [PATCH 2/4] run-length-encoding 1.0.0.2: add whitespace and lowercase https://github.com/exercism/x-common/pull/624 --- exercises/run-length-encoding/package.yaml | 2 +- exercises/run-length-encoding/test/Tests.hs | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/exercises/run-length-encoding/package.yaml b/exercises/run-length-encoding/package.yaml index e50375243..81533927a 100644 --- a/exercises/run-length-encoding/package.yaml +++ b/exercises/run-length-encoding/package.yaml @@ -1,5 +1,5 @@ name: run-length-encoding -version: 0.9.0.1 # 2016-12-26 +version: 1.0.0.2 dependencies: - base diff --git a/exercises/run-length-encoding/test/Tests.hs b/exercises/run-length-encoding/test/Tests.hs index ae3845d23..9e991ffa8 100644 --- a/exercises/run-length-encoding/test/Tests.hs +++ b/exercises/run-length-encoding/test/Tests.hs @@ -40,6 +40,14 @@ encodeCases = , input = "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB" , expected = "12WB12W3B24WB" } + , Case { description = "encode whitespace" + , input = " hsqq qww " + , expected = "2 hs2q q2w2 " + } + , Case { description = "encode lowercase" + , input = "aabbbcccc" + , expected = "2a3b4c" + } ] decodeCases :: [Case] @@ -60,6 +68,14 @@ decodeCases = , input = "12WB12W3B24WB" , expected = "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB" } + , Case { description = "decode whitespace" + , input = "2 hs2q q2w2 " + , expected = " hsqq qww " + } + , Case { description = "decode lowercase" + , input = "2a3b4c" + , expected = "aabbbcccc" + } ] bothCases :: [Case] From 572fa031738d351c3472c5bf06e338bc71e6fec4 Mon Sep 17 00:00:00 2001 From: Peter Tseng Date: Mon, 8 May 2017 00:12:17 -0700 Subject: [PATCH 3/4] largest-series-product 1.0.0.2: make simple case first, rm largest https://github.com/exercism/x-common/pull/471 --- exercises/largest-series-product/package.yaml | 2 +- .../largest-series-product/test/Tests.hs | 35 +++---------------- 2 files changed, 5 insertions(+), 32 deletions(-) diff --git a/exercises/largest-series-product/package.yaml b/exercises/largest-series-product/package.yaml index 63d11164d..705bd5a00 100644 --- a/exercises/largest-series-product/package.yaml +++ b/exercises/largest-series-product/package.yaml @@ -1,5 +1,5 @@ name: largest-series-product -version: 0.9.0.1 # 2016-07-27 +version: 1.0.0.2 dependencies: - base diff --git a/exercises/largest-series-product/test/Tests.hs b/exercises/largest-series-product/test/Tests.hs index da0ca08d0..05230043a 100644 --- a/exercises/largest-series-product/test/Tests.hs +++ b/exercises/largest-series-product/test/Tests.hs @@ -13,6 +13,10 @@ specs = describe "largest-series-product" $ describe "largestProduct" $ do + it "finds the largest product if span equals length" $ + largestProduct 2 "29" + `shouldBe` Just 18 + it "can find the largest product of 2 with numbers in order" $ largestProduct 2 "0123456789" `shouldBe` Just 72 @@ -21,10 +25,6 @@ specs = describe "largest-series-product" $ largestProduct 2 "576802143" `shouldBe` Just 48 - it "finds the largest product if span equals length" $ - largestProduct 2 "29" - `shouldBe` Just 18 - it "can find the largest product of 3 with numbers in order" $ largestProduct 3 "0123456789" `shouldBe` Just 504 @@ -41,33 +41,6 @@ specs = describe "largest-series-product" $ largestProduct 6 "73167176531330624919225119674426574742355349194934" `shouldBe` Just 23520 - it "can get the largest product of a big number II" $ - largestProduct 6 "52677741234314237566414902593461595376319419139427" - `shouldBe` Just 28350 - - it "can get the largest product of a big number (Project Euler)" $ - largestProduct 13 "73167176531330624919225119674426574742355349194934\ - \96983520312774506326239578318016984801869478851843\ - \85861560789112949495459501737958331952853208805511\ - \12540698747158523863050715693290963295227443043557\ - \66896648950445244523161731856403098711121722383113\ - \62229893423380308135336276614282806444486645238749\ - \30358907296290491560440772390713810515859307960866\ - \70172427121883998797908792274921901699720888093776\ - \65727333001053367881220235421809751254540594752243\ - \52584907711670556013604839586446706324415722155397\ - \53697817977846174064955149290862569321978468622482\ - \83972241375657056057490261407972968652414535100474\ - \82166370484403199890008895243450658541227588666881\ - \16427171479924442928230863465674813919123162824586\ - \17866458359124566529476545682848912883142607690042\ - \24219022671055626321111109370544217506941658960408\ - \07198403850962455444362981230987879927244284909188\ - \84580156166097919133875499200524063689912560717606\ - \05886116467109405077541002256983155200055935729725\ - \71636269561882670428252483600823257530420752963450" - `shouldBe` Just 23514624000 - it "reports zero if the only digits are zero" $ largestProduct 2 "0000" `shouldBe` Just 0 From 6230ed5eaf79a8505ee55f48a4baa804ba9d458e Mon Sep 17 00:00:00 2001 From: Peter Tseng Date: Mon, 8 May 2017 00:18:09 -0700 Subject: [PATCH 4/4] saddle-points 1.0.0.2: follow x-common Canonical data added in https://github.com/exercism/x-common/pull/756 --- exercises/saddle-points/package.yaml | 2 +- exercises/saddle-points/test/Tests.hs | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/exercises/saddle-points/package.yaml b/exercises/saddle-points/package.yaml index 4d1b6e8fe..09735c563 100644 --- a/exercises/saddle-points/package.yaml +++ b/exercises/saddle-points/package.yaml @@ -1,5 +1,5 @@ name: saddle-points -version: 0.1.0.1 +version: 1.0.0.2 dependencies: - array diff --git a/exercises/saddle-points/test/Tests.hs b/exercises/saddle-points/test/Tests.hs index 286666ab7..abd6b6c08 100644 --- a/exercises/saddle-points/test/Tests.hs +++ b/exercises/saddle-points/test/Tests.hs @@ -26,19 +26,19 @@ specs = describe "saddle-points" $ , [5, 3, 2] , [6, 6, 7] ], [(1, 0)] ) - , ( "no saddle point", [ [2, 1] - , [1, 2] ], [] ) + , ( "empty matrix has none", [], [] ) - , ( "a saddle point", [ [1, 2] - , [3, 4] ], [(0, 1)] ) - - , ( "another saddle point", [ [18, 3, 39, 19, 91] - , [38, 10, 8, 77, 320] - , [ 3, 4, 8, 6, 7] ], [(2, 2)] ) + , ( "no saddle point", [ [1, 2, 3] + , [3, 1, 2] + , [2, 3, 1] ], [] ) , ("multiple saddle points", [ [4, 5, 4] , [3, 5, 5] , [1, 5, 4] ], [ (0, 1) , (1, 1) , (2, 1) ] ) + , ( "bottom-right corner", [ [8, 7, 9] + , [6, 7, 6] + , [3, 2, 5] ], [(2, 2)] ) + ]