Skip to content

Commit

Permalink
Merge pull requests #527, #528, #529, and #530
Browse files Browse the repository at this point in the history
change 1.0.0.2: add cases from x-common
run-length-encoding 1.0.0.2: add whitespace and lowercase
largest-series-product 1.0.0.2: make simple case first, rm largest
saddle-points 1.0.0.2: follow x-common
  • Loading branch information
petertseng committed May 8, 2017
5 parents 477b24c + 29cfaa7 + 572fa03 + ff8aba4 + 6230ed5 commit 381d339
Show file tree
Hide file tree
Showing 8 changed files with 42 additions and 43 deletions.
2 changes: 1 addition & 1 deletion exercises/change/package.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: change
version: 0.9.0.1 # 2016-09-17
version: 1.0.0.2

dependencies:
- base
Expand Down
10 changes: 10 additions & 0 deletions exercises/change/test/Tests.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion exercises/largest-series-product/package.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: largest-series-product
version: 0.9.0.1 # 2016-07-27
version: 1.0.0.2

dependencies:
- base
Expand Down
35 changes: 4 additions & 31 deletions exercises/largest-series-product/test/Tests.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion exercises/run-length-encoding/package.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: run-length-encoding
version: 0.9.0.1 # 2016-12-26
version: 1.0.0.2

dependencies:
- base
Expand Down
16 changes: 16 additions & 0 deletions exercises/run-length-encoding/test/Tests.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand All @@ -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]
Expand Down
2 changes: 1 addition & 1 deletion exercises/saddle-points/package.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: saddle-points
version: 0.1.0.1
version: 1.0.0.2

dependencies:
- array
Expand Down
16 changes: 8 additions & 8 deletions exercises/saddle-points/test/Tests.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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)] )

]

1 comment on commit 381d339

@petertseng
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So that I don't go insane. See #445.

Please sign in to comment.