Files
MorphDoc/scripts/docx-real-world-corpus.test.mjs
SkyJourney 64445322eb release: 发布 v0.6.2 DOCX 真实文档修复
新增能力:将 DOCX 发布验收拆分为四套独立 140,支持真实语料冻结、指纹复用、失败与基础设施错误独立统计,并为表格换行、全 JSON 围栏、代码连续性和长文档分页建立通用门禁。

问题修复:冻结 Paged.js 分片前的逻辑表格列轨并传递打印几何,统一 Markdown 表格换行、代码、段落与 OOXML 翻译;改进 PDF 文本流排序、语义块映射、颜色与栅格比较,消除窄字符重叠和跨行范围符号误报。

兼容与部署:版本统一为 0.6.2;正式 Docker 镜像内置固定 Chromium、Pandoc 3.9.0.2 和 Serif/Sans/Mono 字体;Desktop NSIS 与 ZIP 继续直接内置字体,无需系统字体安装。

验证结果:合成基线与长庆严格 280/280,M4N 140/140;健康数据残余误报 6/115(5.22%),均核查为重复表头自动对齐/取样误报且基础设施错误为 0。全项目测试、类型检查、生产构建和 git diff --check 通过;正式 Docker、NSIS、ZIP、离线镜像、部署包、清单及 SHA-256 均已生成并校验。
2026-08-26 10:50:20 +08:00

61 lines
1.8 KiB
JavaScript

import assert from "node:assert/strict";
import path from "node:path";
import test from "node:test";
import {
DOCX_REAL_WORLD_CORPUS,
sortDocxRealWorldCorpusBySize,
summarizeDocxReleaseGateMatrix,
validateDocxRealWorldCorpus
} from "./docx-real-world-corpus.mjs";
const repositoryDirectory = path.resolve(import.meta.dirname, "..");
test("冻结三份真实 Markdown 语料及必需特征", () => {
const validation = validateDocxRealWorldCorpus(repositoryDirectory);
assert.deepEqual(validation.failures, []);
assert.equal(validation.corpus.length, 3);
assert.equal(new Set(DOCX_REAL_WORLD_CORPUS.map((entry) => entry.id)).size, 3);
assert.ok(
DOCX_REAL_WORLD_CORPUS.some((entry) =>
entry.requiredFeatures.includes("json-code-indentation")
)
);
assert.ok(
DOCX_REAL_WORLD_CORPUS.some((entry) =>
entry.requiredFeatures.includes("table-math-alignment")
)
);
});
test("真实 Markdown 按文件字节数稳定升序执行", () => {
const corpus = sortDocxRealWorldCorpusBySize(repositoryDirectory);
assert.deepEqual(
corpus.map((entry) => entry.byteLength),
corpus.map((entry) => entry.byteLength).toSorted((a, b) => a - b)
);
assert.ok(corpus.every((entry) => entry.byteLength > 0));
});
test("发布门禁矩阵聚合为 140+420=560", () => {
assert.deepEqual(
summarizeDocxReleaseGateMatrix({
baselineCaseCount: 140,
corpusCaseCounts: Object.fromEntries(
DOCX_REAL_WORLD_CORPUS.map((entry) => [entry.id, 140])
)
}),
{
baselineCaseCount: 140,
corpusDocumentCount: 3,
corpusCaseCounts: {
"changqing-tender-requirements": 140,
"health-data-schema": 140,
"m4n-table-design": 140
},
corpusCaseCount: 420,
totalCaseCount: 560
}
);
});