review(#1631): drop the repeated ROMANS table; tests follow the new advances

- The ROMANS advance list was pasted twice; once is enough.
- The stroke-font golden checksum follows TXT's new advances (segment and
  vertex counts unchanged).
- The tolerance compartment test checks ink against pen only for symbol
  cells: text fonts now advance by the reference's pen, not their ink.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
Hakan SevenandClaude Opus 5.5 committed 2026-10-06 20:36:07 +03:00
1 parent c47f6d540b
commit 3769bb59e3
2 files changed
+16 -26

No files matched your search

+10 -6
View File
@@ -1051,12 +1051,16 @@ mod tests {
(got - (pen - spacing)).abs() < 1e-3,
"{src:?}: content {got} should be pen {pen} less one {spacing} gap"
);
let expected = ink + (cell.len() as f32 - 1.0) * spacing;
assert!(
(got - expected).abs() < 1e-3,
"{src:?}: content {got} should be ink {ink} plus {} inter-run gaps",
cell.len() - 1
);
// Ink and pen agree only where glyphs advance by their own ink;
// the text fonts keep the advances of the fonts they stand in for.
if cell.iter().all(|run| run.font == SYMBOL_FONT) {
let expected = ink + (cell.len() as f32 - 1.0) * spacing;
assert!(
(got - expected).abs() < 1e-3,
"{src:?}: content {got} should be ink {ink} plus {} inter-run gaps",
cell.len() - 1
);
}
}
}
}
+6 -20
View File
@@ -168,22 +168,7 @@ const SHX_ADVANCE: &[(&str, &[(u32, f32)])] = &[
(106, 4.2857), (107, 7.2857), (108, 3.4286), (109, 12.8571), (110, 8.1429), (111, 8.1429),
(112, 8.1429), (113, 8.1429), (114, 5.5714), (115, 7.2857), (116, 5.1429), (117, 8.1429),
(118, 6.8571), (119, 9.4286), (120, 7.2857), (121, 6.8571), (122, 7.2857), (123, 6.0000),
(124, 3.4286), (125, 6.0000), (126, 11.1429), (33, 4.2857), (34, 6.0000), (35, 9.0000),
(36, 8.5714), (38, 11.1429), (39, 4.2857), (40, 6.0000), (41, 6.0000), (42, 6.8571),
(43, 11.1429), (44, 4.2857), (45, 11.1429), (46, 4.2857), (47, 9.4286), (48, 8.5714),
(49, 8.5714), (50, 8.5714), (51, 8.5714), (52, 8.5714), (53, 8.5714), (54, 8.5714),
(55, 8.5714), (56, 8.5714), (57, 8.5714), (58, 4.2857), (59, 4.2857), (60, 10.2857),
(61, 11.1429), (62, 10.2857), (63, 7.7143), (64, 11.5714), (65, 7.7143), (66, 9.0000),
(67, 9.0000), (68, 9.0000), (69, 8.1429), (70, 7.7143), (71, 9.0000), (72, 9.4286),
(73, 3.4286), (74, 6.8571), (75, 9.0000), (76, 7.2857), (77, 10.2857), (78, 9.4286),
(79, 9.4286), (80, 9.0000), (81, 9.4286), (82, 9.0000), (83, 8.5714), (84, 6.8571),
(85, 9.4286), (86, 7.7143), (87, 10.2857), (88, 8.5714), (89, 7.7143), (90, 8.5714),
(91, 6.0000), (92, 9.4286), (93, 5.5714), (94, 9.4286), (95, 10.2857), (96, 5.1429),
(97, 8.1429), (98, 8.1429), (99, 7.7143), (100, 8.1429), (101, 7.7143), (102, 5.1429),
(103, 8.1429), (104, 8.1429), (105, 3.4286), (106, 4.2857), (107, 7.2857), (108, 3.4286),
(109, 12.8571), (110, 8.1429), (111, 8.1429), (112, 8.1429), (113, 8.1429), (114, 5.5714),
(115, 7.2857), (116, 5.1429), (117, 8.1429), (118, 6.8571), (119, 9.4286), (120, 7.2857),
(121, 6.8571), (122, 7.2857), (123, 6.0000), (124, 3.4286), (125, 6.0000), (126, 11.1429),
(124, 3.4286), (125, 6.0000), (126, 11.1429),
],
),
];
@@ -873,10 +858,11 @@ mod tests {
#[test]
fn lff_tessellation_golden() {
let cases: &[(&str, usize, usize, f64)] = &[
("ABC 123", 8, 80, 2853.5141),
("A\\LB\\lC", 6, 43, 825.5505),
("10%%d Ö", 6, 60, 1479.1397),
("Hello, World!", 15, 113, 5078.5248),
// "txt" keeps the advances of the font it stands in for.
("ABC 123", 8, 80, 3189.9030),
("A\\LB\\lC", 6, 43, 842.2172),
("10%%d Ö", 6, 60, 1627.2223),
("Hello, World!", 15, 113, 6029.0805),
];
for &(t, segs, verts, sum_ref) in cases {
let (st, _) = tessellate_text_ex([0.0, 0.0], 10.0, 0.0, 1.0, 0.0, "txt", t);