Это тестовый набор для двигателей текста. Это нелегко правильно отобразить текст, поэтому мы основали этот проект, чтобы помочь реализациям сделать это правильно.
$ 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 python3 check.py --engine= $engine --output=reports/ $engine .html ; done В настоящее время тестовый набор поддерживает шесть реализаций Opentype:
С --engine=FreeStack тесты выполняются в стеке рендеринга с открытым исходным кодом Free/Libre с Freetype, Harfbuzz, Fribidi и RAQM. Эти библиотеки используются Linux, Android, Chromeos и многими другими системами. - Отчет о тестировании для FreeStack.
С --engine=CoreText тесты запускаются на Coretext Apple. Эта опция будет работать, только если вы запустите тестовый набор на MacOS X. - Отчет о тестировании для Coretext.
С --engine=TehreerStack тесты запускаются в стеке рендеринга с открытым исходным кодом, состоящим из Freetype, Shenbidi и Sheenfigure. - Отчет о тестировании для The Ehreerstack.
С --engine=fontkit тесты выполняются на Fontkit, двигателе JavaScript. - Отчет о тестировании для Fontkit.
С --engine=OpenType.js тесты выполняются с использованием opentype.js, еще одного двигателя шрифта JavaScript. - Отчет о тестировании для OpEntype.js.
С --engine=Allsorts , что тесты выполняются с использованием AllSorts, двигателя анализа и формирования, реализованного в ржавчине. - Отчет о тестировании для AllSorts.
Это тривиально проверять другие реализации; Просто напишите небольшой инструмент обертки. Для библиотеки шрифтов Go см. Здесь. Для библиотеки Font, см. Здесь.
Тестовые случаи определены в каталоге тестовых решений. Он содержит фрагменты HTML, которые описывают каждый тест, и определяют параметры рендеринга вместе с ожидаемым результатом.
Для каждого тестового примера сценарий check.py анализирует фрагмент HTML для извлечения параметров рендеринга. Затем он запускает подпроцесс (записанный в C ++, Objective C, Rust или JavaScript в зависимости от проверенной реализации), которая записывает наблюдаемый рендеринг в формате SVG для стандартного вывода. Наконец, сценарий проверяет, соответствует ли ожидаемый рендеринг наблюдаемый результат. В настоящее время «Сопоставление» реализуется путем итерации по путям SVG, что позволяет максимально 1 единицу проектирования шрифта.
Copyright © 2016-2024 Unicode, Inc. Unicode и логотип Unicode являются зарегистрированными товарными знаками Unicode, Inc. в Соединенных Штатах и других странах.
CLA необходим для внесения вклад в этот проект - пожалуйста, обратитесь к файлу Anforming.md (или запустите запрос на привлечение) для получения дополнительной информации.
Содержание этого репозитория регулируется условиями использования Unicode и выпускается по лицензии.