forked from reingart/pyfpdf
-
Notifications
You must be signed in to change notification settings - Fork 231
/
test_ellipse.py
87 lines (60 loc) · 2.44 KB
/
test_ellipse.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
from pathlib import Path
import fpdf
from test.conftest import assert_pdf_equal
HERE = Path(__file__).resolve().parent
def next_row(pdf):
pdf.ln()
pdf.set_y(pdf.get_y() + size + margin)
size = 50
margin = 10
def test_ellipse_not_circle(tmp_path):
pdf = fpdf.FPDF(unit="mm")
pdf.add_page()
for counter, style in enumerate(["", "F", "FD", "DF", None]):
pdf.ellipse(x=pdf.get_x(), y=pdf.get_y(), w=size / 2, h=size, style=style)
pdf.set_x(pdf.get_x() + (size / 2) + margin)
if counter % 3 == 0:
next_row(pdf)
assert_pdf_equal(pdf, HERE / "class_ellipse_not_circle.pdf", tmp_path)
def test_ellipse_style(tmp_path):
pdf = fpdf.FPDF(unit="mm")
pdf.add_page()
for counter, style in enumerate(["", "F", "FD", "DF", None]):
pdf.ellipse(x=pdf.get_x(), y=pdf.get_y(), w=size, h=size, style=style)
pdf.set_x(pdf.get_x() + size + margin)
if counter % 3 == 0:
next_row(pdf)
assert_pdf_equal(pdf, HERE / "class_ellipse_style.pdf", tmp_path)
def test_ellipse_line_width(tmp_path):
pdf = fpdf.FPDF(unit="mm")
pdf.add_page()
for line_width in [1, 2, 3]:
pdf.set_line_width(line_width)
pdf.ellipse(x=pdf.get_x(), y=pdf.get_y(), w=size, h=size, style=None)
pdf.set_x(pdf.get_x() + size + margin)
next_row(pdf)
for line_width in [4, 5, 6]:
pdf.set_line_width(line_width)
pdf.ellipse(x=pdf.get_x(), y=pdf.get_y(), w=size, h=size, style=None)
pdf.set_x(pdf.get_x() + size + margin)
pdf.set_line_width(0.2) # reset
assert_pdf_equal(pdf, HERE / "class_ellipse_line_width.pdf", tmp_path)
def test_ellipse_draw_color(tmp_path):
pdf = fpdf.FPDF(unit="mm")
pdf.add_page()
pdf.set_line_width(0.5)
for gray in [70, 140, 210]:
pdf.set_draw_color(gray)
pdf.ellipse(x=pdf.get_x(), y=pdf.get_y(), w=size, h=size, style=None)
pdf.set_x(pdf.get_x() + size + margin)
assert_pdf_equal(pdf, HERE / "class_ellipse_draw_color.pdf", tmp_path)
def test_ellipse_fill_color(tmp_path):
pdf = fpdf.FPDF(unit="mm")
pdf.add_page()
pdf.set_fill_color(240)
for color in [[230, 30, 180], [30, 180, 30], [30, 30, 70]]:
pdf.set_draw_color(*color)
pdf.ellipse(x=pdf.get_x(), y=pdf.get_y(), w=size, h=size, style="FD")
pdf.set_x(pdf.get_x() + size + margin)
next_row(pdf)
assert_pdf_equal(pdf, HERE / "class_ellipse_fill_color.pdf", tmp_path)