| const expect = require('chai').expect; | |||||
| const sinon = require('sinon'); | |||||
| const Clock = require('../src/common/clock.js'); | |||||
| describe("Clock Tests", function(){ | |||||
| var count = 0; | |||||
| var tick = ()=>{count += 1;}; | |||||
| var clk = (new Clock()).clk(tick); | |||||
| function speedTest(hz){ | |||||
| let stime = (new Date()).getTime(); | |||||
| let dt = 0; | |||||
| clk.hz = hz; | |||||
| while (count < hz && dt < 1000){ | |||||
| clk.tick(); | |||||
| dt = ((new Date()).getTime()) - stime; | |||||
| } | |||||
| return dt; | |||||
| } | |||||
| it("4hz for approx. 1 second", function(){ | |||||
| let dt = speedTest(4); | |||||
| expect(count).to.equal(4); | |||||
| expect(dt).to.be.gt(750); | |||||
| }); | |||||
| it("4Khz for approx. 1 second", function(){ | |||||
| let dt = speedTest(4000); | |||||
| expect(count).to.be.lt(4004); | |||||
| expect(dt).to.be.lt(1000); | |||||
| }); | |||||
| it("4Mhz for approx. 1 second", function(){ | |||||
| let dt = speedTest(4000000); | |||||
| expect(count).to.be.lt(4000004); | |||||
| expect(dt).to.be.lt(1000); | |||||
| }); | |||||
| }); |