<!doctype html>
<meta charset="utf-8">
<title>Path animation where coordinate modes of start and end differ (L-l, V-v and H-h)</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
<script src="support/animated-path-helpers.js"></script>
<svg></svg>
<script>
var rootSVGElement = document.querySelector("svg");

// Setup test document
var path = createSVGElement("path");
path.setAttribute("id", "path");
path.setAttribute("d", "M -30 -30 L 30 0 V 30 H 0 Z");
path.setAttribute("fill", "green");
path.setAttribute("transform", "translate(50, 50)");

var animate = createSVGElement("animate");
animate.setAttribute("id", "animation");
animate.setAttribute("attributeName", "d");
animate.setAttribute("from", "M -30 -30 L 30 0 V 30 H 0 Z");
animate.setAttribute("to", "M 30 30 l -60 -30 v -30 h 30 Z");
animate.setAttribute("begin", "0s");
animate.setAttribute("dur", "4s");
path.appendChild(animate);
rootSVGElement.appendChild(path);

// Setup animation test
function sample1() {
  // Check initial/end conditions
  assert_animated_path_equals(path, "M -30 -30 L 30 0 V 30 H 0 Z");
}

function sample2() {
  assert_animated_path_equals(path, "M -15 -15 l 30 15 v 15 h -15 Z");
}

function sample3() {
  assert_animated_path_equals(path, "M 15 15 l -30 -15 v -15 h 15 Z");
}

function sample4() {
  assert_animated_path_equals(path, "M 29.985 29.985 l -59.97 -29.985 v -29.985 h 29.985 Z");
}

smil_async_test(t => {
  const expectedValues = [
    // [animationId, time, sampleCallback]
    ["animation", 0.0,   sample1],
    ["animation", 1.0,   sample2],
    ["animation", 3.0,   sample3],
    ["animation", 3.999, sample4],
    ["animation", 4.001, sample1]
  ];
  runAnimationTest(t, expectedValues);
});
</script>
