| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 | 5 |
| 6 /** | 6 /** |
| 7 * @fileOverview This file includes legacy utility functions for the layout | 7 * @fileOverview This file includes legacy utility functions for the layout |
| 8 * test. | 8 * test. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 | 152 |
| 153 // The reference file is a 16-bit WAV file, so we will almost never get | 153 // The reference file is a 16-bit WAV file, so we will almost never get |
| 154 // an exact match between it and the actual floating-point result. | 154 // an exact match between it and the actual floating-point result. |
| 155 if (Math.abs(diff) > scaleFactor) | 155 if (Math.abs(diff) > scaleFactor) |
| 156 diffCount++; | 156 diffCount++; |
| 157 } | 157 } |
| 158 | 158 |
| 159 var snr = 10 * Math.log10(signalPower / noisePower); | 159 var snr = 10 * Math.log10(signalPower / noisePower); |
| 160 var maxErrorULP = maxError * scaleFactor; | 160 var maxErrorULP = maxError * scaleFactor; |
| 161 | 161 |
| 162 if (snr >= thresholdSNR) { | 162 Should("SNR", snr).beGreaterThanOrEqualTo(thresholdSNR); |
| 163 testPassed('Exceeded SNR threshold of ' + thresholdSNR + ' dB.'); | |
| 164 } else { | |
| 165 testFailed('Expected SNR of ' + thresholdSNR + ' dB, but actual SNR is '
+ | |
| 166 snr + ' dB.'); | |
| 167 } | |
| 168 | 163 |
| 169 if (maxErrorULP <= thresholdDiffULP) { | 164 Should('Maximum difference (in ulp units (' + bitDepth + '-bits))', |
| 170 testPassed('Maximum difference below threshold of ' + | 165 maxErrorULP).beLessThanOrEqualTo(thresholdDiffULP); |
| 171 thresholdDiffULP + ' ulp (' + bitDepth + '-bits).'); | |
| 172 } else { | |
| 173 testFailed('Maximum difference of ' + maxErrorULP + | |
| 174 ' at the index ' + errorPosition + ' exceeded threshold of ' + | |
| 175 thresholdDiffULP + ' ulp (' + bitDepth + '-bits).'); | |
| 176 } | |
| 177 | 166 |
| 178 if (diffCount <= thresholdDiffCount) { | 167 Should('Number of differences between results', diffCount) |
| 179 testPassed('Number of differences between results is ' + | 168 .beLessThanOrEqualTo(thresholdDiffCount); |
| 180 diffCount + ' out of ' + actual.length + '.'); | |
| 181 } else { | |
| 182 testFailed(diffCount + ' differences found but expected no more than ' + | |
| 183 diffCount + ' out of ' + actual.length + '.'); | |
| 184 } | |
| 185 } | 169 } |
| 186 | 170 |
| 187 // Create an impulse in a buffer of length sampleFrameLength | 171 // Create an impulse in a buffer of length sampleFrameLength |
| 188 function createImpulseBuffer(context, sampleFrameLength) { | 172 function createImpulseBuffer(context, sampleFrameLength) { |
| 189 var audioBuffer = context.createBuffer(1, sampleFrameLength, context.sampleR
ate); | 173 var audioBuffer = context.createBuffer(1, sampleFrameLength, context.sampleR
ate); |
| 190 var n = audioBuffer.length; | 174 var n = audioBuffer.length; |
| 191 var dataL = audioBuffer.getChannelData(0); | 175 var dataL = audioBuffer.getChannelData(0); |
| 192 | 176 |
| 193 for (var k = 0; k < n; ++k) { | 177 for (var k = 0; k < n; ++k) { |
| 194 dataL[k] = 0; | 178 dataL[k] = 0; |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 var startFrame = timeToSampleFrame(grainOffset, sampleRate); | 250 var startFrame = timeToSampleFrame(grainOffset, sampleRate); |
| 267 var endFrame = timeToSampleFrame(grainOffset + duration, sampleRate); | 251 var endFrame = timeToSampleFrame(grainOffset + duration, sampleRate); |
| 268 | 252 |
| 269 return endFrame - startFrame; | 253 return endFrame - startFrame; |
| 270 } | 254 } |
| 271 | 255 |
| 272 // True if the number is not an infinity or NaN | 256 // True if the number is not an infinity or NaN |
| 273 function isValidNumber(x) { | 257 function isValidNumber(x) { |
| 274 return !isNaN(x) && (x != Infinity) && (x != -Infinity); | 258 return !isNaN(x) && (x != Infinity) && (x != -Infinity); |
| 275 } | 259 } |
| OLD | NEW |