Establish the 0.9.4 NPC visual baseline
Full build / Import + headless tests (push) Successful in 38s
Full build / Full desktop build + optional release (push) Skipped

Add a neutral 48-frame character contact sheet, acceptance criteria and ranked baseline gaps, plus repeatable sheet/comparison tooling. No character GLB or runtime mesh changes.
This commit is contained in:
zwitschi committed 2026-11-02 18:13:57 +01:00
1 parent c1cd4898e8
commit e7ee177c31
13 files changed
+628 -11

No files matched your search

+28
View File
@@ -0,0 +1,28 @@
import os
import tempfile
import unittest
from pathlib import Path
import npc_baseline
class NpcBaselineTests(unittest.TestCase):
def test_expected_files_cover_all_variants_and_views(self):
rows = npc_baseline.expected_files()
self.assertEqual(len(rows), 48)
self.assertEqual({row[0] for row in rows}, set(npc_baseline.VARIANTS))
self.assertEqual({row[1] for row in rows}, set(npc_baseline.VIEWS))
self.assertEqual(len({row[2] for row in rows}), 48)
def test_latest_capture_prefers_the_full_stem(self):
with tempfile.TemporaryDirectory() as tmp:
folder = Path(tmp)
(folder / "npc_casual__front.png").write_bytes(b"old")
newer = folder / "npc_casual__front-v2.png"
newer.write_bytes(b"new")
os.utime(newer, (2_000_000_000, 2_000_000_000))
self.assertEqual(npc_baseline.latest_for(folder, "npc_casual__front"), newer)
if __name__ == "__main__":
unittest.main()