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

Unified Diff: third_party/WebKit/LayoutTests/webaudio/Analyser/realtimeanalyser-byte-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-byte-data.html
diff --git a/third_party/WebKit/LayoutTests/webaudio/Analyser/realtimeanalyser-byte-data.html b/third_party/WebKit/LayoutTests/webaudio/Analyser/realtimeanalyser-byte-data.html
index 318a7aad5c55c55f2cfe68a41e08accc4528ffac..bc6dc5ebfab572be42e7dcd6c75181f121d99723 100644
--- a/third_party/WebKit/LayoutTests/webaudio/Analyser/realtimeanalyser-byte-data.html
+++ b/third_party/WebKit/LayoutTests/webaudio/Analyser/realtimeanalyser-byte-data.html
@@ -1,44 +1,47 @@
-<!doctype html>
+<!DOCTYPE html>
<html>
<head>
+ <title>
+ Test Analyser.getByteTimeDomainData()
+ </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 Analyser.getByteTimeDomainData()</title>
</head>
-
<body>
- <script>
- var sampleRate = 48000;
- // The size of the analyser frame. Anything larger than 128 is ok, but should be long enough
- // to capture the peaks of the oscillator waveform.
- var fftSize = 256;
- // Number of frames to render. Should be greater than the fftSize, but is otherwise
- // arbitrary.
- var renderFrames = 2 * fftSize;
+ <script id="layout-test-code">
+ let sampleRate = 48000;
+ // The size of the analyser frame. Anything larger than 128 is ok, but
+ // should be long enough to capture the peaks of the oscillator waveform.
+ let fftSize = 256;
+ // Number of frames to render. Should be greater than the fftSize, but is
+ // otherwise arbitrary.
+ let renderFrames = 2 * fftSize;
- var audit = Audit.createTaskRunner();
+ let audit = Audit.createTaskRunner();
- // Test that getByteTimeDomainData returns the correct values. This test depends on
- // getFloatTimeDomainData returning the correct data (for which there is already a test).
- audit.define("byte-data", (task, should) => {
- var context = new OfflineAudioContext(1, renderFrames, sampleRate);
+ // Test that getByteTimeDomainData returns the correct values. This test
+ // depends on getFloatTimeDomainData returning the correct data (for which
+ // there is already a test).
+ audit.define('byte-data', (task, should) => {
+ let context = new OfflineAudioContext(1, renderFrames, sampleRate);
- // Create a sawtooth as the signal under test. A sine wave or triangle wave would probably
- // also work.
- var src = context.createOscillator();
- src.type = "sawtooth";
- // Choose a frequency high enough that we get at least a full period in one analyser fftSize
- // frame. Otherwise, the frequency is arbitrary.
+ // Create a sawtooth as the signal under test. A sine wave or triangle
+ // wave would probably also work.
+ let src = context.createOscillator();
+ src.type = 'sawtooth';
+ // Choose a frequency high enough that we get at least a full period in
+ // one analyser fftSize frame. Otherwise, the frequency is arbitrary.
src.frequency.value = 440;
- // Gain node to make sure the signal goes somewhat above 1, for testing clipping.
- var gain = context.createGain();
+ // Gain node to make sure the signal goes somewhat above 1, for testing
+ // clipping.
+ let gain = context.createGain();
gain.gain.value = 1.5;
// The analyser node to test
- var analyser = context.createAnalyser();
+ let analyser = context.createAnalyser();
analyser.fftSize = fftSize;
// Connect the graph.
@@ -47,44 +50,56 @@
analyser.connect(context.destination);
// Stop rendering after one analyser frame so we can grab the data.
- context.suspend(fftSize / sampleRate).then(function () {
- var floatData = new Float32Array(fftSize);
- var byteData = new Uint8Array(fftSize);
+ context.suspend(fftSize / sampleRate)
+ .then(function() {
+ let floatData = new Float32Array(fftSize);
+ let byteData = new Uint8Array(fftSize);
+
+ analyser.getFloatTimeDomainData(floatData);
+ analyser.getByteTimeDomainData(byteData);
- analyser.getFloatTimeDomainData(floatData);
- analyser.getByteTimeDomainData(byteData);
+ // Use the float data to compute the expected value for the byte
+ // data.
+ let expected = new Float32Array(fftSize);
+ for (let k = 0; k < fftSize; ++k) {
+ // It's important to do Math.fround to match the
+ // single-precision float in the implementation!
+ let value = Math.fround(128 * Math.fround(1 + floatData[k]));
+ // Clip the result to lie in the range [0, 255].
+ expected[k] = Math.floor(Math.min(255, Math.max(0, value)));
+ }
- // Use the float data to compute the expected value for the byte data.
- var expected = new Float32Array(fftSize);
- for (var k = 0; k < fftSize; ++k) {
- // It's important to do Math.fround to match the single-precision float in the
- // implementation!
- var value = Math.fround(128 * Math.fround(1 + floatData[k]));
- // Clip the result to lie in the range [0, 255].
- expected[k] = Math.floor(Math.min(255, Math.max(0, value)));
- }
+ // Find the first index of the first sample that exceeds +1 or -1.
+ // The test MUST have at least one such value.
+ let indexMax = floatData.findIndex(function(x) {
+ return x > 1;
+ });
+ let indexMin = floatData.findIndex(function(x) {
+ return x < -1;
+ });
- // Find the first index of the first sample that exceeds +1 or -1. The test MUST have at
- // least one such value.
- var indexMax = floatData.findIndex(function (x) { return x > 1; });
- var indexMin = floatData.findIndex(function (x) { return x < -1; });
-
- should(indexMax, "Index of first sample greater than +1").beGreaterThanOrEqualTo(0);
- should(indexMin, "Index of first sample less than -1").beGreaterThanOrEqualTo(0);
+ should(indexMax, 'Index of first sample greater than +1')
+ .beGreaterThanOrEqualTo(0);
+ should(indexMin, 'Index of first sample less than -1')
+ .beGreaterThanOrEqualTo(0);
- // Verify explicitly that clipping happened correctly at the above indices.
- should(
- byteData[indexMax],
- "Clip " + floatData[indexMax].toPrecision(6) + ": byteData[" +
- indexMax + "]").beEqualTo(255);
- should(
- byteData[indexMin],
- "Clip " + floatData[indexMin].toPrecision(6) + ": byteData[" +
- indexMin + "]").beEqualTo(0);
+ // Verify explicitly that clipping happened correctly at the above
+ // indices.
+ should(
+ byteData[indexMax],
+ 'Clip ' + floatData[indexMax].toPrecision(6) +
+ ': byteData[' + indexMax + ']')
+ .beEqualTo(255);
+ should(
+ byteData[indexMin],
+ 'Clip ' + floatData[indexMin].toPrecision(6) + ': byteData[' +
+ indexMin + ']')
+ .beEqualTo(0);
- // Verify that all other samples are computed correctly.
- should(byteData, "Byte data").beEqualToArray(expected);
- }).then(context.resume.bind(context))
+ // Verify that all other samples are computed correctly.
+ should(byteData, 'Byte data').beEqualToArray(expected);
+ })
+ .then(context.resume.bind(context))
src.start();
context.startRendering().then(() => task.done());

Powered by Google App Engine
This is Rietveld 408576698