implemented getNumBeads
This commit is contained in:
parent
f43eb607ff
commit
9bd9b4a05e
|
@ -24,7 +24,7 @@ License along with this program. If not, see
|
|||
|
||||
-}
|
||||
|
||||
module Abacus (Abacus, newAbacus) where
|
||||
module Abacus (Abacus, newAbacus, getNumBeads) where
|
||||
|
||||
import Abacus.Internal
|
||||
|
||||
|
@ -40,4 +40,8 @@ newAbacus beads rungs = if beads < 1 || rungs < 1
|
|||
then Nothing
|
||||
else Just $ Abacus beads $ replicate rungs 0
|
||||
|
||||
-- | Returns the number of beads per rung in an abacus
|
||||
getNumBeads :: Abacus -> Int
|
||||
getNumBeads = abacusNumBeads
|
||||
|
||||
--jl
|
||||
|
|
|
@ -21,14 +21,16 @@ License along with this program. If not, see
|
|||
|
||||
module AbacusSpec (spec) where
|
||||
|
||||
import Data.Maybe (fromJust)
|
||||
import Test.Hspec (Spec, context, describe, it, shouldBe)
|
||||
|
||||
import Abacus
|
||||
import Abacus.Internal
|
||||
|
||||
spec :: Spec
|
||||
spec = describe "Abacus"
|
||||
spec = describe "Abacus" $ do
|
||||
newAbacusSpec
|
||||
getNumBeadsSpec
|
||||
|
||||
newAbacusSpec :: Spec
|
||||
newAbacusSpec = describe "newAbacusSpec" $ mapM_
|
||||
|
@ -42,4 +44,18 @@ newAbacusSpec = describe "newAbacusSpec" $ mapM_
|
|||
, ( "no rungs", 10, 0, Nothing )
|
||||
]
|
||||
|
||||
getNumBeadsSpec :: Spec
|
||||
getNumBeadsSpec = describe "getNumBeads" $ mapM_
|
||||
( \(desc, input, expected) -> context desc $ let
|
||||
actual = getNumBeads input
|
||||
in it ("should be " ++ show expected) $
|
||||
actual `shouldBe` expected
|
||||
)
|
||||
[ ( "one bead", oneBead, 1 )
|
||||
, ( "ten beads", tenBeads, 10 )
|
||||
] where
|
||||
oneBead = build 1
|
||||
tenBeads = build 10
|
||||
build n = fromJust $ newAbacus n 10
|
||||
|
||||
--jl
|
||||
|
|
Loading…
Reference in New Issue
Block a user