123 lines
4.3 KiB
JavaScript
123 lines
4.3 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import { readFile } from "node:fs/promises";
|
|
import test, { after, before } from "node:test";
|
|
import { createServer } from "vite";
|
|
|
|
let server;
|
|
let fetchE46DTemporalFailureAudit;
|
|
|
|
before(async () => {
|
|
server = await createServer({
|
|
server: { middlewareMode: true },
|
|
appType: "custom",
|
|
logLevel: "silent",
|
|
});
|
|
({ fetchE46DTemporalFailureAudit } = await server.ssrLoadModule(
|
|
"/src/core/laboratory/e46dTemporalFailureAudit.ts",
|
|
));
|
|
});
|
|
|
|
after(async () => {
|
|
await server?.close();
|
|
});
|
|
|
|
test("E46D decodes ranked temporal clips without filesystem paths", async () => {
|
|
const e46dId = `e46d-temporal-failure-audit-${"a".repeat(64)}`;
|
|
const e46cId = `e46c-full-replay-world-tracks-${"b".repeat(64)}`;
|
|
const e26Id = `e10-integrated-perception-${"c".repeat(64)}`;
|
|
const clip = {
|
|
schema_version: "missioncore.e46d-temporal-review-clip/v1",
|
|
clip_id: `e46d-clip-01-${"d".repeat(20)}`,
|
|
rank: 1,
|
|
priority: "critical",
|
|
kind: "layer-blackout",
|
|
signal_id: `e46d-signal-${"d".repeat(20)}`,
|
|
start_seconds: 472.7,
|
|
event_start_seconds: 474.7,
|
|
event_end_seconds: 475.6,
|
|
end_seconds: 477.6,
|
|
start_frame: 4396,
|
|
end_frame: 4405,
|
|
route_track_ids: [1584, 1615],
|
|
world_track_ids: [],
|
|
evidence: {
|
|
before_object_count: 10,
|
|
minimum_object_count: 0,
|
|
after_object_count: 9,
|
|
duration_seconds: 1,
|
|
zero_frame_count: 10,
|
|
},
|
|
};
|
|
const metrics = {
|
|
route_frame_count: 4489,
|
|
route_span_seconds: 448.623,
|
|
object_observation_count: 20513,
|
|
route_track_count: 1461,
|
|
zero_object_frame_count: 600,
|
|
zero_object_frame_fraction: 0.133660058,
|
|
camera_held_observation_count: 5371,
|
|
camera_held_observation_fraction: 0.261833959,
|
|
detector_hold_episode_count: 785,
|
|
layer_blackout_episode_count: 71,
|
|
route_layer_gap_episode_count: 964,
|
|
route_id_rebirth_candidate_count: 11,
|
|
bbox_jump_episode_count: 3,
|
|
motion_state_flap_episode_count: 88,
|
|
world_binding_flap_episode_count: 238,
|
|
short_route_track_count: 572,
|
|
short_route_track_fraction: 0.391512663,
|
|
short_track_burst_episode_count: 48,
|
|
failure_signal_count: 2208,
|
|
review_clip_count: 1,
|
|
temporal_continuity_passed: false,
|
|
};
|
|
const fetcher = async () => new Response(JSON.stringify({
|
|
schema_version: "missioncore.e46d-temporal-failure-audit-catalog/v1",
|
|
items: [{
|
|
schema_version: "missioncore.e46d-temporal-failure-audit-view/v1",
|
|
result_id: e46dId,
|
|
created_at_utc: "2026-08-04T08:00:00Z",
|
|
source_e46c_result_id: e46cId,
|
|
source_e26_result_id: e26Id,
|
|
metrics,
|
|
acceptance: {
|
|
full_route_accounted: true,
|
|
temporal_continuity_passed: false,
|
|
independent_truth_available: false,
|
|
navigation_or_safety_accepted: false,
|
|
},
|
|
decision: {
|
|
temporal_regression_confirmed: true,
|
|
detector_gap_visible: true,
|
|
route_fragmentation_visible: true,
|
|
world_binding_instability_visible: true,
|
|
next_action: "rerun A/B",
|
|
},
|
|
limitations: ["diagnostic, not truth"],
|
|
review_clips: [clip],
|
|
ground_truth: false,
|
|
}],
|
|
}), { status: 200, headers: { "Content-Type": "application/json" } });
|
|
|
|
const result = await fetchE46DTemporalFailureAudit({ fetcher });
|
|
assert.equal(result.resultId, e46dId);
|
|
assert.equal(result.metrics.layerBlackoutEpisodeCount, 71);
|
|
assert.equal(result.reviewClips[0].kind, "layer-blackout");
|
|
assert.equal(result.reviewClips[0].evidence.before_object_count, 10);
|
|
assert.doesNotMatch(JSON.stringify(result), /Users|runtime|\\/);
|
|
});
|
|
|
|
test("E46D reuses the admitted E46C video viewer and canonical LAB template", async () => {
|
|
const [resultView, videoView] = await Promise.all([
|
|
readFile(new URL("../src/workspaces/laboratory/E46DTemporalFailureAuditResult.tsx", import.meta.url), "utf8"),
|
|
readFile(new URL("../src/workspaces/laboratory/E46CFullReplayWorldTracksVisual.tsx", import.meta.url), "utf8"),
|
|
]);
|
|
assert.match(resultView, /LaboratorySummary/);
|
|
assert.match(resultView, /LaboratoryEvidence/);
|
|
assert.match(resultView, /LaboratoryResultSummary/);
|
|
assert.match(resultView, /E46CFullReplayWorldTracksVisual/);
|
|
assert.match(resultView, /auditWindows=/);
|
|
assert.match(videoView, /автоматически найденному эпизоду E46D/);
|
|
assert.match(videoView, /RecordedVideoScene/);
|
|
});
|