testsAndMisc/python_pkg/artgate/tests
Krzysztof kuhy Rudnicki e6e0ba5ab3
Some checks are pending
Pre-commit checks / pre-commit (push) Waiting to run
Python tests / test (push) Waiting to run
Shell tests / shell-tests (push) Waiting to run
Shell tests / arch-tests (push) Waiting to run
artgate: diffusion + 3D routes, full vector coverage, and the margin gate
Closes the remaining bake-off cells. The phase's real result was not a route
score but a MISSING GATE.

All twelve SDXL icons measured 100% opaque coverage -- square tiles with no
sprite silhouette -- and passed every gate in the harness. Gate-pass was
measuring pipeline hygiene, not usability. MARGIN_TOO_SMALL inverts the table
from a meaningless 12/12/12 tie to:

    diffusion   0/12      (every output full-bleed)
    vector     10/12
    procedural 11/12

The two non-diffusion failures were true positives in MY shapes, not gate
error: the procedural sword pommel ran off the bottom edge and the vector meat
bone clipped the top. Both fixed; both routes back to 12/12.

Diffusion recovers to 12/12 with flood-fill background removal, but visual
inspection shows the fill eats into the art (bone reduced to a fragment, sword
nearly erased). Reported as inadequate rather than shipped -- proper matting is
needed before route (b) is a usable pipeline.

Blender exits 0 even when its embedded script raises: BLENDER_EEVEE_NEXT does
not exist in 5.2, and the failure produced a clean exit and no file. render()
now asserts the output exists, or the route would report phantom successes.

Model gating verified at execution time, never recalled: SDXL base and
nerijs/pixel-art-xl are ungated, FLUX.1-dev is gated=auto, and
runwayml/stable-diffusion-v1-5 now 307-redirects.

The finishing stage now generalises across three continuous-tone sources
(SVG raster, Blender render, SDXL): each is 0/N raw and N/N finished.

Verified: 114 tests, 100% branch coverage on 13 modules, zero suppressions,
all hooks pass. Note: a local pytest run masked a missing branch that the
pre-commit hook caught -- the hook's run is authoritative.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T9rQ12yZ7sJxiPQTCS5dUF
2026-08-15 22:51:31 +02:00
..
__init__.py artgate: deterministic exit-code gates for generated game art 2026-08-15 22:20:36 +02:00
test_blender.py artgate: diffusion + 3D routes, full vector coverage, and the margin gate 2026-08-15 22:51:31 +02:00
test_cli.py artgate: diffusion + 3D routes, full vector coverage, and the margin gate 2026-08-15 22:51:31 +02:00
test_contrast.py artgate: diffusion + 3D routes, full vector coverage, and the margin gate 2026-08-15 22:51:31 +02:00
test_finish.py artgate: procedural + vector routes, and the shared finishing stage 2026-08-15 22:31:59 +02:00
test_pixels.py artgate: deterministic exit-code gates for generated game art 2026-08-15 22:20:36 +02:00
test_routes.py artgate: diffusion + 3D routes, full vector coverage, and the margin gate 2026-08-15 22:51:31 +02:00
test_spec.py artgate: diffusion + 3D routes, full vector coverage, and the margin gate 2026-08-15 22:51:31 +02:00