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

Unified Diff: third_party/WebKit/LayoutTests/webaudio/resources/audit.js

Issue 2700973003: Print additional information on failed beCloseToArray tests (Closed)
Patch Set: Address review comment. Created 3 years, 10 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 | « no previous file | third_party/WebKit/LayoutTests/webaudio/unit-tests/audit-failures.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/LayoutTests/webaudio/resources/audit.js
diff --git a/third_party/WebKit/LayoutTests/webaudio/resources/audit.js b/third_party/WebKit/LayoutTests/webaudio/resources/audit.js
index 0b511c84bcc6132d538d9fddab6d7de4e764e04e..940cff593e8c1543745c2bf4b2ff44de35874f44 100644
--- a/third_party/WebKit/LayoutTests/webaudio/resources/audit.js
+++ b/third_party/WebKit/LayoutTests/webaudio/resources/audit.js
@@ -80,6 +80,21 @@ window.Audit = (function () {
return targetString;
}
+ // Return a string suitable for printing one failed element in
+ // |beCloseToArray|.
+ function _formatFailureEntry(index, actual, expected, abserr, threshold) {
+ return '\t[' + index + ']\t'
+ + actual.toExponential(16) + '\t'
+ + expected.toExponential(16) + '\t'
+ + abserr.toExponential(16) + '\t'
+ + (abserr / Math.abs(expected)).toExponential(16) + '\t'
+ + threshold.toExponential(16);
+ }
+
+ // Compute the error threshold criterion for |beCloseToArray|
+ function _closeToThreshold(abserr, relerr, expected) {
+ return Math.max(abserr, relerr * Math.abs(expected));
+ }
/**
* @class Should
@@ -865,18 +880,21 @@ window.Audit = (function () {
let counter = 0;
failDetail += '\tIndex\tActual\t\t\tExpected\t\tAbsError'
+ '\t\tRelError\t\tTest threshold';
+ let printedIndices = [];
for (let index in errors) {
- failDetail += '\n\t[' + index + ']\t'
- + this._actual[index].toExponential(16) + '\t'
- + this._expected[index].toExponential(16) + '\t'
- + errors[index].toExponential(16) + '\t'
- + (errors[index] / Math.abs(this._expected[index]))
- .toExponential(16) + '\t'
- + Math.max(absErrorThreshold,
- relErrorThreshold * Math.abs(this._expected[index]))
- .toExponential(16);
- if (++counter > this._options.numberOfErrors)
+ failDetail += '\n' + _formatFailureEntry(
+ index, this._actual[index],
+ this._expected[index], errors[index],
+ _closeToThreshold(
+ absErrorThreshold, relErrorThreshold,
+ this._expected[index]));
+
+ printedIndices.push(index);
+ if (++counter > this._options.numberOfErrors) {
+ failDetail +=
+ '\n\t...and ' + (numberOfErrors - counter) + ' more errors.';
break;
+ }
}
// Finalize the error log: print out the location of both the maxAbs
@@ -884,9 +902,35 @@ window.Audit = (function () {
// in the test.
failDetail += '\n'
+ '\tMax AbsError of ' + maxAbsError.toExponential(16)
- + ' at index of ' + maxAbsErrorIndex + '.\n'
- + '\tMax RelError of ' + maxRelError.toExponential(16)
- + ' at index of ' + maxRelErrorIndex + '.';
+ + ' at index of ' + maxAbsErrorIndex + '.\n';
+ if (printedIndices.find(element => {
+ return element == maxAbsErrorIndex;
+ }) === undefined) {
+ // Print an entry for this index if we haven't already.
+ failDetail +=
+ _formatFailureEntry(
+ maxAbsErrorIndex, this._actual[maxAbsErrorIndex],
+ this._expected[maxAbsErrorIndex], errors[maxAbsErrorIndex],
+ _closeToThreshold(
+ absErrorThreshold, relErrorThreshold,
+ this._expected[maxAbsErrorIndex])) +
+ '\n';
+ }
+ failDetail += '\tMax RelError of ' + maxRelError.toExponential(16) +
+ ' at index of ' + maxRelErrorIndex + '.\n';
+ if (printedIndices.find(element => {
+ return element == maxRelErrorIndex;
+ }) === undefined) {
+ // Print an entry for this index if we haven't already.
+ failDetail +=
+ _formatFailureEntry(
+ maxRelErrorIndex, this._actual[maxRelErrorIndex],
+ this._expected[maxRelErrorIndex], errors[maxRelErrorIndex],
+ _closeToThreshold(
+ absErrorThreshold, relErrorThreshold,
+ this._expected[maxRelErrorIndex])) +
+ '\n';
+ }
}
return this._assert(passed, passDetail, failDetail);
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/webaudio/unit-tests/audit-failures.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698