Files
SKY ZHAO d54dd41dc1 test: 给 assets/lib/helpers 纯函数补 vitest 单元测试 + CI 集成 (#42)
* test: 给 assets/lib/helpers 纯函数补 vitest 单元测试 + CI 集成

项目此前完全没有自动化测试。assets/lib/helpers 的纯函数
(mulberry32 / velocityAt / lagged / dampedSettle / handheld)是确定性、
无状态的——最该被锁住的行为,但没有任何测试覆盖。

新增:
- package.json + package-lock.json(仓库根,vitest 3.2)
- assets/lib/helpers/__tests__/helpers.test.ts —— 23 条用例:
  * mulberry32:值域 [0,1)、同种子同序列、异种子异序列、跨实例可复现、
    边界种子不抛错
  * velocityAt:匀速直线恢复速度/方向、静止为零、中心差分对二次轨迹
    精确、dt 缩放
  * lagged:延迟采样语义、负结果帧、泛型类型透传
  * dampedSettle:冲击时刻为零、首峰方向、半周期符号翻转、包络衰减、
    高阻尼衰减更快、确定性
  * handheld:3 元组、确定性、amp 线性缩放、值域上界

CI:pr-checks.yml 新增独立 unit-tests job(paths 加入 assets/lib/**、
package.json、package-lock.json),npm ci + npm test 守护 helpers 行为。

本地 23/23 通过。

* test: dampedSettle 阻尼对比断言换到非零点(17.3)更稳健

原断言用 t=30——sin(2π*0.1*30)=sin(6π)≈0,两值都落在零点附近
(1.6e-16 vs 2.2e-22),断言虽过但数值脆弱。t=17.3 时远离零点,
轻/重阻尼比值 2404x,断言稳健。23/23 仍通过。

---------

Co-authored-by: zhaotian1 <zhaotian1@wps.cn>
Co-authored-by: Wei Yihao <weiyihao@amazon.com>
2026-08-22 02:49:30 +08:00

13 lines
250 B
JSON

{
"name": "video-shotcraft-tests",
"private": true,
"description": "Unit tests for assets/lib/helpers pure functions",
"scripts": {
"test": "vitest run",
"test:watch": "vitest"
},
"devDependencies": {
"vitest": "^3.2.4"
}
}