| Index: tracing/tracing/metrics/value_set_test.html
|
| diff --git a/tracing/tracing/metrics/value_set_test.html b/tracing/tracing/metrics/value_set_test.html
|
| index a8eb56d1f3e71f945bf477610a8dd23c0df9b209..14cf3ff5bee79829ed061fe34bc6af8738f60127 100644
|
| --- a/tracing/tracing/metrics/value_set_test.html
|
| +++ b/tracing/tracing/metrics/value_set_test.html
|
| @@ -14,7 +14,6 @@ found in the LICENSE file.
|
| 'use strict';
|
|
|
| tr.b.unittest.testSuite(function() {
|
| -
|
| test('computeSummaryValuesForNumericValue', function() {
|
| var n = tr.v.NumericBuilder.createLinear(
|
| tr.v.Unit.byName.timeDurationInMs, tr.b.Range.fromExplicitRange(0, 100),
|
| @@ -36,10 +35,10 @@ tr.b.unittest.testSuite(function() {
|
|
|
| var results =
|
| tr.metrics.ValueSet.computeSummaryValuesForNumericValue(
|
| - new tr.v.NumericValue('url', 'abc', n, { description: 'desc' }));
|
| + new tr.v.NumericValue('abc', n, { description: 'desc' }));
|
| var values = {};
|
| results.forEach(function(x) {
|
| - values[x.groupingKeys.name] = x.numeric;
|
| + values[x.name] = x.numeric;
|
| });
|
| assert.strictEqual(values.abc_count.value, 3);
|
| assert.strictEqual(values.abc_min.value, 50);
|
| @@ -50,5 +49,64 @@ tr.b.unittest.testSuite(function() {
|
| assert.closeTo(values.abc_pct_050.value, 60, 1);
|
| assert.closeTo(values.abc_pct_100.value, 70, 1);
|
| });
|
| +
|
| + test('relatedValueSetDiagnostic', function() {
|
| + var unit = tr.v.Unit.byName.unitlessNumber;
|
| + var a = new tr.v.NumericValue('a', new tr.v.ScalarNumeric(unit, 0));
|
| + var b = new tr.v.NumericValue('b', new tr.v.ScalarNumeric(unit, 1));
|
| + var c = new tr.v.NumericValue('c', new tr.v.ScalarNumeric(unit, 2));
|
| + a.diagnostics.add('rvs', new tr.v.d.RelatedValueSet([b, c]));
|
| +
|
| + // Don't serialize c just yet.
|
| + var values = new tr.metrics.ValueSet([a, b]);
|
| +
|
| + var values2 = new tr.metrics.ValueSet();
|
| + values2.addValuesFromDicts(values.valueDicts);
|
| +
|
| + var a2 = values2.getValuesWithName('a');
|
| + assert.strictEqual(1, a2.length);
|
| + a2 = a2[0];
|
| + assert.strictEqual(a.guid, a2.guid);
|
| + assert.notStrictEqual(a, a2);
|
| +
|
| + var b2 = values2.getValuesWithName('b');
|
| + assert.strictEqual(1, b2.length);
|
| + b2 = b2[0];
|
| + assert.strictEqual(b.guid, b2.guid);
|
| + assert.notStrictEqual(b, b2);
|
| +
|
| + var rvs2 = a2.diagnostics.get('rvs');
|
| + assert.instanceOf(rvs2, tr.v.d.RelatedValueSet);
|
| + assert.strictEqual(2, rvs2.values.length);
|
| +
|
| + // Assert that b and c are in a2's RelatedValueSet.
|
| + var rvs2vs = rvs2.values;
|
| + var rvs2guids = rvs2vs.map(v => v.guid);
|
| + var b2i = rvs2guids.indexOf(b.guid);
|
| + assert.strictEqual(b2, rvs2vs[b2i]);
|
| +
|
| + var c2i = rvs2guids.indexOf(c.guid);
|
| + assert.strictEqual(c.guid, rvs2vs[c2i].guid);
|
| + assert.instanceOf(rvs2vs[c2i], tr.v.d.ValueRef);
|
| +
|
| + // Now serialize c and add it to values2.
|
| + // Related value resolution is idempotent.
|
| + // Old values can refer to new values.
|
| + values2.addValuesFromDicts([c.asDict()]);
|
| +
|
| + var c2 = values2.getValuesWithName('c');
|
| + assert.strictEqual(1, c2.length);
|
| + c2 = c2[0];
|
| + assert.strictEqual(c.guid, c2.guid);
|
| + assert.notStrictEqual(c, c2);
|
| +
|
| + // Now a real c2 Value should be in a2's RelatedValueSet.
|
| + rvs2vs = rvs2.values;
|
| + rvs2guids = rvs2vs.map(v => v.guid);
|
| + b2i = rvs2guids.indexOf(b.guid);
|
| + c2i = rvs2guids.indexOf(c.guid);
|
| + assert.strictEqual(b2, rvs2vs[b2i]);
|
| + assert.strictEqual(c2, rvs2vs[c2i]);
|
| + });
|
| });
|
| </script>
|
|
|