mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-03 13:18:58 +00:00
@@ -305,12 +305,25 @@ exact-SHA Validate. Для `src/**` обновляется canonical docs source
|
||||
Backend pytest и model-invariants неприменимы, если реализация не меняет Python
|
||||
или сохранённую геометрию стен.
|
||||
|
||||
### AC10. Выбор стены в углу детерминирован
|
||||
|
||||
Unit fixture с двумя неколлинеарными поверхностями одного угла проверяет три
|
||||
ветки выбора: при разных расстояниях выигрывает физически ближайшая поверхность;
|
||||
при равном расстоянии сторона точки намерения учитывается раньше стабильного
|
||||
tie-break; при полном равенстве перестановка входного массива не меняет выбранную
|
||||
поверхность и конечные `x/y/angle`. Mutation, возвращающая прежний выбор первого
|
||||
минимума из массива либо меняющая местами intent-критерий и стабильный tie-break,
|
||||
обязана сделать соответствующий witness красным.
|
||||
|
||||
## План тестирования
|
||||
|
||||
- заменить центролинейные expectations секции wall magnet в
|
||||
`test/furniture.test.mjs` typed wall-face fixtures с 0/10/20 см;
|
||||
- добавить pure tests внешней/общей стены, intent point, exact-axis tie,
|
||||
permutation/winding, local thickness, threshold и independent faces;
|
||||
- добавить отдельный AC10 unit для двух неколлинеарных стен в углу: ближайшая
|
||||
поверхность, приоритет стороны намерения и инвариантность к порядку массива
|
||||
при точном равенстве;
|
||||
- расширить `demo/smoke_furniture.mjs` production-bundle сценарием preview →
|
||||
commit → drag у толстой стены и touch safety;
|
||||
- зарегистрировать дорогие отрицательные варианты в
|
||||
@@ -374,4 +387,3 @@ Backend pytest и model-invariants неприменимы, если реализ
|
||||
- Нулевые стены и физические грани независимых тел сохраняют прежнее поведение.
|
||||
- Проёмы не участвуют в collision model этой задачи.
|
||||
- `Shift`, persisted schema, i18n и уже сохранённая мебель не меняются.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user