Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Unified Diff: tracing/tracing/base/math/math_test.html

Issue 2771723003: [tracing] Move math utilities from base into their own subdirectory (attempt 2) (Closed)
Patch Set: rebase Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tracing/tracing/base/math/math.html ('k') | tracing/tracing/base/math/piecewise_linear_function.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tracing/tracing/base/math/math_test.html
diff --git a/tracing/tracing/base/math/math_test.html b/tracing/tracing/base/math/math_test.html
new file mode 100644
index 0000000000000000000000000000000000000000..81c2a1ca7e89f3f49ee70cbc539a0b7b46d974f7
--- /dev/null
+++ b/tracing/tracing/base/math/math_test.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2014 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/math.html">
+
+<script>
+'use strict';
+
+tr.b.unittest.testSuite(function() {
+ test('erf', function() {
+ assert.closeTo(-1, tr.b.math.erf(-1e10), 1e-6);
+ assert.closeTo(-0.8427, tr.b.math.erf(-1), 1e-6);
+ assert.closeTo(-0.5205, tr.b.math.erf(-0.5), 1e-6);
+ assert.closeTo(0, tr.b.math.erf(0), 1e-6);
+ assert.closeTo(0.5205, tr.b.math.erf(0.5), 1e-6);
+ assert.closeTo(0.8427, tr.b.math.erf(1), 1e-6);
+ assert.closeTo(1, tr.b.math.erf(1e10), 1e-6);
+ });
+
+ test('clamping', function() {
+ assert.equal(tr.b.math.clamp(2, 1, 3), 2);
+ assert.equal(tr.b.math.clamp(1, 1, 3), 1);
+ assert.equal(tr.b.math.clamp(0, 1, 3), 1);
+ assert.equal(tr.b.math.clamp(3, 1, 3), 3);
+ assert.equal(tr.b.math.clamp(4, 1, 3), 3);
+ });
+
+ test('interpolatePiecewiseFunction', function() {
+ var points = [[0, 0], [0.1, 0.5], [1, 1]];
+ assert.equal(0, vec2.interpolatePiecewiseFunction(points, -1));
+ assert.equal(0, vec2.interpolatePiecewiseFunction(points, 0));
+ assert.equal(0.25, vec2.interpolatePiecewiseFunction(points, 0.05));
+ assert.equal(0.5, vec2.interpolatePiecewiseFunction(points, 0.1));
+ assert.equal(0.75, vec2.interpolatePiecewiseFunction(points, 0.55));
+ assert.equal(1, vec2.interpolatePiecewiseFunction(points, 1));
+ assert.equal(1, vec2.interpolatePiecewiseFunction(points, 2));
+ });
+
+ test('powers', function() {
+ assert.strictEqual(0.01, tr.b.math.lesserPower(0.05));
+ assert.strictEqual(0.1, tr.b.math.greaterPower(0.05));
+ assert.strictEqual(0.1, tr.b.math.lesserPower(0.5));
+ assert.strictEqual(1, tr.b.math.greaterPower(0.5));
+ assert.strictEqual(1, tr.b.math.lesserPower(5));
+ assert.strictEqual(10, tr.b.math.greaterPower(5));
+ assert.strictEqual(10, tr.b.math.lesserPower(50));
+ assert.strictEqual(100, tr.b.math.greaterPower(50));
+
+ assert.strictEqual(0, tr.b.math.lesserPower(0));
+ assert.strictEqual(0, tr.b.math.greaterPower(0));
+ assert.isTrue(isNaN(tr.b.math.lesserPower(-1)));
+ assert.isTrue(isNaN(tr.b.math.greaterPower(-1)));
+
+ assert.strictEqual(0.25, tr.b.math.lesserPower(0.3, 2));
+ assert.strictEqual(0.5, tr.b.math.greaterPower(0.3, 2));
+ assert.strictEqual(0.5, tr.b.math.lesserPower(0.8, 2));
+ assert.strictEqual(1, tr.b.math.greaterPower(0.8, 2));
+ assert.strictEqual(1, tr.b.math.lesserPower(1.5, 2));
+ assert.strictEqual(2, tr.b.math.greaterPower(1.5, 2));
+ assert.strictEqual(2, tr.b.math.lesserPower(3, 2));
+ assert.strictEqual(4, tr.b.math.greaterPower(3, 2));
+ assert.strictEqual(4, tr.b.math.lesserPower(5, 2));
+ assert.strictEqual(8, tr.b.math.greaterPower(5, 2));
+
+ assert.strictEqual(0, tr.b.math.lesserPower(0, 2));
+ assert.strictEqual(0, tr.b.math.greaterPower(0, 2));
+ assert.isTrue(isNaN(tr.b.math.lesserPower(-1, 2)));
+ assert.isTrue(isNaN(tr.b.math.greaterPower(-1, 2)));
+ });
+
+ test('lesserWholeNumber', function() {
+ // Use powers of 2 less than 10 to prevent float rounding errors from
+ // breaking Math.floor().
+ for (const i of [1, 2, 4, 8]) {
+ assert.strictEqual(-i, tr.b.math.lesserWholeNumber(-i));
+ assert.strictEqual(-i * 10, tr.b.math.lesserWholeNumber(-i * 10));
+ assert.strictEqual(-i / 10, tr.b.math.lesserWholeNumber(-i / 10));
+ assert.strictEqual(-i * 100, tr.b.math.lesserWholeNumber(-i * 100));
+ assert.strictEqual(-i / 100, tr.b.math.lesserWholeNumber(-i / 100));
+
+ assert.strictEqual(i, tr.b.math.lesserWholeNumber(i));
+ assert.strictEqual(i * 10, tr.b.math.lesserWholeNumber(i * 10));
+ assert.strictEqual(i / 10, tr.b.math.lesserWholeNumber(i / 10));
+ assert.strictEqual(i * 100, tr.b.math.lesserWholeNumber(i * 100));
+ assert.strictEqual(i / 100, tr.b.math.lesserWholeNumber(i / 100));
+
+ const x = i * 1.01;
+ assert.strictEqual(-i, tr.b.math.lesserWholeNumber(-x));
+ assert.strictEqual(-i * 10, tr.b.math.lesserWholeNumber(-x * 10));
+ assert.strictEqual(-i / 10, tr.b.math.lesserWholeNumber(-x / 10));
+ assert.strictEqual(-i * 100, tr.b.math.lesserWholeNumber(-x * 100));
+ assert.strictEqual(-i / 100, tr.b.math.lesserWholeNumber(-x / 100));
+
+ assert.strictEqual(i, tr.b.math.lesserWholeNumber(x));
+ assert.strictEqual(i * 10, tr.b.math.lesserWholeNumber(x * 10));
+ assert.strictEqual(i / 10, tr.b.math.lesserWholeNumber(x / 10));
+ assert.strictEqual(i * 100, tr.b.math.lesserWholeNumber(x * 100));
+ assert.strictEqual(i / 100, tr.b.math.lesserWholeNumber(x / 100));
+ }
+ });
+
+ test('greaterWholeNumber', function() {
+ // Use powers of 2 great than 10 to prevent float rounding errors from
+ // breaking Math.floor().
+ for (const i of [1, 2, 4, 8]) {
+ assert.strictEqual(-i, tr.b.math.greaterWholeNumber(-i));
+ assert.strictEqual(-i * 10, tr.b.math.greaterWholeNumber(-i * 10));
+ assert.strictEqual(-i / 10, tr.b.math.greaterWholeNumber(-i / 10));
+ assert.strictEqual(-i * 100, tr.b.math.greaterWholeNumber(-i * 100));
+ assert.strictEqual(-i / 100, tr.b.math.greaterWholeNumber(-i / 100));
+
+ assert.strictEqual(i, tr.b.math.greaterWholeNumber(i));
+ assert.strictEqual(i * 10, tr.b.math.greaterWholeNumber(i * 10));
+ assert.strictEqual(i / 10, tr.b.math.greaterWholeNumber(i / 10));
+ assert.strictEqual(i * 100, tr.b.math.greaterWholeNumber(i * 100));
+ assert.strictEqual(i / 100, tr.b.math.greaterWholeNumber(i / 100));
+
+ const x = i * 0.99;
+ assert.strictEqual(-i, tr.b.math.greaterWholeNumber(-x));
+ assert.strictEqual(-i * 10, tr.b.math.greaterWholeNumber(-x * 10));
+ assert.strictEqual(-i / 10, tr.b.math.greaterWholeNumber(-x / 10));
+ assert.strictEqual(-i * 100, tr.b.math.greaterWholeNumber(-x * 100));
+ assert.strictEqual(-i / 100, tr.b.math.greaterWholeNumber(-x / 100));
+
+ assert.strictEqual(i, tr.b.math.greaterWholeNumber(x));
+ assert.strictEqual(i * 10, tr.b.math.greaterWholeNumber(x * 10));
+ assert.strictEqual(i / 10, tr.b.math.greaterWholeNumber(x / 10));
+ assert.strictEqual(i * 100, tr.b.math.greaterWholeNumber(x * 100));
+ assert.strictEqual(i / 100, tr.b.math.greaterWholeNumber(x / 100));
+ }
+ });
+
+ test('preferedNumberLargerThanMin', function() {
+ assert.strictEqual(tr.b.math.preferredNumberLargerThanMin(0), 0);
+ assert.strictEqual(tr.b.math.preferredNumberLargerThanMin(1), 1);
+ assert.strictEqual(tr.b.math.preferredNumberLargerThanMin(2), 2);
+ assert.strictEqual(tr.b.math.preferredNumberLargerThanMin(3), 5);
+ assert.strictEqual(tr.b.math.preferredNumberLargerThanMin(7), 10);
+ assert.strictEqual(tr.b.math.preferredNumberLargerThanMin(0.03), 0.05);
+ assert.strictEqual(tr.b.math.preferredNumberLargerThanMin(-1), -1);
+ assert.strictEqual(tr.b.math.preferredNumberLargerThanMin(237538), 500000);
+ assert.strictEqual(tr.b.math.preferredNumberLargerThanMin(46.13246), 50);
+ assert.strictEqual(tr.b.math.preferredNumberLargerThanMin(-823.34561),
+ -1000);
+ });
+});
+</script>
« no previous file with comments | « tracing/tracing/base/math/math.html ('k') | tracing/tracing/base/math/piecewise_linear_function.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698