<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <script src="resources/audio-testing.js"></script>
    <script src="../resources/js-test.js"></script>
    <script src="resources/panner-model-testing.js"></script>
  </head>

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

    <script>
      description("Test equal-power panner model of AudioPannerNode with stereo source.");

      // To test the panner, we create a number of panner nodes
      // equally spaced on a semicircle at unit distance.  The
      // semicircle covers the azimuth range from -90 to 90 deg,
      // covering full left to full right.  Each source is an impulse
      // turning at a different time and we check that the rendered
      // impulse has the expected gain.
      function runTest() {
          window.jsTestIsAsync = true;

          // Create offline audio context.
          context = new OfflineAudioContext(2, sampleRate * renderLengthSeconds, sampleRate);

          createTestAndRun(context, nodesToCreate, 2);
      }

      runTest();

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