<!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 highshelf 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();

    // The filters we want to test.
    var filterParameters = [{cutoff : 0,    q : 10, gain : 10 },
                            {cutoff : 1,    q : 10, gain : 10 },
                            {cutoff : 0.25, q : 10, gain : 10 },
                           ];

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

runTest();

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