นี่คือชุดทดสอบสำหรับเอ็นจิ้นการแสดงผลข้อความ ไม่ใช่เรื่องง่ายที่จะแสดงข้อความอย่างถูกต้องดังนั้นเราจึงก่อตั้งโครงการนี้เพื่อช่วยในการใช้งานเพื่อให้ได้สิทธินี้
$ 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 การทดสอบจะทำงานบนสแต็กการแสดงผลข้อความโอเพ่นซอร์สฟรี/libre กับ Freetype, Harfbuzz, Fribidi และ Raqm ไลบรารีเหล่านี้ใช้โดย Linux, Android, Chromeos และระบบอื่น ๆ อีกมากมาย - รายงานการทดสอบสำหรับ Freestack
ด้วย --engine=CoreText การทดสอบจะทำงานบน CORETEXT ของ Apple ตัวเลือกนี้จะทำงานได้ก็ต่อเมื่อคุณเรียกใช้ชุดทดสอบบน MacOS X. - รายงานการทดสอบสำหรับ Coretext
ด้วย --engine=TehreerStack การทดสอบจะทำงานบนสแต็กการแสดงผลข้อความโอเพนซอร์สซึ่งประกอบด้วย Freetype, Sheenbidi และ Sheenfigure - รายงานการทดสอบสำหรับ Tehreerstack
ด้วย --engine=fontkit การทดสอบจะทำงานบน FontKit ซึ่งเป็นเครื่องยนต์ฟอนต์ JavaScript - รายงานการทดสอบสำหรับ FontKit
ด้วย --engine=OpenType.js การทดสอบจะทำงานโดยใช้ opentype.js ซึ่งเป็นเครื่องยนต์ฟอนต์ JavaScript อีกตัว - รายงานการทดสอบสำหรับ opentype.js
ด้วย --engine=Allsorts การทดสอบจะดำเนินการโดยใช้ AllSorts การแยกวิเคราะห์และการสร้างเครื่องยนต์ที่ใช้ในสนิม - รายงานการทดสอบสำหรับ Allsorts
เป็นเรื่องเล็กน้อยที่จะทดสอบการใช้งานอื่น ๆ เพียงเขียนเครื่องมือห่อหุ้มขนาดเล็ก สำหรับห้องสมุดฟอนต์ Go ดูที่นี่ สำหรับห้องสมุดตัวอักษรสนิมดูที่นี่
กรณีทดสอบถูกกำหนดไว้ในไดเรกทอรี testcases มันมีตัวอย่าง HTML ซึ่งอธิบายการทดสอบแต่ละครั้งและกำหนดพารามิเตอร์การแสดงผลพร้อมกับผลลัพธ์ที่คาดหวัง
สำหรับแต่ละกรณีการทดสอบสคริปต์ check.py จะแยกวิเคราะห์ตัวอย่าง HTML เพื่อแยกพารามิเตอร์การแสดงผล จากนั้นจะเรียกใช้กระบวนการย่อย (เขียนใน C ++, วัตถุประสงค์ C, Rust หรือ JavaScript ขึ้นอยู่กับการใช้งานที่ทดสอบ) ที่เขียนการแสดงผลที่สังเกตได้ในรูปแบบ SVG ไปยังเอาต์พุตมาตรฐาน ในที่สุดสคริปต์จะตรวจสอบว่าการแสดงผลที่คาดหวังนั้นตรงกับผลลัพธ์ที่สังเกตได้หรือไม่ ปัจจุบัน“ การจับคู่” ถูกนำมาใช้โดยการวนซ้ำผ่านเส้นทาง SVG ซึ่งจะช่วยให้หน่วยการออกแบบแบบอักษร 1 ตัวที่แตกต่างกันมากที่สุด
ลิขสิทธิ์© 2016-2024 Unicode, Inc. Unicode และโลโก้ Unicode เป็นเครื่องหมายการค้าจดทะเบียนของ Unicode, Inc. ในสหรัฐอเมริกาและประเทศอื่น ๆ
CLA จะต้องมีส่วนร่วมในโครงการนี้ - โปรดดูไฟล์ MD ที่มีส่วนร่วม (หรือเริ่มคำขอดึง) สำหรับข้อมูลเพิ่มเติม
เนื้อหาของที่เก็บนี้ถูกควบคุมโดยข้อกำหนดการใช้งาน Unicode และได้รับการปล่อยตัวภายใต้ใบอนุญาต