이것은 텍스트 렌더링 엔진을위한 테스트 스위트입니다. 텍스트를 올바르게 표시하는 것은 쉽지 않으므로 구현이 제대로 얻을 수 있도록이 프로젝트를 설립했습니다.
$ 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 현재 Test Suite는 6 가지 OpenType 구현을 지원합니다.
--engine=FreeStack 사용하면 Freetype, Harfbuzz, Fribidi 및 Raqm이있는 무료/libre 오픈 소스 텍스트 렌더링 스택에서 테스트가 실행됩니다. 이 라이브러리는 Linux, Android, Chromeos 및 기타 여러 시스템에서 사용됩니다. - FREESTACK에 대한 테스트 보고서.
--engine=CoreText 사용하면 테스트가 Apple의 Coretext에서 실행됩니다. 이 옵션은 MacOS X에서 테스트 스위트를 실행하는 경우에만 작동합니다. - Coretext에 대한 테스트 보고서.
--engine=TehreerStack 사용하면 테스트는 프리 타입, Sheenbidi 및 Sheenfigure로 구성된 오픈 소스 텍스트 렌더링 스택에서 실행됩니다. - Tehreerstack에 대한 테스트 보고서.
--engine=fontkit 사용하면 테스트는 JavaScript 글꼴 엔진 인 Fontkit에서 실행됩니다. - Fontkit에 대한 테스트 보고서.
--engine=OpenType.js 사용하면 테스트는 다른 JavaScript 글꼴 엔진 인 OpenType.js를 사용하여 실행됩니다. - OpenType.js에 대한 테스트 보고서.
--engine=Allsorts 사용하면 테스트는 AllSorts를 사용하여 실행됩니다. - AllSorts에 대한 테스트 보고서.
다른 구현을 테스트하는 것은 사소한 일입니다. 작은 래퍼 도구를 작성하십시오. GO 글꼴 라이브러리는 여기를 참조하십시오. Rust Font 라이브러리는 여기를 참조하십시오.
테스트 케이스는 TestCases 디렉토리에 정의되어 있습니다. 각 테스트를 설명하는 HTML 스 니펫이 포함되어 있으며 렌더링 매개 변수를 예상 결과와 함께 정의합니다.
각 테스트 사례에 대해 check.py 스크립트는 HTML 스 니펫을 구문 분석하여 렌더링 매개 변수를 추출합니다. 그런 다음 SVG 형식으로 관찰 된 렌더링을 표준 출력에 기록하는 하위 프로세스 (테스트 된 구현에 따라 C ++, 목표 C, Rust 또는 JavaScript)를 실행합니다. 마지막으로, 스크립트는 예상 렌더링이 관찰 된 결과와 일치하는지 확인합니다. 현재 "매칭"은 SVG 경로를 반복하여 구현하여 최대 1 글꼴 설계 단위의 차이를 허용합니다.
Copyright © 2016-2024 Unicode, Inc. 유니 코드 및 유니 코드 로고는 미국 및 기타 국가에서 유니 코드, Inc.의 등록 상표입니다.
이 프로젝트에 기여하려면 CLA가 필요합니다. 자세한 내용은 Contributing.md 파일 (또는 풀 요청을 시작)을 참조하십시오.
이 저장소의 내용은 유니 코드 이용 약관에 의해 관리되며 라이센스에 따라 릴리스됩니다.