<svg version="1.1" baseProfile="basic" id="svg-root"
  width="100%" height="100%" viewBox="0 0 480 360"
  xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <!--======================================================================-->
  <!--=  SVG 1.1 2nd Edition Test Case                                     =-->
  <!--======================================================================-->
  <!--=  Copyright 2009 World Wide Web Consortium, (Massachusetts          =-->
  <!--=  Institute of Technology, European Research Consortium for         =-->
  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  <!--=  All Rights Reserved.                                              =-->
  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  <!--======================================================================-->
  <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"
    template-version="1.4" reviewer="BB" author="CL" status="accepted"
    version="$Revision: 1.7 $" testname="$RCSfile: filters-felem-01-b.svg,v $">
    <d:testDescription xmlns="http://www.w3.org/1999/xhtml" href="http://www.w3.org/TR/SVG11/filters.html#FilterElement">
      <p>
        Test which verifies null filters and filter regions.
      </p>
      <p>
        Four subtests each consist of a small red circle overdrawn with a larger green circle. 
        Filters are applied to three of the red circles, hiding them and showing the green circle.
      </p>
      <p>
        The top left subtest has no filter applied to the circle, so the green circle is visible and the red one is not. 
        The top right subtest applies a filter to the red circle, but there is no corresponding filter element. 
        Thus, a null filter is applied and the red circle is not shown, allowing the green circle to be seen.
      </p>
      <p>
        The bottom left subtest applies an empty filter element with the default filterRegion, and the bottom right 
        subtest applies an empty filter with a non-default filterRegion. In both cases where empty filters are applied, 
        the result of the filter is a transparent black offscreen, thus showing the green circle underneath.
      </p>
    </d:testDescription>
    <d:operatorScript xmlns="http://www.w3.org/1999/xhtml">
      <p>
        Run the test. No interaction required.
      </p>
    </d:operatorScript>
    <d:passCriteria xmlns="http://www.w3.org/1999/xhtml">
      <p>
        The test is passed if there are four green circles visible.
      </p>
    </d:passCriteria>
  </d:SVGTestCase>
  <title id="test-title">$RCSfile: filters-felem-01-b.svg,v $</title>
  <defs>
    <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
      <font-face-src>
        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
      </font-face-src>
    </font-face>
  </defs>
  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
    <defs>
      <filter id="null"/>
      <filter id="nullreg" filterUnits="objectBoundingBox" x="40%" y="40%" width="20%" height="20%"/>
    </defs>
    <g>
      <circle r="30" fill="red" cx="130" cy="60"/>
      <circle r="40" fill="lime" cx="130" cy="60"/>
      <text font-size="20" x="130" y="130" text-anchor="middle">No filter</text>
    </g>
    <g>
      <circle r="30" fill="lime" cx="130" cy="210"/>
      <circle r="40" fill="red" cx="130" cy="210" filter="url(#null)"/>
      <text font-size="20" x="130" y="280" text-anchor="middle">Null filter</text>
    </g>
    <g>
      <circle r="30" fill="lime" cx="330" cy="60"/>
      <circle r="40" fill="red" cx="330" cy="60" filter="url(#notthere)"/>
      <text font-size="20" x="330" y="130" text-anchor="middle">Non-existent filter</text>
    </g>
    <g>
      <circle r="30" fill="lime" cx="330" cy="210"/>
      <circle r="40" fill="red" cx="330" cy="210" filter="url(#nullreg)"/>
      <text font-size="20" x="330" y="280" text-anchor="middle">Null with small region filter</text>
    </g>
  </g>
  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
    <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
  </g>
  <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
  <!-- comment out this watermark once the test is approved -->
  <!--<g id="draft-watermark">
    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  </g>-->
</svg>
