pdftriage: text layer verdicts, including the reflected-font recovery

This commit is contained in:
funkpower
2026-09-19 11:46:34 -04:00
parent bd0ae11d01
commit 33c2e40a1a
16 changed files with 1465 additions and 2 deletions
+14 -1
View File
@@ -19,11 +19,12 @@ type Written = Result<Vec<String>, String>;
type Job = (&'static str, fn() -> Written);
fn main() -> ExitCode {
let jobs: [Job; 4] = [
let jobs: [Job; 5] = [
("tokens", tokens),
("unescape", unescape),
("chunkmd", chunkmd),
("mdscrub", mdscrub),
("pdftriage", pdftriage),
];
for (name, job) in jobs {
@@ -67,6 +68,18 @@ fn unescape() -> Written {
Ok(vec![path.display().to_string()])
}
fn pdftriage() -> Written {
let dir = parity::golden("pdftriage");
std::fs::create_dir_all(&dir).map_err(|e| e.to_string())?;
let cases = parity::dir().join("cases/pdftriage/samples.ndjson");
let text = std::fs::read_to_string(&cases).map_err(|e| e.to_string())?;
let measured = parity::run_oracle("pdftriage.py", &text)?;
let path = dir.join("samples.ndjson");
std::fs::write(&path, measured).map_err(|e| e.to_string())?;
Ok(vec![path.display().to_string()])
}
fn mdscrub() -> Written {
let dir = parity::golden("mdscrub");
std::fs::create_dir_all(&dir).map_err(|e| e.to_string())?;