-- Copyright (c) 2018 Rudy Matela.
-- Distributed under the 3-Clause BSD licence (see the file LICENSE).
import Test
import Text.PercentFormat
import Test.LeanCheck
main :: IO ()
main = reportTests (tests 10000)
tests :: Int -> [Bool]
tests n =
[ True
, holds n $ \s -> s == "%s" -% s
, holds n $ \s t -> s ++ t == "%s%s" % s -% t
, holds n $ \s t -> s ++ "%" ++ t == "%s%%%s" % s -% t
, holds n $ \s -> s ++ s == "%s%s" % s -% s
, holds n $ \s1 s2 s3 -> s1 ++ s2 ++ s3 == (s1 ++ "%s" ++ s3) -% s2
, holds n $ \s -> show s == "%r" -% (s::String)
, holds n $ \x -> show x == "%r" -% (x::Int)
, holds n $ \c -> show c == "%r" -% (c::Char)
, holds n $ \f -> show f == "%r" -% (f::Float)
, holds n $ \i -> show i == "%i" -% (i::Int)
, holds n $ \f -> 'e' `notElem` show f -- TODO: == %f or == %e
==> show f == "%f" -% (f::Float)
, holds n $ \c -> c:"" == "%c" -% (c::Char)
]