on master help sign in
additional testing of string width functionality
89b1a3aCorey O'Connor
test/VerifyUtf8Width.hs+10
@@ -1,6 +1,7 @@
1module VerifyUtf8Width where
1module VerifyUtf8Width where
2import Verify
2import Verify
3
3
4+import Graphics.Text.Width
4import Graphics.Vty.Attributes
5import Graphics.Vty.Attributes
5import Graphics.Vty.Picture
6import Graphics.Vty.Picture
6
7
@@ -10,9 +11,18 @@ sw_is_1_column (SingleColumnChar c) = image_width (char def_attr c) == 1
10dw_is_2_column :: DoubleColumnChar -> Bool
11dw_is_2_column :: DoubleColumnChar -> Bool
11dw_is_2_column (DoubleColumnChar c) = image_width (char def_attr c) == 2
12dw_is_2_column (DoubleColumnChar c) = image_width (char def_attr c) == 2
12
13
14+dc_string_is_even :: NonEmptyList DoubleColumnChar -> Bool
15+dc_string_is_even (NonEmpty dw_list) =
16+ even $ safe_wcswidth [ c | DoubleColumnChar c <- dw_list ]
17+
18+safe_wcwidth_for_control_chars :: Bool
19+safe_wcwidth_for_control_chars = 0 == safe_wcwidth '\NUL'
20+
13tests :: IO [Test]
21tests :: IO [Test]
14tests = return
22tests = return
15 [ verify "sw_is_1_column" sw_is_1_column
23 [ verify "sw_is_1_column" sw_is_1_column
16 , verify "dw_is_2_column" dw_is_2_column
24 , verify "dw_is_2_column" dw_is_2_column
25+ , verify "a string of double characters is an even width" dc_string_is_even
26+ , verify "safe_wcwidth provides a width of 0 for chars without widths" safe_wcwidth_for_control_chars
17 ]
27 ]
18
28