Skip to content

Commit 2ecdf26

Browse files
author
Daniel Bolivar
committed
Day 1 - Part 1 add tests
1 parent 7efd70a commit 2ecdf26

File tree

3 files changed

+35
-12
lines changed

3 files changed

+35
-12
lines changed

day1/src/Frequencies.hs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
module Frequencies where
2+
3+
import qualified TestData
4+
5+
sumInt :: Int -> Int -> Int
6+
sumInt a b = a + b
7+
8+
calculateFrequency :: [Int] -> Int
9+
calculateFrequency frequencies = foldl sumInt 0 frequencies
10+
11+
main = do
12+
print $ calculateFrequency TestData.testData

day1/src/Lib.hs

Lines changed: 0 additions & 12 deletions
This file was deleted.

day1/src/Test.hs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
module Test where
2+
3+
import qualified Frequencies
4+
import Test.Hspec
5+
import Test.QuickCheck
6+
7+
genPos :: Gen Int
8+
genPos = abs `fmap` (arbitrary :: Gen Int) `suchThat` (> 0)
9+
10+
genListOfPos :: Gen [Int]
11+
genListOfPos = listOf genPos
12+
13+
runTests :: IO ()
14+
runTests =
15+
hspec $ do
16+
describe "Day 1 of Advent of code" $ do
17+
it "should get the sum of a list of Int" $ do
18+
Frequencies.calculateFrequency [0, 1, 2] `shouldBe` 3
19+
20+
runPropTests :: IO ()
21+
runPropTests = do
22+
quickCheck $
23+
forAll genListOfPos $ \pos -> Frequencies.calculateFrequency pos >= 0

0 commit comments

Comments
 (0)