import { test } from 'node:test'; import assert from 'node:assert/strict'; import { frameFileName, padWidth } from '../../YouleNexus/assets/framework/core/frame-file-name.ts'; test('padWidth: 9帧→1位,12帧→2位,100帧→3位', () => { assert.equal(padWidth(9), 1); assert.equal(padWidth(12), 2); assert.equal(padWidth(100), 3); assert.equal(padWidth(1), 1); }); test('frameFileName: 1基+补零,字典序 = 帧序', () => { assert.equal(frameFileName('atlas-login/00014', 1, 12), 'atlas-login/00014_01.png'); assert.equal(frameFileName('atlas-login/00014', 10, 12), 'atlas-login/00014_10.png'); const names = [frameFileName('atlas-login/00014', 2, 12), frameFileName('atlas-login/00014', 10, 12)]; assert.deepEqual([...names].sort(), ['atlas-login/00014_02.png', 'atlas-login/00014_10.png']); }); test('frameFileName: FrameIndex=0 按 1 处理(旧引擎 2 个对象如此)', () => { assert.equal(frameFileName('atlas-login/00014', 0, 12), 'atlas-login/00014_01.png'); }); test('frameFileName: 单帧图(prefix 不带下划线)直接拼接 .png', () => { assert.equal(frameFileName('atlas-login/00019', 1, 1), 'atlas-login/00019.png'); });