Files
llm-wiki/packages/graph-engine/test/large-fixtures.test.ts
T
2026-07-12 21:26:08 +08:00

58 lines
2.7 KiB
TypeScript

import { describe, it } from "node:test";
import assert from "node:assert/strict";
import {
generateLargeGraphFixture,
LARGE_GRAPH_FIXTURE_SPECS,
summarizeLargeGraphFixture
} from "./large-graph-fixtures";
describe("large graph fixture generation", () => {
it("generates every required graph shape with deterministic metadata", () => {
for (const spec of LARGE_GRAPH_FIXTURE_SPECS) {
const fixture = generateLargeGraphFixture(spec.id);
assert.equal(fixture.metadata.id, spec.id);
assert.equal(fixture.metadata.nodes, spec.nodes, `${spec.id} node count`);
assert.equal(fixture.metadata.edges, spec.edges, `${spec.id} edge count`);
assert.equal(fixture.metadata.communities, spec.communities, `${spec.id} community count`);
assert.equal(fixture.metadata.largest_community, spec.largestCommunity, `${spec.id} largest community`);
assert.equal(fixture.metadata.search_hits, spec.searchHits, `${spec.id} search-hit count`);
assert.equal(fixture.metadata.pin_count, spec.pinCount, `${spec.id} Pin count`);
assert.equal(fixture.metadata.oversized_community, spec.oversizedCommunity, `${spec.id} oversized flag`);
assert.deepEqual(
summarizeLargeGraphFixture(spec.id, fixture.data, fixture.pins),
fixture.metadata,
`${spec.id} metadata should be reproducible from graph data`
);
}
});
it("keeps generated output stable for the same fixture id", () => {
const first = generateLargeGraphFixture("nodes-1000-sparse");
const second = generateLargeGraphFixture("nodes-1000-sparse");
assert.deepEqual(second.metadata, first.metadata);
assert.deepEqual(second.data.nodes.slice(0, 20), first.data.nodes.slice(0, 20));
assert.deepEqual(second.data.edges.slice(0, 40), first.data.edges.slice(0, 40));
assert.deepEqual(second.pins, first.pins);
});
it("keeps the 1000 node many-community fixture inside the Sigma global route limit", () => {
const fixture = generateLargeGraphFixture("nodes-1000-many-communities");
assert.equal(fixture.metadata.nodes, 1000);
assert.equal(fixture.metadata.communities, 200);
assert.equal(fixture.metadata.largest_community, 5);
assert.equal(fixture.metadata.oversized_community, false);
assert.equal(fixture.data.meta.degraded, false);
});
it("does not require committed generated graph artifacts", () => {
const fixture = generateLargeGraphFixture("nodes-10000-high-edge");
assert.equal(fixture.data.nodes.length, 10000);
assert.equal(fixture.data.edges.length, 90000);
assert.ok(fixture.data.meta.degraded, "large generated fixtures should be marked degraded for current DOM/SVG baseline");
assert.equal(Object.keys(fixture.pins).length, 300);
});
});