turtle-options-0.1.0.4: test/Timecode/Tests.hs
{-# LANGUAGE FlexibleContexts #-}
module Timecode.Tests
( tests
) where
import Test.HUnit
import Text.Parsec (parse)
import Turtle.Options.Timecode (Timecode(..), timecode)
timecodeTest :: Test
timecodeTest = TestList $ map testCase cases
where
cases =
[ ("3", Timecode 0 0 3 0)
, ("75", Timecode 0 1 15 0)
, ("17:12", Timecode 0 17 12 0)
, ("83:23", Timecode 1 23 23 0)
, ("54:32:10", Timecode 54 32 10 0)
, ("43.7", Timecode 0 0 43 700)
, ("4:13.85", Timecode 0 4 13 850)
, ("7:4:13.437", Timecode 7 4 13 437)
, ("5.2150", Timecode 0 0 7 150)
]
testCase (str, res) = TestCase $ case (parse timecode "Test" str) of
Left err -> assertFailure $ show err
Right r -> assertEqual "Timecode parsing" res r
tests :: Test
tests = TestList
[ timecodeTest
]