<!DOCTYPE html>
<html>
<head>
    <title>audiobuffersource-negative-playbackrate-interpolated</title>
    <script src="../resources/js-test.js"></script>
    <script src="resources/audio-testing.js"></script>
    <script src="resources/audiobuffersource-testing.js"></script>

    <script>

    var sampleRate = 44100.0;
    var sourceFrames = 128;
    var renderFrames = 10;
    var testSpacingFrames = 0;

    var tests = [{ 
        description:"Test playback at -0.75 playbackRate",
        offsetFrame:0,
        renderFrames:renderFrames,
        expected:[127, 126.25, 125.5, 124.75, 124, 123.25, 122.5, 121.75, 121, 120.25]
    }];

    function go() {
        jsTestIsAsync = true;

        context = new webkitOfflineAudioContext(1, renderFrames, sampleRate);

        var bufferSource = context.createBufferSource();
        bufferSource.buffer = createRamp(context, 0, 127, sourceFrames);

        bufferSource.connect(context.destination);
        bufferSource.playbackRate.value = -0.75;
        bufferSource.start(0);

        context.oncomplete = checkAllTests;
        context.startRendering();
    }

    </script>
</head>
<body onload="go()">
</body>
</html>
