{"version":3,"sources":["perf_util.es6"],"names":[],"mappings":"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","file":"angular2/src/test_lib/perf_util.js","sourcesContent":["var testUtil = require('./e2e_util');\nvar benchpress = require('benchpress/benchpress');\n\nmodule.exports = {\n  runClickBenchmark: runClickBenchmark,\n  runBenchmark: runBenchmark,\n  verifyNoBrowserErrors: testUtil.verifyNoBrowserErrors\n};\n\nfunction runClickBenchmark(config) {\n  var buttons = config.buttons.map(function(selector) {\n    return $(selector);\n  });\n  config.work = function() {\n    buttons.forEach(function(button) {\n      button.click();\n    });\n  }\n  return runBenchmark(config);\n}\n\nfunction runBenchmark(config) {\n  return getScaleFactor(browser.params.benchmark.scaling).then(function(scaleFactor) {\n    var description = {};\n    var urlParams = [];\n    if (config.params) {\n      config.params.forEach(function(param) {\n        var name = param.name;\n        var value = applyScaleFactor(param.value, scaleFactor, param.scale);\n        urlParams.push(name + '=' + value);\n        description[name] = value;\n      });\n    }\n    var url = encodeURI(config.url + '?' + urlParams.join('&'));\n    return browser.get(url).then(function() {\n      benchpressRunner.sample({\n        id: config.id,\n        execute: config.work,\n        prepare: config.prepare,\n        microMetrics: config.microMetrics,\n        bindings: [\n          benchpress.bind(benchpress.Options.SAMPLE_DESCRIPTION).toValue(description)\n        ]\n      });\n    });\n  });\n}\n\nfunction getScaleFactor(possibleScalings) {\n  return browser.executeScript('return navigator.userAgent').then(function(userAgent) {\n    var scaleFactor = 1;\n    possibleScalings.forEach(function(entry) {\n      if (userAgent.match(entry.userAgent)) {\n        scaleFactor = entry.value;\n      }\n    });\n    return scaleFactor;\n  });\n}\n\nfunction applyScaleFactor(value, scaleFactor, method) {\n  if (method === 'log2') {\n    return value + Math.log2(scaleFactor);\n  } else if (method === 'sqrt') {\n    return value * Math.sqrt(scaleFactor);\n  } else if (method === 'linear') {\n    return value * scaleFactor;\n  } else {\n    return value;\n  }\n}"]}