Download app/tests/token-rate.test.mjs from Mike0021/MiniCPM5-2B-WebGPU-Pi-HTTP: direct link, hf CLI and curl.
- Browser
- Download file 1.08 kB
-
https://huggingface.co/spaces/Mike0021/MiniCPM5-2B-WebGPU-Pi-HTTP/resolve/main/app/tests/token-rate.test.mjs
- Command line
-
hf download hf://spaces/Mike0021/MiniCPM5-2B-WebGPU-Pi-HTTP/app/tests/token-rate.test.mjs
-
curl -L -o token-rate.test.mjs https://huggingface.co/spaces/Mike0021/MiniCPM5-2B-WebGPU-Pi-HTTP/resolve/main/app/tests/token-rate.test.mjs
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); | |
| }); | |