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

Side by Side Diff: tracing/tracing/base/running_statistics_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 unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <!--
3 Copyright (c) 2016 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file.
6 -->
7 <link rel="import" href="/tracing/base/running_statistics.html">
8 <link rel="import" href="/tracing/base/statistics.html">
9 <script>
10 'use strict';
11
12 tr.b.unittest.testSuite(function() {
13 var RunningStatistics = tr.b.RunningStatistics;
14 var Statistics = tr.b.Statistics;
15
16 function run(data) {
17 var running = new RunningStatistics();
18 data.forEach(x => running.add(x));
19 return running;
20 }
21
22 test('sum', function() {
23 var data;
24 data = [];
25 assert.closeTo(Statistics.sum(data), run(data).sum, 1e-6);
26 data = [1];
27 assert.closeTo(Statistics.sum(data), run(data).sum, 1e-6);
28 data = [1, 2, 3];
29 assert.closeTo(Statistics.sum(data), run(data).sum, 1e-6);
30 data = [2, 4, 4, 2];
31 assert.closeTo(Statistics.sum(data), run(data).sum, 1e-6);
32 data = [Infinity, Infinity, Infinity, 4, 4, Infinity, 1];
33 assert.equal(Statistics.sum(data), run(data).sum, Infinity);
34 data = [-Infinity, -Infinity, 2, -Infinity, 5, -Infinity];
35 assert.equal(Statistics.sum(data), run(data).sum, -Infinity);
36 });
37
38 test('min', function() {
39 var data;
40 data = [];
41 assert.equal(Statistics.min(data), run(data).min);
42 data = [1];
43 assert.equal(Statistics.min(data), run(data).min);
44 data = [1, 2, 3];
45 assert.equal(Statistics.min(data), run(data).min);
46 data = [2, 4, 4, 2];
47 assert.equal(Statistics.min(data), run(data).min);
48 });
49
50 test('max', function() {
51 var data;
52 data = [];
53 assert.equal(Statistics.max(data), run(data).max);
54 data = [1];
55 assert.equal(Statistics.max(data), run(data).max);
56 data = [1, 2, 3];
57 assert.equal(Statistics.max(data), run(data).max);
58 data = [2, 4, 4, 2];
59 assert.equal(Statistics.max(data), run(data).max);
60 });
61
62 test('mean', function() {
63 var data;
64 data = [];
65 assert.equal(Statistics.mean(data), run(data).mean);
66 data = [1];
67 assert.equal(Statistics.mean(data), run(data).mean);
68 data = [1, 2, 3];
69 assert.closeTo(Statistics.mean(data), run(data).mean, 1e-6);
70 data = [2, 4, 4, 2];
71 assert.closeTo(Statistics.mean(data), run(data).mean, 1e-6);
72 data = [Infinity, Infinity, Infinity, 4, 4, Infinity, 1];
73 assert.equal(Statistics.mean(data), run(data).mean, Infinity);
74 data = [-Infinity, -Infinity, 2, -Infinity, 5, -Infinity];
75 assert.equal(Statistics.mean(data), run(data).mean, -Infinity);
76 });
77
78 test('geometricMean', function() {
79 var data;
80 data = [];
81 assert.equal(Statistics.geometricMean(data), run(data).geometricMean);
82 data = [-1];
83 assert.equal(Statistics.geometricMean(data), run(data).geometricMean);
84 data = [1];
85 assert.equal(Statistics.geometricMean(data), run(data).geometricMean);
86 data = [1, 2, 3];
87 assert.closeTo(Statistics.geometricMean(data),
88 run(data).geometricMean, 1e-6);
89 data = [2, 4, 4, 2];
90 assert.closeTo(Statistics.geometricMean(data),
91 run(data).geometricMean, 1e-6);
92 });
93
94 test('variance', function() {
95 var data;
96 data = [];
97 assert.equal(Statistics.variance(data), run(data).variance);
98 data = [1];
99 assert.equal(Statistics.variance(data), run(data).variance);
100 data = [1, 2, 3];
101 assert.closeTo(Statistics.variance(data), run(data).variance, 1e-6);
102 data = [2, 4, 4, 2];
103 assert.closeTo(Statistics.variance(data), run(data).variance, 1e-6);
104 });
105
106 test('stddev', function() {
107 var data;
108 data = [];
109 assert.equal(Statistics.stddev(data), run(data).stddev);
110 data = [1];
111 assert.equal(Statistics.stddev(data), run(data).stddev);
112 data = [1, 2, 3];
113 assert.closeTo(Statistics.stddev(data), run(data).stddev, 1e-6);
114 data = [2, 4, 4, 2];
115 assert.closeTo(Statistics.stddev(data), run(data).stddev, 1e-6);
116 });
117
118 test('merge', function() {
119 var data1 = [];
120 var data2 = [];
121 var data = data1.concat(data2);
122 var stats = run(data1).merge(run(data2));
123 assert.equal(Statistics.sum(data), stats.sum);
124 assert.equal(Statistics.min(data), stats.min);
125 assert.equal(Statistics.max(data), stats.max);
126 assert.equal(Statistics.mean(data), stats.mean);
127 assert.equal(Statistics.variance(data), stats.variance);
128 assert.equal(Statistics.stddev(data), stats.stddev);
129 assert.equal(Statistics.geometricMean(data), stats.geometricMean);
130
131 data1 = [];
132 data2 = [1, 2, 3];
133 data = data1.concat(data2);
134 stats = run(data1).merge(run(data2));
135 assert.equal(Statistics.sum(data), stats.sum);
136 assert.equal(Statistics.min(data), stats.min);
137 assert.equal(Statistics.max(data), stats.max);
138 assert.equal(Statistics.mean(data), stats.mean);
139 assert.closeTo(Statistics.variance(data), stats.variance, 1e-6);
140 assert.closeTo(Statistics.stddev(data), stats.stddev, 1e-6);
141 assert.closeTo(Statistics.geometricMean(data), stats.geometricMean, 1e-6);
142
143 data1 = [1, 2, 3];
144 data2 = [];
145 data = data1.concat(data2);
146 stats = run(data1).merge(run(data2));
147 assert.equal(Statistics.sum(data), stats.sum);
148 assert.equal(Statistics.min(data), stats.min);
149 assert.equal(Statistics.max(data), stats.max);
150 assert.equal(Statistics.mean(data), stats.mean);
151 assert.closeTo(Statistics.variance(data), stats.variance, 1e-6);
152 assert.closeTo(Statistics.stddev(data), stats.stddev, 1e-6);
153 assert.closeTo(Statistics.geometricMean(data), stats.geometricMean, 1e-6);
154
155 data1 = [1, 2, 3];
156 data2 = [10, 20, 100];
157 data = data1.concat(data2);
158 stats = run(data1).merge(run(data2));
159 assert.equal(Statistics.sum(data), stats.sum);
160 assert.equal(Statistics.min(data), stats.min);
161 assert.equal(Statistics.max(data), stats.max);
162 assert.equal(Statistics.mean(data), stats.mean);
163 assert.closeTo(Statistics.variance(data), stats.variance, 1e-6);
164 assert.closeTo(Statistics.stddev(data), stats.stddev, 1e-6);
165 assert.closeTo(Statistics.geometricMean(data), stats.geometricMean, 1e-6);
166
167 data1 = [1, 1, 1, 1, 1];
168 data2 = [10, 20, 10, 40];
169 data = data1.concat(data2);
170 stats = run(data1).merge(run(data2));
171 assert.equal(Statistics.sum(data), stats.sum);
172 assert.equal(Statistics.min(data), stats.min);
173 assert.equal(Statistics.max(data), stats.max);
174 assert.equal(Statistics.mean(data), stats.mean);
175 assert.closeTo(Statistics.variance(data), stats.variance, 1e-6);
176 assert.closeTo(Statistics.stddev(data), stats.stddev, 1e-6);
177 assert.closeTo(Statistics.geometricMean(data), stats.geometricMean, 1e-6);
178 });
179
180 test('serialization', function() {
181 var data = [1, 2, 3];
182 var dict = run(data).asDict();
183 var cloneDict = RunningStatistics.fromDict(dict).asDict();
184 for (var field = 0; field < dict.length; ++field) {
185 assert.closeTo(dict[field], cloneDict[field], 1e-6);
186 }
187
188 // You can change this number, but when you do, please explain in your CL
189 // description why it changed.
190 assert.strictEqual(32, JSON.stringify(dict).length);
191 });
192 });
193 </script>
OLDNEW
« no previous file with comments | « tracing/tracing/base/running_statistics.html ('k') | tracing/tracing/base/sinebow_color_generator.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698