45bfae6e94
Initial import of all source code, config, and README assets: the packages workspace (cli, core, server, web, docs, landing, skills), build scripts, tooling config, and CI workflows. Includes the data-layout revision made on this branch: the local data root defaults to ~/.penguin/data (PENGUIN_HOME still overrides; the installer keeps its binaries in ~/.penguin), and every Agent lives under <project>/agents/<agent>/ — path helpers, the three agent-enumeration scans, the system prompt, built-in Skills, tests and docs all follow the new layout. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ihk8iQuo3kv2aPjAYEPuR
41 lines
1.5 KiB
TypeScript
41 lines
1.5 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
CODE_BENCH,
|
|
DATA_BENCH,
|
|
formatAccuracy,
|
|
formatPct,
|
|
formatTokensM,
|
|
formatUsd,
|
|
} from "../src/lib/benchmark-data";
|
|
|
|
describe("benchmark data (unified per-run means)", () => {
|
|
it("formats the data-analysis suite at its published precision", () => {
|
|
const penguin = DATA_BENCH[0]!;
|
|
expect(formatPct(penguin.accuracyPct)).toBe("66.7%");
|
|
expect(formatAccuracy(penguin.accuracyPct, 1)).toBe("66.7");
|
|
expect(formatTokensM(penguin.tokensM, 2)).toBe("18.04M");
|
|
expect(formatUsd(penguin.costUsd, 3)).toBe("$0.552");
|
|
});
|
|
|
|
it("formats the coding suite at its published precision (CNY converted at 7:1)", () => {
|
|
const penguin = CODE_BENCH[0]!;
|
|
expect(formatAccuracy(penguin.accuracyPct, 2)).toBe("50.00");
|
|
expect(formatTokensM(penguin.tokensM, 2)).toBe("2.10M");
|
|
expect(formatUsd(penguin.costUsd, 3)).toBe("$0.041");
|
|
// 0.289 CNY / 7 -> ~0.0413 USD
|
|
expect(penguin.costUsd).toBeCloseTo(0.289 / 7, 3);
|
|
});
|
|
|
|
it("uses the unified framework names with PenguinHarness as the only emphasized row", () => {
|
|
for (const suite of [DATA_BENCH, CODE_BENCH]) {
|
|
expect(suite.map((r) => r.framework)).toEqual([
|
|
"PenguinHarness",
|
|
"Claude Code",
|
|
"OpenAI Codex",
|
|
]);
|
|
expect(suite.filter((r) => r.emphasized).map((r) => r.framework)).toEqual(["PenguinHarness"]);
|
|
for (const row of suite) expect(row.model).toBe("DeepSeek V4 Pro");
|
|
}
|
|
});
|
|
});
|