<?xml version="1.0" encoding="UTF-8"?>
<!--======================================================================-->
<!--= Copyright 2004 World Wide Web Consortium, (Massachusetts =-->
<!--= Institute of Technology, Institut National de Recherche en =-->
<!--= Informatique et en Automatique, Keio University). All Rights =-->
<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
<!--======================================================================--><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="tiny" id="svg-root" width="100%" height="100%" viewBox="0 0 480 360">
<SVGTestCase xmlns:testcase="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" reviewer="CN" owner="VH" desc="Basic test on the max attribute and combinations of the min and max attributes" status="accepted" version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-66-t.svg,v $">
<OperatorScript>
<Paragraph>
This tests performs basic tests on the max attribute and on
combinations of the min and max attributes. The test is based
on the SMIL specification at:
http://www.w3.org/TR/smil20/smil-timing.html#Timing-MinMax.
</Paragraph>
<Paragraph>
Each row in the test shows different rectangles subject to <set>
animations with different configurations with regards to the max and min
attributes. For each row, the animation should be active
during the first 5 seconds of the animations where the red rectangle
should show in the right column. At five seconds into the animation,
all the rectangles should move to their left position.
</Paragraph>
<Paragraph>
On the first row, the <set> animation has a (0s <= t < 5s) active duration
and no max attribute so the actual active duration is (0s <= t < 5s).
The first row shows a second rectangle with a <set> animation with
the same configuration except that the max attribute value is set to
'media'. Because the <set> element does not define a media, the
behavior should be as if the attribute was not specified.
</Paragraph>
<Paragraph>
On the second row, the <set> animation has a (0s <= t < 5s) active duration
and a min attribute set to '-6s' for the first rectangle and to 'foo' for the
second one. These values are invalid for max and, as
per the specification, the behavior should be as if the attribute was not
specified. Consequently, the behavior is as for the previous row and
the actual active duration is (0s <= t < 5s).
</Paragraph>
<Paragraph>
On the third row, the <set> animation has a (0s <= t < 8s) initial active duration
and a max attribute set to '5s'. The max value is less than the active
duration, so the max attribute constrains the active duration to (0s <= t < 5s).
</Paragraph>
<Paragraph>
On the fourth row, the <set> animation has a (0s <= t < 5s) initial active duration,
an indefinite simple duration (dur is set to indefinite) and a max attribute set to '8s'.
Because the initial active duration is less than the max attribute the active
duration is not constrained and is unchanged at (0s <= t < 5s).
</Paragraph>
<Paragraph>
On the fifth row, the <set> animation has a (0s <= t < indefinite) initial active duration,
a min of 2s and a max of 5s. Because the min value is less than the max value, both apply
and the computed active duration is (0s <= t < 5s).
</Paragraph>
<Paragraph>
On the sixth row, the <set> animation has a (0s <= t < indefinite) initial active duration,
a min of 5s and a max of 5s. Because the min value is equal to the max value, both apply
and the computed active duration is (0s <= t < 5s).
</Paragraph>
<Paragraph>
On the seventh row, the <set> animation has a (0s <= t < 5s) initial active duration,
a min of 2s and a max of 8s. Because the min value is greater than the max value, both are
ignored and the computed active duration is (0s <= t < 5s).
</Paragraph>
</OperatorScript>
</SVGTestCase>
<title id="test-title">$RCSfile: animate-elem-66-t.svg,v $</title>
<!--======================================================================-->
<!--Content of Test Case follows... =====================-->
<!--======================================================================-->
<text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.7 $</text>
<rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
<text text-anchor="middle" x="240" y="30" font-size="20">max</text>
<text text-anchor="middle" x="240" y="190" font-size="20">min & max</text>
<g transform="translate(100, 30)">
<g transform="translate(120,45)" text-anchor="end" font-size="14">
<text>no max / media</text>
<text y="25">invalid max values</text>
<text y="50">max < active dur</text>
<text y="75">max > active dur</text>
<text y="150">min < max</text>
<text y="175">min = max</text>
<text y="200">min > max (both ignored)</text>
</g>
<g id="timeMarkersText" transform="translate(150, 25)" text-anchor="middle" font-size="14">
<text>> 5s</text>
<text x="80">0s-5s</text>
</g>
<g transform="translate(150,40)" stroke="black">
<defs>
<rect id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1"/>
</defs>
<g id="setOne">
<use xlink:href="#shadow" x="0"/>
<use xlink:href="#shadow" x="80"/>
<rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
<set id="firstSet" attributeName="x" to="74" end="5s"/>
</rect>
<g transform="translate(20, 0)">
<use xlink:href="#shadow" x="0"/>
<use xlink:href="#shadow" x="80"/>
<rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
<set attributeName="x" to="74" end="5s" max="media"/>
</rect>
</g>
</g>
<g id="setTwo" transform="translate(0, 25)">
<use xlink:href="#shadow" x="0"/>
<use xlink:href="#shadow" x="80"/>
<rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
<set attributeName="x" to="74" max="-6s" end="5s"/>
</rect>
<g transform="translate(20, 0)">
<use xlink:href="#shadow" x="0"/>
<use xlink:href="#shadow" x="80"/>
<rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
<set attributeName="x" to="74" end="5s" max="foo"/>
</rect>
</g>
</g>
<g id="setThree" transform="translate(0, 50)">
<use xlink:href="#shadow" x="0"/>
<use xlink:href="#shadow" x="80"/>
<rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
<set attributeName="x" to="74" max="5s" end="8s"/>
</rect>
</g>
<g id="setFour" transform="translate(0, 75)">
<use xlink:href="#shadow" x="0"/>
<use xlink:href="#shadow" x="80"/>
<rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
<set attributeName="x" to="74" max="8s" dur="indefinite" end="5s"/>
</rect>
</g>
<g id="setFive" transform="translate(0, 150)">
<use xlink:href="#shadow" x="0"/>
<use xlink:href="#shadow" x="80"/>
<rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
<set attributeName="x" to="74" min="2s" max="5s" dur="indefinite"/>
</rect>
</g>
<g id="setSix" transform="translate(0, 175)">
<use xlink:href="#shadow" x="0"/>
<use xlink:href="#shadow" x="80"/>
<rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
<set attributeName="x" to="74" min="5s" max="5s" dur="indefinite"/>
</rect>
</g>
<g id="setSeven" transform="translate(0, 200)">
<use xlink:href="#shadow" x="0"/>
<use xlink:href="#shadow" x="80"/>
<rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
<set attributeName="x" to="74" min="8s" max="2s" end="5s"/>
</rect>
</g>
</g>
</g>
<script>
// Pause the animation at t=0.
document.documentElement.pauseAnimations();
</script>
</svg>