All Projects → unicode-org → text-rendering-tests

unicode-org / text-rendering-tests

Licence: other
Unicode’s test suite for text rendering engines

Programming Languages

HTML
75241 projects

Projects that are alternatives of or similar to text-rendering-tests

Tehreer-Android
Standalone text engine for Android aimed to be free from platform limitations
Stars: ✭ 61 (-54.81%)
Mutual labels:  unicode, fonts, opentype, freetype
Tehreer-Cocoa
Standalone text engine for iOS
Stars: ✭ 31 (-77.04%)
Mutual labels:  unicode, fonts, opentype, freetype
Awesome Typography
✏︎ Curated list about digital typography 🔥
Stars: ✭ 947 (+601.48%)
Mutual labels:  unicode, fonts, opentype
Harfbuzz
HarfBuzz text shaping engine
Stars: ✭ 2,206 (+1534.07%)
Mutual labels:  unicode, fonts, opentype
Weird Fonts
𝑨 𝑱𝒂𝒗𝒂𝑺𝒄𝒓𝒊𝒑𝒕 𝒑𝒂𝒄𝒌𝒂𝒈𝒆 𝒕𝒉𝒂𝒕 𝒕𝒖𝒓𝒏 𝒂𝒍𝒑𝒉𝒂𝒏𝒖𝒎𝒆𝒓𝒊𝒄 𝒄𝒉𝒂𝒓𝒂𝒄𝒕𝒆𝒓𝒔 𝒊𝒏𝒕𝒐 𝒘𝒆𝒊𝒓𝒅 𝒇𝒐𝒏𝒕 𝒔𝒕𝒚𝒍𝒆.
Stars: ✭ 602 (+345.93%)
Mutual labels:  unicode, fonts
Open Relay
Free and open source fonts from Kreative Software
Stars: ✭ 48 (-64.44%)
Mutual labels:  unicode, fonts
fntsample
PDF and PostScript font samples generator (migrating from https://sourceforge.net/projects/fntsample/)
Stars: ✭ 20 (-85.19%)
Mutual labels:  unicode, fonts
uharfbuzz
An opinionated HarfBuzz Python binding
Stars: ✭ 42 (-68.89%)
Mutual labels:  fonts, opentype
variable-font-collection-test
Variable Font Collection Test
Stars: ✭ 26 (-80.74%)
Mutual labels:  fonts, opentype
SheenFigure
An implementation of advanced typographic tables of OpenType specification.
Stars: ✭ 24 (-82.22%)
Mutual labels:  unicode, opentype
opentype-shaping-documents
Documentation of OpenType shaping behavior
Stars: ✭ 121 (-10.37%)
Mutual labels:  unicode, opentype
fdiff
An OpenType table diff tool for fonts. Based on the fontTools TTX format.
Stars: ✭ 33 (-75.56%)
Mutual labels:  fonts, opentype
otfed
An OpenType font format encoder & decoder written in OCaml
Stars: ✭ 15 (-88.89%)
Mutual labels:  fonts, opentype
bitsnpicas
Bits'N'Picas - Bitmap & Emoji Font Creation & Conversion Tools
Stars: ✭ 171 (+26.67%)
Mutual labels:  fonts, opentype
prettype
An easy to use text stylizer for your desktop!
Stars: ✭ 14 (-89.63%)
Mutual labels:  unicode, fonts
hoard-of-bitfonts
turns out I like bitmap fonts
Stars: ✭ 811 (+500.74%)
Mutual labels:  fonts
pixel font
All-in-one tool for creating TrueType outline fonts from bitmap glyph data, purely written in Elixir.
Stars: ✭ 16 (-88.15%)
Mutual labels:  opentype
font-wonder-unit
Free and open source sans-serif font, brought to you by Wonder Unit.
Stars: ✭ 57 (-57.78%)
Mutual labels:  fonts
contour
Modern C++ Terminal Emulator
Stars: ✭ 761 (+463.7%)
Mutual labels:  unicode
widestring-rs
A wide string Rust library for converting to and from wide Unicode strings.
Stars: ✭ 48 (-64.44%)
Mutual labels:  unicode

Build Status

Text rendering tests

This is a test suite for text rendering engines. It is not easy to correctly display text, so we founded this project to help implementations to get this right.

$ brew install cmake ninja npm rust
$ git clone --recursive https://github.com/unicode-org/text-rendering-tests.git
$ cd text-rendering-tests
$ for engine in CoreText FreeStack TehreerStack fontkit OpenType.js Allsorts ; do python check.py --engine=$engine --output=reports/$engine.html ; done

Supported Platforms

Currently, the test suite supports six OpenType implementations:

It’s trivial to test other implementations; simply write a small wrapper tool. For the Go font library, see here. For the Rust font library, see here.

Test Cases

The test cases are defined in the testcases directory. It contains HTML snippets which describe each test, and define the rendering parameters together with the expected result.

For each test case, the check.py script parses the HTML snippet to extract the rendering parameters. Then, it runs a sub-process (written in C++, Objective C or JavaScript depending on the tested implementation) that writes the observed rendering in SVG format to Standard Output. Finally, the script checks whether the expected rendering matches the observed result. Currently, “matching” is implemented by iterating over SVG paths, allowing for maximally 1 font design unit of difference.

Contributing

Your contributions are very welcome; simply send pull requests via GitHub. A bot will ask you (on the GitHub review thread) to accept Unicode’s Contributor License Agreement by clicking on a web form. Alternatively, if you prefer paper, you can also send a signed paper copy of the agreement to Unicode.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].