UNPKG

benchmark-suite

Version:
1 lines 3.4 kB
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/benchmark/benchmark-suite/src/index.mjs"],"sourcesContent":["import EventEmitter from 'eventemitter3';\nimport Memory from './MemoryTest.mjs';\nimport Operations from './OperationsTest.mjs';\n\nconst TESTS = {\n Memory,\n Operations,\n};\n\nfunction toJSON(results) {\n const json = {};\n for (const key in results) {\n json[key] = { name: results[key].name };\n json[key].stats = results[key].stats.toJSON();\n }\n return json;\n}\n\nexport { default as MemoryTest } from './MemoryTest.mjs';\nexport { default as OperationsTest } from './OperationsTest.mjs';\n\nexport default class Suite extends EventEmitter {\n constructor(name, type) {\n super();\n this.name = name;\n if (!type) throw new Error('Suite needs a test type');\n this.type = type;\n this.Test = TESTS[this.type];\n if (!this.Test) throw new Error(`Suite test type not recognized ${type}`);\n this.tests = [];\n }\n\n add(name, fn) {\n this.tests.push(new this.Test(name, fn));\n }\n\n async run(options) {\n if (!options.time) throw new Error('Missing time option');\n const results = {};\n\n for (const test of this.tests) {\n const result = await test.run(options);\n for (const key in result) {\n if (!results[key] || this.Test.metric(results[key].stats) < this.Test.metric(result[key].stats)) results[key] = result[key];\n }\n this.emit('cycle', toJSON(result));\n }\n this.emit('complete', toJSON(results));\n }\n\n formatStats(result) {\n return this.Test.formatStats(result);\n }\n}\n"],"names":["EventEmitter","Memory","Operations","TESTS","toJSON","results","json","key","name","stats","default","MemoryTest","OperationsTest","Suite","add","fn","tests","push","Test","run","options","time","Error","test","result","metric","emit","formatStats","constructor","type"],"mappings":"AAAA,OAAOA,kBAAkB,gBAAgB;AACzC,OAAOC,YAAY,mBAAmB;AACtC,OAAOC,gBAAgB,uBAAuB;AAE9C,MAAMC,QAAQ;IACZF;IACAC;AACF;AAEA,SAASE,OAAOC,OAAO;IACrB,MAAMC,OAAO,CAAC;IACd,IAAK,MAAMC,OAAOF,QAAS;QACzBC,IAAI,CAACC,IAAI,GAAG;YAAEC,MAAMH,OAAO,CAACE,IAAI,CAACC,IAAI;QAAC;QACtCF,IAAI,CAACC,IAAI,CAACE,KAAK,GAAGJ,OAAO,CAACE,IAAI,CAACE,KAAK,CAACL,MAAM;IAC7C;IACA,OAAOE;AACT;AAEA,SAASI,WAAWC,UAAU,QAAQ,mBAAmB;AACzD,SAASD,WAAWE,cAAc,QAAQ,uBAAuB;AAElD,IAAA,AAAMC,QAAN,MAAMA,cAAcb;IAWjCc,IAAIN,IAAI,EAAEO,EAAE,EAAE;QACZ,IAAI,CAACC,KAAK,CAACC,IAAI,CAAC,IAAI,IAAI,CAACC,IAAI,CAACV,MAAMO;IACtC;IAEA,MAAMI,IAAIC,OAAO,EAAE;QACjB,IAAI,CAACA,QAAQC,IAAI,EAAE,MAAM,IAAIC,MAAM;QACnC,MAAMjB,UAAU,CAAC;QAEjB,KAAK,MAAMkB,QAAQ,IAAI,CAACP,KAAK,CAAE;YAC7B,MAAMQ,SAAS,MAAMD,KAAKJ,GAAG,CAACC;YAC9B,IAAK,MAAMb,OAAOiB,OAAQ;gBACxB,IAAI,CAACnB,OAAO,CAACE,IAAI,IAAI,IAAI,CAACW,IAAI,CAACO,MAAM,CAACpB,OAAO,CAACE,IAAI,CAACE,KAAK,IAAI,IAAI,CAACS,IAAI,CAACO,MAAM,CAACD,MAAM,CAACjB,IAAI,CAACE,KAAK,GAAGJ,OAAO,CAACE,IAAI,GAAGiB,MAAM,CAACjB,IAAI;YAC7H;YACA,IAAI,CAACmB,IAAI,CAAC,SAAStB,OAAOoB;QAC5B;QACA,IAAI,CAACE,IAAI,CAAC,YAAYtB,OAAOC;IAC/B;IAEAsB,YAAYH,MAAM,EAAE;QAClB,OAAO,IAAI,CAACN,IAAI,CAACS,WAAW,CAACH;IAC/B;IA9BAI,YAAYpB,IAAI,EAAEqB,IAAI,CAAE;QACtB,KAAK;QACL,IAAI,CAACrB,IAAI,GAAGA;QACZ,IAAI,CAACqB,MAAM,MAAM,IAAIP,MAAM;QAC3B,IAAI,CAACO,IAAI,GAAGA;QACZ,IAAI,CAACX,IAAI,GAAGf,KAAK,CAAC,IAAI,CAAC0B,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,CAACX,IAAI,EAAE,MAAM,IAAII,MAAM,CAAC,+BAA+B,EAAEO,MAAM;QACxE,IAAI,CAACb,KAAK,GAAG,EAAE;IACjB;AAuBF;AAhCA,SAAqBH,mBAgCpB"}