Files
sunrise/tests/render-performance.test.ts
T

19 lines
706 B
TypeScript

import { test } from 'node:test';
import assert from 'node:assert/strict';
import { frameSummary } from '../src/scene/frameSummary.ts';
test('frame summary uses nearest-rank p95 and retains long foreground stalls', () => {
const values = [...Array(94).fill(16), ...Array(5).fill(40), 500];
const result = frameSummary(values);
assert.equal(result.p95Ms, 40);
assert.equal(result.meanMs, 22.04);
assert.equal(result.over50Ms, 1);
assert.equal(result.overBudget, 6);
assert.ok(Math.abs(result.fps! - 1000 / 22.04) < 1e-10);
});
test('empty render sample cannot be reported as passing FPS', () => {
assert.equal(frameSummary([]).fps, null);
assert.equal(frameSummary([]).p95Ms, null);
});