<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="loaded()">
<style type="text/css">
    path { fill: none; stroke: blue; stroke-width: 1px; }
</style>

<!-- By-animations -->
<g>
    <!-- Simple by-animation -->
    <path d="M50,50 L60,50 L60,60 L50,60 Z">
        <animate attributeName="d" begin="0s" dur="4s" by="M0,0 L40,0 L40,40 L0,40 Z" fill="freeze"/>
    </path>

    <!-- By-animation enforces additive="sum" behaviour. -->
    <path d="M50,50 L60,50 L60,60 L50,60 Z" transform="translate(100,0)">
        <animate attributeName="d" begin="0s" dur="4s" by="M0,0 L20,0 L20,20 L0,20 Z" fill="freeze"/>
        <animate attributeName="d" begin="0s" dur="4s" by="M0,0 L20,0 L20,20 L0,20 Z" fill="freeze"/>
    </path>

    <!-- Lower priority animations contribute to the additive behavior of following animations -->
    <path d="M50,50 L60,50 L60,60 L50,60 Z" transform="translate(200,0)">
        <animate attributeName="d" begin="0s" dur="2s" by="M0,0 L20,0 L20,20 L0,20 Z" fill="freeze"/>
        <animate attributeName="d" begin="2s" dur="2s" by="M0,0 L20,0 L20,20 L0,20 Z" fill="freeze"/>
    </path>
</g>

<!-- By-animations with repetitions -->
<g transform="translate(0,100)">
    <!-- Testing repeatCount="2" without accumulation. -->
    <path d="M50,50 L60,50 L60,60 L50,60 Z">
        <animate attributeName="d" begin="0s" dur="2s" repeatCount="2" by="M0,0 L40,0 L40,40 L0,40 Z" fill="freeze"/>
    </path>

    <!-- Testing repeatCount="2" with accumulation. -->
    <path d="M50,50 L60,50 L60,60 L50,60 Z" transform="translate(100,0)">
        <animate attributeName="d" begin="0s" dur="2s" accumulate="sum" repeatCount="2" by="M0,0 L20,0 L20,20 L0,20 Z" fill="freeze"/>
    </path>

    <!-- Testing two animations with repeatCount="2" and accumulation. -->
    <path d="M50,50 L60,50 L60,60 L50,60 Z" transform="translate(200,0)">
        <animate attributeName="d" begin="0s" dur="2s" accumulate="sum" repeatCount="2" by="M0,0 L10,0 L10,10 L0,10 Z" fill="freeze"/>
        <animate attributeName="d" begin="0s" dur="2s" accumulate="sum" repeatCount="2" by="M0,0 L10,0 L10,10 L0,10 Z" fill="freeze"/>
    </path>
</g>

<!-- From-by animations -->
<g transform="translate(0,200)">
    <!-- Simple from-by animation -->
    <path d="M50,50 L60,50 L60,60 L50,60 Z">
        <animate attributeName="d" begin="0s" dur="4s" from="M50,50 L60,50 L60,60 L50,60 Z" by="M0,0 L40,0 L40,40 L0,40 Z" fill="freeze"/>
    </path>

    <!-- If additive="sum" is not given the second animation always overrides the first -->
    <path d="M50,50 L60,50 L60,60 L50,60 Z" transform="translate(100,0)">
        <animate attributeName="d" begin="0s" dur="4s" from="M50,50 L60,50 L60,60 L50,60 Z" by="M0,0 L666,0 L666,666 L0,666 Z" fill="freeze"/>
        <animate attributeName="d" begin="0s" dur="4s" from="M50,50 L60,50 L60,60 L50,60 Z" by="M0,0 L40,0 L40,40 L0,40 Z" fill="freeze"/>
    </path>

    <!-- Testing additive="sum" on from-by animations -->
    <path d="M50,50 L60,50 L60,60 L50,60 Z" transform="translate(200,0)">
        <animate attributeName="d" begin="0s" dur="4s" from="M25,25 L30,25 L30,30 L25,30 Z" by="M0,0 L20,0 L20,20 L0,20 Z" fill="freeze"/>
        <animate attributeName="d" begin="0s" dur="4s" additive="sum" from="M25,25 L30,25 L30,30 L25,30 Z" by="M0,0 L20,0 L20,20 L0,20 Z" fill="freeze"/>
    </path>
</g>

<!-- From-by animations with repetitions -->
<g transform="translate(0,300)">
    <!-- Testing repeatCount="4" with accumulation & addition -->
    <path d="M50,50 L60,50 L60,60 L50,60 Z">
        <animate attributeName="d" begin="0s" dur="1s" additive="sum" accumulate="sum" repeatCount="4" from="M0,0 L0,0 L0,0 L0,0 Z" by="M0,0 L10,0 L10,10 L0,10 Z" fill="freeze"/>
    </path>

    <!-- Testing repeatCount="4" with accumulation and without addition -->
    <path d="M50,50 L60,50 L60,60 L50,60 Z" transform="translate(100,0)">
        <animate attributeName="d" begin="0s" dur="1s" additive="replace" accumulate="sum" repeatCount="4" from="M12.5,12.5 L15,12.5 L15,15 L12.5,15 Z" by="M0,0 L10,0 L10,10 L0,10 Z" fill="freeze"/>
    </path>

    <!-- Testing multiple additive combinations with accumulation -->
    <path d="M50,50 L60,50 L60,60 L50,60 Z" transform="translate(200,0)">
        <animate attributeName="d" begin="0s" dur="1s" additive="replace" accumulate="sum" repeatCount="2" from="M0,0 L0,0 L0,0 L0,0 Z" by="M0,0 L10,0 L10,10 L0,10 Z" fill="freeze"/>
        <animate attributeName="d" begin="2s" dur="1s" additive="sum" accumulate="sum" repeatCount="2" from="M25,25 L30,25 L30,30 L25,30 Z" by="M0,0 L10,0 L10,10 L0,10 Z" fill="freeze"/>
    </path>
</g>

<script>
if (window.testRunner)
    testRunner.waitUntilDone();

function loaded() {
    document.documentElement.setCurrentTime(5);
    if (window.testRunner)
        testRunner.notifyDone();
}
</script>
</svg>
