Gate texel density and review scorecard coverage
This commit is contained in:
1 parent
88a0793bba
commit
fe3ba3054e
4 files changed
+88
-2
No files matched your search
@@ -118,6 +118,22 @@ class TexelDensityTests(unittest.TestCase):
|
||||
skin = report["slots"]["skin"]
|
||||
self.assertEqual(skin["td_px_per_m"], skin["td_runtime_px_per_m"])
|
||||
|
||||
def test_every_character_reports_a_plausible_density_for_every_slot(self):
|
||||
# Gate for the 3D review: a new or rebuilt character must keep all five
|
||||
# tint slots measurable and inside the documented stylized band.
|
||||
for name in ba.CHARACTERS:
|
||||
report = ba.texel_density(name)
|
||||
self.assertIsNotNone(report, name)
|
||||
for slot in ba.SLOTS:
|
||||
self.assertIn(slot, report["slots"], f"{name}:{slot}")
|
||||
td = report["slots"][slot]["td_px_per_m"]
|
||||
self.assertGreaterEqual(td, 40.0, f"{name}/{slot} below 40 px/m")
|
||||
self.assertLessEqual(td, 400.0, f"{name}/{slot} above 400 px/m")
|
||||
for slot in ba.TEXEL_RUNTIME_UV_SCALE:
|
||||
if slot in report["slots"]:
|
||||
self.assertGreaterEqual(report["slots"][slot]["td_runtime_px_per_m"],
|
||||
250.0, f"{name}/{slot} fabric below 250 px/m")
|
||||
|
||||
def test_base_fallback_is_measurable_from_its_own_path(self):
|
||||
from pathlib import Path
|
||||
path = ba.ROOT / "assets" / "models" / "generated" / "npc_base.glb"
|
||||
|
||||
Reference in new issue
Block a user