forked from google/fonts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_dottedcircle.py
33 lines (28 loc) · 1.07 KB
/
test_dottedcircle.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
import uharfbuzz as hb
import gflanguages
import pytest
langs = gflanguages.LoadLanguages()
xfail_langs = {"kkh_Lana": "Tai Tham encoding is over-differentiated (see L2/19-365)"}
@pytest.fixture
def hb_font():
# Persuade Harfbuzz we have a font that supports
# every codepoint.
face = hb.Face(b"")
font = hb.Font(face)
funcs = hb.FontFuncs.create()
funcs.set_nominal_glyph_func((lambda font, cp, data: cp), None)
font.funcs = funcs
return font
@pytest.mark.parametrize("lang", langs.keys())
def test_dotted_circle(lang, hb_font):
if lang in xfail_langs:
pytest.xfail("Language is expected to fail: " + xfail_langs[lang])
item = langs[lang]
samples = item.sample_text.ListFields()
for sample_name, sample in sorted(samples, key=lambda x: len(x[1])):
buf = hb.Buffer()
buf.add_str(sample)
buf.guess_segment_properties()
hb.shape(hb_font, buf)
ok = not any(info.codepoint == 0x25CC for info in buf.glyph_infos)
assert ok, f"Dotted circle found in {sample} ({lang}.{sample_name.name})"