<!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 allpass 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, "allpass", filterParameters);
}

runTest();

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