COMPO · 1.13 · POINT SYSTEM

Тест-кейсы
точечной
системы

Формальная проверка модулей Compo 1.01–1.12. Здесь правила перестают быть описанием и превращаются в тестируемые контракты: заданный input, ожидаемый диапазон output, hard-reject, tolerance, deterministic seed и диагностируемая причина провала.

Тест — это контракт

00 / executable specification

INPUT

canvas objects[] roles[] grid? stylePreset? seed moduleConfig

EXPECTED

status metric ranges structural properties hard violations determinism repair hints

ASSERTION

exact equality // DERIVED range / tolerance // HEURISTIC set membership // enum/status invariant // structural reject reason // hard rule
Ключевое правило: тесты не закрепляют художественный «единственно правильный» layout. Они закрепляют инварианты: отсутствие запрещённых конфликтов, корректный порядок ролей, допустимые диапазоны, воспроизводимость и правильное владение метриками.

Какие тесты нужны

01 / test taxonomy
ТипЧто проверяетПримерЖёсткость
DERIVEDчистую геометриюdistance, grid deviation, collisionточное значение ± floating epsilon
CONSTRAINThard ruleточка вышла за protected zoneобязательный reject
HEURISTIC RANGEнаше стартовое дизайнерское правилоdominant/support radius ratioдиапазон, а не exact
RELATIONALотношение кандидатовA должен набрать score выше Branking assertion
DETERMINISMseeded generationseed 417 повторяетсяструктура обязана совпасть
REGRESSIONизменения после правок ядрастарые сцены не деградировалидопустимое score drift

Точность и допуски

02 / tolerances
1e−6
geometry epsilon

derived

Для нормализованных координат и чистой математики.

±.02
metric tolerance

heuristic

Для вычислимых perceptual-score V1.

±.05
global drift

heuristic

Для regression score при внутренней переработке.

0
hard violations allowed

hard

Accepted candidate не может содержать hard violation.

HEURISTIC-тест не должен требовать пиксель-в-пиксель одинаковой композиции. Иначе мы случайно превратим генеративный движок в набор жёстких шаблонов.

Reference test suite

03 / click run all
PENDING · 12 TESTS

Regression protocol

04 / future-safe

После изменения любого Compo 1.xx

1. run all point-system unit tests 2. run deterministic seeds 3. compare metric deltas 4. compare hard-reject set 5. inspect rank inversions 6. allow documented intended change 7. update expected values only with reason

Нельзя

  • менять expected value просто потому, что тест стал красным;
  • ослаблять hard constraint ради высокого score;
  • дублировать одну метрику в нескольких assertions;
  • считать DEFERRED global metric внутри point-suite;
  • использовать случайность без сохранённого seed.

DATA FOR LAYOUT ENGINE

05 / machine contract
{ "module": "Compo 1.13", "type": "reference_test_suite", "consumes": ["Compo 0.00", "Compo 1.01-1.12"], "testCaseSchema": { "id": "string", "owner": "Compo x.xx", "sourceClass": "DERIVED|HEURISTIC|CONSTRAINT|RELATIONAL|DETERMINISM|REGRESSION", "input": "object", "expected": "object", "tolerance": "number|object|null", "assertions": "array", "seed": "integer|null" }, "globalRules": { "acceptedCandidateHardViolationCount": 0, "geometryEpsilon": 0.000001, "defaultMetricTolerance": 0.02, "defaultRegressionScoreDrift": 0.05, "seededStructuralOutputMustRepeat": true, "deferredMetricsAreNotComputedHere": true, "singleMetricOwnerRequired": true }, "suitePolicy": { "runOnEveryModuleChange": true, "runBeforeGlobalIntegration": true, "updateExpectedRequiresReason": true, "pixelPerfectLayoutAssertion": false } }