{"version":3,"sources":["/Users/kevin/Dev/OpenSource/benchmark/benchmark-suite/src/OperationsTest.mjs"],"sourcesContent":["import humanize from 'human-format';\nimport Stats from 'stats-accumulator';\n\nexport default class OperationsTest {\n  constructor(name, fn) {\n    this.name = name;\n    this.fn = fn;\n  }\n\n  async run(options) {\n    const time = options.time;\n    await this.callibrate(options);\n    const startTime = Date.now();\n    const stats = { end: { name: this.name, stats: new Stats() } };\n\n    do {\n      const time = await this.runOnce(options);\n      stats.end.stats.update(time);\n    } while (Date.now() - startTime <= time);\n\n    return stats;\n  }\n\n  async callibrate(_options) {\n    await this.fn(() => {});\n    await this.fn(() => {});\n  }\n\n  async runOnce(_options) {\n    const now = Date.now();\n    await this.fn(() => {});\n    return Date.now() - now;\n  }\n\n  static metric(stats) {\n    return stats.n / stats.mean;\n  }\n\n  static formatStats(stats) {\n    const ops = stats.n / stats.mean;\n    const opsStdev = stats.n / Math.sqrt(stats.variance / stats.mean) / 100;\n    return `${humanize(ops)} ops/s ±${opsStdev.toFixed(1)}% (${stats.n} runs sampled)`;\n  }\n}\n"],"names":["humanize","Stats","OperationsTest","run","options","time","callibrate","startTime","Date","now","stats","end","name","runOnce","update","_options","fn","metric","n","mean","formatStats","ops","opsStdev","Math","sqrt","variance","toFixed","constructor"],"mappings":"AAAA,OAAOA,cAAc,eAAe;AACpC,OAAOC,WAAW,oBAAoB;AAEvB,IAAA,AAAMC,iBAAN,MAAMA;IAMnB,MAAMC,IAAIC,OAAO,EAAE;QACjB,MAAMC,OAAOD,QAAQC,IAAI;QACzB,MAAM,IAAI,CAACC,UAAU,CAACF;QACtB,MAAMG,YAAYC,KAAKC,GAAG;QAC1B,MAAMC,QAAQ;YAAEC,KAAK;gBAAEC,MAAM,IAAI,CAACA,IAAI;gBAAEF,OAAO,IAAIT;YAAQ;QAAE;QAE7D,GAAG;YACD,MAAMI,OAAO,MAAM,IAAI,CAACQ,OAAO,CAACT;YAChCM,MAAMC,GAAG,CAACD,KAAK,CAACI,MAAM,CAACT;QACzB,QAASG,KAAKC,GAAG,KAAKF,aAAaF,KAAM;QAEzC,OAAOK;IACT;IAEA,MAAMJ,WAAWS,QAAQ,EAAE;QACzB,MAAM,IAAI,CAACC,EAAE,CAAC,KAAO;QACrB,MAAM,IAAI,CAACA,EAAE,CAAC,KAAO;IACvB;IAEA,MAAMH,QAAQE,QAAQ,EAAE;QACtB,MAAMN,MAAMD,KAAKC,GAAG;QACpB,MAAM,IAAI,CAACO,EAAE,CAAC,KAAO;QACrB,OAAOR,KAAKC,GAAG,KAAKA;IACtB;IAEA,OAAOQ,OAAOP,KAAK,EAAE;QACnB,OAAOA,MAAMQ,CAAC,GAAGR,MAAMS,IAAI;IAC7B;IAEA,OAAOC,YAAYV,KAAK,EAAE;QACxB,MAAMW,MAAMX,MAAMQ,CAAC,GAAGR,MAAMS,IAAI;QAChC,MAAMG,WAAWZ,MAAMQ,CAAC,GAAGK,KAAKC,IAAI,CAACd,MAAMe,QAAQ,GAAGf,MAAMS,IAAI,IAAI;QACpE,OAAO,GAAGnB,SAASqB,KAAK,QAAQ,EAAEC,SAASI,OAAO,CAAC,GAAG,GAAG,EAAEhB,MAAMQ,CAAC,CAAC,cAAc,CAAC;IACpF;IAtCAS,YAAYf,IAAI,EAAEI,EAAE,CAAE;QACpB,IAAI,CAACJ,IAAI,GAAGA;QACZ,IAAI,CAACI,EAAE,GAAGA;IACZ;AAoCF;AAxCA,SAAqBd,4BAwCpB"}