@@ -53,8 +53,8 @@ vert_stack_layer_equivalence_1 row_0 row_1 =
54-- | Two rows horiz joined is equivalent to the first row rendered as the top layer and the
54-- | Two rows horiz joined is equivalent to the first row rendered as the top layer and the
55-- second row rendered as a bottom layer with a background fill where the first row would be.
55-- second row rendered as a bottom layer with a background fill where the first row would be.
56−horiz_stack_layer_equivalence_0 :: SingleRowSingleAttrImage -> SingleRowSingleAttrImage -> Result
56+horiz_join_layer_equivalence_0 :: SingleRowSingleAttrImage -> SingleRowSingleAttrImage -> Result
57−horiz_stack_layer_equivalence_0 row_0 row_1 =
57+horiz_join_layer_equivalence_0 row_0 row_1 =
58 let i_0 = row_image row_0
58 let i_0 = row_image row_0
59 i_1 = row_image row_1
59 i_1 = row_image row_1
60 i = i_0 <|> i_1
60 i = i_0 <|> i_1
@@ -65,8 +65,8 @@ horiz_stack_layer_equivalence_0 row_0 row_1 =
65 ops_layered = display_ops_for_pic p_layered $ DisplayRegion (image_width i_lower) (image_height i_lower)
65 ops_layered = display_ops_for_pic p_layered $ DisplayRegion (image_width i_lower) (image_height i_lower)
66 in verify_ops_equality expected_ops ops_layered
66 in verify_ops_equality expected_ops ops_layered
68−horiz_stack_layer_equivalence_1 :: SingleRowSingleAttrImage -> SingleRowSingleAttrImage -> Result
68+horiz_join_layer_equivalence_1 :: SingleRowSingleAttrImage -> SingleRowSingleAttrImage -> Result
69−horiz_stack_layer_equivalence_1 row_0 row_1 =
69+horiz_join_layer_equivalence_1 row_0 row_1 =
70 let i_0 = row_image row_0
70 let i_0 = row_image row_0
71 i_1 = row_image row_1
71 i_1 = row_image row_1
72 i = i_0 <|> i_1
72 i = i_0 <|> i_1
@@ -78,6 +78,35 @@ horiz_stack_layer_equivalence_1 row_0 row_1 =
78 ops_layered = display_ops_for_pic p_layered $ DisplayRegion (image_width i_lower) (image_height i_lower)
78 ops_layered = display_ops_for_pic p_layered $ DisplayRegion (image_width i_lower) (image_height i_lower)
79 in verify_ops_equality expected_ops ops_layered
79 in verify_ops_equality expected_ops ops_layered
81+horiz_join_alternate_0 :: Result
82+horiz_join_alternate_0 =
84+ str_0 = replicate size 'a'
85+ str_1 = replicate size 'b'
86+ i_0 = string def_attr str_0
87+ i_1 = string def_attr str_1
88+ i = horiz_cat $ zipWith horiz_join (replicate size i_0) (replicate size i_1)
89+ layer_0 = horiz_cat $ replicate size $ i_0 <|> background_fill size 1
90+ layer_1 = horiz_cat $ replicate size $ background_fill size 1 <|> i_1
91+ expected_ops = display_ops_for_image i
92+ ops_layered = display_ops_for_pic (pic_for_layers [layer_0, layer_1])
93+ (DisplayRegion (image_width i) (image_height i))
94+ in verify_ops_equality expected_ops ops_layered
96+horiz_join_alternate_1 :: Result
97+horiz_join_alternate_1 =
99+ str_0 = replicate size 'a'
100+ str_1 = replicate size 'b'
101+ i_0 = string def_attr str_0
102+ i_1 = string def_attr str_1
103+ i = horiz_cat $ zipWith horiz_join (replicate size i_0) (replicate size i_1)
104+ layers = [l | b <- take 4 [0,size*2..], let l = background_fill b 1 <|> i_0 <|> i_1]
105+ expected_ops = display_ops_for_image i
106+ ops_layered = display_ops_for_pic (pic_for_layers layers)
107+ (DisplayRegion (image_width i) (image_height i))
108+ in verify_ops_equality expected_ops ops_layered
81tests :: IO [Test]
110tests :: IO [Test]
82tests = return
111tests = return
83 [ verify "a larger horiz span occludes a smaller span on a lower layer"
112 [ verify "a larger horiz span occludes a smaller span on a lower layer"
@@ -87,8 +116,12 @@ tests = return
87 , verify "two rows stack vertical equiv to first image layered on top of second with padding (1)"
116 , verify "two rows stack vertical equiv to first image layered on top of second with padding (1)"
88 vert_stack_layer_equivalence_1
117 vert_stack_layer_equivalence_1
89 , verify "two rows horiz joined equiv to first image layered on top of second with padding (0)"
118 , verify "two rows horiz joined equiv to first image layered on top of second with padding (0)"
90− horiz_stack_layer_equivalence_0
119+ horiz_join_layer_equivalence_0
91 , verify "two rows horiz joined equiv to first image layered on top of second with padding (1)"
120 , verify "two rows horiz joined equiv to first image layered on top of second with padding (1)"
92− horiz_stack_layer_equivalence_1
121+ horiz_join_layer_equivalence_1
122+ , verify "alternating images using joins is the same as alternating images using layers (0)"
123+ horiz_join_alternate_0
124+ , verify "alternating images using joins is the same as alternating images using layers (1)"
125+ horiz_join_alternate_1