Summary

Harness status: OK

Found 177 tests

Details

ResultTest NameMessage
PassA KeyframeEffect can be constructed with no frames
Asserts run
Pass
assert_equals(0, 0, "number of frames for []")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:24:5)
Pass
assert_equals(0, 0, "number of frames for null")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:24:5)
Pass
assert_equals(0, 0, "number of frames for undefined")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:24:5)
Passeasing values are parsed correctly when passed to the KeyframeEffect constructor in KeyframeEffectOptions
Asserts run
Pass
assert_equals("linear", "linear", "resulting easing for 'linear'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:36:5)
Pass
assert_equals("ease-in-out", "ease-in-out", "resulting easing for 'ease-in-out'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:36:5)
Pass
assert_equals("ease-in-out", "ease-in-out", "resulting easing for 'Ease\\2d in-out'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:36:5)
Pass
assert_equals("ease", "ease", "resulting easing for 'ease /**/'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:36:5)
PassInvalid easing values are correctly rejected when passed to the KeyframeEffect constructor in KeyframeEffectOptions
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing ''")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing '7'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'test'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'initial'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'inherit'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'unset'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'unrecognized'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'var(--x)'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'ease-in-out, ease-out'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'cubic-bezier(1.1, 0, 1, 1)'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'cubic-bezier(0, 0, 1.1, 1)'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'cubic-bezier(-0.1, 0, 1, 1)'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'cubic-bezier(0, 0, -0.1, 1)'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'cubic-bezier(0.1, 0, 4, 0.4)'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'steps(-1, start)'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'steps(0.1, start)'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'steps(3, nowhere)'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'steps(-3, end)'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'function (a){return a}'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'function (x){return x}'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, null, { easing: invalidEasing });     }", "TypeError is thrown for easing 'function(x, y){return 0.3}'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:44:5)
Passcomposite values are parsed correctly when passed to the KeyframeEffect constructor in property-indexed keyframes
Asserts run
Pass
assert_equals("replace", "replace", "resulting composite for 'replace'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:56:5)
Pass
assert_equals("add", "add", "resulting composite for 'add'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:56:5)
Pass
assert_equals("accumulate", "accumulate", "resulting composite for 'accumulate'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:56:5)
Pass
assert_equals("auto", "auto", "resulting composite for 'auto'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:56:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, getKeyframe(composite));     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:60:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, getKeyframe(composite));     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:60:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, getKeyframe(composite));     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:60:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, getKeyframe(composite));     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:60:5)
Passcomposite values are parsed correctly when passed to the KeyframeEffect constructor in regular keyframes
Asserts run
Pass
assert_equals("replace", "replace", "resulting composite for 'replace'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:75:5)
Pass
assert_equals("add", "add", "resulting composite for 'add'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:75:5)
Pass
assert_equals("accumulate", "accumulate", "resulting composite for 'accumulate'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:75:5)
Pass
assert_equals("auto", "auto", "resulting composite for 'auto'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:75:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, getKeyframes(composite));     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:79:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, getKeyframes(composite));     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:79:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, getKeyframes(composite));     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:79:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, getKeyframes(composite));     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:79:5)
Passcomposite value is auto if the composite operation specified on the keyframe effect is being used
Asserts run
Pass
assert_equals("auto", "auto", "resulting composite for 'replace'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:91:5)
Pass
assert_equals("auto", "auto", "resulting composite for 'add'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:91:5)
Pass
assert_equals("auto", "auto", "resulting composite for 'accumulate'")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:91:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, {         left: ['10px', '20px']       }, { composite: composite });     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:95:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, {         left: ['10px', '20px']       }, { composite: composite });     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:95:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, {         left: ['10px', '20px']       }, { composite: composite });     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:95:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, {         left: ['10px', '20px']       }, { composite: composite });     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:95:5)
PassA KeyframeEffect can be constructed with a one property two value property-indexed keyframes specification
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a one property two value property-indexed keyframes specification roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a one shorthand property two value property-indexed keyframes specification
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,margin,offset", "composite,computedOffset,easing,margin,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'margin' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,margin,offset", "composite,computedOffset,easing,margin,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px 20px 30px 40px", "10px 20px 30px 40px", "value for 'margin' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a one shorthand property two value property-indexed keyframes specification roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,margin,offset", "composite,computedOffset,easing,margin,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'margin' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,margin,offset", "composite,computedOffset,easing,margin,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px 20px 30px 40px", "10px 20px 30px 40px", "value for 'margin' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,margin,marginTop,offset", "composite,computedOffset,easing,margin,marginTop,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'margin' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'marginTop' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,margin,marginTop,offset", "composite,computedOffset,easing,margin,marginTop,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px 20px 30px 40px", "10px 20px 30px 40px", "value for 'margin' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("60px", "60px", "value for 'marginTop' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,margin,marginTop,offset", "composite,computedOffset,easing,margin,marginTop,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'margin' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'marginTop' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,margin,marginTop,offset", "composite,computedOffset,easing,margin,marginTop,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px 20px 30px 40px", "10px 20px 30px 40px", "value for 'margin' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("60px", "60px", "value for 'marginTop' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a two property (one shorthand and one of its shorthand components) two value property-indexed keyframes specification
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("border,borderColor,composite,computedOffset,easing,offset", "border,borderColor,composite,computedOffset,easing,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("pink", "pink", "value for 'border' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("green", "green", "value for 'borderColor' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("border,borderColor,composite,computedOffset,easing,offset", "border,borderColor,composite,computedOffset,easing,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("2px", "2px", "value for 'border' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("blue", "blue", "value for 'borderColor' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a two property (one shorthand and one of its shorthand components) two value property-indexed keyframes specification roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("border,borderColor,composite,computedOffset,easing,offset", "border,borderColor,composite,computedOffset,easing,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("pink", "pink", "value for 'border' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("green", "green", "value for 'borderColor' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("border,borderColor,composite,computedOffset,easing,offset", "border,borderColor,composite,computedOffset,easing,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("2px", "2px", "value for 'border' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("blue", "blue", "value for 'borderColor' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a two property two value property-indexed keyframes specification
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'top' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'top' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a two property two value property-indexed keyframes specification roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'top' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'top' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a two property property-indexed keyframes specification with different numbers of values
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'top' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'top' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a two property property-indexed keyframes specification with different numbers of values roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'top' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'top' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframes specification with an invalid value
Asserts run
Pass
assert_equals(5, 5, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("15px", "15px", "value for 'top' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("25px", "25px", "value for 'top' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.75, 0.75, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("45px", "45px", "value for 'top' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("55px", "55px", "value for 'top' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframes specification with an invalid value roundtrips
Asserts run
Pass
assert_equals(5, 5, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("15px", "15px", "value for 'top' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("25px", "25px", "value for 'top' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.75, 0.75, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("45px", "45px", "value for 'top' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("55px", "55px", "value for 'top' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a one property two value property-indexed keyframes specification that needs to stringify its values
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,offset,opacity", "composite,computedOffset,easing,offset,opacity", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("0", "0", "value for 'opacity' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,offset,opacity", "composite,computedOffset,easing,offset,opacity", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("1", "1", "value for 'opacity' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a one property two value property-indexed keyframes specification that needs to stringify its values roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,offset,opacity", "composite,computedOffset,easing,offset,opacity", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("0", "0", "value for 'opacity' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,offset,opacity", "composite,computedOffset,easing,offset,opacity", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("1", "1", "value for 'opacity' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframes specification with a CSS variable reference
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("var(--dist)", "var(--dist)", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("calc(var(--dist) + 100px)", "calc(var(--dist) + 100px)", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframes specification with a CSS variable reference roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("var(--dist)", "var(--dist)", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("calc(var(--dist) + 100px)", "calc(var(--dist) + 100px)", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframes specification with a CSS variable reference in a shorthand property
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,margin,offset", "composite,computedOffset,easing,margin,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("var(--dist)", "var(--dist)", "value for 'margin' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,margin,offset", "composite,computedOffset,easing,margin,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("calc(var(--dist) + 100px)", "calc(var(--dist) + 100px)", "value for 'margin' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframes specification with a CSS variable reference in a shorthand property roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,margin,offset", "composite,computedOffset,easing,margin,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("var(--dist)", "var(--dist)", "value for 'margin' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,margin,offset", "composite,computedOffset,easing,margin,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("calc(var(--dist) + 100px)", "calc(var(--dist) + 100px)", "value for 'margin' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a one property one value property-indexed keyframes specification
Asserts run
Pass
assert_equals(1, 1, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a one property one value property-indexed keyframes specification roundtrips
Asserts run
Pass
assert_equals(1, 1, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a one property one non-array value property-indexed keyframes specification
Asserts run
Pass
assert_equals(1, 1, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a one property one non-array value property-indexed keyframes specification roundtrips
Asserts run
Pass
assert_equals(1, 1, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a one property two value property-indexed keyframes specification where the first value is invalid
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,offset", "composite,computedOffset,easing,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a one property two value property-indexed keyframes specification where the first value is invalid roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,offset", "composite,computedOffset,easing,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a one property two value property-indexed keyframes specification where the second value is invalid
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,offset", "composite,computedOffset,easing,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a one property two value property-indexed keyframes specification where the second value is invalid roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,offset", "composite,computedOffset,easing,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframes specification with a CSS variable as the property
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("--custom,composite,computedOffset,easing,offset", "--custom,composite,computedOffset,easing,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("1", "1", "value for '--custom' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("--custom,composite,computedOffset,easing,offset", "--custom,composite,computedOffset,easing,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("2", "2", "value for '--custom' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframes specification with a CSS variable as the property roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("--custom,composite,computedOffset,easing,offset", "--custom,composite,computedOffset,easing,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("1", "1", "value for '--custom' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("--custom,composite,computedOffset,easing,offset", "--custom,composite,computedOffset,easing,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("2", "2", "value for '--custom' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with a single offset
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.75, 0.75, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with a single offset roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.75, 0.75, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.1, 0.1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.1, 0.1, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.8, 0.8, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.8, 0.8, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with an array of offsets roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.1, 0.1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.1, 0.1, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.8, 0.8, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.8, 0.8, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets that is too short
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with an array of offsets that is too short roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets that is too long
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with an array of offsets that is too long roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with an empty array of offsets
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with an empty array of offsets roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets with an embedded null value
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with an array of offsets with an embedded null value roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets with a trailing null value
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with an array of offsets with a trailing null value roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets with leading and trailing null values
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with an array of offsets with leading and trailing null values roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets with adjacent null values
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with an array of offsets with adjacent null values roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets with all null values (and too many at that)
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with an array of offsets with all null values (and too many at that) roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with a single null offset
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with a single null offset roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets that is not strictly ascending in the unused part of the array
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.2, 0.2, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.2, 0.2, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.8, 0.8, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.8, 0.8, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with an array of offsets that is not strictly ascending in the unused part of the array roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.2, 0.2, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.2, 0.2, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.8, 0.8, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.8, 0.8, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe without any specified easing
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe without any specified easing roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with a single easing
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with a single easing roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with an array of easings
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-out", "ease-out", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in-out", "ease-in-out", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with an array of easings roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-out", "ease-out", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in-out", "ease-in-out", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with an array of easings that is too short
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-out", "ease-out", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with an array of easings that is too short roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-out", "ease-out", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with a single-element array of easings
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with a single-element array of easings roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease-in", "ease-in", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with an empty array of easings
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with an empty array of easings roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with an array of easings that is too long
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("steps(1)", "steps(1)", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("steps(2)", "steps(2)", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("steps(3)", "steps(3)", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with an array of easings that is too long roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("steps(1)", "steps(1)", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("steps(2)", "steps(2)", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("steps(3)", "steps(3)", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with a single composite operation
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with a single composite operation roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with a composite array
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("replace", "replace", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("accumulate", "accumulate", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with a composite array roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("replace", "replace", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("accumulate", "accumulate", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with a composite array that is too short
Asserts run
Pass
assert_equals(5, 5, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("replace", "replace", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("replace", "replace", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.75, 0.75, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with a composite array that is too short roundtrips
Asserts run
Pass
assert_equals(5, 5, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("replace", "replace", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("replace", "replace", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.75, 0.75, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with a composite array that is too long
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("replace", "replace", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with a composite array that is too long roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("replace", "replace", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a property-indexed keyframe with a single-element composite array
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a property-indexed keyframe with a single-element composite array roundtrips
Asserts run
Pass
assert_equals(3, 3, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a one property one keyframe sequence
Asserts run
Pass
assert_equals(1, 1, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect constructed with a one property one keyframe sequence roundtrips
Asserts run
Pass
assert_equals(1, 1, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect can be constructed with a one property two keyframe sequence
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect constructed with a one property two keyframe sequence roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect can be constructed with a two property two keyframe sequence
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("30px", "30px", "value for 'top' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("40px", "40px", "value for 'top' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a two property two keyframe sequence roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("30px", "30px", "value for 'top' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("40px", "40px", "value for 'top' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a one shorthand property two keyframe sequence
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,margin,offset", "composite,computedOffset,easing,margin,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'margin' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,margin,offset", "composite,computedOffset,easing,margin,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px 30px 40px 50px", "20px 30px 40px 50px", "value for 'margin' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect constructed with a one shorthand property two keyframe sequence roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,margin,offset", "composite,computedOffset,easing,margin,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'margin' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,margin,offset", "composite,computedOffset,easing,margin,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px 30px 40px 50px", "20px 30px 40px 50px", "value for 'margin' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect can be constructed with a two property (a shorthand and one of its component longhands) two keyframe sequence
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,margin,marginTop,offset", "composite,computedOffset,easing,margin,marginTop,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'margin' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'marginTop' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,margin,marginTop,offset", "composite,computedOffset,easing,margin,marginTop,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px 40px 50px 60px", "30px 40px 50px 60px", "value for 'margin' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("70px", "70px", "value for 'marginTop' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect constructed with a two property (a shorthand and one of its component longhands) two keyframe sequence roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,margin,marginTop,offset", "composite,computedOffset,easing,margin,marginTop,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'margin' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'marginTop' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,margin,marginTop,offset", "composite,computedOffset,easing,margin,marginTop,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px 40px 50px 60px", "30px 40px 50px 60px", "value for 'margin' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("70px", "70px", "value for 'marginTop' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect can be constructed with a two property keyframe sequence where one property is missing from the first keyframe
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("30px", "30px", "value for 'top' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a two property keyframe sequence where one property is missing from the first keyframe roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("30px", "30px", "value for 'top' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a two property keyframe sequence where one property is missing from the last keyframe
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("20px", "20px", "value for 'top' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect constructed with a two property keyframe sequence where one property is missing from the last keyframe roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("20px", "20px", "value for 'top' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect can be constructed with a one property two keyframe sequence that needs to stringify its values
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,offset,opacity", "composite,computedOffset,easing,offset,opacity", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("0", "0", "value for 'opacity' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,offset,opacity", "composite,computedOffset,easing,offset,opacity", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("1", "1", "value for 'opacity' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a one property two keyframe sequence that needs to stringify its values roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,offset,opacity", "composite,computedOffset,easing,offset,opacity", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("0", "0", "value for 'opacity' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,offset,opacity", "composite,computedOffset,easing,offset,opacity", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("1", "1", "value for 'opacity' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a keyframe sequence with a CSS variable reference
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("var(--dist)", "var(--dist)", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("calc(var(--dist) + 100px)", "calc(var(--dist) + 100px)", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a keyframe sequence with a CSS variable reference roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("var(--dist)", "var(--dist)", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("calc(var(--dist) + 100px)", "calc(var(--dist) + 100px)", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a keyframe sequence with a CSS variable reference in a shorthand property
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,margin,offset", "composite,computedOffset,easing,margin,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("var(--dist)", "var(--dist)", "value for 'margin' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,margin,offset", "composite,computedOffset,easing,margin,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("calc(var(--dist) + 100px)", "calc(var(--dist) + 100px)", "value for 'margin' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a keyframe sequence with a CSS variable reference in a shorthand property roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,margin,offset", "composite,computedOffset,easing,margin,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("var(--dist)", "var(--dist)", "value for 'margin' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,margin,offset", "composite,computedOffset,easing,margin,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("calc(var(--dist) + 100px)", "calc(var(--dist) + 100px)", "value for 'margin' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a keyframe sequence with a CSS variable as its property
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("--custom,composite,computedOffset,easing,offset", "--custom,composite,computedOffset,easing,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("a", "a", "value for '--custom' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("--custom,composite,computedOffset,easing,offset", "--custom,composite,computedOffset,easing,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("b", "b", "value for '--custom' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a keyframe sequence with a CSS variable as its property roundtrips
Asserts run
Pass
assert_equals(2, 2, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("--custom,composite,computedOffset,easing,offset", "--custom,composite,computedOffset,easing,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("a", "a", "value for '--custom' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("--custom,composite,computedOffset,easing,offset", "--custom,composite,computedOffset,easing,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("b", "b", "value for '--custom' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a keyframe sequence with duplicate values for a given interior offset
Asserts run
Pass
assert_equals(5, 5, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect constructed with a keyframe sequence with duplicate values for a given interior offset roundtrips
Asserts run
Pass
assert_equals(5, 5, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect can be constructed with a keyframe sequence with duplicate values for offsets 0 and 1
Asserts run
Pass
assert_equals(6, 6, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #5:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("60px", "60px", "value for 'left' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect constructed with a keyframe sequence with duplicate values for offsets 0 and 1 roundtrips
Asserts run
Pass
assert_equals(6, 6, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #5:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("60px", "60px", "value for 'left' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect can be constructed with a two property four keyframe sequence
Asserts run
Pass
assert_equals(4, 4, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,offset,top", "composite,computedOffset,easing,offset,top", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("20px", "20px", "value for 'top' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,offset,top", "composite,computedOffset,easing,offset,top", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("30px", "30px", "value for 'top' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect constructed with a two property four keyframe sequence roundtrips
Asserts run
Pass
assert_equals(4, 4, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,offset,top", "composite,computedOffset,easing,offset,top", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("20px", "20px", "value for 'top' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,offset,top", "composite,computedOffset,easing,offset,top", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("30px", "30px", "value for 'top' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect can be constructed with a single keyframe sequence with omitted offset
Asserts run
Pass
assert_equals(1, 1, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a single keyframe sequence with omitted offset roundtrips
Asserts run
Pass
assert_equals(1, 1, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a single keyframe sequence with null offset
Asserts run
Pass
assert_equals(1, 1, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a single keyframe sequence with null offset roundtrips
Asserts run
Pass
assert_equals(1, 1, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a single keyframe sequence with string offset
Asserts run
Pass
assert_equals(1, 1, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect constructed with a single keyframe sequence with string offset roundtrips
Asserts run
Pass
assert_equals(1, 1, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect can be constructed with a single keyframe sequence with a single calc() offset
Asserts run
Pass
assert_equals(1, 1, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect constructed with a single keyframe sequence with a single calc() offset roundtrips
Asserts run
Pass
assert_equals(1, 1, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
FailA KeyframeEffect can be constructed with a single keyframe sequence with a complex calc() offsetFailed to construct 'KeyframeEffect': timeline offset must be of the form [timeline-range-name] <percentage>
TypeError: Failed to construct 'KeyframeEffect': timeline offset must be of the form [timeline-range-name] <percentage>
    at Test.<anonymous> (https://wpt.live/web-animations/interfaces/KeyframeEffect/constructor.html:106:20)
    at Test.step (https://wpt.live/resources/testharness.js:2642:25)
    at test (https://wpt.live/resources/testharness.js:633:30)
    at https://wpt.live/web-animations/interfaces/KeyframeEffect/constructor.html:105:3
Asserts runNo asserts ran
FailA KeyframeEffect constructed with a single keyframe sequence with a complex calc() offset roundtripsFailed to construct 'KeyframeEffect': timeline offset must be of the form [timeline-range-name] <percentage>
TypeError: Failed to construct 'KeyframeEffect': timeline offset must be of the form [timeline-range-name] <percentage>
    at Test.<anonymous> (https://wpt.live/web-animations/interfaces/KeyframeEffect/constructor.html:111:20)
    at Test.step (https://wpt.live/resources/testharness.js:2642:25)
    at test (https://wpt.live/resources/testharness.js:633:30)
    at https://wpt.live/web-animations/interfaces/KeyframeEffect/constructor.html:110:3
Asserts runNo asserts ran
PassA KeyframeEffect can be constructed with a one property keyframe sequence with some omitted offsets
Asserts run
Pass
assert_equals(5, 5, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.75, 0.75, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect constructed with a one property keyframe sequence with some omitted offsets roundtrips
Asserts run
Pass
assert_equals(5, 5, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.75, 0.75, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect can be constructed with a one property keyframe sequence with some null offsets
Asserts run
Pass
assert_equals(5, 5, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.75, 0.75, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect constructed with a one property keyframe sequence with some null offsets roundtrips
Asserts run
Pass
assert_equals(5, 5, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.75, 0.75, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
PassA KeyframeEffect can be constructed with a two property keyframe sequence with some omitted offsets
Asserts run
Pass
assert_equals(5, 5, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("20px", "20px", "value for 'top' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.75, 0.75, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("60px", "60px", "value for 'top' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("70px", "70px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("80px", "80px", "value for 'top' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a two property keyframe sequence with some omitted offsets roundtrips
Asserts run
Pass
assert_equals(5, 5, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("20px", "20px", "value for 'top' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.75, 0.75, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("60px", "60px", "value for 'top' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset,top", "composite,computedOffset,easing,left,offset,top", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("70px", "70px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("80px", "80px", "value for 'top' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a one property keyframe sequence with all omitted offsets
Asserts run
Pass
assert_equals(5, 5, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.75, 0.75, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a one property keyframe sequence with all omitted offsets roundtrips
Asserts run
Pass
assert_equals(5, 5, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.25, 0.25, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("20px", "20px", "value for 'left' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.75, 0.75, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("40px", "40px", "value for 'left' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a keyframe sequence with different easing values, but the same easing value for a given offset
Asserts run
Pass
assert_equals(6, 6, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease", "ease", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,offset,top", "composite,computedOffset,easing,offset,top", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease", "ease", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("20px", "20px", "value for 'top' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,offset,top", "composite,computedOffset,easing,offset,top", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("40px", "40px", "value for 'top' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("steps(1)", "steps(1)", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,offset,top", "composite,computedOffset,easing,offset,top", "properties on ComputedKeyframe #5:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("steps(1)", "steps(1)", "value for 'easing' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("60px", "60px", "value for 'top' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a keyframe sequence with different easing values, but the same easing value for a given offset roundtrips
Asserts run
Pass
assert_equals(6, 6, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease", "ease", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,offset,top", "composite,computedOffset,easing,offset,top", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("ease", "ease", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("20px", "20px", "value for 'top' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,offset,top", "composite,computedOffset,easing,offset,top", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("40px", "40px", "value for 'top' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("steps(1)", "steps(1)", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,offset,top", "composite,computedOffset,easing,offset,top", "properties on ComputedKeyframe #5:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("auto", "auto", "value for 'composite' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("steps(1)", "steps(1)", "value for 'easing' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("60px", "60px", "value for 'top' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect can be constructed with a keyframe sequence with different composite values, but the same composite value for a given offset
Asserts run
Pass
assert_equals(6, 6, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("replace", "replace", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,offset,top", "composite,computedOffset,easing,offset,top", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("replace", "replace", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("20px", "20px", "value for 'top' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,offset,top", "composite,computedOffset,easing,offset,top", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("40px", "40px", "value for 'top' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("replace", "replace", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,offset,top", "composite,computedOffset,easing,offset,top", "properties on ComputedKeyframe #5:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("replace", "replace", "value for 'composite' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("60px", "60px", "value for 'top' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassA KeyframeEffect constructed with a keyframe sequence with different composite values, but the same composite value for a given offset roundtrips
Asserts run
Pass
assert_equals(6, 6, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #0:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("replace", "replace", "value for 'composite' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("10px", "10px", "value for 'left' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #0: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,offset,top", "composite,computedOffset,easing,offset,top", "properties on ComputedKeyframe #1:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("replace", "replace", "value for 'composite' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'computedOffset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0, 0, 0.000001, "value for 'offset' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("20px", "20px", "value for 'top' on ComputedKeyframe #1: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #2:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("30px", "30px", "value for 'left' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #2: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,offset,top", "composite,computedOffset,easing,offset,top", "properties on ComputedKeyframe #3:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("add", "add", "value for 'composite' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'computedOffset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(0.5, 0.5, 0.000001, "value for 'offset' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("40px", "40px", "value for 'top' on ComputedKeyframe #3: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("composite,computedOffset,easing,left,offset", "composite,computedOffset,easing,left,offset", "properties on ComputedKeyframe #4:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("replace", "replace", "value for 'composite' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_equals("50px", "50px", "value for 'left' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #4: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("composite,computedOffset,easing,offset,top", "composite,computedOffset,easing,offset,top", "properties on ComputedKeyframe #5:  should match")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:29:3)
Pass
assert_equals("replace", "replace", "value for 'composite' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'computedOffset' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("linear", "linear", "value for 'easing' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
Pass
assert_approx_equals(1, 1, 0.000001, "value for 'offset' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:35:7)
Pass
assert_equals("60px", "60px", "value for 'top' on ComputedKeyframe #5: ")
    at assert_frames_equal ( /web-animations/resources/keyframe-utils.js:49:7)
PassKeyframeEffect constructor throws with keyframes with an out-of-bounded positive offset
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:120:5)
PassKeyframeEffect constructor throws with keyframes with an out-of-bounded negative offset
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:120:5)
PassKeyframeEffect constructor throws with property-indexed keyframes not loosely sorted by offset
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:120:5)
PassKeyframeEffect constructor throws with property-indexed keyframes not loosely sorted by offset even though not all offsets are specified
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:120:5)
PassKeyframeEffect constructor throws with property-indexed keyframes with offsets out of range
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:120:5)
PassKeyframeEffect constructor throws with keyframes not loosely sorted by offset
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:120:5)
PassKeyframeEffect constructor throws with property-indexed keyframes with an invalid easing value
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:120:5)
PassKeyframeEffect constructor throws with property-indexed keyframes with an invalid easing value as one of the array values
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:120:5)
PassKeyframeEffect constructor throws with property-indexed keyframe with an invalid easing in the unused part of the array of easings
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:120:5)
PassKeyframeEffect constructor throws with empty property-indexed keyframe with an invalid easing
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:120:5)
PassKeyframeEffect constructor throws with empty property-indexed keyframe with an invalid easings array
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:120:5)
PassKeyframeEffect constructor throws with a keyframe sequence with an invalid easing value
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:120:5)
PassKeyframeEffect constructor throws with property-indexed keyframes with an invalid composite value
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:120:5)
PassKeyframeEffect constructor throws with property-indexed keyframes with an invalid composite value as one of the array values
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:120:5)
PassKeyframeEffect constructor throws with keyframes with an invalid composite value
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:120:5)
FailA KeyframeEffect constructed without any KeyframeEffectOptions objectassert_equals: default iterationComposite expected (string) "replace" but got (undefined) undefined
    at Test.<anonymous> (https://wpt.live/web-animations/interfaces/KeyframeEffect/constructor.html:140:3)
    at Test.step (https://wpt.live/resources/testharness.js:2642:25)
    at test (https://wpt.live/resources/testharness.js:633:30)
    at https://wpt.live/web-animations/interfaces/KeyframeEffect/constructor.html:126:1
Asserts run
Pass
assert_equals(0, 0, "default delay")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:130:3)
Pass
assert_equals(0, 0, "default endDelay")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:131:3)
Pass
assert_equals("auto", "auto", "default fill")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:132:3)
Pass
assert_equals(1, 1, "default iterations")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:133:3)
Pass
assert_equals(0, 0, "default iterationStart")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:134:3)
Pass
assert_equals("auto", "auto", "default duration")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:135:3)
Pass
assert_equals("normal", "normal", "default direction")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:136:3)
Pass
assert_equals("linear", "linear", "default easing")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:137:3)
Pass
assert_equals("replace", "replace", "default composite")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:139:3)
Fail
assert_equals(undefined, "replace", "default iterationComposite")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:140:3)
PassA KeyframeEffect constructed by an empty KeyframeEffectOptions object
Asserts run
Pass
assert_equals(0, 0, "timing delay")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:156:5)
Pass
assert_equals("auto", "auto", "timing fill")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:158:5)
Pass
assert_equals(1, 1, "timing iterations")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:160:5)
Pass
assert_equals("auto", "auto", "timing duration")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:162:5)
Pass
assert_equals("normal", "normal", "timing direction")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:164:5)
PassA KeyframeEffect constructed by a normal KeyframeEffectOptions object
Asserts run
Pass
assert_equals(1000, 1000, "timing delay")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:156:5)
Pass
assert_equals("auto", "auto", "timing fill")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:158:5)
Pass
assert_equals(5.5, 5.5, "timing iterations")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:160:5)
Pass
assert_equals("auto", "auto", "timing duration")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:162:5)
Pass
assert_equals("alternate", "alternate", "timing direction")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:164:5)
PassA KeyframeEffect constructed by a double value
Asserts run
Pass
assert_equals(0, 0, "timing delay")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:156:5)
Pass
assert_equals("auto", "auto", "timing fill")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:158:5)
Pass
assert_equals(1, 1, "timing iterations")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:160:5)
Pass
assert_equals(3000, 3000, "timing duration")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:162:5)
Pass
assert_equals("normal", "normal", "timing direction")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:164:5)
PassA KeyframeEffect constructed by +Infinity
Asserts run
Pass
assert_equals(0, 0, "timing delay")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:156:5)
Pass
assert_equals("auto", "auto", "timing fill")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:158:5)
Pass
assert_equals(1, 1, "timing iterations")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:160:5)
Pass
assert_equals(Infinity, Infinity, "timing duration")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:162:5)
Pass
assert_equals("normal", "normal", "timing direction")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:164:5)
PassA KeyframeEffect constructed by an Infinity duration
Asserts run
Pass
assert_equals(0, 0, "timing delay")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:156:5)
Pass
assert_equals("auto", "auto", "timing fill")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:158:5)
Pass
assert_equals(1, 1, "timing iterations")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:160:5)
Pass
assert_equals(Infinity, Infinity, "timing duration")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:162:5)
Pass
assert_equals("normal", "normal", "timing direction")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:164:5)
PassA KeyframeEffect constructed by an auto duration
Asserts run
Pass
assert_equals(0, 0, "timing delay")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:156:5)
Pass
assert_equals("auto", "auto", "timing fill")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:158:5)
Pass
assert_equals(1, 1, "timing iterations")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:160:5)
Pass
assert_equals("auto", "auto", "timing duration")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:162:5)
Pass
assert_equals("normal", "normal", "timing direction")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:164:5)
PassA KeyframeEffect constructed by an Infinity iterations
Asserts run
Pass
assert_equals(0, 0, "timing delay")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:156:5)
Pass
assert_equals("auto", "auto", "timing fill")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:158:5)
Pass
assert_equals(Infinity, Infinity, "timing iterations")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:160:5)
Pass
assert_equals("auto", "auto", "timing duration")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:162:5)
Pass
assert_equals("normal", "normal", "timing direction")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:164:5)
PassA KeyframeEffect constructed by an auto fill
Asserts run
Pass
assert_equals(0, 0, "timing delay")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:156:5)
Pass
assert_equals("auto", "auto", "timing fill")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:158:5)
Pass
assert_equals(1, 1, "timing iterations")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:160:5)
Pass
assert_equals("auto", "auto", "timing duration")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:162:5)
Pass
assert_equals("normal", "normal", "timing direction")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:164:5)
PassA KeyframeEffect constructed by a forwards fill
Asserts run
Pass
assert_equals(0, 0, "timing delay")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:156:5)
Pass
assert_equals("forwards", "forwards", "timing fill")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:158:5)
Pass
assert_equals(1, 1, "timing iterations")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:160:5)
Pass
assert_equals("auto", "auto", "timing duration")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:162:5)
Pass
assert_equals("normal", "normal", "timing direction")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:164:5)
PassInvalid KeyframeEffect option by -Infinity
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, { left: ['10px', '20px'] }, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:172:5)
PassInvalid KeyframeEffect option by NaN
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, { left: ['10px', '20px'] }, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:172:5)
PassInvalid KeyframeEffect option by a negative value
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, { left: ['10px', '20px'] }, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:172:5)
PassInvalid KeyframeEffect option by a negative Infinity duration
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, { left: ['10px', '20px'] }, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:172:5)
PassInvalid KeyframeEffect option by a NaN duration
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, { left: ['10px', '20px'] }, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:172:5)
PassInvalid KeyframeEffect option by a negative duration
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, { left: ['10px', '20px'] }, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:172:5)
PassInvalid KeyframeEffect option by a string duration
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, { left: ['10px', '20px'] }, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:172:5)
PassInvalid KeyframeEffect option by a negative Infinity iterations
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, { left: ['10px', '20px'] }, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:172:5)
PassInvalid KeyframeEffect option by a NaN iterations
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, { left: ['10px', '20px'] }, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:172:5)
PassInvalid KeyframeEffect option by a negative iterations
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, { left: ['10px', '20px'] }, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:172:5)
PassInvalid KeyframeEffect option by a blank easing
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, { left: ['10px', '20px'] }, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:172:5)
PassInvalid KeyframeEffect option by an unrecognized easing
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, { left: ['10px', '20px'] }, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:172:5)
PassInvalid KeyframeEffect option by an 'initial' easing
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, { left: ['10px', '20px'] }, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:172:5)
PassInvalid KeyframeEffect option by an 'inherit' easing
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, { left: ['10px', '20px'] }, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:172:5)
PassInvalid KeyframeEffect option by a variable easing
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, { left: ['10px', '20px'] }, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:172:5)
PassInvalid KeyframeEffect option by a multi-value easing
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       new KeyframeEffect(target, { left: ['10px', '20px'] }, subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:172:5)
PassA KeyframeEffect constructed with null target
Asserts run
Pass
assert_equals(null, null, "Effect created with null target has correct target")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:182:3)
PassKeyframeEffect constructor propagates exceptions generated by accessing the options object
Asserts run
Pass
assert_throws_exactly(object "[object Object]", function "() => {     new KeyframeEffect(target, { get left() { throw test_error }})   }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/constructor.html:189:3)