|
|
@@ -4,16 +4,27 @@ const Clock = require('../src/clock.js'); |
|
|
|
|
|
|
|
describe("Clock Tests", function(){ |
|
|
|
var count = 0; |
|
|
|
var count2 = 0; |
|
|
|
var tick = ()=>{count += 1;}; |
|
|
|
var tick2 = () =>{count2 += 1;}; |
|
|
|
var clk = (new Clock()).clk(tick); |
|
|
|
var clk2 = (new Clock(2)).clk(tick).clk(tick2, 1); |
|
|
|
|
|
|
|
function speedTest(hz){ |
|
|
|
let stime = (new Date()).getTime(); |
|
|
|
function speedTest(hz, c){ |
|
|
|
c = (c) ? c : 1; |
|
|
|
let stime = Date.now(); |
|
|
|
let ltime = stime; |
|
|
|
let dt = 0; |
|
|
|
clk.hz = hz; |
|
|
|
let _clk = (c === 1) ? clk : clk2; |
|
|
|
_clk.hz = hz; |
|
|
|
while (count < hz && dt < 1000){ |
|
|
|
clk.tick(); |
|
|
|
dt = ((new Date()).getTime()) - stime; |
|
|
|
let ctime = Date.now(); |
|
|
|
let _dt = ctime - ltime; |
|
|
|
if (_dt > 0){ |
|
|
|
ltime = ctime; |
|
|
|
_clk.tick(_dt); |
|
|
|
} |
|
|
|
dt = Date.now() - stime; |
|
|
|
} |
|
|
|
return dt; |
|
|
|
} |
|
|
@@ -25,6 +36,7 @@ describe("Clock Tests", function(){ |
|
|
|
}); |
|
|
|
|
|
|
|
it("4Khz for approx. 1 second", function(){ |
|
|
|
count = 0; |
|
|
|
let ts = 4000; |
|
|
|
let d = ts * 0.01; |
|
|
|
let dt = speedTest(ts); |
|
|
@@ -35,6 +47,7 @@ describe("Clock Tests", function(){ |
|
|
|
}); |
|
|
|
|
|
|
|
it("4Mhz for approx. 1 second", function(){ |
|
|
|
count = 0; |
|
|
|
let ts = 4000000; |
|
|
|
let d = ts * 0.01; |
|
|
|
let dt = speedTest(ts); |
|
|
@@ -43,4 +56,18 @@ describe("Clock Tests", function(){ |
|
|
|
expect(dt).to.be.gt(990); |
|
|
|
expect(dt).to.be.lt(1010); |
|
|
|
}); |
|
|
|
|
|
|
|
it("4khz w/two layers for approx. 1 second", function(){ |
|
|
|
count = 0; |
|
|
|
count2 = 0; |
|
|
|
let ts = 4000; |
|
|
|
let d = ts * 0.01; |
|
|
|
let dt = speedTest(ts, 2); |
|
|
|
expect(count).to.be.gt((ts*0.5) - dt); |
|
|
|
expect(count).to.be.lt((ts*0.5) + dt); |
|
|
|
expect(count2).to.be.gt((ts*0.5) - dt); |
|
|
|
expect(count2).to.be.lt((ts*0.5) + dt); |
|
|
|
expect(dt).to.be.gt(990); |
|
|
|
expect(dt).to.be.lt(1010); |
|
|
|
}); |
|
|
|
}); |