test(runtime): verify native Control node stage transitions
Docs Deploy / Build and Deploy MkDocs (push) Successful in 32s
Docs Deploy / Build and Deploy MkDocs (push) Successful in 32s
This commit is contained in:
4 files changed
+527
-9
No files matched your search
@@ -897,6 +897,23 @@ row `1` в общей позиции `22` со значением `6000.0`.
|
||||
даёт `[14, 28, 10]`. При вычитании последовательный способ начинает с последней
|
||||
строки. Так одна таблица описывает и текущее значение, и то, как оно меняется.
|
||||
|
||||
У строк есть и связи с родительскими узлами. Когда стадия родителя меняется,
|
||||
Control пересчитывает дочерние строки в глубину: ребёнка вместе со всем его
|
||||
поддеревом, затем следующего ребёнка. Для числа вариантов `count` внутренняя
|
||||
стадия вычисляется как `count - ceil(f32(count * ratio))`, а видимое значение
|
||||
ограничивается диапазоном модели. Например, при трёх стадиях доли
|
||||
`[0.1, 0.4, 0.5, 1, 0]` дали `[2, 1, 1, 0, 3]`; последнее значение — sentinel
|
||||
истощения, а в модель передаётся индекс не выше `count - 1`. Нативные проверки
|
||||
подтвердили порядок обхода и передачу состояния в AniMesh.
|
||||
|
||||
Выбранная стадия также задаёт, какие данные MSH попадают в пересчёт видимости.
|
||||
У одного синтетического узла первый слот давал `[42, 330]`, а слот другой стадии —
|
||||
`[102, 570]`. В проверенных векторах одинаковые данные при скрытии и повторном
|
||||
включении восстановили суммы; переходы с разными слотами — нет. Эти проверки
|
||||
исполняют исходные DLL на тестовых строках, но не являются запуском Control на
|
||||
полной миссии; Rust пока сохраняет только начальное состояние provider-строк.
|
||||
Подробные границы приведены в [техническом приложении](../appendices/script-vm.md#родители-стадии-и-видимость-provider-узлов).
|
||||
|
||||
Для точного повтора важен порядок округления. При исходных значениях `[2^24, 2]`
|
||||
и запросе `-1` оригинал сначала складывает общий итог с изменением, затем
|
||||
вычитает прежний итог. Из-за округления фактическое изменение получается `-2`.
|
||||
|
||||
Reference in new issue
Block a user