implemented overlay
This commit is contained in:
parent
8dd4896f07
commit
84cb2c8c19
|
@ -24,6 +24,7 @@ module Mtlstats.Format
|
||||||
, left
|
, left
|
||||||
, right
|
, right
|
||||||
, centre
|
, centre
|
||||||
|
, overlay
|
||||||
, month
|
, month
|
||||||
) where
|
) where
|
||||||
|
|
||||||
|
@ -74,6 +75,17 @@ centre n str = let
|
||||||
pad = replicate pLen ' '
|
pad = replicate pLen ' '
|
||||||
in take n $ pad ++ str ++ repeat ' '
|
in take n $ pad ++ str ++ repeat ' '
|
||||||
|
|
||||||
|
-- | Overlays one string on top of another
|
||||||
|
overlay
|
||||||
|
:: String
|
||||||
|
-- ^ The string on the top
|
||||||
|
-> String
|
||||||
|
-- ^ The string on the bottom
|
||||||
|
-> String
|
||||||
|
overlay (x:xs) (_:ys) = x : overlay xs ys
|
||||||
|
overlay xs [] = xs
|
||||||
|
overlay [] ys = ys
|
||||||
|
|
||||||
-- | Converts a number to a three character month (e.g. @"JAN"@)
|
-- | Converts a number to a three character month (e.g. @"JAN"@)
|
||||||
month :: Int -> String
|
month :: Int -> String
|
||||||
month 1 = "JAN"
|
month 1 = "JAN"
|
||||||
|
|
|
@ -31,6 +31,7 @@ spec = describe "Mtlstats.Format" $ do
|
||||||
leftSpec
|
leftSpec
|
||||||
rightSpec
|
rightSpec
|
||||||
centreSpec
|
centreSpec
|
||||||
|
overlaySpec
|
||||||
monthSpec
|
monthSpec
|
||||||
|
|
||||||
padNumSpec :: Spec
|
padNumSpec :: Spec
|
||||||
|
@ -89,6 +90,17 @@ centreSpec = describe "centre" $ do
|
||||||
it "should truncate the text" $
|
it "should truncate the text" $
|
||||||
centre 2 "foo" `shouldBe` "fo"
|
centre 2 "foo" `shouldBe` "fo"
|
||||||
|
|
||||||
|
overlaySpec :: Spec
|
||||||
|
overlaySpec = describe "overlay" $ do
|
||||||
|
|
||||||
|
context "first string shorter" $
|
||||||
|
it "should overlay" $
|
||||||
|
overlay "foo" "abc123" `shouldBe` "foo123"
|
||||||
|
|
||||||
|
context "first string longer" $
|
||||||
|
it "should overlay" $
|
||||||
|
overlay "abc123" "foo" `shouldBe` "abc123"
|
||||||
|
|
||||||
monthSpec :: Spec
|
monthSpec :: Spec
|
||||||
monthSpec = describe "month" $ do
|
monthSpec = describe "month" $ do
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user