ElyMark: the probe checks every task box, ticked or not (R2.14)

This commit is contained in:
ZacharyZhang-NY committed 2026-10-09 08:09:54 -04:00
1 parent 511fb8d4eb
commit 9a126611a2
7 files changed
+23 -8

No files matched your search

+2 -4
View File
@@ -56,9 +56,7 @@ const CHECK: &str = r#"
inline: seen(view.querySelector('.milkdown p .katex')),
display: seen(view.querySelector('.milkdown p .katex-display')),
tasks: view.querySelectorAll('li[data-item-type="task"]').length,
box: (() => {
const item = view.querySelector('li[data-item-type="task"]');
if (!item) return null;
boxes: [...view.querySelectorAll('li[data-item-type="task"]')].map((item) => {
const mark = getComputedStyle(item, '::before');
const range = document.createRange();
range.selectNodeContents(item.querySelector('p'));
@@ -66,7 +64,7 @@ const CHECK: &str = r#"
const top = item.getBoundingClientRect().top + parseFloat(mark.marginTop);
const size = parseFloat(getComputedStyle(item).fontSize);
return [parseFloat(mark.width) / size, parseFloat(mark.height) / size, top + parseFloat(mark.height) / 2 - (line.top + line.height / 2)];
})(),
}),
cells: view.querySelectorAll('.milkdown td').length,
notes: view.querySelectorAll('[data-type="footnote_definition"]').length,
blocks,
+7
View File
@@ -0,0 +1,7 @@
FAIL
patches/libreoffice/0041-lok-calc-chart-beside-its-data.patch:59 — 搜索耗尽时抛出的 std::runtime_error 直接终止 worker。具体场景:在 XFC1048575:XFD1048576 四格填入数值,以该区域插入柱图;右侧和下方循环均无候选,尽管左侧、上方有大片空白,插图仍触发未捕获异常 `no empty cells hold the chart`。两次独立运行均收到 EOF,worker 退出码为 -6(SIGABRT),栈包含 FuInsertChart,当前 worker 中的其他文档也随之退出。修复方向:在工作表边界选择可完整容纳图表的空白区域,搜索失败经受控的命令失败结果上报;补充右下角插图及其他文档仍可操作的回归测试。证据:/tmp/ely-r210-r2-corner.log、/tmp/ely-r210-r2-validation.log。
patches/libreoffice/0041-lok-calc-chart-beside-its-data.patch:45 — IsBlockEmpty 只检查候选范围内的单元格内容,漏掉锚点位于范围外的已占用合并单元格,仍违反 R2.10 的空白处定位要求。具体场景:A1:C5 填入数值,D1:P20 合并并写入居中的 `MERGED DATA`,以 A1:C5 插入柱图;合并区域矩形为 (3840,0,16639,5119),图表为 (5120,0,9070,5102),整个图表落在合并区域内。两次独立运行一致;保存的 FODS 保留该位置,导出 PDF 第 2 页的渲染确认原文字被图表遮住。修复方向:空白判定覆盖相交合并单元格的完整占用范围与锚点内容,加入相邻合并数据区的回归断言。证据:/tmp/ely-r210-r2-extra.log、/tmp/ely-r210-r2-persisted.log、/tmp/ely-r210-r2-validation.log。
patches/libreoffice/0041-lok-calc-chart-beside-its-data.patch:43 — 空白检测与坐标计算使用数据源所在工作表,图表实际插入当前工作表,跨表数据源会覆盖目标表数据。具体场景:S 表 A1:C5 填入数值,T 表 A1:P20 填满数值;在 T 表打开插图对话框,将数据区域填写为 `S!$A$1:$C$5` 后插入。搜索判定 S 表 E 列附近为空,实际在 T 表生成矩形 (5120,0,9070,5102),覆盖 T 表 F1 等已有数据;F1 矩形为 (6400,0,1279,255)。两次独立运行一致,保存后的 FODS 确认图表属于 T 表,系列数据仍来自 S 表。修复方向:按实际插入工作表计算候选位置并检查占用,补充跨表数据源及目标表已有数据的回归测试。证据:/tmp/ely-r210-r2-extra.log、/tmp/ely-r210-r2-persisted.log、/tmp/ely-r210-r2-validation.log。
+1
View File
@@ -0,0 +1 @@
PASS
+3
View File
@@ -0,0 +1,3 @@
FAIL
apps/ely-mark/examples/markprobe.rs:60(tests/scripts/mark-content.sh:66):任务框回归只测第一个已勾选项,遗漏同一样本里的未勾选项。复现:在独立副本的 main.css 追加 `.milkdown li[data-item-type='task'][data-checked='false']::before { width: 0.25em; height: 0.25em; }`,重新构建并完整运行 `bash tests/scripts/mark-content.sh`,脚本仍以 0 退出并输出 `ok: mark content (background share 0.9456)`;真窗口截图中未勾选框已缩成小点,浏览器实测为 4×4px、正文 16px、首行中心偏差约 5.7px,违反 R2.14 的同大及对齐要求。三个阶段仍报告首项的 `[1,1,0.04688]`。修复方向:逐项校验已勾选和未勾选任务框的尺寸及首行位置,使上述尺寸回退触发测试失败。
+3
View File
@@ -0,0 +1,3 @@
FAIL
site/video/scenes/verify.mjs:22、site/test/film.test.ts:23:上一轮指出的离场回归验收缺口仍存在:新增脚本只检查第 2186–2188 帧的 image 路径,几何检查仍只比较辅助函数的结果。独立运行 15 项单测、官网构建、场景类型检查、渲染验收与两项影片端到端测试均通过;在隔离副本中将 page.ts:180 改为 `if (href && f < 2189)` 后,15 项单测与渲染验收仍全部通过,实际渲染第 2189 帧时六块可见屏幕上的录屏 image 从 6 个降为 0,截图显示屏幕变黑。另将群像的 ElyTree 屏幕单独恢复为 `y=7.9`,这些测试同样全部通过,实际调用群像与离场渲染器测得第 2185→2186 帧该屏幕角点最大跳移 18.704 像素,正常版本为 0.013 像素。修复方向:直接比较两个渲染器交界帧的屏幕角点,并覆盖屏幕可见的整个离场过程,逐屏核对实际加载的录屏身份与帧号,使上述两种回归触发失败。
+3
View File
@@ -0,0 +1,3 @@
FAIL
tests/scripts/show-fullscreen.sh:49:全屏验收只比对窗口边界,遗漏 R2.5 要求的菜单栏与程序坞隐藏状态。具体失败场景:在隔离副本中注入测试动态库,将 `NSApplication.setPresentationOptions:` 的参数从自动隐藏系统栏的 `5` 强制改为 `Default(0)`,保留正常全屏窗口创建及脚本原有边界断言;放映窗口仍为 `[0,0,3008,1269]`,屏幕截图显示菜单栏和程序坞压在幻灯片上,脚本仍退出 0 并输出 `ok: the show covers the whole screen`。系统窗口列表同时确认 `Menubar` 位于 `[0,0,3008,30]`、层级 24,放映窗口层级为 0。证据见 `/tmp/ely-r25-r3-menu-probe.log`、`/tmp/ely-r25-r3-menu-visible-app.log`、`/tmp/ely-r25-r3-visible-bars.log`。上轮移除 `toggle_simple_fullscreen()` 的场景已被新增脚本捕获,窗口顶部偏移 30 点时正确失败;原版构建、76 项 ElyShow 测试、Metal compose、全屏脚本、注释检查均通过,源码散列复核通过,探针副本与独立构建目录已删除。修复方向:验收实际屏幕上的菜单栏与程序坞可见状态,并让上述保留全屏尺寸、恢复系统栏显示的变异使测试失败。
+4 -4
View File
@@ -62,10 +62,10 @@ for step in ("visual", "themed", "preview"):
for key, value in [("title", "Title"), ("heading", True), ("inline", True), ("display", True), ("tasks", 2),
("cells", 2), ("notes", 1), ("font", True), ("editors", 1)]:
want(step, key, value)
# The task box: text-sized, centred on its line.
width, height, off = seen[step]["box"]
if abs(width - 1) > 0.01 or abs(height - 1) > 0.01 or abs(off) > 1:
sys.exit(f"FAIL: {step} task box is {seen[step]['box']}")
# Every task box: text-sized, centred on its line.
for width, height, off in seen[step]["boxes"]:
if abs(width - 1) > 0.01 or abs(height - 1) > 0.01 or abs(off) > 1:
sys.exit(f"FAIL: {step} task boxes are {seen[step]['boxes']}")
blocks = seen[step]["blocks"]
if [block["language"] for block in blocks] != languages:
sys.exit(f"FAIL: {step} blocks are {blocks}")