summaryrefslogtreecommitdiff
path: root/docs/evidence/p61-verification.txt
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-29 04:58:29 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-29 04:58:29 +0800
commitfd40d78fd7506a95f0c5ad3295adfeb0a636e815 (patch)
treea948f264a7924e52d804d12735c66ed2cb529b6d /docs/evidence/p61-verification.txt
parentf274ed8c920bbea383a4bf0e2ffe1219f7fe30b5 (diff)
downloadliving-village-fd40d78fd7506a95f0c5ad3295adfeb0a636e815.tar.gz
p61: G1 字形图集补齐 16 个 UI 用字(红→绿),中文界面完整
红:新增 src/LivingVillage.Desktop.Tests/P61GlyphCoverageTests.fs——扫描 Desktop 源码 字符串字面量内的全部 CJK 字,断言 100% 在 CjkGlyphAtlas 内;并逐字钉 G1 缺的 16 字(冬包卷品夏料春玩秋第背车轴页香鱼)、requiredUiLabels、以及运行期文案 (日历「春·第1天」/页脚「第 1/3 页…翻页」/「V 卖出 背包物品×1」/鱼卷轴香料玩车回)。 实现前实测 3 失败:缺字形 16。 绿:向 CjkGlyphAtlas.characterTable 补入 16 字(保持有序、去重),同步 Assets/cjk-glyphs.txt,并跑 scripts/generate-cjk-glyph-atlas.sh 用既有 Noto Sans CJK 重生成预生成 PNG:384x504(16x21 格,+16 字),16 个新字格均有真实字体墨迹 (ink_px 148-233,非程序几何伪字形)。更新 PrototypeTests 的图集几何常量 (307→323、rowCount 20→21、pixelHeight 480→504)。 证据:LV_P61_SHOT=1 拍 2 帧(p61-calendar 右上日历「春 · 第1天」;p61-dialog-footer 真实 Interact 开对话,页脚「第 1/3 页…翻页」+ 选项「V 卖出 背包物品×1」)。 analyze(p61-analysis.txt):缺字空白位=0、黑块=0、白块=0/2;全部抽检文案 missing_glyph_slots=0。钩子为 Game.fs 纯追加(53 行,0 删除),未动 HUD 结构。 回归(p61-verification.txt):Desktop 308/308(+4 P61)+ Kernel 119/119; --performance-baseline ×3 digest 953775FAEB2F… 不变,determinism PASS。 未改 Kernel/Sim,未引外部素材(沿用既有 Noto 字体来源),未 push。
Diffstat (limited to 'docs/evidence/p61-verification.txt')
-rw-r--r--docs/evidence/p61-verification.txt30
1 files changed, 30 insertions, 0 deletions
diff --git a/docs/evidence/p61-verification.txt b/docs/evidence/p61-verification.txt
new file mode 100644
index 0000000..601c4b2
--- /dev/null
+++ b/docs/evidence/p61-verification.txt
@@ -0,0 +1,30 @@
+P61 验证日志 2026-09-28T20:57:47Z commit=f274ed8
+
+## RED(实现前)dotnet test --filter P61GlyphCoverageTests
+失败! - 失败: 3,通过: 1
+ AllSourceChineseLiteralsHaveAtlasGlyphs: 缺字形 16 个: 冬包卷品夏料春玩秋第背车轴页香鱼
+ G1MissingCharsAreNowInAtlas: 未入图集 16
+ CalendarAndFooterAndItemCopyAreAtlasBacked: 春夏秋冬第页背包品鱼卷轴香料玩车
+
+## GREEN(实现后)
+已通过! - 失败: 0,通过: 4,已跳过: 0,总计: 4,持续时间: 124 ms - LivingVillage.Desktop.Tests.dll (net8.0)
+
+## 全量 Release 测试
+已通过! - 失败: 0,通过: 308,已跳过: 0,总计: 308,持续时间: 5 s - LivingVillage.Desktop.Tests.dll (net8.0)
+已通过! - 失败: 0,通过: 119,已跳过: 0,总计: 119,持续时间: 10 s - LivingVillage.Kernel.Tests.dll (net8.0)
+
+## 字形图集
+runtime_glyphs=323 (was 307, +16)
+atlas=384x504 (16x21 cells @24px), manifest lines=323
+new_glyph_cells_with_ink: 冬181 包190 卷229 品197 夏211 料199 春232 玩186 秋212 第233 背216 车148 轴214 页171 香221 鱼191
+
+## --performance-baseline x3
+performance_sample repetition=1 seed=42 npc_count=4 warmup_ticks=120 measure_ticks=6000 elapsed_stopwatch_ticks=13531906 stopwatch_frequency=1000000000 elapsed_seconds=0.013531906 ticks_per_second=443396.518 allocated_bytes=3032344 gen0=0 gen1=0 gen2=0 final_tick=6120 final_digest=953775FAEB2FDDE97289491AA260BD8D390C571E48A7A13AD2CB6FB7124F7F6C runtime=.NET 8.0.31 runtime_version=8.0.31
+performance_determinism=PASS
+---
+performance_sample repetition=1 seed=42 npc_count=4 warmup_ticks=120 measure_ticks=6000 elapsed_stopwatch_ticks=13256147 stopwatch_frequency=1000000000 elapsed_seconds=0.013256147 ticks_per_second=452620.207 allocated_bytes=3032344 gen0=0 gen1=0 gen2=0 final_tick=6120 final_digest=953775FAEB2FDDE97289491AA260BD8D390C571E48A7A13AD2CB6FB7124F7F6C runtime=.NET 8.0.31 runtime_version=8.0.31
+performance_determinism=PASS
+---
+performance_sample repetition=1 seed=42 npc_count=4 warmup_ticks=120 measure_ticks=6000 elapsed_stopwatch_ticks=13373789 stopwatch_frequency=1000000000 elapsed_seconds=0.013373789 ticks_per_second=448638.752 allocated_bytes=3032344 gen0=0 gen1=0 gen2=0 final_tick=6120 final_digest=953775FAEB2FDDE97289491AA260BD8D390C571E48A7A13AD2CB6FB7124F7F6C runtime=.NET 8.0.31 runtime_version=8.0.31
+performance_determinism=PASS
+---