feat(tuning): release V0.8.2 Agent 界面重构
web-platform-ci / TypeScript, lint, unit, build (push) Has been cancelled
web-platform-ci / Playwright E2E (push) Has been cancelled

This commit is contained in:
2026-09-03 16:25:53 +08:00
parent a9b07e0abf
commit 63d67a645b
35 changed files with 4847 additions and 811 deletions
@@ -0,0 +1,23 @@
import { describe, expect, it } from 'vitest';
import { ScalarRingBuffer } from './ScalarRingBuffer';
const point = (step: number, value = step) => ({ step, wallTime: step / 10, value });
describe('ScalarRingBuffer', () => {
it('固定容量覆盖最旧点并保持按 step 排序', () => {
const buffer = new ScalarRingBuffer(3);
buffer.appendMany([point(2), point(1), point(3), point(4)]);
expect(buffer.size).toBe(3);
expect(buffer.snapshot().map((value) => value.step)).toEqual([1, 3, 4]);
expect(buffer.latestStep).toBe(4);
});
it('按 step 去重更新且忽略非有限数据', () => {
const buffer = new ScalarRingBuffer(4);
expect(buffer.append(point(1, 2))).toBe(true);
expect(buffer.append(point(1, 2))).toBe(false);
expect(buffer.append(point(1, 3))).toBe(true);
expect(buffer.append({ step: 2, wallTime: 0, value: Number.NaN })).toBe(false);
expect(buffer.snapshot()).toEqual([{ step: 1, wallTime: 0.1, value: 3 }]);
});
});