benchmark-suite
Version:
A simple suite of benchmarking tests
1 lines • 3.7 kB
Source Map (JSON)
{"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":["MemoryTest","OperationsTest","Suite","TESTS","Memory","Operations","toJSON","results","json","key","name","stats","type","Error","Test","tests","add","fn","push","run","options","test","result","time","metric","emit","formatStats","EventEmitter"],"mappings":";;;;;;;;;;;IAkBoBA,UAAU;eAAVA,mBAAU;;IACVC,cAAc;eAAdA,uBAAc;;;eAEbC;;;oEArBI;iEACN;qEACI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEvB,IAAMC,QAAQ;IACZC,QAAAA,mBAAM;IACNC,YAAAA,uBAAU;AACZ;AAEA,SAASC,OAAOC,OAAO;IACrB,IAAMC,OAAO,CAAC;IACd,IAAK,IAAMC,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;AAKe,IAAA,AAAMN,sBAAN;;cAAMA;aAAAA,MACPQ,IAAI,EAAEE,IAAI;gCADHV;;gBAEjB,kBAFiBA;QAGjB,MAAKQ,IAAI,GAAGA;QACZ,IAAI,CAACE,MAAM,MAAM,IAAIC,MAAM;QAC3B,MAAKD,IAAI,GAAGA;QACZ,MAAKE,IAAI,GAAGX,KAAK,CAAC,MAAKS,IAAI,CAAC;QAC5B,IAAI,CAAC,MAAKE,IAAI,EAAE,MAAM,IAAID,MAAM,AAAC,kCAAsC,OAALD;QAClE,MAAKG,KAAK,GAAG,EAAE;;;iBAREb;IAWnBc,OAAAA,GAEC,GAFDA,SAAAA,IAAIN,IAAI,EAAEO,EAAE;QACV,IAAI,CAACF,KAAK,CAACG,IAAI,CAAC,IAAI,IAAI,CAACJ,IAAI,CAACJ,MAAMO;IACtC;IAEA,OAAME,GAYL,GAZD,SAAMA,IAAIC,OAAO;;eAAjB,oBAAA;gBAEQb,SAED,2BAAA,mBAAA,gBAAA,WAAA,OAAMc,MACHC,QACKb;;;;wBALb,IAAI,CAACW,QAAQG,IAAI,EAAE,MAAM,IAAIV,MAAM;wBAC7BN,UAAU,CAAC;wBAEZ,kCAAA,2BAAA;;;;;;;;;wBAAA,YAAc,MAAKQ,KAAK;;;+BAAxB,6BAAA,QAAA;;;;wBAAMM,OAAN;wBACY;;4BAAMA,KAAKF,GAAG,CAACC;;;wBAAxBE,SAAS;wBACf,IAAK,IAAMb,OAAOa,OAAQ;4BACxB,IAAI,CAACf,OAAO,CAACE,IAAI,IAAI,MAAKK,IAAI,CAACU,MAAM,CAACjB,OAAO,CAACE,IAAI,CAACE,KAAK,IAAI,MAAKG,IAAI,CAACU,MAAM,CAACF,MAAM,CAACb,IAAI,CAACE,KAAK,GAAGJ,OAAO,CAACE,IAAI,GAAGa,MAAM,CAACb,IAAI;wBAC7H;wBACA,MAAKgB,IAAI,CAAC,SAASnB,OAAOgB;;;wBALvB;;;;;;;;;;;;wBAAA;wBAAA;;;;;;;iCAAA,6BAAA;gCAAA;;;gCAAA;sCAAA;;;;;;;wBAOL,MAAKG,IAAI,CAAC,YAAYnB,OAAOC;;;;;;QAC/B;;IAEAmB,OAAAA,WAEC,GAFDA,SAAAA,YAAYJ,MAAM;QAChB,OAAO,IAAI,CAACR,IAAI,CAACY,WAAW,CAACJ;IAC/B;WA/BmBpB;EAAcyB,sBAAY"}