Test 27 - Fit To Page Single Target

# Test 27: Fit-to-page one-page target

ไฟล์นี้จงใจยาวเกินหนึ่งหน้าเล็กน้อย เพื่อใช้ทดสอบ --fit-to-page ให้ย่อจนเหลือ 1 หน้า โดยไม่มี page-break แบบบังคับ

01) เอกสารทดสอบนี้ใช้เนื้อหาภาษาไทยต่อเนื่องหลายย่อหน้าเพื่อจำลองรายงานจริงที่มักจะยาวเกินความสูงของกระดาษหนึ่งหน้า

02) เมื่อไม่เปิด fit-to-page ระบบอาจได้สองหน้า แต่เมื่อเปิด fit-to-page ควรคำนวณสเกลที่เหมาะสมเพื่อให้คงเป็นหน้าเดียว

03) ย่อหน้าทุกบรรทัดตั้งใจให้มีความยาวระดับกลางและมีการจัดข้อความแบบ justify เพื่อเพิ่มความหนาแน่นของคอนเทนต์

04) การทดสอบนี้ไม่มี page-break แบบ hard break ดังนั้นผลลัพธ์ควรสามารถหาสเกลเพื่อรวมเป็นหน้าเดียวได้จริง

05) ทีมทดสอบสามารถใช้ไฟล์นี้เป็น baseline สำหรับ regression ของฟีเจอร์ page scale และ fit-to-page ในทุก release

06) หากการคำนวณสเกลผิดเพี้ยน เอกสารอาจล้นไปหน้าใหม่หรือย่อมากเกินจำเป็นจนเหลือพื้นที่ว่างมากผิดปกติ

07) เป้าหมายของการปรับคือหาค่าสเกลสูงสุดที่ยังคงอยู่ในหนึ่งหน้า เพื่อรักษาความอ่านง่ายและความสมดุลของ layout

08) การทดสอบนี้จึงช่วยล็อกพฤติกรรมว่าระบบไม่ควรเด้งไปที่ 10% โดยไม่จำเป็น หากยังมีสเกลที่ดีกว่าใช้ได้อยู่

09) เพิ่มข้อความเพื่อให้เอกสารยาวพอที่จะเห็นผลของอัลกอริทึม fit อย่างชัดเจนทั้งกรณีเปิดและปิดฟีเจอร์

10) ในงานจริง เราต้องการเอกสารที่มีคุณภาพสายตาใกล้ต้นฉบับ ไม่ใช่เอกสารที่ย่อมากจนอ่านยากหรือเว้นพื้นที่เสียเปล่า

11) การใช้ข้อความไทยยังช่วยตรวจว่าการจัดวรรณยุกต์และการตัดคำยังถูกต้องหลังจากปรับสเกลทั้งหมดของหน้า

12) ฟีเจอร์ fit-to-page ควรทำงานร่วมกับ text shaping, table layout และ rendering pipeline โดยไม่เกิด regression ข้ามโมดูล

13) เพิ่มความยาวของเอกสารอีกเล็กน้อยเพื่อบังคับให้เกิดสองหน้าในสเกล 100% บนกระดาษ A4 มาตรฐาน

14) เมื่อสเกลถูกคำนวณอย่างถูกต้อง เอกสารนี้ควรถูกรวมกลับมาเป็นหน้าเดียวโดยยังคงอ่านข้อความได้ตามปกติ

15) ทดสอบซ้ำหลายครั้งเพื่อยืนยันว่าการคำนวณ deterministic และไม่เกิด jitter ในจำนวนหน้าระหว่างรันต่างรอบ

16) ควรตรวจสอบด้วยว่าการแสดงผล border และสีพื้นหลังไม่เสียรูปทรงหลังการปรับสเกลที่ระดับทั้งหน้า

17) เนื้อหาท้ายเอกสารเพิ่มความยาวต่อเนื่องเพื่อให้แน่ใจว่าขอบล่างของหน้าถูกใช้งานจริงและไม่เหลือช่องว่างมากเกินจำเป็น

18) สุดท้าย ผลลัพธ์ที่คาดหวังคือ fit-to-page ให้ได้ 1 หน้า พร้อมสเกลที่เหมาะสมและการอ่านที่ยังคงความชัดเจน

19) บรรทัดเสริมสำหรับความหนาแน่นของเนื้อหาและการยืนยันว่าฟีเจอร์ยังเสถียรเมื่อข้อความมีหลายย่อหน้าอย่างต่อเนื่อง

20) บรรทัดปิดท้ายเพื่อใช้เป็นจุดสังเกตบริเวณขอบล่างของหน้าเมื่อเปิดหรือปิด fit-to-page ในกระบวนการทดสอบจริง

21) ข้อความเพิ่มรอบที่หนึ่งเพื่อดันเนื้อหาให้เกินหน้าเดียวและตรวจพฤติกรรมการแบ่งหน้าเมื่อสเกลยังไม่ถูกปรับลด

22) ข้อความเพิ่มรอบที่สองเพื่อทดสอบว่าระบบยังรักษาการจัดย่อหน้าแบบ justify และช่องไฟระหว่างบรรทัดได้ตามคาดหวัง

23) ข้อความเพิ่มรอบที่สามเพื่อยืนยันว่าการคำนวณความสูงสะสมของบล็อกข้อความไม่คลาดเคลื่อนหลังผ่านขั้นตอน shaping

24) ข้อความเพิ่มรอบที่สี่เพื่อจำลองรายงานทางธุรกิจที่มีข้อความยาวและภาษาทางการจำนวนมากในหน้าเดียว

25) ข้อความเพิ่มรอบที่ห้าเพื่อตรวจว่าการเรนเดอร์เส้นขอบของกล่องเนื้อหายังพอดีกับพื้นที่เมื่อมีการย่อสเกลหน้า

26) ข้อความเพิ่มรอบที่หกเพื่อทดสอบความต่อเนื่องของ baseline และตำแหน่งวรรณยุกต์เมื่อสเกลเปลี่ยนแบบ global

27) ข้อความเพิ่มรอบที่เจ็ดเพื่อยืนยันว่าฟีเจอร์ fit-to-page ไม่ลดสเกลมากเกินจำเป็นจนความอ่านง่ายลดลง

28) ข้อความเพิ่มรอบที่แปดเพื่อตรวจว่าเอกสารยังรักษา margin และระยะขอบตามที่กำหนดไว้เดิมอย่างถูกต้อง

29) ข้อความเพิ่มรอบที่เก้าเพื่อสร้างกรณีทดสอบที่ใกล้เคียงเอกสารจริงในงานราชการและงานวิชาการ

30) ข้อความเพิ่มรอบที่สิบเพื่อเสริมความหนาแน่นของคอนเทนต์และดูพฤติกรรมเมื่อขอบล่างของหน้าเริ่มตึงตัว

31) ข้อความเพิ่มรอบที่สิบเอ็ดเพื่อยืนยันว่าหลังการย่อสเกลแล้วจำนวนหน้ายังคง deterministic ระหว่างการรันหลายครั้ง

32) ข้อความเพิ่มรอบที่สิบสองเพื่อทดสอบว่าการจัดข้อความที่มีสัญลักษณ์วรรคตอนหลายแบบยังไม่แตกบรรทัดผิดจุด

33) ข้อความเพิ่มรอบที่สิบสามเพื่อใช้ตรวจภาพรวมของ layout engine ในกรณีเอกสารยาวแบบไม่มี hard page break

34) ข้อความเพิ่มรอบที่สิบสี่เพื่อสร้างภาระงานที่เสถียรสำหรับ regression test ในทุกสาขาการพัฒนา

35) ข้อความเพิ่มรอบที่สิบห้าเพื่อวัดว่าพื้นที่ว่างท้ายหน้าไม่มากเกินไปเมื่อระบบเลือกสเกลสูงสุดที่ยังคงหน้าเดียว

36) ข้อความเพิ่มรอบที่สิบหกเพื่อย้ำจุดประสงค์ว่าต้องการเอกสารหน้าเดียวที่ยังอ่านง่ายและสวยงามแบบใช้งานจริง

37) ข้อความเพิ่มรอบที่สิบเจ็ดเพื่อตรวจว่าองค์ประกอบทุกส่วนไม่ซ้อนทับกันหลังการคำนวณ fit-to-page ในขั้นสุดท้าย

38) ข้อความเพิ่มรอบที่สิบแปดเพื่อให้เกิดแรงกดกับตัวแบ่งบรรทัดและการจัดช่องไฟในกรณีข้อความยาวต่อเนื่อง

39) ข้อความเพิ่มรอบที่สิบเก้าเพื่อตรวจสอบว่าบรรทัดท้ายยังอยู่ในพื้นที่พิมพ์และไม่ถูกตัดตกจากขอบกระดาษ

40) ข้อความเพิ่มรอบที่ยี่สิบเพื่อปิดเคสทดสอบหลักและยืนยันว่าฟีเจอร์พร้อมใช้งานในสถานการณ์จริงที่เอกสารหนาแน่น

41) เนื้อหาเสริมเพิ่มเติมเพื่อให้แน่ใจว่าความยาวรวมของเอกสารเพียงพอสำหรับการวัดผล fit-to-page อย่างชัดเจน

42) เนื้อหาเสริมเพิ่มเติมสำหรับการทดสอบแบบซ้ำที่ต้องการความเสถียรของผลจำนวนหน้าและระดับสเกลในทุกครั้ง

43) เนื้อหาเสริมเพิ่มเติมเพื่อเพิ่มความเข้มข้นของข้อมูลและลดโอกาสที่เอกสารจะพอดีหนึ่งหน้าโดยบังเอิญที่สเกล 100%

44) เนื้อหาเสริมเพิ่มเติมเพื่อคงสภาพแวดล้อมการทดสอบที่สม่ำเสมอระหว่างนักพัฒนาหลายคนและหลายเครื่องมือ

45) เนื้อหาเสริมปิดท้ายสำหรับยืนยันว่าเปิด fit-to-page แล้วได้หนึ่งหน้าจริงในเคสที่ไม่มี hard break คั่นระหว่างย่อหน้า