on master help sign in
vty/test/VerifyUtf8Width.hs
30 lines 907 B history raw
1module VerifyUtf8Width where
3import Verify
5import Graphics.Text.Width
6import Graphics.Vty.Attributes
7import Graphics.Vty.Picture
8import Graphics.Vty.Image
10swIs1Column :: SingleColumnChar -> Bool
11swIs1Column (SingleColumnChar c) = imageWidth (char defAttr c) == 1
13dwIs2Column :: DoubleColumnChar -> Bool
14dwIs2Column (DoubleColumnChar c) = imageWidth (char defAttr c) == 2
16dcStringIsEven :: NonEmptyList DoubleColumnChar -> Bool
17dcStringIsEven (NonEmpty dw_list) =
18 even $ safeWcswidth [ c | DoubleColumnChar c <- dw_list ]
20safeWcwidthForControlChars :: Bool
21safeWcwidthForControlChars = 0 == safeWcwidth '\NUL'
23tests :: IO [Test]
24tests = return
25 [ verify "swIs1Column" swIs1Column
26 , verify "dwIs2Column" dwIs2Column
27 , verify "a string of double characters is an even width" dcStringIsEven
28 , verify "safeWcwidth provides a width of 0 for chars without widths" safeWcwidthForControlChars
29 ]