Add round 1 of tests
This commit is contained in:
parent
6a5fe5e024
commit
be463856db
5 changed files with 210 additions and 68 deletions
85
test/effects.js
vendored
Normal file
85
test/effects.js
vendored
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
var XMPlayer = window.XMPlayer;
|
||||
|
||||
// TODO:
|
||||
// - portamento 3xx
|
||||
// - vibrato 4xy
|
||||
// - volume slide Axy
|
||||
// - porta+vol 5xy
|
||||
// - etc etc
|
||||
|
||||
tests['test 0xy arpeggio'] = function(assert) {
|
||||
var xm = testdata.resetXMData();
|
||||
// [pat][row][channel]
|
||||
xm.patterns[0][0][0] = [48, 1, -1, 0, 0x4f]; // C-4 1 -- 04f
|
||||
XMPlayer.xm.tempo = 4;
|
||||
XMPlayer.nextTick();
|
||||
var ch = xm.channelinfo[0];
|
||||
assert.equal(ch.note, 48, 'note 0');
|
||||
assert.equal(ch.period, 1152, 'row 0 tick 0 period 0');
|
||||
XMPlayer.nextTick();
|
||||
assert.equal(ch.period, 1152 - 16*4, 'row 0 tick 1 period 4');
|
||||
XMPlayer.nextTick();
|
||||
assert.equal(ch.period, 1152 - 16*15, 'row 0 tick 2 period f');
|
||||
XMPlayer.nextTick();
|
||||
assert.equal(ch.period, 1152 - 16*0, 'row 0 tick 3 period 0');
|
||||
XMPlayer.nextTick();
|
||||
assert.equal(ch.period, 1152 - 16*0, 'row 1 tick 0 period 0');
|
||||
};
|
||||
|
||||
tests['test 1xx slide up'] = function(assert) {
|
||||
var xm = testdata.resetXMData();
|
||||
// [pat][row][channel]
|
||||
xm.patterns[0][0][0] = [48, 1, -1, 1, 0x01]; // C-4 1 -- 101
|
||||
xm.patterns[0][1][0] = [-1, -1, -1, 1, 0x00]; // --- -- -- 100
|
||||
XMPlayer.xm.tempo = 3;
|
||||
XMPlayer.nextTick();
|
||||
var ch = xm.channelinfo[0];
|
||||
assert.equal(ch.period, 1152, 'row 0 tick 0 period 0');
|
||||
XMPlayer.nextTick();
|
||||
assert.equal(ch.period, 1152 - 1, 'row 0 tick 1 period -1');
|
||||
XMPlayer.nextTick();
|
||||
assert.equal(ch.period, 1152 - 2, 'row 0 tick 2 period -2');
|
||||
XMPlayer.nextTick();
|
||||
assert.equal(ch.period, 1152 - 2, 'row 1 tick 0 period -2');
|
||||
XMPlayer.nextTick();
|
||||
assert.equal(ch.period, 1152 - 3, 'row 1 tick 1 period -3');
|
||||
};
|
||||
|
||||
tests['test 2xx slide down'] = function(assert) {
|
||||
var xm = testdata.resetXMData();
|
||||
// [pat][row][channel]
|
||||
xm.patterns[0][0][0] = [48, 1, -1, 2, 0x01]; // C-4 1 -- 201
|
||||
xm.patterns[0][1][0] = [-1, -1, -1, 2, 0x00]; // --- -- -- 200
|
||||
XMPlayer.xm.tempo = 3;
|
||||
XMPlayer.nextTick();
|
||||
var ch = xm.channelinfo[0];
|
||||
assert.equal(ch.period, 1152, 'row 0 tick 0 period 0');
|
||||
XMPlayer.nextTick();
|
||||
assert.equal(ch.period, 1152 + 1, 'row 0 tick 1 period -1');
|
||||
XMPlayer.nextTick();
|
||||
assert.equal(ch.period, 1152 + 2, 'row 0 tick 2 period -2');
|
||||
XMPlayer.nextTick();
|
||||
assert.equal(ch.period, 1152 + 2, 'row 1 tick 0 period -2');
|
||||
XMPlayer.nextTick();
|
||||
assert.equal(ch.period, 1152 + 3, 'row 1 tick 1 period -3');
|
||||
};
|
||||
|
||||
tests['test 3xx portamento'] = function(assert) {
|
||||
var xm = testdata.resetXMData();
|
||||
// [pat][row][channel]
|
||||
xm.patterns[0][0][0] = [48, 1, -1, 0, 0x00]; // C-4 1 -- 000
|
||||
xm.patterns[0][1][0] = [49, 1, -1, 3, 0x09]; // C#4 1 -- 309
|
||||
XMPlayer.xm.tempo = 3;
|
||||
XMPlayer.nextTick(); // row 0 tick 0
|
||||
var ch = xm.channelinfo[0];
|
||||
assert.equal(ch.period, 1152, 'row 0 tick 0 period 0');
|
||||
XMPlayer.nextTick(); // row 0 tick 1
|
||||
XMPlayer.nextTick(); // row 0 tick 2
|
||||
XMPlayer.nextTick(); // row 1 tick 0
|
||||
assert.equal(ch.period, 1152, 'row 1 tick 0 period 0');
|
||||
XMPlayer.nextTick();
|
||||
assert.equal(ch.period, 1152 - 9, 'row 1 tick 1 period -9');
|
||||
XMPlayer.nextTick();
|
||||
assert.equal(ch.period, 1152 - 16, 'row 1 tick 2 period -16');
|
||||
};
|
||||
|
||||
Loading…
Reference in a new issue