| <!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> |