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

Unified Diff: tracing/tracing/value/histogram_test.html

Issue 2742163002: Generalize delta statistics in Histogram. (Closed)
Patch Set: 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/value/histogram.html ('k') | tracing/tracing/value/ui/histogram_set_table.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tracing/tracing/value/histogram_test.html
diff --git a/tracing/tracing/value/histogram_test.html b/tracing/tracing/value/histogram_test.html
index a4c21173a3ef66fad557712ba3907568a2d2c60d..7647366f7529b5064b8649dcd66571f964b03f93 100644
--- a/tracing/tracing/value/histogram_test.html
+++ b/tracing/tracing/value/histogram_test.html
@@ -39,6 +39,93 @@ tr.b.unittest.testSuite(function() {
}
}
+ test('getStatisticScalar', function() {
+ const hist = new tr.v.Histogram('', unitlessNumber);
+ // getStatisticScalar should work even when the statistics are disabled.
+ hist.customizeSummaryOptions({
+ avg: false,
+ count: false,
+ max: false,
+ min: false,
+ std: false,
+ sum: false,
+ });
+
+ assert.isUndefined(hist.getStatisticScalar('avg'));
+ assert.isUndefined(hist.getStatisticScalar('std'));
+ assert.strictEqual(0, hist.getStatisticScalar('geometricMean').value);
+ assert.strictEqual(Infinity, hist.getStatisticScalar('min').value);
+ assert.strictEqual(-Infinity, hist.getStatisticScalar('max').value);
+ assert.strictEqual(0, hist.getStatisticScalar('sum').value);
+ assert.strictEqual(0, hist.getStatisticScalar('nans').value);
+ assert.strictEqual(0, hist.getStatisticScalar('count').value);
+ assert.strictEqual(0, hist.getStatisticScalar('pct_000').value);
+ assert.strictEqual(0, hist.getStatisticScalar('pct_050').value);
+ assert.strictEqual(0, hist.getStatisticScalar('pct_100').value);
+
+ assert.isFalse(hist.canCompare());
+ assert.throws(() => hist.getStatisticScalar(tr.v.DELTA + 'avg'));
+
+ const ref = new tr.v.Histogram('', unitlessNumber);
+ for (let i = 0; i < 10; ++i) {
+ hist.addSample(i * 10);
+ ref.addSample(i);
+ }
+
+ assert.strictEqual(45, hist.getStatisticScalar('avg').value);
+ assert.closeTo(30.277, hist.getStatisticScalar('std').value, 1e-3);
+ assert.closeTo(0, hist.getStatisticScalar('geometricMean').value, 1e-4);
+ assert.strictEqual(0, hist.getStatisticScalar('min').value);
+ assert.strictEqual(90, hist.getStatisticScalar('max').value);
+ assert.strictEqual(450, hist.getStatisticScalar('sum').value);
+ assert.strictEqual(0, hist.getStatisticScalar('nans').value);
+ assert.strictEqual(10, hist.getStatisticScalar('count').value);
+ assert.closeTo(18.371, hist.getStatisticScalar('pct_025').value, 1e-3);
+ assert.closeTo(55.48, hist.getStatisticScalar('pct_075').value, 1e-3);
+
+ assert.strictEqual(40.5, hist.getStatisticScalar(
+ tr.v.DELTA + 'avg', ref).value);
+ assert.closeTo(27.249, hist.getStatisticScalar(
+ tr.v.DELTA + 'std', ref).value, 1e-3);
+ assert.closeTo(0, hist.getStatisticScalar(
+ tr.v.DELTA + 'geometricMean', ref).value, 1e-4);
+ assert.strictEqual(0, hist.getStatisticScalar(
+ tr.v.DELTA + 'min', ref).value);
+ assert.strictEqual(81, hist.getStatisticScalar(
+ tr.v.DELTA + 'max', ref).value);
+ assert.strictEqual(405, hist.getStatisticScalar(
+ tr.v.DELTA + 'sum', ref).value);
+ assert.strictEqual(0, hist.getStatisticScalar(
+ tr.v.DELTA + 'nans', ref).value);
+ assert.strictEqual(0, hist.getStatisticScalar(
+ tr.v.DELTA + 'count', ref).value);
+ assert.closeTo(16.357, hist.getStatisticScalar(
+ tr.v.DELTA + 'pct_025', ref).value, 1e-3);
+ assert.closeTo(49.396, hist.getStatisticScalar(
+ tr.v.DELTA + 'pct_075', ref).value, 1e-3);
+
+ assert.strictEqual(9, hist.getStatisticScalar(
+ `%${tr.v.DELTA}avg`, ref).value);
+ assert.closeTo(9, hist.getStatisticScalar(
+ `%${tr.v.DELTA}std`, ref).value, 1e-3);
+ assert.isTrue(isNaN(hist.getStatisticScalar(
+ `%${tr.v.DELTA}geometricMean`, ref).value));
+ assert.isTrue(isNaN(hist.getStatisticScalar(
+ `%${tr.v.DELTA}min`, ref).value));
+ assert.strictEqual(9, hist.getStatisticScalar(
+ `%${tr.v.DELTA}max`, ref).value);
+ assert.strictEqual(9, hist.getStatisticScalar(
+ `%${tr.v.DELTA}sum`, ref).value);
+ assert.isTrue(isNaN(hist.getStatisticScalar(
+ `%${tr.v.DELTA}nans`, ref).value));
+ assert.strictEqual(0, hist.getStatisticScalar(
+ `%${tr.v.DELTA}count`, ref).value);
+ assert.closeTo(8.12, hist.getStatisticScalar(
+ `%${tr.v.DELTA}pct_025`, ref).value, 1e-3);
+ assert.closeTo(8.12, hist.getStatisticScalar(
+ `%${tr.v.DELTA}pct_075`, ref).value, 1e-3);
+ });
+
test('serializationSize', function() {
// Ensure that serialized Histograms don't take up too much more space than
// necessary.
« no previous file with comments | « tracing/tracing/value/histogram.html ('k') | tracing/tracing/value/ui/histogram_set_table.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698