feat(perception): add PointPillars visual audit

This commit is contained in:
DCCONSTRUCTIONS
2026-07-31 11:47:04 +03:00
parent 8fe6184c52
commit a2cb50d1ad
16 changed files with 2351 additions and 4 deletions
@@ -46,6 +46,18 @@ const e40CaseReviewUrl = new URL(
"../src/workspaces/laboratory/E40CaseReview.tsx",
import.meta.url,
);
const l3ResultUrl = new URL(
"../src/workspaces/laboratory/L3PointPillarsResult.tsx",
import.meta.url,
);
const l3VisualAuditUrl = new URL(
"../src/workspaces/laboratory/L3PointPillarsVisualAudit.tsx",
import.meta.url,
);
const l3SceneUrl = new URL(
"../src/workspaces/laboratory/L3PointPillarsScene.tsx",
import.meta.url,
);
const e35StylesUrl = new URL(
"../src/styles/e35-degradation-recovery.css",
import.meta.url,
@@ -154,6 +166,30 @@ test("bounded LAB result modules use the versioned shared report anatomy", async
}
});
test("L3 visual audit binds the sealed metrics to one lazy 3D/BEV viewer", async () => {
const [result, audit, scene, advanced] = await Promise.all([
readFile(l3ResultUrl, "utf8"),
readFile(l3VisualAuditUrl, "utf8"),
readFile(l3SceneUrl, "utf8"),
readFile(advancedLaboratoryResultUrl, "utf8"),
]);
assert.match(result, /<LaboratoryWorkTemplate/);
assert.match(result, /<LaboratoryEvidence/);
assert.match(result, /<LaboratoryResultSummary/);
assert.match(result, /Производная не меняет метрики/);
assert.match(audit, /fetchL3PointPillarsVisualFrame/);
assert.match(audit, /\{ value: "3d", label: "3D" \}/);
assert.match(audit, /\{ value: "bev", label: "BEV" \}/);
assert.match(audit, /Предыдущий кадр L3/);
assert.match(audit, /Следующий кадр L3/);
assert.match(scene, /new THREE\.OrthographicCamera/);
assert.match(scene, /"false-positive"/);
assert.match(scene, /"false-negative"/);
assert.match(advanced, /id: "l3-pointpillars-visual-audit"/);
assert.match(advanced, /<L3PointPillarsResult/);
});
test("E33 explains the experiment, its method and its retained limits", async () => {
const [presentationSource, e33Source] = await Promise.all([
readFile(presentationSourceUrl, "utf8"),