1{-# LANGUAGE NamedFieldPuns #-}
2module VerifyImageTrans where
3
4import Verify.Graphics.Vty.Image
5
6import Graphics.Vty.Image.Internal
7
8import Verify
9
10import Data.Word
11
12isHorizTextOfColumns :: Image -> Int -> Bool
13isHorizTextOfColumns (HorizText { outputWidth = inW }) expectedW = inW == expectedW
14isHorizTextOfColumns (BGFill { outputWidth = inW }) expectedW = inW == expectedW
15isHorizTextOfColumns _image _expectedW = False
16
17verifyHorizContatWoAttrChangeSimplifies :: SingleRowSingleAttrImage -> Bool
18verifyHorizContatWoAttrChangeSimplifies (SingleRowSingleAttrImage _attr charCount image) =
19    isHorizTextOfColumns image charCount
20
21verifyHorizContatWAttrChangeSimplifies :: SingleRowTwoAttrImage -> Bool
22verifyHorizContatWAttrChangeSimplifies ( SingleRowTwoAttrImage (SingleRowSingleAttrImage attr0 charCount0 _image0)
23                                                               (SingleRowSingleAttrImage attr1 charCount1 _image1)
24                                                               i
25                                             )
26    | charCount0 == 0 || charCount1 == 0 || attr0 == attr1 = isHorizTextOfColumns i (charCount0 + charCount1)
27    | otherwise = False == isHorizTextOfColumns i (charCount0 + charCount1)
28
29tests :: IO [Test]
30tests = return
31    [ verify "verifyHorizContatWoAttrChangeSimplifies" verifyHorizContatWoAttrChangeSimplifies
32    , verify "verifyHorizContatWAttrChangeSimplifies" verifyHorizContatWAttrChangeSimplifies
33    ]
34
35