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

Unified Diff: third_party/WebKit/LayoutTests/webaudio/Analyser/realtimeanalyser-float-data.html

Issue 2895963003: Apply layout-test-tidy to LayoutTests/webaudio (Closed)
Patch Set: Created 3 years, 7 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
Index: third_party/WebKit/LayoutTests/webaudio/Analyser/realtimeanalyser-float-data.html
diff --git a/third_party/WebKit/LayoutTests/webaudio/Analyser/realtimeanalyser-float-data.html b/third_party/WebKit/LayoutTests/webaudio/Analyser/realtimeanalyser-float-data.html
index d1b54dbe41f68d30fab8ec41b27393b89ff582a0..bbaf02a6f3e39e8980f10d4483e45b7c499ff5f9 100644
--- a/third_party/WebKit/LayoutTests/webaudio/Analyser/realtimeanalyser-float-data.html
+++ b/third_party/WebKit/LayoutTests/webaudio/Analyser/realtimeanalyser-float-data.html
@@ -1,116 +1,138 @@
-<!doctype html>
+<!DOCTYPE html>
<html>
<head>
+ <title>
+ Test AnalyserNode getFloatTimeDomainData
+ </title>
<script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="../../resources/testharnessreport.js"></script>
<script src="../resources/audit-util.js"></script>
<script src="../resources/audit.js"></script>
- <title>Test AnalyserNode getFloatTimeDomainData</title>
</head>
-
<body>
- <script>
- // Use a power of two to eliminate any round-off in the computation of the times for
- // context.suspend().
- var sampleRate = 32768;
-
- // The largest FFT size for the analyser node is 32768. We want to render longer than this so
- // that we have at least one complete buffer of data of 32768 samples.
- var renderFrames = 2 * 32768;
- var renderDuration = renderFrames / sampleRate;
-
- var audit = Audit.createTaskRunner();
-
- // Test that getFloatTimeDomainData handles short and long vectors correctly.
- audit.define("short and long vector", (task, should) => {
- var fftSize = 32;
- var graphInfo = createGraph(fftSize);
- var context = graphInfo.context;
- var analyser = graphInfo.analyser;
- var signalBuffer = graphInfo.signalBuffer;
- var signal = signalBuffer.getChannelData(0);
-
- var success = true;
- var sampleFrame = 128;
-
- context.suspend(sampleFrame / sampleRate).then(function () {
- var shortData = new Float32Array(8);
- // Initialize the array to Infinity to represent uninitialize data.
- shortData.fill(Infinity);
-
- analyser.getFloatTimeDomainData(shortData);
-
- // The short array should be filled with the expected data, with no errors thrown.
-
- var expected = signal.subarray(sampleFrame - fftSize, sampleFrame);
- should(shortData, shortData.length + "-element time domain data")
- .beEqualToArray(expected.subarray(0, shortData.length));
-
- var longData = new Float32Array(2 * fftSize);
- // Initialize the array to Infinity to represent uninitialize data.
- longData.fill(Infinity);
-
- analyser.getFloatTimeDomainData(longData);
-
- // The long array should filled with the expected data but the extra elements should be
- // untouched.
- should(longData.subarray(0, fftSize), "longData.subarray(0, " + fftSize + ")")
- .beEqualToArray(expected);
-
- should(longData.subarray(fftSize), "Unfilled elements longData.subarray(" + fftSize + ")")
- .beConstantValueOf(Infinity);
- }).then(context.resume.bind(context));
+ <script id="layout-test-code">
+ // Use a power of two to eliminate any round-off in the computation of the
+ // times for context.suspend().
+ let sampleRate = 32768;
+
+ // The largest FFT size for the analyser node is 32768. We want to render
+ // longer than this so that we have at least one complete buffer of data
+ // of 32768 samples.
+ let renderFrames = 2 * 32768;
+ let renderDuration = renderFrames / sampleRate;
+
+ let audit = Audit.createTaskRunner();
+
+ // Test that getFloatTimeDomainData handles short and long vectors
+ // correctly.
+ audit.define('short and long vector', (task, should) => {
+ let fftSize = 32;
+ let graphInfo = createGraph(fftSize);
+ let context = graphInfo.context;
+ let analyser = graphInfo.analyser;
+ let signalBuffer = graphInfo.signalBuffer;
+ let signal = signalBuffer.getChannelData(0);
+
+ let success = true;
+ let sampleFrame = 128;
+
+ context.suspend(sampleFrame / sampleRate)
+ .then(function() {
+ let shortData = new Float32Array(8);
+ // Initialize the array to Infinity to represent uninitialize
+ // data.
+ shortData.fill(Infinity);
+
+ analyser.getFloatTimeDomainData(shortData);
+
+ // The short array should be filled with the expected data, with
+ // no errors thrown.
+
+ let expected =
+ signal.subarray(sampleFrame - fftSize, sampleFrame);
+ should(shortData, shortData.length + '-element time domain data')
+ .beEqualToArray(expected.subarray(0, shortData.length));
+
+ let longData = new Float32Array(2 * fftSize);
+ // Initialize the array to Infinity to represent uninitialize
+ // data.
+ longData.fill(Infinity);
+
+ analyser.getFloatTimeDomainData(longData);
+
+ // The long array should filled with the expected data but the
+ // extra elements should be untouched.
+ should(
+ longData.subarray(0, fftSize),
+ 'longData.subarray(0, ' + fftSize + ')')
+ .beEqualToArray(expected);
+
+ should(
+ longData.subarray(fftSize),
+ 'Unfilled elements longData.subarray(' + fftSize + ')')
+ .beConstantValueOf(Infinity);
+ })
+ .then(context.resume.bind(context));
context.startRendering().then(() => task.done());
});
- var success = true;
+ let success = true;
// Generate tests for all valid FFT sizes for an AnalyserNode.
- for (var k = 5; k < 16; ++k) {
- var fftSize = Math.pow(2, k);
- (function (n) {
+ for (let k = 5; k < 16; ++k) {
+ let fftSize = Math.pow(2, k);
+ (function(n) {
// We grab a sample at (roughly) half the rendering duration.
- audit.define("fftSize " + n, (task, should) => {
+ audit.define('fftSize ' + n, (task, should) => {
runTest(n, renderDuration / 2, should).then(() => task.done());
});
})(fftSize);
}
- // Special case for a large size, but the sampling point is early. The initial part of the
- // buffer should be filled with zeroes.
+ // Special case for a large size, but the sampling point is early. The
+ // initial part of the buffer should be filled with zeroes.
- audit.define("initial zeroes", (task, should) => {
- // Somewhat arbitrary size for the analyser. It should be greater than one rendering
- // quantum.
- var fftSize = 2048;
- var graphInfo = createGraph(fftSize);
- var context = graphInfo.context;
- var analyser = graphInfo.analyser;
- var signalBuffer = graphInfo.signalBuffer;
+ audit.define('initial zeroes', (task, should) => {
+ // Somewhat arbitrary size for the analyser. It should be greater than
+ // one rendering quantum.
+ let fftSize = 2048;
+ let graphInfo = createGraph(fftSize);
+ let context = graphInfo.context;
+ let analyser = graphInfo.analyser;
+ let signalBuffer = graphInfo.signalBuffer;
- var data = new Float32Array(fftSize);
+ let data = new Float32Array(fftSize);
success = true;
// Suspend every rendering quantum and examine the analyser data.
- for (var k = 128; k <= fftSize; k += 128) {
- context.suspend(k / sampleRate).then(function () {
- analyser.getFloatTimeDomainData(data);
- var sampleFrame = context.currentTime * sampleRate;
-
- // Verify that the last k frames are not zero, but the first fftSize - k frames are.
- var prefix = "At frame " + (sampleFrame - 1) + ": data.subarray";
- if (sampleFrame < fftSize) {
- should(data.subarray(0, fftSize - sampleFrame),
- prefix + "(0, " + (fftSize - sampleFrame) + ")")
- .beConstantValueOf(0) && success;
- }
-
- var signal = signalBuffer.getChannelData(0);
- should(data.subarray(fftSize - sampleFrame, fftSize),
- prefix + "(" + (fftSize - sampleFrame) + ", " + fftSize + ")")
- .beEqualToArray(signal.subarray(0, sampleFrame)) && success;
- }).then(context.resume.bind(context));
+ for (let k = 128; k <= fftSize; k += 128) {
+ context.suspend(k / sampleRate)
+ .then(function() {
+ analyser.getFloatTimeDomainData(data);
+ let sampleFrame = context.currentTime * sampleRate;
+
+ // Verify that the last k frames are not zero, but the first
+ // fftSize - k frames are.
+ let prefix =
+ 'At frame ' + (sampleFrame - 1) + ': data.subarray';
+ if (sampleFrame < fftSize) {
+ should(
+ data.subarray(0, fftSize - sampleFrame),
+ prefix + '(0, ' + (fftSize - sampleFrame) + ')')
+ .beConstantValueOf(0) &&
+ success;
+ }
+
+ let signal = signalBuffer.getChannelData(0);
+ should(
+ data.subarray(fftSize - sampleFrame, fftSize),
+ prefix + '(' + (fftSize - sampleFrame) + ', ' + fftSize +
+ ')')
+ .beEqualToArray(signal.subarray(0, sampleFrame)) &&
+ success;
+ })
+ .then(context.resume.bind(context));
}
context.startRendering().then(() => task.done());
@@ -118,52 +140,61 @@
audit.run();
- // Run test of an AnalyserNode with fftSize of |fftSize|, and with the data from the node
- // being requested at time |sampletime|. The result from the analyser node is compared
- // against the expected data. The result of startRendering() is returned.
+ // Run test of an AnalyserNode with fftSize of |fftSize|, and with the
+ // data from the node being requested at time |sampletime|. The result
+ // from the analyser node is compared against the expected data. The
+ // result of startRendering() is returned.
function runTest(fftSize, sampleTime, should) {
- var graphInfo = createGraph(fftSize);
- var context = graphInfo.context;
- var analyser = graphInfo.analyser;
- var signalBuffer = graphInfo.signalBuffer;
+ let graphInfo = createGraph(fftSize);
+ let context = graphInfo.context;
+ let analyser = graphInfo.analyser;
+ let signalBuffer = graphInfo.signalBuffer;
// Grab the data at the requested time.
- context.suspend(sampleTime).then(function () {
- var lastFrame = Math.floor(context.currentTime * sampleRate);
-
- // Grab the time domain data from the analyzer and compare against the expected result.
- var actualFloatData = new Float32Array(fftSize);
- analyser.getFloatTimeDomainData(actualFloatData);
-
- // Compare against the expected result.
- var signal = signalBuffer.getChannelData(0);
- var message = actualFloatData.length + "-point analyser time domain data";
- should(actualFloatData, message)
- .beEqualToArray(signal.subarray(lastFrame - actualFloatData.length, lastFrame)) && success;
- }).then(context.resume.bind(context));
+ context.suspend(sampleTime)
+ .then(function() {
+ let lastFrame = Math.floor(context.currentTime * sampleRate);
+
+ // Grab the time domain data from the analyzer and compare against
+ // the expected result.
+ let actualFloatData = new Float32Array(fftSize);
+ analyser.getFloatTimeDomainData(actualFloatData);
+
+ // Compare against the expected result.
+ let signal = signalBuffer.getChannelData(0);
+ let message =
+ actualFloatData.length + '-point analyser time domain data';
+ should(actualFloatData, message)
+ .beEqualToArray(signal.subarray(
+ lastFrame - actualFloatData.length, lastFrame)) &&
+ success;
+ })
+ .then(context.resume.bind(context));
return context.startRendering();
}
- // Create the audio graph with an AnalyserNode with fftSize |fftSize|. A simple
- // integer-valued linear ramp is the source so we can easily verify the results. A dictionary
- // consisting of the context, the analyser node, and the signal is returned.
+ // Create the audio graph with an AnalyserNode with fftSize |fftSize|. A
+ // simple integer-valued linear ramp is the source so we can easily verify
+ // the results. A dictionary consisting of the context, the analyser
+ // node, and the signal is returned.
function createGraph(fftSize) {
- var context = new OfflineAudioContext(1, renderFrames, sampleRate);
+ let context = new OfflineAudioContext(1, renderFrames, sampleRate);
- var src = context.createBufferSource();
+ let src = context.createBufferSource();
- // Use a simple linear ramp as the source. For simplicity of inspecting results, the ramp
- // starts at 1 with an increment of 1.
- var signalBuffer = context.createBuffer(1, renderFrames, context.sampleRate);
- var data = signalBuffer.getChannelData(0);
- for (var k = 0; k < data.length; ++k) {
+ // Use a simple linear ramp as the source. For simplicity of inspecting
+ // results, the ramp starts at 1 with an increment of 1.
+ let signalBuffer =
+ context.createBuffer(1, renderFrames, context.sampleRate);
+ let data = signalBuffer.getChannelData(0);
+ for (let k = 0; k < data.length; ++k) {
data[k] = k + 1;
}
src.buffer = signalBuffer;
- var analyser = context.createAnalyser();
+ let analyser = context.createAnalyser();
analyser.fftSize = fftSize;
src.connect(analyser);

Powered by Google App Engine
This is Rietveld 408576698