tawasuyu

tawasuyu/llimphi

Sovereign retained-mode GPU UI framework in Rust (wgpu+vello+taffy+parley), Elm loop, 40+ widgets.

Rust 660Markdown 302TOML 157RON 312382 Sutichaykuna

⎇ main llimphi-test/LEEME.md Markdown · 35 siq'ikuna · 1.3 KB Ñawpa willay ch'uya

chore: refresco desde el monorepo — 27 crates nuevos (anim, lottie, svg, mesh, image, layer, test, wire-view, widgets rag-sidebar/router/lazy-list/rive-button) y sync de los 95 existentes 93253cc22 · Sergio ·

1# llimphi-test
2
3*Read this in English: [README.md](README.md).*
4
5# llimphi-test — arnés golden-image headless y determinista
6
7El problema que cierra: en `PLAN-NUCLEO-RETENIDO.md` y `PARIDAD-FLUTTER.md`
8cada bloque termina con "falta verificar en metal / PNG-diff pendiente", y
9CLAUDE.md §8 prohíbe renderizar-y-mirar de rutina por costo de tokens. Este
10crate convierte esa verificación cara y subjetiva en `assert_golden!(...)`:
11barata, objetiva, en CI, certificada por **texto** (`DiffStats`).
12
13## Determinismo
14
15El `Harness` pide un `Hal` por el adapter de **software**
16(`llimphi_hal::Hal::new_headless(true)`): el rasterizador llvmpipe/lavapipe
17(deviceType CPU) produce el **mismo píxel** en cualquier host y en CI, no
18atado a la GPU de quien generó el golden. Si la máquina no tiene un fallback
19adapter, cae al adapter normal y la tolerancia perceptual de `GoldenConfig`
20absorbe la diferencia de vendor.
21
22## Uso típico (dentro de un test de otro crate)
23```ignore
24use llimphi_test::assert_golden;
25#[test]
26fn card_con_sombra() {
27    let v = mi_widget::card(...);
28    assert_golden!("card_con_sombra", v, 400, 240); // tests/goldens/card_con_sombra.png
29}
30```
31Regenerar los goldens: `LLIMPHI_GOLDEN_UPDATE=1 cargo test`.
32
33---
34
35Parte de **llimphi** — ver [llimphi](../LEEME.md).

LEEME.md

llimphi-test

Read this in English: README.md.

llimphi-test — arnés golden-image headless y determinista

El problema que cierra: en PLAN-NUCLEO-RETENIDO.md y PARIDAD-FLUTTER.md cada bloque termina con "falta verificar en metal / PNG-diff pendiente", y CLAUDE.md §8 prohíbe renderizar-y-mirar de rutina por costo de tokens. Este crate convierte esa verificación cara y subjetiva en assert_golden!(...): barata, objetiva, en CI, certificada por texto (DiffStats).

Determinismo

El Harness pide un Hal por el adapter de software (llimphi_hal::Hal::new_headless(true)): el rasterizador llvmpipe/lavapipe (deviceType CPU) produce el mismo píxel en cualquier host y en CI, no atado a la GPU de quien generó el golden. Si la máquina no tiene un fallback adapter, cae al adapter normal y la tolerancia perceptual de GoldenConfig absorbe la diferencia de vendor.

Uso típico (dentro de un test de otro crate)

use llimphi_test::assert_golden;
#[test]
fn card_con_sombra() {
    let v = mi_widget::card(...);
    assert_golden!("card_con_sombra", v, 400, 240); // tests/goldens/card_con_sombra.png
}

Regenerar los goldens: LLIMPHI_GOLDEN_UPDATE=1 cargo test.


Parte de llimphi — ver llimphi.