Index: tracing/tracing/value/ui/scalar_span_test.html |
diff --git a/tracing/tracing/value/ui/scalar_span_test.html b/tracing/tracing/value/ui/scalar_span_test.html |
index c9dcfc41cd8ce7a2d2b56ad332fe2925093254c0..15403163ac9dffeb192825c38cbfc4f81823c618 100644 |
--- a/tracing/tracing/value/ui/scalar_span_test.html |
+++ b/tracing/tracing/value/ui/scalar_span_test.html |
@@ -19,15 +19,198 @@ tr.b.unittest.testSuite(function() { |
var Unit = tr.v.Unit; |
var THIS_DOC = document._currentScript.ownerDocument; |
- function checkScalarSpan( |
- test, value, unit, expectedTextContent, opt_expectedColor) { |
- var span = tr.v.ui.createScalarSpan(new tr.v.ScalarNumeric(unit, value)); |
- assert.strictEqual( |
- Polymer.dom(span.$.content).textContent, expectedTextContent); |
- assert.strictEqual(span.$.content.style.color, opt_expectedColor || ''); |
+ function checkScalarSpan(test, value, unit, expectedContent, opt_options) { |
+ var options = opt_options || {}; |
+ var span = tr.v.ui.createScalarSpan(new tr.v.ScalarNumeric(unit, value), |
+ {significance: options.significance}); |
+ |
test.addHTMLOutput(span); |
+ assert.strictEqual( |
+ Polymer.dom(span.$.content).textContent, expectedContent); |
+ assert.strictEqual(window.getComputedStyle(span.$.content).color, |
+ options.expectedColor || 'rgb(0, 0, 0)'); |
+ |
+ if (options.expectedTitle) |
+ assert.strictEqual(span.$.content.title, options.expectedTitle); |
+ |
+ if (options.significance !== undefined) { |
+ assert.strictEqual(Polymer.dom(span.$.significance).textContent, |
+ options.expectedEmoji); |
+ assert.strictEqual(window.getComputedStyle(span.$.significance).color, |
+ options.expectedEmojiColor || 'rgb(0, 0, 0)'); |
+ if (options.expectedTitle) |
+ assert.strictEqual(span.$.significance.title, options.expectedTitle); |
+ } |
} |
+ test('instantiate_significance', function() { |
+ var countD = Unit.byName.count.correspondingDeltaUnit; |
+ var countSIBD = Unit.byName.count_smallerIsBetter.correspondingDeltaUnit; |
+ var countBIBD = Unit.byName.count_biggerIsBetter.correspondingDeltaUnit; |
+ |
+ var zero = String.fromCharCode(177) + '0'; |
+ |
+ checkScalarSpan(this, 0, countSIBD, zero, { |
+ significance: tr.v.Significance.DONT_CARE, |
+ expectedTitle: 'no change', |
+ expectedEmoji: '' |
+ }); |
+ |
+ checkScalarSpan(this, 0, countSIBD, zero, { |
+ significance: tr.v.Significance.INSIGNIFICANT, |
+ expectedEmoji: tr.v.ui.Emoji.NEUTRAL_FACE, |
+ expectedEmojiColor: 'rgb(0, 0, 0)', |
+ expectedTitle: 'no change' |
+ }); |
+ |
+ assert.throws(() => checkScalarSpan(this, 0, countSIBD, zero, |
+ {significance: tr.v.Significance.SIGNIFICANT})); |
+ |
+ checkScalarSpan(this, 0, countBIBD, zero, { |
+ significance: tr.v.Significance.DONT_CARE, |
+ expectedTitle: 'no change', |
+ expectedEmoji: '' |
+ }); |
+ |
+ checkScalarSpan(this, 0, countBIBD, zero, { |
+ significance: tr.v.Significance.INSIGNIFICANT, |
+ expectedEmoji: tr.v.ui.Emoji.NEUTRAL_FACE, |
+ expectedEmojiColor: 'rgb(0, 0, 0)', |
+ expectedTitle: 'no change' |
+ }); |
+ |
+ assert.throws(() => checkScalarSpan(this, 0, countSIBD, zero, |
+ {significance: tr.v.Significance.SIGNIFICANT})); |
+ |
+ checkScalarSpan(this, 1, countSIBD, '+1', { |
+ significance: tr.v.Significance.DONT_CARE, |
+ expectedColor: 'rgb(255, 0, 0)', |
+ expectedTitle: 'regression', |
+ expectedEmoji: '' |
+ }); |
+ |
+ checkScalarSpan(this, 1, countSIBD, '+1', { |
+ significance: tr.v.Significance.INSIGNIFICANT, |
+ expectedColor: 'rgb(255, 0, 0)', |
+ expectedEmoji: tr.v.ui.Emoji.NEUTRAL_FACE, |
+ expectedEmojiColor: 'rgb(0, 0, 0)', |
+ expectedTitle: 'insignificant regression' |
+ }); |
+ |
+ checkScalarSpan(this, 1, countSIBD, '+1', { |
+ significance: tr.v.Significance.SIGNIFICANT, |
+ expectedColor: 'rgb(255, 0, 0)', |
+ expectedEmoji: tr.v.ui.Emoji.CONFOUNDED_FACE, |
+ expectedEmojiColor: 'rgb(255, 0, 0)', |
+ expectedTitle: 'significant regression' |
+ }); |
+ |
+ checkScalarSpan(this, 1, countBIBD, '+1', { |
+ significance: tr.v.Significance.DONT_CARE, |
+ expectedColor: 'rgb(0, 128, 0)', |
+ expectedTitle: 'improvement', |
+ expectedEmoji: '' |
+ }); |
+ |
+ checkScalarSpan(this, 1, countBIBD, '+1', { |
+ significance: tr.v.Significance.INSIGNIFICANT, |
+ expectedColor: 'rgb(0, 128, 0)', |
+ expectedEmoji: tr.v.ui.Emoji.NEUTRAL_FACE, |
+ expectedEmojiColor: 'rgb(0, 0, 0)', |
+ expectedTitle: 'insignificant improvement' |
+ }); |
+ |
+ checkScalarSpan(this, 1, countBIBD, '+1', { |
+ significance: tr.v.Significance.SIGNIFICANT, |
+ expectedColor: 'rgb(0, 128, 0)', |
+ expectedEmoji: tr.v.ui.Emoji.GRINNING_FACE, |
+ expectedEmojiColor: 'rgb(0, 128, 0)', |
+ expectedTitle: 'significant improvement' |
+ }); |
+ |
+ checkScalarSpan(this, -1, countSIBD, '-1', { |
+ significance: tr.v.Significance.DONT_CARE, |
+ expectedColor: 'rgb(0, 128, 0)', |
+ expectedEmoji: '', |
+ expectedEmojiColor: '', |
+ expectedTitle: 'improvement' |
+ }); |
+ |
+ checkScalarSpan(this, -1, countSIBD, '-1', { |
+ expectedColor: 'rgb(0, 128, 0)', |
+ significance: tr.v.Significance.INSIGNIFICANT, |
+ expectedEmoji: tr.v.ui.Emoji.NEUTRAL_FACE, |
+ expectedEmojiColor: 'rgb(0, 0, 0)', |
+ expectedTitle: 'insignificant improvement' |
+ }); |
+ |
+ checkScalarSpan(this, -1, countSIBD, '-1', { |
+ expectedColor: 'rgb(0, 128, 0)', |
+ significance: tr.v.Significance.SIGNIFICANT, |
+ expectedEmoji: tr.v.ui.Emoji.GRINNING_FACE, |
+ expectedEmojiColor: 'rgb(0, 128, 0)', |
+ expectedTitle: 'significant improvement' |
+ }); |
+ |
+ checkScalarSpan(this, -1, countBIBD, '-1', { |
+ expectedColor: 'rgb(255, 0, 0)', |
+ significance: tr.v.Significance.DONT_CARE, |
+ expectedEmoji: '' |
+ }); |
+ |
+ checkScalarSpan(this, -1, countBIBD, '-1', { |
+ expectedColor: 'rgb(255, 0, 0)', |
+ significance: tr.v.Significance.INSIGNIFICANT, |
+ expectedEmoji: tr.v.ui.Emoji.NEUTRAL_FACE, |
+ expectedEmojiColor: 'rgb(0, 0, 0)', |
+ expectedTitle: 'insignificant regression' |
+ }); |
+ |
+ checkScalarSpan(this, -1, countBIBD, '-1', { |
+ expectedColor: 'rgb(255, 0, 0)', |
+ significance: tr.v.Significance.SIGNIFICANT, |
+ expectedEmoji: tr.v.ui.Emoji.CONFOUNDED_FACE, |
+ expectedEmojiColor: 'rgb(255, 0, 0)', |
+ expectedTitle: 'significant regression' |
+ }); |
+ |
+ checkScalarSpan(this, 1, countD, '+1', { |
+ expectedColor: 'rgb(0, 0, 0)', |
+ significance: tr.v.Significance.DONT_CARE, |
+ expectedEmoji: '' |
+ }); |
+ |
+ checkScalarSpan(this, 1, countD, '+1', { |
+ expectedColor: 'rgb(0, 0, 0)', |
+ significance: tr.v.Significance.INSIGNIFICANT, |
+ expectedEmoji: '' |
+ }); |
+ |
+ checkScalarSpan(this, 1, countD, '+1', { |
+ expectedColor: 'rgb(0, 0, 0)', |
+ significance: tr.v.Significance.SIGNIFICANT, |
+ expectedEmoji: '' |
+ }); |
+ |
+ checkScalarSpan(this, -1, countD, '-1', { |
+ expectedColor: 'rgb(0, 0, 0)', |
+ significance: tr.v.Significance.DONT_CARE, |
+ expectedEmoji: '' |
+ }); |
+ |
+ checkScalarSpan(this, -1, countD, '-1', { |
+ expectedColor: 'rgb(0, 0, 0)', |
+ significance: tr.v.Significance.INSIGNIFICANT, |
+ expectedEmoji: '' |
+ }); |
+ |
+ checkScalarSpan(this, -1, countD, '-1', { |
+ expectedColor: 'rgb(0, 0, 0)', |
+ significance: tr.v.Significance.SIGNIFICANT, |
+ expectedEmoji: '' |
+ }); |
+ }); |
+ |
test('instantiate', function() { |
checkScalarSpan(this, 123.456789, Unit.byName.timeDurationInMs, |
'123.457 ms'); |
@@ -64,27 +247,30 @@ tr.b.unittest.testSuite(function() { |
test('instantiate_delta_smallerIsBetter', function() { |
checkScalarSpan(this, 45097156608, |
- Unit.byName.sizeInBytesDelta_smallerIsBetter, '+42.0 GiB', 'red'); |
+ Unit.byName.sizeInBytesDelta_smallerIsBetter, '+42.0 GiB', |
+ {expectedColor: 'rgb(255, 0, 0)'}); |
checkScalarSpan(this, 0, Unit.byName.energyInJoulesDelta_smallerIsBetter, |
'\u00B10.000 J'); |
checkScalarSpan(this, -0.25, |
- Unit.byName.unitlessNumberDelta_smallerIsBetter, '-0.250', 'green'); |
+ Unit.byName.unitlessNumberDelta_smallerIsBetter, '-0.250', |
+ {expectedColor: 'rgb(0, 128, 0)'}); |
}); |
test('instantiate_delta_biggerIsBetter', function() { |
checkScalarSpan(this, 0.07, Unit.byName.powerInWattsDelta_biggerIsBetter, |
- '+0.070 W', 'green'); |
+ '+0.070 W', {expectedColor: 'rgb(0, 128, 0)'}); |
checkScalarSpan(this, 0, Unit.byName.timeStampInMsDelta_biggerIsBetter, |
'\u00B10.000 ms'); |
checkScalarSpan(this, -0.00003, |
- Unit.byName.normalizedPercentageDelta_biggerIsBetter, '-0.003%', 'red'); |
+ Unit.byName.normalizedPercentageDelta_biggerIsBetter, '-0.003%', |
+ {expectedColor: 'rgb(255, 0, 0)'}); |
}); |
test('createScalarSpan', function() { |
// No config. |
var span = tr.v.ui.createScalarSpan( |
new ScalarNumeric(Unit.byName.powerInWatts, 3.14)); |
- assert.strictEqual(span.$.content.textContent, '3.140 W'); |
+ assert.strictEqual(Polymer.dom(span.$.content).textContent, '3.140 W'); |
assert.strictEqual(span.ownerDocument, document); |
assert.strictEqual(span.tagName, 'TR-V-UI-SCALAR-SPAN'); |
assert.strictEqual(span.value, 3.14); |
@@ -99,7 +285,7 @@ tr.b.unittest.testSuite(function() { |
var span = tr.v.ui.createScalarSpan( |
new ScalarNumeric(Unit.byName.energyInJoules, 2.72), |
{ ownerDocument: THIS_DOC, rightAlign: true }); |
- assert.strictEqual(span.$.content.textContent, '2.720 J'); |
+ assert.strictEqual(Polymer.dom(span.$.content).textContent, '2.720 J'); |
assert.strictEqual(span.ownerDocument, THIS_DOC); |
assert.strictEqual(span.tagName, 'TR-V-UI-SCALAR-SPAN'); |
assert.strictEqual(span.value, 2.72); |
@@ -113,7 +299,7 @@ tr.b.unittest.testSuite(function() { |
// Unit and sparkline set via config. |
var span = tr.v.ui.createScalarSpan(1.62, |
{ unit: Unit.byName.timeStampInMs, total: 3.24 }); |
- assert.strictEqual(span.$.content.textContent, '1.620 ms'); |
+ assert.strictEqual(Polymer.dom(span.$.content).textContent, '1.620 ms'); |
assert.strictEqual(span.ownerDocument, document); |
assert.strictEqual(span.tagName, 'TR-V-UI-SCALAR-SPAN'); |
assert.strictEqual(span.value, 1.62); |
@@ -131,7 +317,8 @@ tr.b.unittest.testSuite(function() { |
unitPrefix: tr.v.UnitScale.Binary.KIBI, |
minimumFractionDigits: 2 |
} }); |
- assert.strictEqual(span.$.content.textContent, '+262,144.00 KiB'); |
+ assert.strictEqual( |
+ Polymer.dom(span.$.content).textContent, '+262,144.00 KiB'); |
assert.strictEqual(span.ownerDocument, document); |
assert.strictEqual(span.tagName, 'TR-V-UI-SCALAR-SPAN'); |
assert.strictEqual(span.value, 256 * 1024 * 1024); |
@@ -171,7 +358,7 @@ tr.b.unittest.testSuite(function() { |
span.value = new ScalarNumeric( |
Unit.byName.unitlessNumberDelta_smallerIsBetter, 42); |
span.context = { maximumFractionDigits: 2 }; |
- assert.strictEqual(span.$.content.textContent, '+42.00'); |
+ assert.strictEqual(Polymer.dom(span.$.content).textContent, '+42.00'); |
this.addHTMLOutput(span); |
}); |
@@ -233,5 +420,15 @@ tr.b.unittest.testSuite(function() { |
addAndCheckScalarSpan(0.95, 'block', 95); |
addAndCheckScalarSpan(1, 'block', 100); |
}); |
+ |
+ test('emptyNumeric', function() { |
+ assert.strictEqual(tr.v.ui.createScalarSpan(), ''); |
+ |
+ var numeric = tr.v.NumericBuilder.createLinear( |
+ tr.v.Unit.byName.timeDurationInMs, tr.b.Range.fromExplicitRange(0, 1000), |
+ 10).build(); |
+ var value = new tr.v.NumericValue('foo', numeric); |
+ assert.strictEqual(tr.v.ui.createScalarSpan(value), ''); |
+ }); |
}); |
</script> |