43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import test from "node:test";
|
|
|
|
import {
|
|
DEFAULT_ORBIT_DURATION_SECONDS,
|
|
DEFAULT_ORBIT_FPS,
|
|
orbitFrameOutputs
|
|
} from "./headlessOrbitFrames.js";
|
|
|
|
test("orbitFrameOutputs uses calm default orbit timing", () => {
|
|
const orbit = orbitFrameOutputs({
|
|
mode: "orbit",
|
|
outputs: [{ path: "orbit.gif" }]
|
|
});
|
|
|
|
assert.equal(orbit.fps, DEFAULT_ORBIT_FPS);
|
|
assert.equal(orbit.durationSeconds, DEFAULT_ORBIT_DURATION_SECONDS);
|
|
assert.equal(orbit.frameCount, 72);
|
|
assert.equal(orbit.outputs.length, 72);
|
|
assert.equal(orbit.outputs[0].camera, "-45:30");
|
|
assert.equal(orbit.outputs.at(-1).camera, "310:30");
|
|
});
|
|
|
|
test("orbitFrameOutputs honors explicit orbit timing", () => {
|
|
const orbit = orbitFrameOutputs({
|
|
mode: "orbit",
|
|
orbit: {
|
|
fps: 18,
|
|
durationSeconds: 4,
|
|
turns: 0.5,
|
|
startAzimuth: 10,
|
|
elevation: 20
|
|
},
|
|
outputs: [{ path: "orbit.gif" }]
|
|
});
|
|
|
|
assert.equal(orbit.fps, 18);
|
|
assert.equal(orbit.durationSeconds, 4);
|
|
assert.equal(orbit.frameCount, 72);
|
|
assert.equal(orbit.outputs[0].camera, "10:20");
|
|
assert.equal(orbit.outputs.at(-1).camera, "187.5:20");
|
|
});
|