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

Side by Side Diff: third_party/WebKit/LayoutTests/webaudio/AudioBuffer/audiobuffer-resample.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 unified diff | Download patch
OLDNEW
1 <!doctype> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <title>
5 audiobuffer-resample.html
6 </title>
4 <script src="../../resources/testharness.js"></script> 7 <script src="../../resources/testharness.js"></script>
5 <script src="../../resources/testharnessreport.js"></script> 8 <script src="../../resources/testharnessreport.js"></script>
6 <script src="../resources/audit-util.js"></script> 9 <script src="../resources/audit-util.js"></script>
7 <script src="../resources/audit.js"></script> 10 <script src="../resources/audit.js"></script>
8 </head> 11 </head>
9
10 <body> 12 <body>
11 <script> 13 <script id="layout-test-code">
12 let audit = Audit.createTaskRunner(); 14 let audit = Audit.createTaskRunner();
13 15
14 // These are global to make debugging a little easier. 16 // These are global to make debugging a little easier.
15 let context; 17 let context;
16 let buffer; 18 let buffer;
17 let source; 19 let source;
18 let renderedData; 20 let renderedData;
19 let trueData; 21 let trueData;
20 let signalEnergy; 22 let signalEnergy;
21 let noiseEnergy; 23 let noiseEnergy;
(...skipping 25 matching lines...) Expand all
47 signal[k] = Math.sin(omega * k); 49 signal[k] = Math.sin(omega * k);
48 50
49 return buf; 51 return buf;
50 } 52 }
51 53
52 // Check the output against the expected output. 54 // Check the output against the expected output.
53 function checkResult(buffer, should) { 55 function checkResult(buffer, should) {
54 renderedData = buffer.getChannelData(0); 56 renderedData = buffer.getChannelData(0);
55 let length = renderedData.length; 57 let length = renderedData.length;
56 // Generate a reference sine wave at the context rate 58 // Generate a reference sine wave at the context rate
57 let trueReference = createSineBuffer(context, toneFrequency, context.sam pleRate); 59 let trueReference =
60 createSineBuffer(context, toneFrequency, context.sampleRate);
58 trueData = trueReference.getChannelData(0); 61 trueData = trueReference.getChannelData(0);
59 62
60 // To compare the actual output against the reference, we compute the 63 // To compare the actual output against the reference, we compute the
61 // peak error and the SNR between the two. 64 // peak error and the SNR between the two.
62 signalEnergy = 0; 65 signalEnergy = 0;
63 noiseEnergy = 0; 66 noiseEnergy = 0;
64 maxError = -1; 67 maxError = -1;
65 68
66 let success = true; 69 let success = true;
67 70
68 // Compute the peak error and the SNR. 71 // Compute the peak error and the SNR.
69 for (let k = 0; k < length / 2; ++k) { 72 for (let k = 0; k < length / 2; ++k) {
70 let diff = renderedData[k] - trueData[k]; 73 let diff = renderedData[k] - trueData[k];
71 noiseEnergy += diff * diff; 74 noiseEnergy += diff * diff;
72 signalEnergy += trueData[k] * trueData[k]; 75 signalEnergy += trueData[k] * trueData[k];
73 if (Math.abs(diff) > maxError) 76 if (Math.abs(diff) > maxError)
74 maxError = Math.abs(diff); 77 maxError = Math.abs(diff);
75 } 78 }
76 79
77 let snr; 80 let snr;
78 81
79 if (noiseEnergy == 0) 82 if (noiseEnergy == 0)
80 snr = 1000; 83 snr = 1000;
81 else 84 else
82 snr = 10 * Math.log10(signalEnergy / noiseEnergy); 85 snr = 10 * Math.log10(signalEnergy / noiseEnergy);
83 86
84 should(maxError, "Peak error between actual and reference data") 87 should(maxError, 'Peak error between actual and reference data')
85 .beLessThan(peakThreshold); 88 .beLessThan(peakThreshold);
86 89
87 should(snr, "SNR") 90 should(snr, 'SNR').beGreaterThan(snrThreshold);
88 .beGreaterThan(snrThreshold);
89 } 91 }
90 92
91 audit.define("Test resampling of an AudioBuffer", 93 audit.define('Test resampling of an AudioBuffer', function(task, should) {
92 function(task, should) { 94 context = new OfflineAudioContext(
93 context = new OfflineAudioContext(1, lengthInSeconds * 95 1, lengthInSeconds * sampleRate, sampleRate);
94 sampleRate,
95 sampleRate);
96 96
97 // Create a sine wave in a buffer that's different from the context ra te 97 // Create a sine wave in a buffer that's different from the context rate
98 // to test resampling. 98 // to test resampling.
99 buffer = createSineBuffer(context, toneFrequency, bufferRate); 99 buffer = createSineBuffer(context, toneFrequency, bufferRate);
100 source = context.createBufferSource(); 100 source = context.createBufferSource();
101 source.buffer = buffer; 101 source.buffer = buffer;
102 source.connect(context.destination); 102 source.connect(context.destination);
103 source.start(); 103 source.start();
104 104
105 context.startRendering() 105 context.startRendering()
106 .then(function(buffer) { 106 .then(function(buffer) {
107 checkResult(buffer, should); 107 checkResult(buffer, should);
108 }) 108 })
109 .then(task.done.bind(task)); 109 .then(task.done.bind(task));
110 }); 110 });
111 111
112 audit.run(); 112 audit.run();
113 </script> 113 </script>
114 </body> 114 </body>
115 </html> 115 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698