1 | var chalk = require('chalk');
|
2 | var split = require('split');
|
3 | var through = require('through');
|
4 | var lastLine = '';
|
5 | var precision = 0.001;
|
6 | console.log('Testing timer accuracy...')
|
7 | process.stdin.pipe(split()).pipe(through(function(line) {
|
8 | line = chalk.stripColor(line);
|
9 | var calculated, reported;
|
10 | var lm = lastLine.match(/(\d+\.\d+).+about/);
|
11 | var m = line.match(/about (\d+\.\d+)/);
|
12 | if (m && lm) {
|
13 | calculated = parseFloat(m[1]);
|
14 | reported = parseFloat(lm[1]);
|
15 | if (Math.abs(calculated - reported) > precision) {
|
16 | console.error(chalk.bold.red(
|
17 | reported + ' !~ ' + calculated + ' -- bad'
|
18 | ));
|
19 | process.exit(1);
|
20 | }
|
21 | this.queue(chalk.bold.green(
|
22 | reported + ' ~ ' + calculated + ' -- ok\n'
|
23 | ));
|
24 | }
|
25 | lastLine = line;
|
26 | })).pipe(process.stdout);
|