Index: third_party/WebKit/LayoutTests/webaudio/periodicwave-normalization.html |
diff --git a/third_party/WebKit/LayoutTests/webaudio/periodicwave-normalization.html b/third_party/WebKit/LayoutTests/webaudio/periodicwave-normalization.html |
deleted file mode 100644 |
index 4318762c27f49d35f0cdb066fc05b7aa499e9a71..0000000000000000000000000000000000000000 |
--- a/third_party/WebKit/LayoutTests/webaudio/periodicwave-normalization.html |
+++ /dev/null |
@@ -1,236 +0,0 @@ |
-<!doctype html> |
-<html> |
- <head> |
- <title>Test PeriodicWave Normalization</title> |
- <script src="../resources/js-test.js"></script> |
- <script src="resources/compatibility.js"></script> |
- <script src="resources/audit-util.js"></script> |
- <script src="resources/audio-testing.js"></script> |
- </head> |
- |
- <body> |
- <script> |
- description("Test PeriodicWave Normalization"); |
- window.jsTestIsAsync = true; |
- |
- var sampleRate = 48000; |
- var renderFrames = 6000; |
- var context; |
- var audit = Audit.createTaskRunner(); |
- |
- var testSet = [ |
- // Test the default case where the two-arg createPeriodicWave is called. The waveform |
- // should be normalized. |
- { |
- name: "option-default/normalized", |
- // This option is treated specially; it means that the two-arg function is called. |
- option: "NONE", |
- // Somewhat arbitrary except that resulting waveform should have amplitude greater than |
- // 1. And we don't want a simple sine wave because that always has max amplitude of 1. |
- realCoef: [0, -1, 1], |
- threshold: 1e-5, |
- expectedMax: 1 |
- }, |
- |
- { |
- name: "option-null/normalized", |
- option: null, |
- // Somewhat arbitrary except that resulting waveform should have amplitude greater than |
- // 1. And we don't want a simple sine wave because that always has max amplitude of 1. |
- realCoef: [0, -1, 1], |
- threshold: 1e-5, |
- expectedMax: 1 |
- }, |
- |
- // Explicitly set to false. Waveform should be normalized. |
- { |
- name: "false/normalized", |
- option: { |
- disableNormalization: false |
- }, |
- realCoef: [0, -1, 1], |
- threshold: 1e-5, |
- expectedMax: 1 |
- }, |
- |
- // Explicitly disable normalization. Waveform is not normalized. |
- { |
- name: "true/unnormalized", |
- option: { |
- disableNormalization: true |
- }, |
- // Somewhat arbitrary except that resulting waveform should have amplitude very clearly |
- // greater than 1. |
- realCoef: [0, 10], |
- threshold: 1e-5, |
- expectedMax: 10 |
- }, |
- |
- // Explicitly set to some value that is not false. Waveform should NOT be normalized. |
- { |
- name: "foo/unnormalized", |
- option: { |
- disableNormalization: "foo" |
- }, |
- realCoef: [0, 10], |
- threshold: 1e-5, |
- expectedMax: 10 |
- }, |
- |
- // Explicitly set to null, which is the same as false. Waveform is normalized. |
- { |
- name: "null/unnormalized", |
- option: { |
- disableNormalization: null |
- }, |
- realCoef: [0, 1, -1], |
- threshold: 1e-5, |
- expectedMax: 1 |
- }, |
- |
- // Pass in a random dictionary not using our key. Waveform should be normalized. |
- { |
- name: "random-key-value/normalized", |
- option: { |
- randomKey: true |
- }, |
- realCoef: [0, -1, 1], |
- threshold: 1e-5, |
- expectedMax: 1 |
- }, |
- |
- // Set options to several random keys. Waveform must be normalized. |
- { |
- name: "more-random-keys/normalized", |
- option: { |
- key1: "value1", |
- key2: 42 |
- }, |
- realCoef: [0, 1, -1], |
- threshold: 1e-5, |
- expectedMax: 1 |
- }, |
- |
- // Set option to include our key (set to true) amongst a bunch of others. Waveform is NOT normalized. |
- { |
- name: "true-with-random-keys/unnormalized", |
- option: { |
- key1: "value1", |
- disableNormalization: true |
- }, |
- realCoef: [0, 10], |
- threshold: 1e-5, |
- expectedMax: 10 |
- }, |
- |
- // Set option to include our key (set to false) amongst a bunch of others. Waveform is normalized. |
- { |
- name: "false-with-random-keys/normalized", |
- option: { |
- key1: "value1", |
- disableNormalization: false |
- }, |
- realCoef: [0, 10], |
- threshold: 1e-5, |
- expectedMax: 1 |
- }, |
- |
- // Set option to a non-dictionary. Waveform is normalized. |
- { |
- name: "non-dict/normalized", |
- option : [1, 2, 3], |
- realCoef: [0, 1, -1], |
- threshold: 1e-5, |
- expectedMax: 1 |
- }, |
- ]; |
- |
- function arrayMax(array) { |
- return array.reduce(function (reducedValue, currentValue) { |
- return Math.max(reducedValue, Math.abs(currentValue)); |
- }, -1); |
- } |
- |
- function createAndRunAudioGraph(options, realCoef, imagCoef, verify) { |
- context = new OfflineAudioContext(1, renderFrames, sampleRate); |
- var osc = context.createOscillator(); |
- |
- var r = new Float32Array(realCoef); |
- var i = new Float32Array(imagCoef); |
- |
- var wave; |
- |
- // If options is "NONE", we want to be sure to call the two-arg createPeriodicWave to make |
- // sure the default method works as expected. |
- if (options === "NONE") { |
- //console.log("2-arg: " + options); |
- wave = context.createPeriodicWave(r, i); |
- } else { |
- //console.log("3-arg: " + options); |
- wave = context.createPeriodicWave(r, i, options); |
- } |
- |
- osc.setPeriodicWave(wave); |
- osc.connect(context.destination); |
- osc.start(); |
- |
- return context.startRendering().then(verify); |
- } |
- |
- // Define a test function from the given test parameter. This is used as the Audit.defineTask |
- // task function. |
- function defineTest(test) { |
- return function (done) { |
- var imagCoef = new Float32Array(test.realCoef.length); |
- createAndRunAudioGraph(test.option, test.realCoef, imagCoef, function (result) { |
- var prefix; |
- |
- // Try to print out the test.option in a reasonably nice but explicit way. |
- if (test.option === "NONE") { |
- prefix = ""; |
- } else if (Array.isArray(test.option)) { |
- prefix = "[" + test.option + "]: "; |
- } else { |
- prefix = JSON.stringify(test.option) + ": "; |
- } |
- |
- Should(prefix + "amplitude", arrayMax(result.getChannelData(0))) |
- .beCloseTo(test.expectedMax, test.threshold); |
- }).then(done); |
- }; |
- } |
- |
- // Ensure the actual Audit test name is unique by prepending an index to the provided test |
- // name. |
- function actualTestName(name, index) { |
- return index + ":" + name; |
- } |
- |
- function defineTasks() { |
- for (var k = 0; k < testSet.length; ++k) { |
- var test = testSet[k]; |
- audit.defineTask(actualTestName(test.name, k), defineTest(test)); |
- } |
- |
- // Explicitly define the last test to finish up everything. |
- audit.defineTask(actualTestName("finish-tests", testSet.length), function (done) { |
- finishJSTest(); |
- done(); |
- }); |
- } |
- |
- // Run all of the tests defined in testSet. |
- function runAuditTests() { |
- var tests = testSet.map(function (value, index) { |
- return actualTestName(value.name, index); |
- }).concat(actualTestName("finish-tests", testSet.length)); |
- audit.runTasks.apply(audit, tests); |
- }; |
- |
- defineTasks(); |
- runAuditTests(); |
- |
- successfullyParsed = true; |
- </script> |
- </body> |
-</html> |