Files

18 lines
947 B
TypeScript

import test from 'node:test';
import assert from 'node:assert/strict';
import { announcementMotion } from '../../YouleNexus/assets/framework/presentation/lobby-model.ts';
test('announcement follows source byte width, speed, right entry and looping left exit',()=>{
const initial=announcementMotion('公告ABC',645,0);
assert.equal(initial.textWidth,105); // gblen=7, Game_Config.Notice.width=15
assert.equal(initial.duration,7.5); // source speed=0.1 px/ms
assert.equal(initial.left,645);
assert.equal(announcementMotion('公告ABC',645,1).left,545);
assert.ok(announcementMotion('公告ABC',645,7.49).left < -103);
assert.equal(announcementMotion('公告ABC',645,7.5).left,645);
assert.equal(announcementMotion('公告ABC',645,15).left,645);
assert.equal(announcementMotion('',645,0).visible,false);
assert.equal(announcementMotion(' ',645,0).visible,true);
assert.throws(()=>announcementMotion('公告',0,0),/width/);
});