Skip to content

test: reuse per-case normalized compositor error oracle - #522

Merged
lemone112 merged 1 commit into
mainfrom
perf/weekly-numerical-harness-20261026
Oct 26, 2026
Merged

lemone112 merged 1 commit into
mainfrom
perf/weekly-numerical-harness-20261026

Conversation

@lemone112

@lemone112 lemone112 commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Изменение

Нормализованный dense-oracle вычисляется один раз внутри текущего (spring,v0), а не повторно для шкал100/450. Только test/compositor-error-bound.test.ts. Обе реальные maxValueError проверки сохранены;4пружины×2скорости×2шкалы,8193точки0..8192,parseCssLinear/solveSpring,точная арифметика времени,slack1e-10/tightness1e-6 неизменны. Нет module/pre-run cache;production/compiler cache/mutation scopes/workers/thresholds/timeouts не менялись.

Доказательства

  • TS6.0.3 --noEmit и pinnedpnpm11.11.0 build:exit0.
  • Related2files11tests PASS;nativeCI contract exit0;diffcheck0.
  • Передправкой131088orderedpoints exactcomparison и32scale-specific under/over-bound controls PASS. Контроль доказательства остаётся evidence-only,не в PR. Независимый exactdiffreview:no finding.
  • Удалены65544повторных solveSpring evaluations за полное выполнение теста,не за полныйweekly job.
  • Corrected WindowsNode24.15/Vitest5.0.5 serialpair maxWorkers1,без parallelbuild:targetcase30.9219→21.4872ms,wholefile35.9219→26.4873ms. Одинаковые controls171.14→166.6612ms включены в обоих. Initialслowerpair с concurrentbuild сохранён и не считается isolatedcausalmeasurement.

Приёмка

Обычный requiredCI и одна полная существующая Mutation qualification на exactbranch/head до merge. Savedweeklybaseline40296355396 at1db898ab:2495mutants/3776initialtests/494staticmutants/core3752s/gate3730s/core+driver4083jobseconds. Это ещё не доказательство общего5–10min результата. Никаких повторныхbaseline63min runs или сокращения depth.

Evidence/источники

Packet D:/AgentWork/.omo/evidence/org-test-efficiency-20261023/lab-motion/weekly-numerical-oracle-20261026-st01a17463;candidate.diff SHA256cd1c97b5764fce53240f7cef14934d9c28229e12e5689b6a16f2e44ec5a8c60b (3596bytes,UTF8BOM evidence serialization),candidate sourceSHA256f39790b15d0be46880bb1329d00ae757fce16e99c0592218499e92470944cfb6. OfficialStryker staticmutants and perTest semantics:https://stryker-mutator.io/docs/mutation-testing-elements/static-mutants/ ;https://stryker-mutator.io/docs/stryker-js/configuration/ .

Rollback:revert one test-only commit. PR519browser slice remains separate;Laborant/alerting untouched.

Summary by CodeRabbit

  • Тесты
    • Ускорена проверка максимальной ошибки: вычисления для каждой пары параметров теперь выполняются один раз до проверки разных масштабов. Проверки граничных значений для каждого масштаба остались без изменений. Изменение касается только тестирования и не влияет на доступные пользователям функции.

@coderabbitai

coderabbitai Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Team
  • Run ID: af7e2545-ea81-453c-9042-1dcf13a5a482
Commits

Reviewing files that changed from the base of the PR and between 1db898a and 04f9ae0.

Files selected for processing: 1
  • test/compositor-error-bound.test.ts

Included review availability: This review used your included allowance. 0 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Walkthrough

Тест композитора вычисляет CSS-кривую и нормализованную максимальную ошибку один раз для каждой пары параметров пружины и начальной скорости. Проверки границ и расчёт ошибки в единицах масштаба выполняются для каждого масштаба, как и прежде.

Changes: Тест границы ошибки

Слой / файл(ы) Сводка
Вычисление ошибки и проверка масштабов
test/compositor-error-bound.test.ts
Вычисление CSS-кривой и нормализованной максимальной ошибки перенесено перед перебором масштабов. Проверки границ и расчёт ошибки в единицах масштаба остаются внутри цикла по масштабам.

Priority: Low

Estimated code review effort: 2 (Simple) | ~5 minutes

Change: Other

Merge Risk: Minimal · up to 04f9a

The test optimization has no identified merge-blocking issue; merge after the stated CI and mutation qualification requirements are met.

Pre-merge checks: Passed 7 · Failed 2

Failed Failed checks: 2 warnings

Check name Status Explanation Resolution
Title check Warning Заголовок точно описывает изменение, но нарушает обязательное требование русского языка: он полностью написан на английском. Заменить заголовок на краткий русский вариант, например: «test: переиспользовать нормализованный oracle ошибки compositor для каждого случая».
Description check Warning Описание содержит техническую цель, сохранённые проверки, результаты тестирования, измерения производительности и ограничения. Однако оно не соответствует обязательной структуре шаблона: отсутствуют о… Перестроить описание по шаблону репозитория. Добавить все обязательные разделы и явно указать результаты каждого применимого гейта, архитектурные проверки, риски и не-цели, документацию и связанный issue. Для неприменимых пунктов указать «н…
Passed Passed checks: 7 passed
Check name Status Explanation
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
краткие русские документации Passed Добавленные комментарии в test/compositor-error-bound.test.ts написаны по-русски и кратко описывают новое поведение: повторное использование нормализованного oracle в пределах одного случая и вычисл…
Diataxis Passed Проверка пройдена. Pull request изменяет только test/compositor-error-bound.test.ts. Файлы документации и документационные разделы не изменены. Добавленные комментарии поясняют локальную реализацию …
архитектура Passed Проверка пройдена. Pull request изменяет только test/compositor-error-bound.test.ts. Рефакторинг переносит compileSpringExecutionArtifactTupleUnchecked, parseCssLinear и расчёт `trueMaxErrorNorm…
тесты Passed Проверка пройдена. Diff изменяет только порядок вычислений в test/compositor-error-bound.test.ts. Для каждой пары (spring, v0) тест сохраняет 8193-точечный oracle, а затем выполняет обе проверки д…
промежуточные документы (напр. планы) Passed Проверка пройдена. В диапазоне PR изменён только test/compositor-error-bound.test.ts. Изменение переносит вычисление тестового oracle перед циклом масштабов и не добавляет планы, ревью, исследования…
Full details: краткие русские документации

Explanation

Добавленные комментарии в test/compositor-error-bound.test.ts написаны по-русски и кратко описывают новое поведение: повторное использование нормализованного oracle в пределах одного случая и вычисление кусочно-линейной кривой. Описание соответствует коду: oracle вычисляется до цикла по шкалам, а проверки границ остаются внутри этого цикла. Англоязычные комментарии и названия тестов не изменены по смыслу в этом PR.

Full details: Diataxis

Explanation

Проверка пройдена. Pull request изменяет только test/compositor-error-bound.test.ts. Файлы документации и документационные разделы не изменены. Добавленные комментарии поясняют локальную реализацию теста и не являются самостоятельной документацией, требующей классификации Diataxis.

Full details: архитектура

Explanation

Проверка пройдена. Pull request изменяет только test/compositor-error-bound.test.ts. Рефакторинг переносит compileSpringExecutionArtifactTupleUnchecked, parseCssLinear и расчёт trueMaxErrorNorm во внешний цикл (spring, v0), а проверки maxValueError остаются во внутреннем цикле по scale. Состояние остаётся локальным текущему тестовому случаю. Новых модулей, публичных контрактов, глобального состояния, транспортных или storage-зависимостей нет. Diff не содержит изменений production-кода и проходит git diff --check.

Full details: тесты

Explanation

Проверка пройдена. Diff изменяет только порядок вычислений в test/compositor-error-bound.test.ts. Для каждой пары (spring, v0) тест сохраняет 8193-точечный oracle, а затем выполняет обе проверки для шкал 100 и 450. Покрыты недодемпфированный, критический, передемпфированный и медленный режимы, а также два значения v0. В src/compositor/error-bound.ts значение scale не участвует в нормализованном расчёте. Оно применяется только в финальном return scale * maxErrorNormalized. Поэтому перенос oracle за пределы цикла шкал не ослабляет проверку. Тест способен обнаружить целевой дефект: например, саботаж return scale * maxErrorNormalized → return -1 нарушит проверку верхней границы, а удаление множителя scale нарушит её для положительного нормализованного отклонения. Критерий функциональной доказуемости выполнен.

Full details: промежуточные документы (напр. планы)

Explanation

Проверка пройдена. В диапазоне PR изменён только test/compositor-error-bound.test.ts. Изменение переносит вычисление тестового oracle перед циклом масштабов и не добавляет планы, ревью, исследования или артефакты работы агента в репозиторий продукта. Файлы документации и промежуточные документы в diff отсутствуют.

Full details: Description check

Explanation

Описание содержит техническую цель, сохранённые проверки, результаты тестирования, измерения производительности и ограничения. Однако оно не соответствует обязательной структуре шаблона: отсутствуют отдельные разделы «Пользовательский результат», «Контракт», «Архитектура», «Риски и не-цели», «Документация и выпуск», «Гейты» и «Связано с #». Статусы обязательных проверок также не оформлены в виде требуемых чекбоксов.

Resolution

Перестроить описание по шаблону репозитория. Добавить все обязательные разделы и явно указать результаты каждого применимого гейта, архитектурные проверки, риски и не-цели, документацию и связанный issue. Для неприменимых пунктов указать «не затрагивает» или привести обоснование.

Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@laborant-by-labpics laborant-by-labpics Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Существенных проблем не нашла

Статический анализ завершён. Дополнительное ИИ-ревью выполнено.

Как проверено

разобрано файлов 1 из 1, прицельных проверок 1, прочитано файлов 17.

Файл Что проверено
test/compositor-error-bound.test.ts Прочитаны все строки base и head; проверены область жизни эталона, независимость от масштаба, арифметическая эквивалентность сетки, сохранность утверждений, чистота вызываемых функций, повторное использование артефакта и выбор теста обычным и mutation-раннером.

@lemone112
lemone112 merged commit 91928d9 into main Oct 26, 2026
16 checks passed
@lemone112
lemone112 deleted the perf/weekly-numerical-harness-20261026 branch October 26, 2026 18:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant