Skip to content

Commit 6fbb3b7

Browse files
committed
Standardise parse roundtrip tests
1 parent 2e39cf1 commit 6fbb3b7

1 file changed

Lines changed: 41 additions & 52 deletions

File tree

test/mudbrick/parser/roundtrip_test.exs

Lines changed: 41 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -2,68 +2,71 @@ defmodule Mudbrick.ParseRoundtripTest do
22
use ExUnit.Case, async: true
33
use ExUnitProperties
44

5+
import Mudbrick
6+
import Mudbrick.TestHelper
7+
58
alias Mudbrick.Parser
69

710
test "with an image" do
811
input =
9-
Mudbrick.new(images: %{I1: Mudbrick.TestHelper.flower()})
10-
|> Mudbrick.page()
11-
|> Mudbrick.image(
12-
:I1,
12+
new(images: %{flower: flower()})
13+
|> page()
14+
|> image(
15+
:flower,
1316
scale: {100, 100},
1417
position: {0, 0}
1518
)
16-
|> Mudbrick.Document.finish()
19+
|> render()
20+
21+
parsed =
22+
input
23+
|> IO.iodata_to_binary()
24+
|> Parser.parse()
25+
|> render()
1726

18-
assert input
19-
|> Mudbrick.render()
20-
|> IO.iodata_to_binary()
21-
|> Parser.parse() == input
27+
assert parsed == input
2228
end
2329

2430
test "custom page size" do
2531
input =
26-
Mudbrick.new()
27-
|> Mudbrick.page(size: {400, 100})
28-
|> Mudbrick.Document.finish()
29-
30-
assert input
31-
|> Mudbrick.render()
32-
|> IO.iodata_to_binary()
33-
|> Parser.parse() == input
32+
new()
33+
|> page(size: {400, 100})
34+
|> render()
35+
36+
parsed =
37+
input
38+
|> IO.iodata_to_binary()
39+
|> Parser.parse()
40+
|> render()
41+
42+
assert parsed == input
3443
end
3544

3645
test "with rectangle" do
37-
import Mudbrick
38-
3946
input =
4047
new()
4148
|> page(size: {100, 100})
4249
|> path(fn path ->
4350
Mudbrick.Path.rectangle(path, lower_left: {0, 0}, dimensions: {50, 60})
4451
end)
4552
|> render()
46-
|> IO.iodata_to_binary()
4753

4854
parsed =
4955
input
56+
|> IO.iodata_to_binary()
5057
|> Parser.parse()
5158
|> render()
52-
|> IO.iodata_to_binary()
5359

5460
assert parsed == input
5561
end
5662

5763
test "with underline" do
58-
import Mudbrick.TestHelper
59-
import Mudbrick
60-
6164
input =
62-
new(fonts: %{bodoni: bodoni_bold()})
65+
new(fonts: %{poop: bodoni_bold()})
6366
|> page(size: {400, 100})
6467
|> text(
6568
[{"Warning\n", underline: [width: 0.5]}],
66-
font: :bodoni,
69+
font: :poop,
6770
font_size: 70,
6871
position: {7, 30}
6972
)
@@ -79,62 +82,48 @@ defmodule Mudbrick.ParseRoundtripTest do
7982
end
8083

8184
test "PDF with text" do
82-
alias Mudbrick.TestHelper
83-
import Mudbrick
84-
8585
input =
8686
new(
8787
fonts: %{
88-
bodoni: TestHelper.bodoni_regular(),
89-
franklin: TestHelper.franklin_regular()
88+
bodoni: bodoni_regular(),
89+
franklin: franklin_regular()
9090
}
9191
)
9292
|> page()
9393
|> text("hello, bodoni", font: :bodoni)
9494
|> text("hello, franklin", font: :franklin)
95-
|> Mudbrick.Document.finish()
95+
|> render()
9696

97-
binary =
97+
parsed =
9898
input
99-
|> Mudbrick.render()
10099
|> IO.iodata_to_binary()
100+
|> Parser.parse()
101+
|> render()
101102

102-
assert binary ==
103-
binary
104-
|> Parser.parse()
105-
|> Mudbrick.render()
106-
|> IO.iodata_to_binary()
103+
assert parsed == input
107104
end
108105

109106
test "PDF with text, compressed" do
110-
alias Mudbrick.TestHelper
111-
import Mudbrick
112-
113107
input =
114108
new(
115109
compress: true,
116110
fonts: %{
117-
bodoni: TestHelper.bodoni_regular(),
118-
franklin: TestHelper.franklin_regular()
111+
bodoni: bodoni_regular(),
112+
franklin: franklin_regular()
119113
}
120114
)
121115
|> page()
122116
|> text("hello, bodoni", font: :bodoni)
123117
|> text("hello, franklin", font: :franklin)
124-
|> Mudbrick.Document.finish()
118+
|> render()
125119

126-
binary =
120+
parsed =
127121
input
128-
|> Mudbrick.render()
129122
|> IO.iodata_to_binary()
130-
131-
parsed_binary =
132-
binary
133123
|> Parser.parse()
134124
|> Mudbrick.render()
135-
|> IO.iodata_to_binary()
136125

137-
assert binary == parsed_binary
126+
assert parsed == input
138127
end
139128

140129
property "objects" do

0 commit comments

Comments
 (0)