52 lines
1.6 KiB
JavaScript
52 lines
1.6 KiB
JavaScript
'use strict'
|
|
/*
|
|
Open Rowing Monitor, https://github.com/laberning/openrowingmonitor
|
|
*/
|
|
import { test } from 'uvu'
|
|
import * as assert from 'uvu/assert'
|
|
import BufferBuilder from './BufferBuilder.js'
|
|
import log from 'loglevel'
|
|
log.setLevel(log.levels.SILENT)
|
|
|
|
test('valid max UInts should produce correct buffer', () => {
|
|
const buffer = new BufferBuilder()
|
|
buffer.writeUInt8(255)
|
|
buffer.writeUInt16LE(65535)
|
|
buffer.writeUInt24LE(16777215)
|
|
assert.equal(buffer.getBuffer(), Buffer.from([0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]))
|
|
})
|
|
|
|
test('valid min UInts should produce correct buffer', () => {
|
|
const buffer = new BufferBuilder()
|
|
buffer.writeUInt8(0)
|
|
buffer.writeUInt16LE(0)
|
|
buffer.writeUInt24LE(0)
|
|
assert.equal(buffer.getBuffer(), Buffer.from([0x0, 0x0, 0x0, 0x0, 0x0, 0x0]))
|
|
})
|
|
|
|
test('negative UInt8 should produce 1 bit buffer of 0x0', () => {
|
|
const buffer = new BufferBuilder()
|
|
buffer.writeUInt8(-1)
|
|
assert.equal(buffer.getBuffer(), Buffer.from([0x0]))
|
|
})
|
|
|
|
test('negative UInt16LE should produce 2 bit buffer of 0x0', () => {
|
|
const buffer = new BufferBuilder()
|
|
buffer.writeUInt16LE(-1)
|
|
assert.equal(buffer.getBuffer(), Buffer.from([0x0, 0x0]))
|
|
})
|
|
|
|
test('negative writeUInt24LE should produce 3 bit buffer of 0x0', () => {
|
|
const buffer = new BufferBuilder()
|
|
buffer.writeUInt24LE(-1)
|
|
assert.equal(buffer.getBuffer(), Buffer.from([0x0, 0x0, 0x0]))
|
|
})
|
|
|
|
test('invalid datatype value UInt16LE should produce 2 bit buffer of 0x0', () => {
|
|
const buffer = new BufferBuilder()
|
|
buffer.writeUInt16LE(new Map())
|
|
assert.equal(buffer.getBuffer(), Buffer.from([0x0, 0x0]))
|
|
})
|
|
|
|
test.run()
|