implemented showFloating
This commit is contained in:
parent
be54198960
commit
dcbb809ae1
|
@ -188,5 +188,9 @@ overlayLast str [l] = [overlay str l]
|
||||||
overlayLast str (l:ls) = l : overlayLast str ls
|
overlayLast str (l:ls) = l : overlayLast str ls
|
||||||
|
|
||||||
-- | Converts a non-integer into a string
|
-- | Converts a non-integer into a string
|
||||||
showFloating :: Fractional n => n -> String
|
showFloating :: RealFrac n => n -> String
|
||||||
showFloating = undefined
|
showFloating n = let
|
||||||
|
i = round $ n * 100
|
||||||
|
whole = i `div` 100
|
||||||
|
fraction = i `mod` 100
|
||||||
|
in show whole ++ "." ++ padNum 2 fraction
|
||||||
|
|
|
@ -21,6 +21,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
module FormatSpec (spec) where
|
module FormatSpec (spec) where
|
||||||
|
|
||||||
|
import Data.Ratio ((%))
|
||||||
import Test.Hspec (Spec, context, describe, it, shouldBe)
|
import Test.Hspec (Spec, context, describe, it, shouldBe)
|
||||||
|
|
||||||
import Mtlstats.Format
|
import Mtlstats.Format
|
||||||
|
@ -39,6 +40,7 @@ spec = describe "Mtlstats.Format" $ do
|
||||||
tableWithSpec
|
tableWithSpec
|
||||||
complexTableSpec
|
complexTableSpec
|
||||||
overlayLastSpec
|
overlayLastSpec
|
||||||
|
showFloatingSpec
|
||||||
|
|
||||||
padNumSpec :: Spec
|
padNumSpec :: Spec
|
||||||
padNumSpec = describe "padNum" $ do
|
padNumSpec = describe "padNum" $ do
|
||||||
|
@ -226,3 +228,11 @@ overlayLastSpec = describe "overlayLast" $ let
|
||||||
[ ( "empty list", [], [] )
|
[ ( "empty list", [], [] )
|
||||||
, ( "non-empty list", sample, edited )
|
, ( "non-empty list", sample, edited )
|
||||||
]
|
]
|
||||||
|
|
||||||
|
showFloatingSpec :: Spec
|
||||||
|
showFloatingSpec = describe "showFloating" $ let
|
||||||
|
input = 3 % 2 :: Rational
|
||||||
|
expected = "1.50"
|
||||||
|
|
||||||
|
in it ("should be " ++ expected) $
|
||||||
|
showFloating input `shouldBe` expected
|
||||||
|
|
Loading…
Reference in New Issue
Block a user