on master help sign in
try adding more shrink implementations
211ad02Corey O'Connor
test/Verify/Graphics/Vty/Image.hs+18−10
@@ -7,6 +7,7 @@ module Verify.Graphics.Vty.Image ( module Verify.Graphics.Vty.Image
7
7
8import Verify.Graphics.Vty.Attributes
8import Verify.Graphics.Vty.Attributes
9import Graphics.Vty.Image
9import Graphics.Vty.Image
10+import Graphics.Vty.Image.Internal
10
11
11import Verify
12import Verify
12
13
@@ -131,19 +132,19 @@ data SingleAttrSingleSpanStack = SingleAttrSingleSpanStack
131instance Arbitrary SingleAttrSingleSpanStack where
132instance Arbitrary SingleAttrSingleSpanStack where
132 arbitrary = do
133 arbitrary = do
133 image_list <- Verify.resize 128 (listOf1 arbitrary)
134 image_list <- Verify.resize 128 (listOf1 arbitrary)
135+ return $ mk_single_attr_single_span_stack image_list
136+ shrink s = do
137+ image_list <- shrink $ stack_source_images s
138+ return $ mk_single_attr_single_span_stack image_list
139+
140+mk_single_attr_single_span_stack image_list =
134− let image = vert_cat [ i | SingleRowSingleAttrImage { row_image = i } <- image_list ]
141+ let image = vert_cat [ i | SingleRowSingleAttrImage { row_image = i } <- image_list ]
135− return $ SingleAttrSingleSpanStack
136− image
137− image_list
138− ( maximum $ map expected_columns image_list )
142+ in SingleAttrSingleSpanStack image image_list (maximum $ map expected_columns image_list)
139− ( toEnum $ length image_list )
143+ (toEnum $ length image_list)
140
144
141instance Arbitrary Image where
145instance Arbitrary Image where
142 arbitrary = oneof
146 arbitrary = oneof
143− [ do
147+ [ return EmptyImage
144− SingleAttrSingleSpanStack {stack_image} <- arbitrary
145− ImageResize f <- arbitrary
146− return $! fst $! f stack_image
147 , do
148 , do
148 SingleAttrSingleSpanStack {stack_image} <- arbitrary
149 SingleAttrSingleSpanStack {stack_image} <- arbitrary
149 ImageResize f <- arbitrary
150 ImageResize f <- arbitrary
@@ -165,6 +166,13 @@ instance Arbitrary Image where
165 ImageResize f <- arbitrary
166 ImageResize f <- arbitrary
166 return $! fst $! f i
167 return $! fst $! f i
167 ]
168 ]
169+ shrink (HorizJoin {part_left, part_right}) = shrink =<< [part_left, part_right]
170+ shrink (VertJoin {part_top, part_bottom}) = shrink =<< [part_top, part_bottom]
171+ shrink (CropRight {cropped_image}) = shrink =<< [cropped_image]
172+ shrink (CropLeft {cropped_image}) = shrink =<< [cropped_image]
173+ shrink (CropBottom {cropped_image}) = shrink =<< [cropped_image]
174+ shrink (CropTop {cropped_image}) = shrink =<< [cropped_image]
175+ shrink _ = []
168
176
169data CropOperation
177data CropOperation
170 = CropFromLeft
178 = CropFromLeft