@leverj/microtime.js
Version:
Utility to convert microtime into second, minute, etc
45 lines (40 loc) • 1.61 kB
JavaScript
const expect = require('expect.js')
const microTime = require('../index.js')
describe("micro time", function () {
describe("compare micro time accuracy", function () {
it("should be congruent with Date.now() within 10ms", function () {
for (let i = 0; i < 10; i++) {
const dateNowMs = Date.now()
const microNowMs = Math.round(microTime.micro() / 1e3)
const diffWithin10Ms = Math.floor((microNowMs - dateNowMs) / 10)
expect(diffWithin10Ms).to.eql(0)
}
})
it.skip("should give increasing values every time", function () {
this.timeout(0)
let prev = microTime.micro()
for (let i = 0; i < 10; i++) {
const currentReading = microTime.micro()
// if (i % 1 === 0) expect( currentReading).to.be.greaterThan(prev)
if(currentReading === prev) expect().fail(i + ': time did not change')
prev = currentReading
}
})
})
describe("time conversion", function () {
const tests = [
{d: "microToMilli", m: microTime.microToMilli, in: 1e3, out: 1},
{d: "microToSec", m: microTime.microToSec, in: 1e6, out: 1},
{d: "microToMin", m: microTime.microToMin, in: 60 * 1e6, out: 1},
{d: "milliToMicro", m: microTime.milliToMicro, in: 1, out: 1e3},
{d: "milliToSec", m: microTime.milliToSec, in: 1000, out: 1},
{d: "secToMicro", m: microTime.secToMicro, in: 1, out: 1e6},
{d: "minToSec", m: microTime.minToSec, in: 1, out: 60}
]
tests.forEach(test => {
it(test.d, function () {
expect(test.m(test.in)).to.be.equal(test.out)
})
})
})
})