Skip to content

Commit

Permalink
Add test cases SFNT-1 and SFNT-2
Browse files Browse the repository at this point in the history
Thanks to @simoncozens for the kind contribution to Unicode.
simoncozens/test-fonts#2
  • Loading branch information
brawer committed Dec 27, 2019
1 parent de0153d commit 9598b43
Show file tree
Hide file tree
Showing 9 changed files with 749 additions and 323 deletions.
Binary file added fonts/TestSFNTOne.otf
Binary file not shown.
Binary file added fonts/TestSFNTTwo.ttf
Binary file not shown.
68 changes: 67 additions & 1 deletion reports/CoreText.html
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ <h3>Overview</h3>
This report was generated on <span id="Date">December 27, 2019</span> by running
<a href="https://github.com/unicode-org/text-rendering-tests">Unicode’s test suite for text rendering engines</a> with
<span id="EngineVersion">macOS 10.14.6 and CoreText 10.14</span>.
<span id="SummaryText">Some tests have failed. For details, see <a href="#CFF2-1">CFF2-1</a>, <a href="#GSUB-3">GSUB-3</a>, <a href="#HVAR-1">HVAR-1</a>, <a href="#MORX-34">MORX-34</a>, <a href="#MORX-35">MORX-35</a>, <a href="#SHARAN-1">SHARAN-1</a>, <a href="#SHLANA-1">SHLANA-1</a>, <a href="#SHLANA-2">SHLANA-2</a>, <a href="#SHLANA-3">SHLANA-3</a>, <a href="#SHLANA-4">SHLANA-4</a>, <a href="#SHLANA-5">SHLANA-5</a>, <a href="#SHLANA-6">SHLANA-6</a>, <a href="#SHLANA-7">SHLANA-7</a>, <a href="#SHLANA-8">SHLANA-8</a>, <a href="#SHLANA-9">SHLANA-9</a>, and <a href="#SHLANA-10">SHLANA-10</a>.</span>
<span id="SummaryText">Some tests have failed. For details, see <a href="#CFF2-1">CFF2-1</a>, <a href="#GSUB-3">GSUB-3</a>, <a href="#HVAR-1">HVAR-1</a>, <a href="#MORX-34">MORX-34</a>, <a href="#MORX-35">MORX-35</a>, <a href="#SFNT-1">SFNT-1</a>, <a href="#SFNT-2">SFNT-2</a>, <a href="#SHARAN-1">SHARAN-1</a>, <a href="#SHLANA-1">SHLANA-1</a>, <a href="#SHLANA-2">SHLANA-2</a>, <a href="#SHLANA-3">SHLANA-3</a>, <a href="#SHLANA-4">SHLANA-4</a>, <a href="#SHLANA-5">SHLANA-5</a>, <a href="#SHLANA-6">SHLANA-6</a>, <a href="#SHLANA-7">SHLANA-7</a>, <a href="#SHLANA-8">SHLANA-8</a>, <a href="#SHLANA-9">SHLANA-9</a>, and <a href="#SHLANA-10">SHLANA-10</a>.</span>
</div>
<h3 id="AVAR-1">AVAR–1: Weight Flattening</h3>

Expand Down Expand Up @@ -4979,6 +4979,72 @@ <h3 id="MORX-41">MORX-41: Ligature Substitution Under-/Overflow</h3>
<td class="conformance-pass" ns0:id="MORX-41/4">✓</td>
</tr>
</table>
<h3 id="SFNT-1">SFNT–1: OpenType with PostScript Outlines</h3>

<div class="desc">
The <a href="../fonts/TestSFNTOne.otf">font</a> for this test case,
contributed by <a href="http://www.simon-cozens.org/">Simon
Cozens</a>, contains glyphs outlines in both <em>CFF</em>
and <em>glyf</em> format. Because
the <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/otff#organization-of-an-opentype-font">Offset Table</a> uses an <em>sfntVersion</em> of
0x4F54544F (‘OTTO’), your rendering engine should take the glyph
outlines from the <em>CFF</em> table. If you see <em>CFF</em> below
the characters <em>A</em> and <em>B</em>, your rendering engine
makes correct use of the <em>sfntVersion</em> field.
</div>

<table>
<tr>
<th>Expected</th>
<td class="expected" ns0:font="TestSFNTOne.otf" ns0:id="SFNT-1/1" ns0:render="A"><svg version="1.1" viewBox="0 -200 609 1200"><symbol id="SFNT-1/1.A" overflow="visible"><path d="M477,0 L604,0 L368,700 L241,700 L5,0 L132,0 L206,220 L403,220 Z M237,310 L305,512 L372,310 Z M204,-32 C167,-32 154,-56 154,-93 C154,-131 168,-152 204,-152 C216,-152 227,-152 242,-146 L242,-163 C229,-170 228,-166 201,-169 C155,-174 134,-137 134,-90 C134,-49 158,-15 207,-15 C221,-15 236,-18 248,-23 L239,-41 C227,-35 216,-32 204,-32 Z M291,-166 L274,-166 L274,-18 L358,-18 L358,-35 L291,-35 L291,-87 L352,-87 L352,-102 L291,-102 Z M402,-166 L382,-166 L382,-18 L466,-18 L466,-35 L402,-35 L402,-87 L463,-87 L463,-102 L402,-102 Z" /></symbol><use x="0" y="0" xlink:href="#SFNT-1/1.A" /></svg></td>
<td class="expected" ns0:font="TestSFNTOne.otf" ns0:id="SFNT-1/2" ns0:render="B"><svg version="1.1" viewBox="0 -200 600 1200"><symbol id="SFNT-1/2.B" overflow="visible"><path d="M344,0 C451,0 556,56 556,187 C556,309 469,356 387,369 C489,381 523,472 523,527 C523,636 440,700 315,700 C300,700 207,698 74,700 L74,0 C179,-1 275,0 344,0 Z M186,424 L186,606 L286,606 C320,606 416,593 416,517 C416,447 361,424 296,424 Z M186,100 L186,310 L271,310 C345,310 446,295 446,207 C446,126 393,100 318,100 Z M204,-32 C167,-32 154,-56 154,-93 C154,-131 168,-152 204,-152 C216,-152 227,-152 242,-146 L242,-163 C229,-170 228,-166 201,-169 C155,-174 134,-137 134,-90 C134,-49 158,-15 207,-15 C221,-15 236,-18 248,-23 L239,-41 C227,-35 216,-32 204,-32 Z M291,-166 L274,-166 L274,-18 L358,-18 L358,-35 L291,-35 L291,-87 L352,-87 L352,-102 L291,-102 Z M402,-166 L382,-166 L382,-18 L466,-18 L466,-35 L402,-35 L402,-87 L463,-87 L463,-102 L402,-102 Z" /></symbol><use x="0" y="0" xlink:href="#SFNT-1/2.B" /></svg></td>
</tr>
<tr>
<th>Observed</th>
<td class="observed" ns0:id="SFNT-1/1"><svg version="1.1" viewBox="0 -200 609 1200"><symbol id="OBSERVED/SFNT-1/1.A" overflow="visible"><path d="M403,220 L206,220 L132,0 L5,0 L241,700 L368,700 L604,0 L477,0 Z M372,310 L305,512 L237,310 Z M204,-32 C167,-32 154,-56 154,-93 C154,-131 168,-152 204,-152 C216,-152 227,-152 242,-146 L242,-163 C229,-170 228,-166 201,-169 C155,-174 134,-137 134,-90 C134,-49 158,-15 207,-15 C221,-15 236,-18 248,-23 L239,-41 C227,-35 216,-32 204,-32 Z M291,-166 L274,-166 L274,-18 L358,-18 L358,-35 L291,-35 L291,-87 L352,-87 L352,-102 L291,-102 Z M402,-166 L382,-166 L382,-18 L466,-18 L466,-35 L402,-35 L402,-87 L463,-87 L463,-102 L402,-102 Z" /></symbol><use x="0" y="0" xlink:href="#OBSERVED/SFNT-1/1.A" /></svg></td>
<td class="observed" ns0:id="SFNT-1/2"><svg version="1.1" viewBox="0 -200 600 1200"><symbol id="OBSERVED/SFNT-1/2.B" overflow="visible"><path d="M344,0 C275,0 179,-1 74,0 L74,700 C207,698 300,700 315,700 C440,700 523,636 523,527 C523,472 489,381 387,369 C469,356 556,309 556,187 C556,56 451,0 344,0 Z M296,424 C361,424 416,447 416,517 C416,593 320,606 286,606 L186,606 L186,424 Z M318,100 C393,100 446,126 446,207 C446,295 345,310 271,310 L186,310 L186,100 Z M204,-32 C167,-32 154,-56 154,-93 C154,-131 168,-152 204,-152 C216,-152 227,-152 242,-146 L242,-163 C229,-170 228,-166 201,-169 C155,-174 134,-137 134,-90 C134,-49 158,-15 207,-15 C221,-15 236,-18 248,-23 L239,-41 C227,-35 216,-32 204,-32 Z M291,-166 L274,-166 L274,-18 L358,-18 L358,-35 L291,-35 L291,-87 L352,-87 L352,-102 L291,-102 Z M402,-166 L382,-166 L382,-18 L466,-18 L466,-35 L402,-35 L402,-87 L463,-87 L463,-102 L402,-102 Z" /></symbol><use x="0" y="0" xlink:href="#OBSERVED/SFNT-1/2.B" /></svg></td>
</tr>
<tr>
<th class="conformance-header">Conformance</th>
<td class="conformance-fail" ns0:id="SFNT-1/1">✖</td>
<td class="conformance-fail" ns0:id="SFNT-1/2">✖</td>
</tr>

</table>

<h3 id="SFNT-2">SFNT–2: OpenType with TrueType Outlines</h3>

<div class="desc">
The <a href="../fonts/TestSFNTTwo.ttf">font</a> for this test case,
contributed by <a href="http://www.simon-cozens.org/">Simon
Cozens</a>, contains glyphs outlines in both <em>CFF</em>
and <em>glyf</em> format. Because
the <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/otff#organization-of-an-opentype-font">Offset Table</a> uses an <em>sfntVersion</em> of 0x00010000, your
rendering engine should take the glyph outlines from
the <em>glyf</em> table. If you see <em>glyf</em> below the
characters <em>A</em> and <em>B</em>, your rendering engine makes
correct use of the <em>sfntVersion</em> field.
</div>

<table>
<tr>
<th>Expected</th>
<td class="expected" ns0:font="TestSFNTTwo.ttf" ns0:id="SFNT-2/1" ns0:render="A"><svg version="1.1" viewBox="0 -200 609 1200"><symbol id="SFNT-2/1.A" overflow="visible"><path d="M206,220 L132,0 L5,0 L241,700 L368,700 L604,0 L477,0 L403,220 Z M305,512 L237,310 L372,310 Z M424,-49 L424,-43 Q424,-29 427,-26 Q433,-20 439,-20 Q442,-20 445,-21 Q449,-22 454,-23 L458,-11 Q454,-10 449,-8 Q444,-7 439,-7 Q424,-7 415,-16 Q407,-25 407,-43 L407,-48 L391,-54 L391,-61 L407,-61 L407,-145 L424,-145 L424,-61 L447,-61 L447,-49 Z M265,-10 L265,-145 L281,-145 L281,-10 Z M218,-148 Q218,-162 212,-168 Q206,-175 193,-175 Q170,-175 157,-167 L157,-182 Q172,-188 192,-188 Q214,-188 225,-178 Q235,-167 235,-146 L235,-49 L222,-49 L220,-61 L218,-61 Q209,-47 190,-47 Q170,-47 160,-60 Q149,-73 149,-97 Q149,-122 160,-133 Q170,-146 190,-146 Q210,-146 218,-132 L219,-132 L218,-144 Z M330,-158 Q326,-168 322,-170 Q314,-176 309,-176 Q306,-176 298,-174 L298,-186 Q306,-188 311,-188 Q327,-188 332,-182 Q340,-172 346,-158 L389,-49 L371,-49 L350,-103 L347,-117 Q346,-121 344,-124 Q343,-127 343,-130 Q334,-103 334,-103 L313,-49 L297,-49 L335,-145 Z M192,-133 Q181,-133 173,-124 Q166,-116 166,-97 Q166,-81 173,-69 Q179,-60 192,-60 Q207,-60 213,-68 Q219,-79 219,-97 L219,-100 Q219,-109 218,-116 Q217,-123 213,-126 Q204,-133 192,-133 Z" /></symbol><use x="0" y="0" xlink:href="#SFNT-2/1.A" /></svg></td>
<td class="expected" ns0:font="TestSFNTTwo.ttf" ns0:id="SFNT-2/2" ns0:render="B"><svg version="1.1" viewBox="0 -200 600 1200"><symbol id="SFNT-2/2.B" overflow="visible"><path d="M175,0 L74,0 L74,700 Q118,699 192,699 Q256,699 282,699 Q309,700 315,700 Q410,700 466,654 Q523,608 523,527 Q523,496 509,461 Q496,427 465,401 Q434,375 387,369 Q459,358 507,314 Q556,271 556,187 Q556,125 526,82 Q497,40 448,20 Q400,0 344,0 Z M296,424 Q350,424 383,446 Q416,468 416,517 Q416,566 372,586 Q328,606 286,606 L186,606 L186,424 Z M318,100 Q379,100 412,124 Q446,149 446,207 Q446,266 394,288 Q343,310 271,310 L186,310 L186,100 Z M424,-49 L424,-43 Q424,-29 427,-26 Q433,-20 439,-20 Q442,-20 445,-21 Q449,-22 454,-23 L458,-11 Q454,-10 449,-8 Q444,-7 439,-7 Q424,-7 415,-16 Q407,-25 407,-43 L407,-48 L391,-54 L391,-61 L407,-61 L407,-145 L424,-145 L424,-61 L447,-61 L447,-49 Z M265,-10 L265,-145 L281,-145 L281,-10 Z M218,-148 Q218,-162 212,-168 Q206,-175 193,-175 Q170,-175 157,-167 L157,-182 Q172,-188 192,-188 Q214,-188 225,-178 Q235,-167 235,-146 L235,-49 L222,-49 L220,-61 L218,-61 Q209,-47 190,-47 Q170,-47 160,-60 Q149,-73 149,-97 Q149,-122 160,-133 Q170,-146 190,-146 Q210,-146 218,-132 L219,-132 L218,-144 Z M330,-158 Q326,-168 322,-170 Q314,-176 309,-176 Q306,-176 298,-174 L298,-186 Q306,-188 311,-188 Q327,-188 332,-182 Q340,-172 346,-158 L389,-49 L371,-49 L350,-103 L347,-117 Q346,-121 344,-124 Q343,-127 343,-130 Q334,-103 334,-103 L313,-49 L297,-49 L335,-145 Z M192,-133 Q181,-133 173,-124 Q166,-116 166,-97 Q166,-81 173,-69 Q179,-60 192,-60 Q207,-60 213,-68 Q219,-79 219,-97 L219,-100 Q219,-109 218,-116 Q217,-123 213,-126 Q204,-133 192,-133 Z" /></symbol><use x="0" y="0" xlink:href="#SFNT-2/2.B" /></svg></td>
</tr>
<tr>
<th>Observed</th>
<td class="observed" ns0:id="SFNT-2/1"><svg version="1.1" viewBox="0 -200 609 1200"><symbol id="OBSERVED/SFNT-2/1.A" overflow="visible"><path d="M403,220 L477,0 L604,0 L368,700 L241,700 L5,0 L132,0 L206,220 Z M372,310 L237,310 L305,512 Z M424,-49 L424,-43 Q424,-29 427,-26 Q433,-20 439,-20 Q442,-20 445,-21 Q449,-22 454,-23 L458,-11 Q454,-10 449,-8 Q444,-7 439,-7 Q424,-7 415,-16 Q407,-25 407,-43 L407,-48 L391,-54 L391,-61 L407,-61 L407,-145 L424,-145 L424,-61 L447,-61 L447,-49 Z M265,-10 L265,-145 L281,-145 L281,-10 Z M218,-148 Q218,-162 212,-168 Q206,-175 193,-175 Q170,-175 157,-167 L157,-182 Q172,-188 192,-188 Q214,-188 225,-178 Q235,-167 235,-146 L235,-49 L222,-49 L220,-61 L218,-61 Q209,-47 190,-47 Q170,-47 160,-60 Q149,-73 149,-97 Q149,-122 160,-133 Q170,-146 190,-146 Q210,-146 218,-132 L219,-132 L218,-144 Z M330,-158 Q326,-168 322,-170 Q314,-176 309,-176 Q306,-176 298,-174 L298,-186 Q306,-188 311,-188 Q327,-188 332,-182 Q340,-172 346,-158 L389,-49 L371,-49 L350,-103 L347,-117 Q346,-121 344,-124 Q343,-127 343,-130 Q334,-103 334,-103 L313,-49 L297,-49 L335,-145 Z M192,-133 Q181,-133 173,-124 Q166,-116 166,-97 Q166,-81 173,-69 Q179,-60 192,-60 Q207,-60 213,-68 Q219,-79 219,-97 L219,-100 Q219,-109 218,-116 Q217,-123 213,-126 Q204,-133 192,-133 Z" /></symbol><use x="0" y="0" xlink:href="#OBSERVED/SFNT-2/1.A" /></svg></td>
<td class="observed" ns0:id="SFNT-2/2"><svg version="1.1" viewBox="0 -200 600 1200"><symbol id="OBSERVED/SFNT-2/2.B" overflow="visible"><path d="M344,0 Q400,0 448,20 Q497,40 526,82 Q556,125 556,187 Q556,271 507,314 Q459,358 387,369 Q434,375 465,401 Q496,427 509,461 Q523,496 523,527 Q523,608 466,654 Q410,700 315,700 Q309,700 282,699 Q256,699 192,699 Q118,699 74,700 L74,0 L175,0 Z M186,424 L186,606 L286,606 Q328,606 372,586 Q416,566 416,517 Q416,468 383,446 Q350,424 296,424 Z M186,100 L186,310 L271,310 Q343,310 394,288 Q446,266 446,207 Q446,149 412,124 Q379,100 318,100 Z M424,-49 L424,-43 Q424,-29 427,-26 Q433,-20 439,-20 Q442,-20 445,-21 Q449,-22 454,-23 L458,-11 Q454,-10 449,-8 Q444,-7 439,-7 Q424,-7 415,-16 Q407,-25 407,-43 L407,-48 L391,-54 L391,-61 L407,-61 L407,-145 L424,-145 L424,-61 L447,-61 L447,-49 Z M265,-10 L265,-145 L281,-145 L281,-10 Z M218,-148 Q218,-162 212,-168 Q206,-175 193,-175 Q170,-175 157,-167 L157,-182 Q172,-188 192,-188 Q214,-188 225,-178 Q235,-167 235,-146 L235,-49 L222,-49 L220,-61 L218,-61 Q209,-47 190,-47 Q170,-47 160,-60 Q149,-73 149,-97 Q149,-122 160,-133 Q170,-146 190,-146 Q210,-146 218,-132 L219,-132 L218,-144 Z M330,-158 Q326,-168 322,-170 Q314,-176 309,-176 Q306,-176 298,-174 L298,-186 Q306,-188 311,-188 Q327,-188 332,-182 Q340,-172 346,-158 L389,-49 L371,-49 L350,-103 L347,-117 Q346,-121 344,-124 Q343,-127 343,-130 Q334,-103 334,-103 L313,-49 L297,-49 L335,-145 Z M192,-133 Q181,-133 173,-124 Q166,-116 166,-97 Q166,-81 173,-69 Q179,-60 192,-60 Q207,-60 213,-68 Q219,-79 219,-97 L219,-100 Q219,-109 218,-116 Q217,-123 213,-126 Q204,-133 192,-133 Z" /></symbol><use x="0" y="0" xlink:href="#OBSERVED/SFNT-2/2.B" /></svg></td>
</tr>
<tr>
<th class="conformance-header">Conformance</th>
<td class="conformance-fail" ns0:id="SFNT-2/1">✖</td>
<td class="conformance-fail" ns0:id="SFNT-2/2">✖</td>
</tr>

</table>

<h3 id="SHARAN-1">SHARAN–1: Nasta‘līq</h3>

<div class="desc">
Expand Down
Loading

0 comments on commit 9598b43

Please # to comment.