정식 3D 제작 완료 기록과 기존 합성 구성 준비
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import path from 'node:path';
|
||||
import {artifact, prepareData, projectDir, read, validateInputs} from './data.mjs';
|
||||
|
||||
const project = read(path.join(projectDir, 'project.json'));
|
||||
const cuts = artifact('07-cuts').payload.cuts;
|
||||
const images = artifact('11-images').payload.result.frames;
|
||||
const scenes = artifact('08-scenes').payload;
|
||||
validateInputs(project, cuts, images, scenes);
|
||||
const data = prepareData();
|
||||
assert.equal(data.clips.reduce((n, c) => n + c.frames, 0), 5528);
|
||||
for (const c of data.clips.filter((c) => c.boxes)) for (const box of c.boxes) {
|
||||
assert(box[1] >= 660 && box[2] < 430, `${c.id}: guide pixels confused with droplet body`);
|
||||
}
|
||||
for (const mutate of [
|
||||
(p, c, i) => {p.reviews.find((r) => r.review_id === 'scenes').decision = 'pending';},
|
||||
(p, c, i) => {i.pop();},
|
||||
(p, c, i) => {i[0].media.verified = false;},
|
||||
(p, c, i) => {c[1].start_ms += 20;},
|
||||
(p, c, i) => {i.find((f) => f.frame_id === 'c02-start').media.path = 'wrong.png';},
|
||||
]) {
|
||||
const [p, c, i] = structuredClone([project, cuts, images]);
|
||||
mutate(p, c, i);
|
||||
assert.throws(() => validateInputs(p, c, i, scenes));
|
||||
}
|
||||
console.log('Actual inputs and failure checks passed: missing approval/frame, unverified media, timing gap and discontinuity.');
|
||||
Reference in New Issue
Block a user