replaces unit testing framework ava -> uvu

This commit is contained in:
Lars Berning 2021-03-26 23:37:36 +00:00
parent c3d7d64a51
commit 1c135a0c1f
4 changed files with 295 additions and 2254 deletions

View File

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

View File

@ -2,37 +2,39 @@
/* /*
Open Rowing Monitor, https://github.com/laberning/openrowingmonitor Open Rowing Monitor, https://github.com/laberning/openrowingmonitor
*/ */
import test from 'ava' import { test } from 'uvu'
import * as assert from 'uvu/assert'
import { createMovingIntervalAverager } from './MovingIntervalAverager.js' import { createMovingIntervalAverager } from './MovingIntervalAverager.js'
test('average of a datapoint with duration of averager is equal to datapoint', t => { test('average of a datapoint with duration of averager is equal to datapoint', () => {
const minuteAverager = createMovingIntervalAverager(10) const minuteAverager = createMovingIntervalAverager(10)
minuteAverager.pushValue(5, 10) minuteAverager.pushValue(5, 10)
t.is(minuteAverager.average(), 5) assert.is(minuteAverager.average(), 5)
}) })
test('average of a datapoint with half duration of averager is double to datapoint', t => { test('average of a datapoint with half duration of averager is double to datapoint', () => {
const minuteAverager = createMovingIntervalAverager(20) const minuteAverager = createMovingIntervalAverager(20)
minuteAverager.pushValue(5, 10) minuteAverager.pushValue(5, 10)
t.is(minuteAverager.average(), 10) assert.is(minuteAverager.average(), 10)
}) })
test('average of two identical datapoints with half duration of averager is equal to datapoint sum', t => { test('average of two identical datapoints with half duration of averager is equal to datapoint sum', () => {
const minuteAverager = createMovingIntervalAverager(20) const minuteAverager = createMovingIntervalAverager(20)
minuteAverager.pushValue(5, 10) minuteAverager.pushValue(5, 10)
minuteAverager.pushValue(5, 10) minuteAverager.pushValue(5, 10)
t.is(minuteAverager.average(), 10) assert.is(minuteAverager.average(), 10)
}) })
test('average does not consider datapoints that are outside of duration', t => { test('average does not consider datapoints that are outside of duration', () => {
const minuteAverager = createMovingIntervalAverager(20) const minuteAverager = createMovingIntervalAverager(20)
minuteAverager.pushValue(10, 10) minuteAverager.pushValue(10, 10)
minuteAverager.pushValue(5, 10) minuteAverager.pushValue(5, 10)
minuteAverager.pushValue(5, 10) minuteAverager.pushValue(5, 10)
t.is(minuteAverager.average(), 10) assert.is(minuteAverager.average(), 10)
}) })
test('average works with lots of values', t => { test('average works with lots of values', () => {
// one hour // one hour
const minuteAverager = createMovingIntervalAverager(3000) const minuteAverager = createMovingIntervalAverager(3000)
for (let i = 0; i < 1000; i++) { for (let i = 0; i < 1000; i++) {
@ -44,5 +46,7 @@ test('average works with lots of values', t => {
for (let i = 0; i < 1000; i++) { for (let i = 0; i < 1000; i++) {
minuteAverager.pushValue(30, 2) minuteAverager.pushValue(30, 2)
} }
t.is(minuteAverager.average(), 50000) assert.is(minuteAverager.average(), 50000)
}) })
test.run()

2516
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -20,7 +20,8 @@
"dev": "npm-run-all --parallel start build:watch", "dev": "npm-run-all --parallel start build:watch",
"build": "snowpack build", "build": "snowpack build",
"build:watch": "snowpack build --watch", "build:watch": "snowpack build --watch",
"test": "ava" "test": "uvu",
"test:watch": "uvu --watch"
}, },
"ava": { "ava": {
"verbose": true "verbose": true
@ -36,7 +37,6 @@
"ws": "^7.4.4" "ws": "^7.4.4"
}, },
"devDependencies": { "devDependencies": {
"ava": "^3.15.0",
"eslint": "^7.22.0", "eslint": "^7.22.0",
"eslint-config-standard": "^16.0.2", "eslint-config-standard": "^16.0.2",
"eslint-plugin-import": "^2.22.1", "eslint-plugin-import": "^2.22.1",
@ -46,6 +46,8 @@
"husky": "^5.1.3", "husky": "^5.1.3",
"markdownlint-cli": "^0.27.1", "markdownlint-cli": "^0.27.1",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"snowpack": "^3.1.2" "snowpack": "^3.1.2",
"uvu": "^0.5.1",
"uvu-watch": "^1.0.11"
} }
} }