/* Returnsanarray(typedornot),ofthepassedarraywithremovedtrailingandending zero-valuedelements
*/ function trimEmptyElements(array) { var start = 0; var end = array.length;
while (start < array.length) { if (array[start] !== 0) { break;
}
start++;
}
while (end > 0) {
end--; if (array[end] !== 0) { break;
}
} return array.subarray(start, end);
}
function fuzzyCompare(a, b) { return Math.abs(a - b) < 9e-3;
}
function compareChannels(buf1, buf2, /*optional*/ length, /*optional*/ sourceOffset, /*optional*/ destOffset, /*optional*/ skipLengthCheck) { if (!skipLengthCheck) {
assert_equals(buf1.length, buf2.length, "Channels must have the same length");
}
sourceOffset = sourceOffset || 0;
destOffset = destOffset || 0; if (length == undefined) {
length = buf1.length - sourceOffset;
} var difference = 0; var maxDifference = 0; var firstBadIndex = -1; for (var i = 0; i < length; ++i) { if (!fuzzyCompare(buf1[i + sourceOffset], buf2[i + destOffset])) {
difference++;
maxDifference = Math.max(maxDifference, Math.abs(buf1[i + sourceOffset] - buf2[i + destOffset])); if (firstBadIndex == -1) {
firstBadIndex = i;
}
}
};
function runTestOnContext(context, callback, testOutput) { if (!gTest.createExpectedBuffers) { // Assume that the output is silence var expectedBuffers = getEmptyBuffer(context, gTest.length);
} else { var expectedBuffers = gTest.createExpectedBuffers(context);
} if (!(expectedBuffers instanceof Array)) {
expectedBuffers = [expectedBuffers];
} var expectedFrames = 0; for (var i = 0; i < expectedBuffers.length; ++i) {
assert_equals(expectedBuffers[i].numberOfChannels, gTest.numberOfChannels, "Correct number of channels for expected buffer " + i);
expectedFrames += expectedBuffers[i].length;
} if (gTest.length && gTest.createExpectedBuffers) {
assert_equals(expectedFrames,
gTest.length, "Correct number of expected frames");
}
// Simpler than audit.js, but still logs the message. Requires // `setup("explicit_done": true)` if testing code that runs after the "load" // event. function equals(a, b, msg) {
test(function() {
assert_equals(a, b);
}, msg);
} function is_true(a, msg) {
test(function() {
assert_true(a);
}, msg);
}
// This allows writing AudioWorkletProcessor code in the same file as the rest // of the test, for quick one off AudioWorkletProcessor testing. function URLFromScriptsElements(ids)
{ var scriptTexts = []; for (let id of ids) {
const e = document.querySelector("script#"+id) if (!e) { throw id+" is not the id of a <script> tag";
}
scriptTexts.push(e.innerText);
} const blob = new Blob(scriptTexts, {type: "application/javascript"});
return URL.createObjectURL(blob);
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.19 Sekunden
(vorverarbeitet am 2026-08-26)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.