<!--
   This testcase checks that we don't clamp negative opacity values to their
   valid range [0,1] until *after* we've done animation & interpolation.
   If we clamped intermediate results too early (e.g. after parsing, during
   interpolation, or right after we add the first animation's interpolated
   value), we'd end up with the wrong intermediate opacity values here.
 -->
<svg xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     class="reftest-wait"
     onload="go()">
  <style>
    rect { fill: blue; stroke: black; }
  </style>
  <script xlink:href="../smil-grid.js" type="text/javascript"/>
  <script xlink:href="../smil-util.js" type="text/javascript"/>
  <script>
    function go() {
      var animAttrHashA = { "attributeName" : "fill-opacity",
                            "from"          : "-0.4",
                            "by"            : "1.2" };
      var animAttrHashB = { "attributeName" : "fill-opacity",
                            "by"            : "0.2" };
      testAnimatedRectGrid("animate", [animAttrHashA, animAttrHashB]);
    }
  </script>
</svg>