Skip to content

Commit 740edd5

Browse files
committed
add more test cases
* file with only unused groups * kern values are all 0
1 parent 532a9c9 commit 740edd5

31 files changed

+1010
-1
lines changed

kernFeatureWriter.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -619,6 +619,9 @@ def __init__(self, font, args=None):
619619
if not self.f.kerning:
620620
print('ERROR: The font has no kerning!')
621621
return
622+
if set(self.f.kerning.values()) == {0}:
623+
print('ERROR: All kerning values are zero!')
624+
return
622625

623626
fea_data = self._make_fea_data()
624627
if fea_data:
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
include(../../../../../features.fea);
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>ascender</key>
6+
<integer>730</integer>
7+
<key>capHeight</key>
8+
<integer>670</integer>
9+
<key>copyright</key>
10+
<string>Copyright 2014 - 2023 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'.</string>
11+
<key>descender</key>
12+
<integer>-240</integer>
13+
<key>familyName</key>
14+
<string>Source Serif 4</string>
15+
<key>italicAngle</key>
16+
<integer>0</integer>
17+
<key>openTypeHheaAscender</key>
18+
<integer>1003</integer>
19+
<key>openTypeHheaDescender</key>
20+
<integer>-336</integer>
21+
<key>openTypeHheaLineGap</key>
22+
<integer>0</integer>
23+
<key>openTypeNameDesigner</key>
24+
<string>Frank Grießhammer</string>
25+
<key>openTypeNameLicense</key>
26+
<string>This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFL. This Font Software is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the SIL Open Font License for the specific language, permissions and limitations governing your use of this Font Software.</string>
27+
<key>openTypeNameLicenseURL</key>
28+
<string>http://scripts.sil.org/OFL</string>
29+
<key>openTypeNameManufacturer</key>
30+
<string>Adobe</string>
31+
<key>openTypeNameManufacturerURL</key>
32+
<string>http://www.adobe.com/type</string>
33+
<key>openTypeOS2CodePageRanges</key>
34+
<array>
35+
<integer>0</integer>
36+
<integer>1</integer>
37+
<integer>2</integer>
38+
<integer>3</integer>
39+
<integer>4</integer>
40+
<integer>7</integer>
41+
<integer>8</integer>
42+
<integer>29</integer>
43+
</array>
44+
<key>openTypeOS2Panose</key>
45+
<array>
46+
<integer>2</integer>
47+
<integer>4</integer>
48+
<integer>6</integer>
49+
<integer>3</integer>
50+
<integer>5</integer>
51+
<integer>4</integer>
52+
<integer>5</integer>
53+
<integer>2</integer>
54+
<integer>2</integer>
55+
<integer>4</integer>
56+
</array>
57+
<key>openTypeOS2TypoAscender</key>
58+
<integer>730</integer>
59+
<key>openTypeOS2TypoDescender</key>
60+
<integer>-270</integer>
61+
<key>openTypeOS2TypoLineGap</key>
62+
<integer>0</integer>
63+
<key>openTypeOS2UnicodeRanges</key>
64+
<array>
65+
<integer>0</integer>
66+
<integer>1</integer>
67+
<integer>2</integer>
68+
<integer>7</integer>
69+
<integer>9</integer>
70+
<integer>29</integer>
71+
<integer>32</integer>
72+
<integer>33</integer>
73+
<integer>57</integer>
74+
</array>
75+
<key>openTypeOS2VendorID</key>
76+
<string>ADBO</string>
77+
<key>openTypeOS2WinAscent</key>
78+
<integer>1036</integer>
79+
<key>openTypeOS2WinDescent</key>
80+
<integer>335</integer>
81+
<key>postscriptBlueFuzz</key>
82+
<integer>0</integer>
83+
<key>postscriptBlueScale</key>
84+
<real>0.0375</real>
85+
<key>postscriptBlueShift</key>
86+
<integer>7</integer>
87+
<key>postscriptBlueValues</key>
88+
<array>
89+
<integer>-15</integer>
90+
<integer>0</integer>
91+
<integer>475</integer>
92+
<integer>488</integer>
93+
<integer>527</integer>
94+
<integer>540</integer>
95+
<integer>549</integer>
96+
<integer>563</integer>
97+
<integer>647</integer>
98+
<integer>660</integer>
99+
<integer>670</integer>
100+
<integer>685</integer>
101+
<integer>730</integer>
102+
<integer>750</integer>
103+
</array>
104+
<key>postscriptFamilyBlues</key>
105+
<array>
106+
<integer>-15</integer>
107+
<integer>0</integer>
108+
<integer>475</integer>
109+
<integer>488</integer>
110+
<integer>527</integer>
111+
<integer>540</integer>
112+
<integer>549</integer>
113+
<integer>563</integer>
114+
<integer>647</integer>
115+
<integer>660</integer>
116+
<integer>670</integer>
117+
<integer>685</integer>
118+
<integer>730</integer>
119+
<integer>750</integer>
120+
</array>
121+
<key>postscriptFamilyOtherBlues</key>
122+
<array>
123+
<integer>-250</integer>
124+
<integer>-240</integer>
125+
</array>
126+
<key>postscriptFontName</key>
127+
<string>SourceSerif4-Regular</string>
128+
<key>postscriptForceBold</key>
129+
<false/>
130+
<key>postscriptOtherBlues</key>
131+
<array>
132+
<integer>-250</integer>
133+
<integer>-240</integer>
134+
</array>
135+
<key>postscriptStemSnapH</key>
136+
<array>
137+
<integer>46</integer>
138+
<integer>36</integer>
139+
</array>
140+
<key>postscriptStemSnapV</key>
141+
<array>
142+
<integer>85</integer>
143+
<integer>95</integer>
144+
</array>
145+
<key>postscriptUnderlinePosition</key>
146+
<integer>-75</integer>
147+
<key>postscriptUnderlineThickness</key>
148+
<integer>50</integer>
149+
<key>styleName</key>
150+
<string>Regular</string>
151+
<key>trademark</key>
152+
<string>Source is a trademark of Adobe in the United States and/or other countries.</string>
153+
<key>unitsPerEm</key>
154+
<integer>1000</integer>
155+
<key>xHeight</key>
156+
<integer>475</integer>
157+
</dict>
158+
</plist>
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<glyph name="A" format="2">
3+
<unicode hex="0041"/>
4+
<advance width="664"/>
5+
<outline>
6+
<contour>
7+
<point x="5" y="0" type="line"/>
8+
<point x="234" y="0" type="line"/>
9+
<point x="234" y="41" type="line"/>
10+
<point x="125" y="56" type="line"/>
11+
<point x="105" y="56" type="line"/>
12+
<point x="5" y="41" type="line"/>
13+
</contour>
14+
<contour>
15+
<point x="71" y="0" type="line"/>
16+
<point x="118" y="0" type="line"/>
17+
<point x="314" y="576" type="line"/>
18+
<point x="319" y="591" type="line"/>
19+
<point x="299" y="591" type="line"/>
20+
<point x="497" y="0" type="line"/>
21+
<point x="595" y="0" type="line"/>
22+
<point x="365" y="675" type="line"/>
23+
<point x="302" y="675" type="line"/>
24+
</contour>
25+
<contour>
26+
<point x="177" y="217" type="line"/>
27+
<point x="463" y="217" type="line"/>
28+
<point x="463" y="264" type="line"/>
29+
<point x="177" y="264" type="line"/>
30+
</contour>
31+
<contour>
32+
<point x="381" y="0" type="line"/>
33+
<point x="653" y="0" type="line"/>
34+
<point x="653" y="41" type="line"/>
35+
<point x="529" y="56" type="line"/>
36+
<point x="507" y="56" type="line"/>
37+
<point x="381" y="41" type="line"/>
38+
</contour>
39+
</outline>
40+
<anchor name="aboveUC" x="331" y="690"/>
41+
<anchor name="belowLC" x="315" y="-20"/>
42+
<anchor name="ogonek" x="539" y="0"/>
43+
</glyph>
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<glyph name="B" format="2">
3+
<unicode hex="0042"/>
4+
<advance width="629"/>
5+
<outline>
6+
<contour>
7+
<point x="44" y="0" type="line"/>
8+
<point x="185" y="0" type="line"/>
9+
<point x="185" y="56" type="line"/>
10+
<point x="175" y="56" type="line"/>
11+
<point x="44" y="41" type="line"/>
12+
</contour>
13+
<contour>
14+
<point x="135" y="0" type="curve"/>
15+
<point x="236" y="0" type="line"/>
16+
<point x="233" y="103"/>
17+
<point x="233" y="207"/>
18+
<point x="233" y="325" type="curve" smooth="yes"/>
19+
<point x="233" y="359" type="line" smooth="yes"/>
20+
<point x="233" y="464"/>
21+
<point x="233" y="569"/>
22+
<point x="236" y="670" type="curve"/>
23+
<point x="135" y="670" type="line"/>
24+
<point x="138" y="567"/>
25+
<point x="138" y="462"/>
26+
<point x="138" y="359" type="curve" smooth="yes"/>
27+
<point x="138" y="310" type="line" smooth="yes"/>
28+
<point x="138" y="205"/>
29+
<point x="138" y="101"/>
30+
</contour>
31+
<contour>
32+
<point x="185" y="0" type="line"/>
33+
<point x="319" y="0" type="line" smooth="yes"/>
34+
<point x="511" y="0"/>
35+
<point x="586" y="92"/>
36+
<point x="586" y="183" type="curve" smooth="yes"/>
37+
<point x="586" y="270"/>
38+
<point x="521" y="339"/>
39+
<point x="364" y="352" type="curve"/>
40+
<point x="364" y="343" type="line"/>
41+
<point x="499" y="359"/>
42+
<point x="552" y="429"/>
43+
<point x="552" y="507" type="curve" smooth="yes"/>
44+
<point x="552" y="602"/>
45+
<point x="473" y="670"/>
46+
<point x="334" y="670" type="curve" smooth="yes"/>
47+
<point x="185" y="670" type="line"/>
48+
<point x="185" y="624" type="line"/>
49+
<point x="304" y="624" type="line" smooth="yes"/>
50+
<point x="406" y="624"/>
51+
<point x="458" y="591"/>
52+
<point x="458" y="500" type="curve" smooth="yes"/>
53+
<point x="458" y="409"/>
54+
<point x="406" y="369"/>
55+
<point x="285" y="369" type="curve" smooth="yes"/>
56+
<point x="185" y="369" type="line"/>
57+
<point x="185" y="323" type="line"/>
58+
<point x="288" y="323" type="line" smooth="yes"/>
59+
<point x="426" y="323"/>
60+
<point x="486" y="276"/>
61+
<point x="486" y="183" type="curve" smooth="yes"/>
62+
<point x="486" y="95"/>
63+
<point x="424" y="47"/>
64+
<point x="296" y="47" type="curve" smooth="yes"/>
65+
<point x="185" y="47" type="line"/>
66+
</contour>
67+
<contour>
68+
<point x="44" y="629" type="line"/>
69+
<point x="175" y="614" type="line"/>
70+
<point x="185" y="614" type="line"/>
71+
<point x="185" y="670" type="line"/>
72+
<point x="44" y="670" type="line"/>
73+
</contour>
74+
</outline>
75+
<anchor name="aboveUC" x="310" y="690"/>
76+
<anchor name="belowLC" x="329" y="-20"/>
77+
</glyph>
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<glyph name="C" format="2">
3+
<unicode hex="0043"/>
4+
<advance width="631"/>
5+
<outline>
6+
<contour>
7+
<point x="386" y="-15" type="curve" smooth="yes"/>
8+
<point x="457" y="-15"/>
9+
<point x="526" y="-1"/>
10+
<point x="588" y="33" type="curve"/>
11+
<point x="592" y="178" type="line"/>
12+
<point x="530" y="178" type="line"/>
13+
<point x="505" y="30" type="line"/>
14+
<point x="567" y="44" type="line"/>
15+
<point x="567" y="99" type="line"/>
16+
<point x="511" y="52"/>
17+
<point x="448" y="35"/>
18+
<point x="391" y="35" type="curve" smooth="yes"/>
19+
<point x="254" y="35"/>
20+
<point x="156" y="139"/>
21+
<point x="156" y="335" type="curve" smooth="yes"/>
22+
<point x="156" y="530"/>
23+
<point x="264" y="635"/>
24+
<point x="398" y="635" type="curve" smooth="yes"/>
25+
<point x="446" y="635"/>
26+
<point x="501" y="618"/>
27+
<point x="557" y="566" type="curve"/>
28+
<point x="557" y="626" type="line"/>
29+
<point x="495" y="640" type="line"/>
30+
<point x="520" y="492" type="line"/>
31+
<point x="582" y="492" type="line"/>
32+
<point x="578" y="637" type="line"/>
33+
<point x="511" y="676"/>
34+
<point x="440" y="685"/>
35+
<point x="385" y="685" type="curve" smooth="yes"/>
36+
<point x="191" y="685"/>
37+
<point x="47" y="537"/>
38+
<point x="47" y="335" type="curve" smooth="yes"/>
39+
<point x="47" y="129"/>
40+
<point x="184" y="-15"/>
41+
</contour>
42+
</outline>
43+
<anchor name="aboveUC" x="385" y="690"/>
44+
<anchor name="baseLC" x="386" y="0"/>
45+
<anchor name="belowLC" x="381" y="-20"/>
46+
</glyph>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<glyph name=".notdef" format="2">
3+
<advance width="640"/>
4+
<outline>
5+
<contour>
6+
<point x="80" y="0" type="line"/>
7+
<point x="142" y="0" type="line"/>
8+
<point x="560" y="670" type="line"/>
9+
<point x="498" y="670" type="line"/>
10+
</contour>
11+
<contour>
12+
<point x="560" y="0" type="line"/>
13+
<point x="142" y="670" type="line"/>
14+
<point x="80" y="670" type="line"/>
15+
<point x="498" y="0" type="line"/>
16+
</contour>
17+
<contour>
18+
<point x="141" y="51" type="line"/>
19+
<point x="141" y="619" type="line"/>
20+
<point x="499" y="619" type="line"/>
21+
<point x="499" y="51" type="line"/>
22+
</contour>
23+
<contour>
24+
<point x="80" y="0" type="line"/>
25+
<point x="560" y="0" type="line"/>
26+
<point x="560" y="670" type="line"/>
27+
<point x="80" y="670" type="line"/>
28+
</contour>
29+
</outline>
30+
</glyph>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>.notdef</key>
6+
<string>_notdef.glif</string>
7+
<key>A</key>
8+
<string>A_.glif</string>
9+
<key>B</key>
10+
<string>B_.glif</string>
11+
<key>C</key>
12+
<string>C_.glif</string>
13+
<key>space</key>
14+
<string>space.glif</string>
15+
</dict>
16+
</plist>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>color</key>
6+
<string>1,0,1,0.7</string>
7+
</dict>
8+
</plist>

0 commit comments

Comments
 (0)