-- Copyright (c) 2018 Rudy Matela.
-- Distributed under the 3-Clause BSD licence (see the file LICENSE).
import Test
import Text.PercentFormat.Spec
main :: IO ()
main = reportTests tests
tests :: [Bool]
tests =
[ True
, parseSpec "%" ==- spec {ty = Percent}
, parseSpec "r" ==- spec {ty = ReprSpec}
, parseSpec "s" ==- spec {ty = StringSpec}
, parseSpec "10s" ==- spec {ty = StringSpec, width = 10}
, parseSpec "21s" ==- spec {ty = StringSpec, width = 21}
, parseSpec "d" ==- spec {ty = NumberSpec}
, parseSpec "4d" ==- spec {ty = NumberSpec, width = 4, base = 10}
, parseSpec "6d" ==- spec {ty = NumberSpec, width = 6, base = 10}
, parseSpec "07d" ==- spec {ty = NumberSpec, width = 7, padWith = '0'}
, parseSpec "073d" ==- spec {ty = NumberSpec, width = 73, padWith = '0'}
, parseSpec "6i" ==- spec {ty = NumberSpec, width = 6, base = 10, precision = Just 0}
, parseSpec "07i" ==- spec {ty = NumberSpec, width = 7, padWith = '0', precision = Just 0}
, parseSpec "07.*i" ==- spec {ty = NumberSpec, width = 7, padWith = '0'}
, parseSpec "073i" ==- spec {ty = NumberSpec, width = 73, padWith = '0', precision = Just 0}
, parseSpec "x" ==- spec {ty = NumberSpec, base = 16}
, parseSpec "X" ==- spec {ty = NumberSpec, base = 16, capitalizeDigits = True}
, parseSpec "o" ==- spec {ty = NumberSpec, base = 8}
, parseSpec "b" ==- spec {ty = NumberSpec, base = 2}
, parseSpec "d" ==- spec {ty = NumberSpec, positivePrefix=""}
, parseSpec "+d" ==- spec {ty = NumberSpec, positivePrefix="+"}
, parseSpec " d" ==- spec {ty = NumberSpec, positivePrefix=" "}
, parseSpec "i" ==- spec {ty = NumberSpec, positivePrefix="", precision = Just 0}
, parseSpec "+i" ==- spec {ty = NumberSpec, positivePrefix="+", precision = Just 0}
, parseSpec " i" ==- spec {ty = NumberSpec, positivePrefix=" ", precision = Just 0}
, parseSpec ".*i" ==- spec {ty = NumberSpec, positivePrefix=""}
, parseSpec "f" ==- spec {ty = NumberSpec, minPrecision = 1}
, parseSpec "3f" ==- spec {ty = NumberSpec, minPrecision = 1, width = 3}
, parseSpec "4.1f" ==- spec {ty = NumberSpec, minPrecision = 1, width = 4, precision = Just 1}
, parseSpec "4.0f" ==- spec {ty = NumberSpec, minPrecision = 1, width = 4, precision = Just 0}
, parseSpec "4.f" ==- spec {ty = NumberSpec, minPrecision = 1, width = 4, precision = Just 0}
, parseSpec "f" ==- spec {ty = NumberSpec, minPrecision = 1, positivePrefix=""}
, parseSpec "+f" ==- spec {ty = NumberSpec, minPrecision = 1, positivePrefix="+"}
, parseSpec " f" ==- spec {ty = NumberSpec, minPrecision = 1, positivePrefix=" "}
]
where
x ==- y = x == (y,"")