6 var benchmark = require('benchmark')
7 , colors = require('colors')
10 , suite = new benchmark.Suite('Decode packet');
12 suite.add('string', function () {
13 parser.decodePacket('4:::"2"');
16 suite.add('event', function () {
17 parser.decodePacket('5:::{"name":"woot"}');
20 suite.add('event+ack', function () {
21 parser.decodePacket('5:1+::{"name":"tobi"}');
24 suite.add('event+data', function () {
25 parser.decodePacket('5:::{"name":"edwald","args":[{"a": "b"},2,"3"]}');
28 suite.add('heartbeat', function () {
29 parser.decodePacket('2:::');
32 suite.add('error', function () {
33 parser.decodePacket('7:::2+0');
36 var payload = parser.encodePayload([
37 parser.encodePacket({ type: 'message', data: '5', endpoint: '' })
38 , parser.encodePacket({ type: 'message', data: '53d', endpoint: '' })
39 , parser.encodePacket({ type: 'message', data: 'foobar', endpoint: '' })
40 , parser.encodePacket({ type: 'message', data: 'foobarbaz', endpoint: '' })
41 , parser.encodePacket({ type: 'message', data: 'foobarbazfoobarbaz', endpoint: '' })
42 , parser.encodePacket({ type: 'message', data: 'foobarbaz', endpoint: '' })
43 , parser.encodePacket({ type: 'message', data: 'foobar', endpoint: '' })
46 suite.add('payload', function () {
47 parser.decodePayload(payload);
50 suite.on('cycle', function (bench, details) {
51 console.log('\n' + suite.name.grey, details.name.white.bold);
53 details.hz.toFixed(2).cyan + ' ops/sec'.grey
54 , details.count.toString().white + ' times executed'.grey
55 , 'benchmark took '.grey + details.times.elapsed.toString().white + ' sec.'.grey
63 module.exports = suite;