<!DOCTYPE html>

<html>
<head>
<script src="resources/audio-testing.js"></script>
<script src="../resources/js-test.js"></script>
<script src="resources/biquad-testing.js"></script>
</head>

<body>

<div id="description"></div>
<div id="console"></div>

<script>
description("Tests Biquad notch filter.");

function runTest() {
    window.jsTestIsAsync = true;
        
    // Create offline audio context.
    var context = new webkitOfflineAudioContext(2, sampleRate * renderLengthSeconds, sampleRate);

    // Dummy filter to get filter type constant
    var f = context.createBiquadFilter();

    var filterParameters = [{cutoff : 0,    q : 10, gain : 1 },
                            {cutoff : 1,    q : 10, gain : 1 },
                            {cutoff : .5,   q :  0, gain : 1 },
                            {cutoff : 0.25, q : 10, gain : 1 },
                           ];

    createTestAndRun(context, "notch", filterParameters);
}

runTest();

</script>
</body>
</html>
