Summary

Harness status: OK

Found 81 tests

Details

ResultTest NameMessage
PassKeyframes can be replaced with an empty keyframe
Asserts run
Pass
assert_equals(0, 0, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals(0, 0, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
Pass
assert_equals(0, 0, "number of frames: ")
    at assert_frame_lists_equal ( /web-animations/resources/keyframe-utils.js:20:3)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
FailKeyframes can be replaced with a single keyframe sequence with a complex calc() offsetFailed to execute 'setKeyframes' on 'KeyframeEffect': timeline offset must be of the form [timeline-range-name] <percentage>
TypeError: Failed to execute 'setKeyframes' on 'KeyframeEffect': timeline offset must be of the form [timeline-range-name] <percentage>
    at Test.<anonymous> (https://wpt.live/web-animations/interfaces/KeyframeEffect/setKeyframes.html:29:12)
    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/setKeyframes.html:27:3
Asserts runNo asserts ran
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframes can be replaced 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)
PassKeyframeEffect constructor throws with keyframes with an out-of-bounded positive offset
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       effect.setKeyframes(subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/setKeyframes.html:37: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 "() => {       effect.setKeyframes(subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/setKeyframes.html:37: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 "() => {       effect.setKeyframes(subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/setKeyframes.html:37: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 "() => {       effect.setKeyframes(subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/setKeyframes.html:37: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 "() => {       effect.setKeyframes(subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/setKeyframes.html:37:5)
PassKeyframeEffect constructor throws with keyframes not loosely sorted by offset
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       effect.setKeyframes(subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/setKeyframes.html:37: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 "() => {       effect.setKeyframes(subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/setKeyframes.html:37: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 "() => {       effect.setKeyframes(subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/setKeyframes.html:37: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 "() => {       effect.setKeyframes(subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/setKeyframes.html:37: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 "() => {       effect.setKeyframes(subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/setKeyframes.html:37: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 "() => {       effect.setKeyframes(subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/setKeyframes.html:37: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 "() => {       effect.setKeyframes(subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/setKeyframes.html:37: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 "() => {       effect.setKeyframes(subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/setKeyframes.html:37: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 "() => {       effect.setKeyframes(subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/setKeyframes.html:37:5)
PassKeyframeEffect constructor throws with keyframes with an invalid composite value
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => {       effect.setKeyframes(subtest.input);     }")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/setKeyframes.html:37:5)
PassChanges made via setKeyframes should be immediately visible in style
Asserts run
Pass
assert_equals("150px", "150px")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/setKeyframes.html:49:3)
Pass
assert_equals("250px", "250px")
    at Test.<anonymous> ( /web-animations/interfaces/KeyframeEffect/setKeyframes.html:52:3)