MiniCPM5-2B-WebGPU-Pi-HTTP / app /tests /token-rate.test.mjs
Mike0021's picture
Enable browser HTTP commands with CORS-aware errors and bounded requests
39371ea verified
Raw History Blame Contribute Delete
1.08 kB
import test from 'node:test';
import assert from 'node:assert/strict';
import { TokenRateWindow } from '../src/token-rate.mjs';
test('token rate excludes prefill and waits for a measurable decode interval', () => {
const meter = new TokenRateWindow();
assert.equal(meter.rate(5000), null);
meter.add(1, 5000);
assert.equal(meter.rate(5100), null);
meter.add(8, 5250);
assert.equal(meter.rate(5250), 32);
meter.add(8, 5500);
assert.equal(meter.rate(5500), 32);
});
test('rolling rate follows recent throughput, decays during stalls and keeps bounded history', () => {
const meter = new TokenRateWindow();
meter.add(1, 0);
for (let at = 100; at <= 1000; at += 100) meter.add(4, at);
assert.equal(meter.rate(1000), 40);
assert.equal(meter.rate(1500), 20);
assert.equal(meter.rate(2000), 0);
meter.add(5, 2100);
assert.equal(meter.rate(2100), 5);
for (let at = 2200; at <= 100000; at += 100) meter.add(1, at);
assert.equal(meter.rate(100000), 10);
assert(meter.points.length <= 11);
assert.equal(new TokenRateWindow().rate(100000), null);
});