54 lines
1.2 KiB
JavaScript
54 lines
1.2 KiB
JavaScript
const test = require('tap').test
|
|
const BitBuffer = require('core/bit-buffer')
|
|
const NumericData = require('core/numeric-data')
|
|
const Mode = require('core/mode')
|
|
|
|
const testData = [
|
|
{
|
|
data: 8,
|
|
length: 1,
|
|
bitLength: 4,
|
|
dataBit: [128]
|
|
},
|
|
{
|
|
data: 16,
|
|
length: 2,
|
|
bitLength: 7,
|
|
dataBit: [32]
|
|
},
|
|
{
|
|
data: 128,
|
|
length: 3,
|
|
bitLength: 10,
|
|
dataBit: [32, 0]
|
|
},
|
|
{
|
|
data: 12345,
|
|
length: 5,
|
|
bitLength: 17,
|
|
|
|
// (123)d -> (0001111011)b 10bit
|
|
// (45)d -> (0101101)b 7bit
|
|
//
|
|
// (00011110)b -> (30)d
|
|
// (11010110)b -> (214)d
|
|
// (10000000)b -> (128)d
|
|
dataBit: [30, 214, 128]
|
|
}
|
|
]
|
|
|
|
test('Numeric Data', function (t) {
|
|
testData.forEach(function (data) {
|
|
const numericData = new NumericData(data.data)
|
|
|
|
t.equal(numericData.mode, Mode.NUMERIC, 'Mode should be NUMERIC')
|
|
t.equal(numericData.getLength(), data.length, 'Should return correct length')
|
|
t.equal(numericData.getBitsLength(), data.bitLength, 'Should return correct bit length')
|
|
|
|
const bitBuffer = new BitBuffer()
|
|
numericData.write(bitBuffer)
|
|
t.deepEqual(bitBuffer.buffer, data.dataBit, 'Should write correct data to buffer')
|
|
})
|
|
|
|
t.end()
|
|
})
|