blob: 6e675ed11b95fbd428838f2497c38f0ec5e20760 [file] [log] [blame]
<!DOCTYPE html>
<style>
body {
font-size: 10px;
}
</style>
<body>
<template id="target-template">
<svg width="0" height="0" viewBox="0 0 1000 1000">
<text class="target"/>
</svg>
</template>
<script src="../svg-attribute-interpolation/resources/interpolation-test.js"></script>
<script>
'use strict';
assertAttributeInterpolation({
property: 'x',
underlying: '1, 1, 1',
from: '-1, -2, 1',
fromComposite: 'add',
to: '4, -7, 6',
toComposite: 'add',
}, [
{at: -0.4, is: '-2, 1, 0'},
{at: 0, is: '0, -1, 2'},
{at: 0.2, is: '1, -2, 3'},
{at: 0.6, is: '3, -4, 5'},
{at: 1, is: '5, -6, 7'},
{at: 1.4, is: '7, -8, 9'},
]);
assertAttributeInterpolation({
property: 'x',
underlying: '1em, 1ex, 1rem',
from: '-1em, 0ex, 1rem',
fromComposite: 'add',
to: '4em, 5ex, 6rem',
toComposite: 'add',
}, [
{at: -0.4, is: '-2em, -1ex, 0rem'},
{at: 0, is: '0em, 1ex, 2rem'},
{at: 0.2, is: '1em, 2ex, 3rem'},
{at: 0.6, is: '3em, 4ex, 5rem'},
{at: 1, is: '5em, 6ex, 7rem'},
{at: 1.4, is: '7em, 8ex, 9rem'},
]);
assertAttributeInterpolation({
property: 'x',
underlying: '50, 50, 0',
from: '50%, 0em, 0',
fromComposite: 'add',
to: '0em, 50%, 0',
toComposite: 'add',
}, [
{at: -0.4, is: '750, -150, 0'},
{at: 0, is: '550, 50, 0'},
{at: 0.2, is: '450, 150, 0'},
{at: 0.6, is: '250, 350, 0'},
{at: 1, is: '50, 550, 0'},
{at: 1.4, is: '-150, 750, 0'},
]);
assertAttributeInterpolation({
property: 'x',
underlying: '1, 1, 1',
from: '0, -1, 2',
fromComposite: 'replace',
to: '4, -7, 6',
toComposite: 'add',
}, [
{at: -0.4, is: '-2, 1, 0'},
{at: 0, is: '0, -1, 2'},
{at: 0.2, is: '1, -2, 3'},
{at: 0.6, is: '3, -4, 5'},
{at: 1, is: '5, -6, 7'},
{at: 1.4, is: '7, -8, 9'},
]);
assertAttributeInterpolation({
property: 'x',
underlying: '1em, 1ex, 1rem',
from: '0em, 1ex, 2rem',
fromComposite: 'replace',
to: '4em, 5ex, 6rem',
toComposite: 'add',
}, [
{at: -0.4, is: '-2em, -1ex, 0rem'},
{at: 0, is: '0em, 1ex, 2rem'},
{at: 0.2, is: '1em, 2ex, 3rem'},
{at: 0.6, is: '3em, 4ex, 5rem'},
{at: 1, is: '5em, 6ex, 7rem'},
{at: 1.4, is: '7em, 8ex, 9rem'},
]);
assertAttributeInterpolation({
property: 'x',
underlying: '1em, 10%, 0',
from: '55%, 5em, 0',
fromComposite: 'replace',
to: '4em, 45%, 0',
toComposite: 'add',
}, [
{at: -0.4, is: '750, -150, 0'},
{at: 0, is: '550, 50, 0'},
{at: 0.2, is: '450, 150, 0'},
{at: 0.6, is: '250, 350, 0'},
{at: 1, is: '50, 550, 0'},
{at: 1.4, is: '-150, 750, 0'},
]);
assertAttributeInterpolation({
property: 'x',
underlying: '0, -1, 2',
from: neutralKeyframe,
to: '5, -6, 7',
toComposite: 'replace',
}, [
{at: -0.4, is: '-2, 1, 0'},
{at: 0, is: '0, -1, 2'},
{at: 0.2, is: '1, -2, 3'},
{at: 0.6, is: '3, -4, 5'},
{at: 1, is: '5, -6, 7'},
{at: 1.4, is: '7, -8, 9'},
]);
assertAttributeInterpolation({
property: 'x',
underlying: '0em, 1ex, 2rem',
from: neutralKeyframe,
to: '5em, 6ex, 7rem',
toComposite: 'replace',
}, [
{at: -0.4, is: '-2em, -1ex, 0rem'},
{at: 0, is: '0em, 1ex, 2rem'},
{at: 0.2, is: '1em, 2ex, 3rem'},
{at: 0.6, is: '3em, 4ex, 5rem'},
{at: 1, is: '5em, 6ex, 7rem'},
{at: 1.4, is: '7em, 8ex, 9rem'},
]);
assertAttributeInterpolation({
property: 'x',
underlying: '55%, 5em, 0',
from: neutralKeyframe,
to: '5em, 55%, 0',
toComposite: 'replace',
}, [
{at: -0.4, is: '750, -150, 0'},
{at: 0, is: '550, 50, 0'},
{at: 0.2, is: '450, 150, 0'},
{at: 0.6, is: '250, 350, 0'},
{at: 1, is: '50, 550, 0'},
{at: 1.4, is: '-150, 750, 0'},
]);
</script>
</body>