<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 300 200" xmlns="http://www.w3.org/2000/svg" onload="loaded()">
<title>Test mixed cardinality animations</title>
<g transform="translate(50,20)">
    <text x="0" y="0">
        <!-- Test that an animated list of different cardinality works properly -->
        ABC
        <animate attributeName="x" dur="5s" repeatCount="10" values="1; 2,3,4,5; 3"/>
    </text>
    <text x="0" y="30">
        <!-- Test that an animated list of different cardinality works properly -->
        DEF
        <animate attributeName="x" dur="7s" repeatCount="10" values="1; 2,3,4,5; 3"/>
    </text>
    <text y="60">
        <!-- Test that an sum works properly with mixed cardinality -->
        GHI
        <animate attributeName="x" additive="sum" accumulate="sum" dur="2s" repeatCount="25" values="0; 10; 20 20; 30" calcMode="linear" />
    </text>
    <text y="90">
        <!-- Test that an sum works properly with mixed cardinality -->
        JKL
        <animate attributeName="x" additive="sum" accumulate="sum" dur="2s" repeatCount="25" values="0 0; 10 10; 40" calcMode="linear" />
    </text>
</g>
<script>
if (window.testRunner)
    testRunner.waitUntilDone();

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