| <!DOCTYPE html> |
| <!-- |
| Copyright 2016 The Chromium Authors. All rights reserved. |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| --> |
| |
| <link rel="import" href="/tracing/base/math/piecewise_linear_function.html"> |
| |
| <script> |
| 'use strict'; |
| |
| tr.b.unittest.testSuite(function() { |
| test('PiecewiseLinearFunctionEmpty', function() { |
| var f = new tr.b.math.PiecewiseLinearFunction(); |
| assert.strictEqual(f.max, -Infinity); |
| assert.strictEqual(f.min, Infinity); |
| assert.strictEqual(f.average, 0); |
| assert.strictEqual(f.percentile(0.5), 0); |
| }); |
| |
| test('PiecewiseLinearFunction', function() { |
| var f = new tr.b.math.PiecewiseLinearFunction(); |
| f.push(0, 0.0, 10, 1.0); |
| f.push(10, 1.0, 20, 0.0); |
| f.push(20, 0.0, 30, 0.0); |
| assert.strictEqual(f.max, 1.0); |
| assert.strictEqual(f.min, 0.0); |
| assert.closeTo(f.average, 20 * 1 / 2.0 / 30, 1e-6); |
| assert.closeTo(f.percentile(1.0 / 3.0), 0.0, 1e-6); |
| assert.closeTo(f.percentile(2.0 / 3.0), 0.5, 1e-6); |
| }); |
| }); |
| </script> |