[Web Animations] Implement more CSSPropertyBlendingClient methods
authorgraouts@webkit.org <graouts@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Mar 2018 17:37:43 +0000 (17:37 +0000)
committergraouts@webkit.org <graouts@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Mar 2018 17:37:43 +0000 (17:37 +0000)
https://bugs.webkit.org/show_bug.cgi?id=184077

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark progressions for WPT tests.

* web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
* web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
* web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
* web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:

Source/WebCore:

We only had stubs for several of the CSSPropertyBlendingClient methods and thus always implied that we
were animating non-matching transform, filter and backdrop-filter properties. We now implement those using
the same code used in KeyframeAnimation. This allows for 31 new tests to opt into the CSS Animations and
CSS Transitions as Web Animations feature.

* animation/KeyframeEffectReadOnly.cpp:
(WebCore::KeyframeEffectReadOnly::copyPropertiesFromSource):
(WebCore::KeyframeEffectReadOnly::updateBlendingKeyframes):
(WebCore::KeyframeEffectReadOnly::setBlendingKeyframes):
(WebCore::KeyframeEffectReadOnly::checkForMatchingTransformFunctionLists):
(WebCore::KeyframeEffectReadOnly::checkForMatchingFilterFunctionLists):
(WebCore::KeyframeEffectReadOnly::checkForMatchingBackdropFilterFunctionLists):
(WebCore::KeyframeEffectReadOnly::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffectReadOnly::computeCSSTransitionBlendingKeyframes):
* animation/KeyframeEffectReadOnly.h:

LayoutTests:

Make 31 tests opt into the CSS Animations and CSS Transitions as Web Animations feature.

* animations/3d/replace-filling-transform.html:
* animations/additive-transform-animations.html:
* animations/animation-direction-reverse-fill-mode-hardware.html:
* animations/combo-transform-rotate+scale.html:
* animations/simultaneous-start-transform.html:
* compositing/animation/layer-for-filling-animation.html:
* compositing/reflections/animation-inside-reflection.html:
* compositing/reflections/nested-reflection-animated.html:
* css3/filters/backdrop/animation.html:
* css3/filters/composited-during-animation.html:
* css3/filters/filter-animation-from-none-hw.html:
* css3/filters/filter-animation-from-none-multi-hw.html:
* css3/filters/filter-animation-from-none-multi.html:
* css3/filters/filter-animation-from-none.html:
* css3/filters/filter-animation-hw.html:
* css3/filters/filter-animation-multi-hw.html:
* css3/filters/filter-animation-multi.html:
* css3/filters/filter-animation.html:
* css3/masking/clip-path-animation.html:
* fast/filter-image/filter-image-animation.html:
* fast/shapes/shape-outside-floats/shape-outside-animation.html:
* fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html:
* fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html:
* platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
* platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
* platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
* transitions/clip-path-transitions.html:
* transitions/color-transition-premultiplied.html:
* transitions/cross-fade-border-image.html:
* transitions/cubic-bezier-overflow-length.html:
* transitions/cubic-bezier-overflow-svg-length.html:
* transitions/delay.html:
* transitions/longhand-vs-shorthand-initial.html:
* transitions/multiple-background-transitions.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230033 268f45cc-cd09-0410-ab3c-d52691b4dbfc

43 files changed:
LayoutTests/ChangeLog
LayoutTests/animations/3d/replace-filling-transform.html
LayoutTests/animations/additive-transform-animations.html
LayoutTests/animations/animation-direction-reverse-fill-mode-hardware.html
LayoutTests/animations/combo-transform-rotate+scale.html
LayoutTests/animations/simultaneous-start-transform.html
LayoutTests/compositing/animation/layer-for-filling-animation.html
LayoutTests/compositing/reflections/animation-inside-reflection.html
LayoutTests/compositing/reflections/nested-reflection-animated.html
LayoutTests/css3/filters/backdrop/animation.html
LayoutTests/css3/filters/composited-during-animation.html
LayoutTests/css3/filters/filter-animation-from-none-hw.html
LayoutTests/css3/filters/filter-animation-from-none-multi-hw.html
LayoutTests/css3/filters/filter-animation-from-none-multi.html
LayoutTests/css3/filters/filter-animation-from-none.html
LayoutTests/css3/filters/filter-animation-hw.html
LayoutTests/css3/filters/filter-animation-multi-hw.html
LayoutTests/css3/filters/filter-animation-multi.html
LayoutTests/css3/filters/filter-animation.html
LayoutTests/css3/masking/clip-path-animation.html
LayoutTests/fast/filter-image/filter-image-animation.html
LayoutTests/fast/shapes/shape-outside-floats/shape-outside-animation.html
LayoutTests/fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html
LayoutTests/fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt
LayoutTests/platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt
LayoutTests/platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt
LayoutTests/platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt
LayoutTests/transitions/clip-path-transitions.html
LayoutTests/transitions/color-transition-premultiplied.html
LayoutTests/transitions/cross-fade-border-image.html
LayoutTests/transitions/cubic-bezier-overflow-length.html
LayoutTests/transitions/cubic-bezier-overflow-svg-length.html
LayoutTests/transitions/delay.html
LayoutTests/transitions/longhand-vs-shorthand-initial.html
LayoutTests/transitions/multiple-background-transitions.html
Source/WebCore/ChangeLog
Source/WebCore/animation/KeyframeEffectReadOnly.cpp
Source/WebCore/animation/KeyframeEffectReadOnly.h

index aa85aa6..0835bd3 100644 (file)
@@ -1,3 +1,47 @@
+2018-03-28  Antoine Quint  <graouts@apple.com>
+
+        [Web Animations] Implement more CSSPropertyBlendingClient methods
+        https://bugs.webkit.org/show_bug.cgi?id=184077
+
+        Reviewed by Dean Jackson.
+
+        Make 31 tests opt into the CSS Animations and CSS Transitions as Web Animations feature.
+
+        * animations/3d/replace-filling-transform.html:
+        * animations/additive-transform-animations.html:
+        * animations/animation-direction-reverse-fill-mode-hardware.html:
+        * animations/combo-transform-rotate+scale.html:
+        * animations/simultaneous-start-transform.html:
+        * compositing/animation/layer-for-filling-animation.html:
+        * compositing/reflections/animation-inside-reflection.html:
+        * compositing/reflections/nested-reflection-animated.html:
+        * css3/filters/backdrop/animation.html:
+        * css3/filters/composited-during-animation.html:
+        * css3/filters/filter-animation-from-none-hw.html:
+        * css3/filters/filter-animation-from-none-multi-hw.html:
+        * css3/filters/filter-animation-from-none-multi.html:
+        * css3/filters/filter-animation-from-none.html:
+        * css3/filters/filter-animation-hw.html:
+        * css3/filters/filter-animation-multi-hw.html:
+        * css3/filters/filter-animation-multi.html:
+        * css3/filters/filter-animation.html:
+        * css3/masking/clip-path-animation.html:
+        * fast/filter-image/filter-image-animation.html:
+        * fast/shapes/shape-outside-floats/shape-outside-animation.html:
+        * fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html:
+        * fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html:
+        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
+        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
+        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
+        * transitions/clip-path-transitions.html:
+        * transitions/color-transition-premultiplied.html:
+        * transitions/cross-fade-border-image.html:
+        * transitions/cubic-bezier-overflow-length.html:
+        * transitions/cubic-bezier-overflow-svg-length.html:
+        * transitions/delay.html:
+        * transitions/longhand-vs-shorthand-initial.html:
+        * transitions/multiple-background-transitions.html:
+
 2018-03-27  Timothy Hatcher  <timothy@apple.com>
 
         Web Inspector: Modernize some utility functions
         * fast/multicol/parent-box-when-spanner-is-present-expected.txt: Added.
         * fast/multicol/parent-box-when-spanner-is-present.html: Added.
 
+
 2018-03-27  Antoine Quint  <graouts@apple.com>
 
         [Web Animations] Stop using internals.pauseAnimationAtTimeOnElement() in favor of Web Animations API for animations tests
index 09ec341..d372f1b 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 <html>
 <head>
     <style>
index 8762512..1a18fbb 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index 858f7f3..b7785c0 100644 (file)
@@ -1,4 +1,4 @@
-<!doctype html>
+<!doctype html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 <html>
 <head>
   <title>Test simple fill mode on transform</title>
index 428db5e..6cd4930 100644 (file)
@@ -1,5 +1,4 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-   "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html lang="en">
 <head>
index 6b0a61c..bb31943 100644 (file)
@@ -1,5 +1,4 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-   "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html lang="en">
 <head>
index b3e9097..5bfe981 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index 5b896f5..214b427 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 <html>
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
index 4927117..4488ac2 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 <html>
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
index ca1c534..fc169d3 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index 3f462d0..99db3ae 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index 6d31b28..878009a 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index fccb343..5d55a30 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index 2189b30..4753056 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index e6006ca..6164ee2 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index 11a28d1..90ff45e 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index 5436020..b1b71f6 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index 5436020..b1b71f6 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index 6431d7d..bcf4775 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index 21ffb9f..a59b04a 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index 6307bab..be69784 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index 18d274c..b44e930 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index b648f65..02671d5 100644 (file)
@@ -1,5 +1,19 @@
 2018-03-28  Antoine Quint  <graouts@apple.com>
 
+        [Web Animations] Implement more CSSPropertyBlendingClient methods
+        https://bugs.webkit.org/show_bug.cgi?id=184077
+
+        Reviewed by Dean Jackson.
+
+        Mark progressions for WPT tests.
+
+        * web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
+        * web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
+        * web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
+        * web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:
+
+2018-03-28  Antoine Quint  <graouts@apple.com>
+
         [Web Animations] Comparing two matching FramesTimingFunction objects fails
         https://bugs.webkit.org/show_bug.cgi?id=184078
 
index d9007a0..b314bac 100644 (file)
@@ -197,21 +197,21 @@ FAIL stroke-opacity: [0, 1] number (clamped) assert_equals: The value should be
 PASS text-shadow (type: textShadowList) has testAccumulation function 
 FAIL text-shadow: shadow assert_equals: The value should be rgb(240, 240, 240) 20px 20px 20px at 0ms expected "rgb(240, 240, 240) 20px 20px 20px" but got "rgb(120, 120, 120) 10px 10px 10px"
 PASS transform (type: transformList) has testAccumulation function 
-FAIL transform: translate assert_approx_equals: expected matrix(1,0,0,1,-100,0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, -200, 0): The value should be matrix(1,0,0,1,-100,0) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, -200, 0) expected -100 +/- 0.0001 but got -200
+FAIL transform: translate assert_approx_equals: expected matrix(1,0,0,1,-100,0) but got matrix(1, 0, 0, 1, -200, 0): The value should be matrix(1,0,0,1,-100,0) at 0ms but got matrix(1, 0, 0, 1, -200, 0) expected -100 +/- 0.0001 but got -200
 FAIL transform: rotate assert_approx_equals: expected matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 0, 0): The value should be matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) at 0ms but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 0, 0) expected 0.7071067811865476 +/- 0.0001 but got 6.123233995736766e-17
-FAIL transform: scale assert_approx_equals: expected matrix(-2,0,0,-2,0,0) but got matrix(-3, -0.00000000000000036739403974420594, 0.00000000000000036739403974420594, -3, 0, 0): The value should be matrix(-2,0,0,-2,0,0) at 0ms but got matrix(-3, -0.00000000000000036739403974420594, 0.00000000000000036739403974420594, -3, 0, 0) expected -2 +/- 0.0001 but got -3
-FAIL transform: skew assert_approx_equals: expected matrix(1,0.5773502691896256,-0.36397023426620234,1,0,0) but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1.0000000000000002, 0, 0): The value should be matrix(1,0.5773502691896256,-0.36397023426620234,1,0,0) at 0ms but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1.0000000000000002, 0, 0) expected 0.5773502691896256 +/- 0.0001 but got 0.36397023426620234
+FAIL transform: scale assert_approx_equals: expected matrix(-2,0,0,-2,0,0) but got matrix(-3, 0, 0, -3, 0, 0): The value should be matrix(-2,0,0,-2,0,0) at 0ms but got matrix(-3, 0, 0, -3, 0, 0) expected -2 +/- 0.0001 but got -3
+FAIL transform: skew assert_approx_equals: expected matrix(1,0.5773502691896256,-0.36397023426620234,1,0,0) but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1, 0, 0): The value should be matrix(1,0.5773502691896256,-0.36397023426620234,1,0,0) at 0ms but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1, 0, 0) expected 0.5773502691896256 +/- 0.0001 but got 0.36397023426620234
 FAIL transform: rotate on translate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, 0, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, 0, 0) expected 100 +/- 0.0001 but got 0
-FAIL transform: translate on rotate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0) expected 0 +/- 0.0001 but got 1
+FAIL transform: translate on rotate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(1, 0, 0, 1, 100, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(1, 0, 0, 1, 100, 0) expected 0 +/- 0.0001 but got 1
 FAIL transform: matrix assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0) expected 0 +/- 0.0001 but got 1
-FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.4999999999999999, 0.4999999999999998, 0.7071067811865475, 0, 0.49999999999999967, 0.5, -0.7071067811865475, 0, -0.7071067811865475, 0.7071067811865474, 0.0000000000000002483427041595098, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.4999999999999999, 0.4999999999999998, 0.7071067811865475, 0, 0.49999999999999967, 0.5, -0.7071067811865475, 0, -0.7071067811865475, 0.7071067811865474, 0.0000000000000002483427041595098, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.4999999999999999
+FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.4999999999999999, 0.49999999999999994, 0.7071067811865476, 0, 0.49999999999999994, 0.5000000000000001, -0.7071067811865475, 0, -0.7071067811865476, 0.7071067811865475, 0.00000000000000006123233995736766, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.4999999999999999, 0.49999999999999994, 0.7071067811865476, 0, 0.49999999999999994, 0.5000000000000001, -0.7071067811865475, 0, -0.7071067811865476, 0.7071067811865475, 0.00000000000000006123233995736766, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.4999999999999999
 FAIL transform: matrix3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.5000000000000001, 0.49999999999999983, 0.7071067811865474, 0, 0.4999999999999997, 0.5000000000000002, -0.7071067811865476, 0, -0.7071067811865476, 0.7071067811865474, 0.000000000000000404259158300213, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.5000000000000001, 0.49999999999999983, 0.7071067811865474, 0, 0.4999999999999997, 0.5000000000000002, -0.7071067811865476, 0, -0.7071067811865476, 0.7071067811865474, 0.000000000000000404259158300213, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.5000000000000001
 FAIL transform: none assert_equals: dimension of the matrix: The value should be matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1) at 0ms but got matrix(1, 0, 0, 1, 0, 0) expected 16 but got 6
 FAIL transform: non-invertible matrices (non-invertible onto invertible) assert_approx_equals: expected matrix(1,1,0,0,0,100) but got matrix(1, 1, 0, 0, 49.999999999999986, 49.999999999999986): The value should be matrix(1,1,0,0,0,100) at 0ms but got matrix(1, 1, 0, 0, 49.999999999999986, 49.999999999999986) expected 0 +/- 0.0001 but got 49.999999999999986
 PASS transform: non-invertible matrices (invertible onto non-invertible) 
-PASS transform: non-invertible matrices in matched transform lists (non-invertible onto invertible) 
+FAIL transform: non-invertible matrices in matched transform lists (non-invertible onto invertible) assert_approx_equals: expected matrix(-1,-1,0,0,100,100) but got matrix(-1, -1, -0.00000000000000012246467991473532, -0.00000000000000012246467991473532, 150, 49.999999999999986): The value should be matrix(-1,-1,0,0,100,100) at 0ms but got matrix(-1, -1, -0.00000000000000012246467991473532, -0.00000000000000012246467991473532, 150, 49.999999999999986) expected 100 +/- 0.0001 but got 150
 PASS transform: non-invertible matrices in matched transform lists (invertible onto non-invertible) 
-PASS transform: non-invertible matrices in mismatched transform lists (non-invertible onto invertible) 
+FAIL transform: non-invertible matrices in mismatched transform lists (non-invertible onto invertible) assert_approx_equals: expected matrix(1,1,1,1,100,100) but got matrix(1, 1, 0.9999999999999999, 0.9999999999999999, 150, 49.999999999999986): The value should be matrix(1,1,1,1,100,100) at 0ms but got matrix(1, 1, 0.9999999999999999, 0.9999999999999999, 150, 49.999999999999986) expected 100 +/- 0.0001 but got 150
 PASS transform: non-invertible matrices in mismatched transform lists (invertible onto non-invertible) 
 PASS visibility (type: visibility) has testAccumulation function 
 FAIL visibility: onto "visible" assert_equals: The value should be visible at 1000ms expected "visible" but got "hidden"
index 17e53d3..986f9c3 100644 (file)
@@ -118,8 +118,8 @@ PASS fill-opacity (type: opacity) has testAddition function
 FAIL fill-opacity: [0, 1] number assert_equals: The value should be 0.6 at 0ms expected "0.6" but got "0.30000001192092896"
 FAIL fill-opacity: [0, 1] number (clamped) assert_equals: The value should be 1 at 0ms expected "1" but got "0.30000001192092896"
 PASS filter (type: filterList) has testAddition function 
-FAIL filter: blur on blur assert_equals: The value should be blur(10px) blur(20px) at 0ms expected "blur(10px) blur(20px)" but got "blur(50px)"
-FAIL filter: different filter functions assert_equals: The value should be blur(10px) brightness(0.8) at 0ms expected "blur(10px) brightness(0.8)" but got "brightness(0.4)"
+FAIL filter: blur on blur assert_equals: The value should be blur(10px) blur(20px) at 0ms expected "blur(10px) blur(20px)" but got "blur(20px)"
+FAIL filter: different filter functions assert_equals: The value should be blur(10px) brightness(0.8) at 0ms expected "blur(10px) brightness(0.8)" but got "brightness(0.8)"
 PASS flood-color (type: color) has testAddition function 
 FAIL flood-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
 FAIL flood-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
@@ -197,17 +197,17 @@ FAIL stroke-opacity: [0, 1] number (clamped) assert_equals: The value should be
 PASS text-shadow (type: textShadowList) has testAddition function 
 FAIL text-shadow: shadow assert_equals: The value should be rgb(0, 0, 0) 0px 0px 0px, rgb(120, 120, 120) 10px 10px 10px at 0ms expected "rgb(0, 0, 0) 0px 0px 0px, rgb(120, 120, 120) 10px 10px 10px" but got "rgb(120, 120, 120) 10px 10px 10px"
 PASS transform (type: transformList) has testAddition function 
-FAIL transform: translate assert_approx_equals: expected matrix(1,0,0,1,-100,0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, -200, 0): The value should be matrix(1,0,0,1,-100,0) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, -200, 0) expected -100 +/- 0.0001 but got -200
+FAIL transform: translate assert_approx_equals: expected matrix(1,0,0,1,-100,0) but got matrix(1, 0, 0, 1, -200, 0): The value should be matrix(1,0,0,1,-100,0) at 0ms but got matrix(1, 0, 0, 1, -200, 0) expected -100 +/- 0.0001 but got -200
 FAIL transform: rotate assert_approx_equals: expected matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 0, 0): The value should be matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) at 0ms but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 0, 0) expected 0.7071067811865476 +/- 0.0001 but got 6.123233995736766e-17
-FAIL transform: scale assert_approx_equals: expected matrix(-6,0,0,-6,0,0) but got matrix(-3, -0.00000000000000036739403974420594, 0.00000000000000036739403974420594, -3, 0, 0): The value should be matrix(-6,0,0,-6,0,0) at 0ms but got matrix(-3, -0.00000000000000036739403974420594, 0.00000000000000036739403974420594, -3, 0, 0) expected -6 +/- 0.0001 but got -3
-FAIL transform: skew assert_approx_equals: expected matrix(1.064177772475912,0.5402972149746673,-0.40102328848116064,0.8981975702225738,0,0) but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1.0000000000000002, 0, 0): The value should be matrix(1.064177772475912,0.5402972149746673,-0.40102328848116064,0.8981975702225738,0,0) at 0ms but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1.0000000000000002, 0, 0) expected 1.064177772475912 +/- 0.0001 but got 1
+FAIL transform: scale assert_approx_equals: expected matrix(-6,0,0,-6,0,0) but got matrix(-3, 0, 0, -3, 0, 0): The value should be matrix(-6,0,0,-6,0,0) at 0ms but got matrix(-3, 0, 0, -3, 0, 0) expected -6 +/- 0.0001 but got -3
+FAIL transform: skew assert_approx_equals: expected matrix(1.064177772475912,0.5402972149746673,-0.40102328848116064,0.8981975702225738,0,0) but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1, 0, 0): The value should be matrix(1.064177772475912,0.5402972149746673,-0.40102328848116064,0.8981975702225738,0,0) at 0ms but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1, 0, 0) expected 1.064177772475912 +/- 0.0001 but got 1
 FAIL transform: rotate on translate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, 0, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, 0, 0) expected 100 +/- 0.0001 but got 0
-FAIL transform: translate on rotate assert_approx_equals: expected matrix(0,1,-1,0,0,100) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0): The value should be matrix(0,1,-1,0,0,100) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0) expected 0 +/- 0.0001 but got 1
+FAIL transform: translate on rotate assert_approx_equals: expected matrix(0,1,-1,0,0,100) but got matrix(1, 0, 0, 1, 100, 0): The value should be matrix(0,1,-1,0,0,100) at 0ms but got matrix(1, 0, 0, 1, 100, 0) expected 0 +/- 0.0001 but got 1
 FAIL transform: matrix assert_approx_equals: expected matrix(0,1,-1,0,0,100) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0): The value should be matrix(0,1,-1,0,0,100) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0) expected 0 +/- 0.0001 but got 1
-FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.4999999999999999, 0.4999999999999998, 0.7071067811865475, 0, 0.49999999999999967, 0.5, -0.7071067811865475, 0, -0.7071067811865475, 0.7071067811865474, 0.0000000000000002483427041595098, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.4999999999999999, 0.4999999999999998, 0.7071067811865475, 0, 0.49999999999999967, 0.5, -0.7071067811865475, 0, -0.7071067811865475, 0.7071067811865474, 0.0000000000000002483427041595098, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.4999999999999999
+FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.4999999999999999, 0.49999999999999994, 0.7071067811865476, 0, 0.49999999999999994, 0.5000000000000001, -0.7071067811865475, 0, -0.7071067811865476, 0.7071067811865475, 0.00000000000000006123233995736766, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.4999999999999999, 0.49999999999999994, 0.7071067811865476, 0, 0.49999999999999994, 0.5000000000000001, -0.7071067811865475, 0, -0.7071067811865476, 0.7071067811865475, 0.00000000000000006123233995736766, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.4999999999999999
 FAIL transform: matrix3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.5000000000000001, 0.49999999999999983, 0.7071067811865474, 0, 0.4999999999999997, 0.5000000000000002, -0.7071067811865476, 0, -0.7071067811865476, 0.7071067811865474, 0.000000000000000404259158300213, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.5000000000000001, 0.49999999999999983, 0.7071067811865474, 0, 0.4999999999999997, 0.5000000000000002, -0.7071067811865476, 0, -0.7071067811865476, 0.7071067811865474, 0.000000000000000404259158300213, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.5000000000000001
 FAIL transform: non-invertible matrices assert_approx_equals: expected matrix(-1,0,0,-1,250,0) but got matrix(-1, 0.00000000000000012246467991473532, -0.00000000000000012246467991473532, -1, 200, 0): The value should be matrix(-1,0,0,-1,250,0) at 0ms but got matrix(-1, 0.00000000000000012246467991473532, -0.00000000000000012246467991473532, -1, 200, 0) expected 250 +/- 0.0001 but got 200
-FAIL transform: non-invertible matrices in matched transform lists assert_approx_equals: expected matrix(0,-1,1,0,250,0) but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 200, 0): The value should be matrix(0,-1,1,0,250,0) at 0ms but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 200, 0) expected 250 +/- 0.0001 but got 200
+FAIL transform: non-invertible matrices in matched transform lists assert_approx_equals: expected matrix(0,-1,1,0,250,0) but got matrix(-0.00000000000000018369701987210297, -1, 1, -0.00000000000000018369701987210297, 200, 0): The value should be matrix(0,-1,1,0,250,0) at 0ms but got matrix(-0.00000000000000018369701987210297, -1, 1, -0.00000000000000018369701987210297, 200, 0) expected 250 +/- 0.0001 but got 200
 FAIL transform: non-invertible matrices in mismatched transform lists assert_approx_equals: expected matrix(-2,0,0,-2,250,0) but got matrix(-2, 0.00000000000000024492935982947064, -0.00000000000000024492935982947064, -2, 200, 0): The value should be matrix(-2,0,0,-2,250,0) at 0ms but got matrix(-2, 0.00000000000000024492935982947064, -0.00000000000000024492935982947064, -2, 200, 0) expected 250 +/- 0.0001 but got 200
 PASS visibility (type: visibility) has testAddition function 
 FAIL visibility: onto "visible" assert_equals: The value should be visible at 1000ms expected "visible" but got "hidden"
index 0b05d9b..7f1c0f5 100644 (file)
@@ -133,17 +133,17 @@ FAIL column-width uses discrete animation when animating between "auto" and "1px
 PASS fill-opacity (type: opacity) has testInterpolation function 
 FAIL fill-opacity supports animating as a [0, 1] number assert_equals: The value should be 0.55 at 500ms expected "0.55" but got "0.550000011920929"
 PASS filter (type: filterList) has testInterpolation function 
-FAIL filter: blur function assert_equals: The value should be blur(30px) at 500ms expected "blur(30px)" but got "blur(50px)"
-FAIL filter: hue-rotate function with same unit(deg) assert_equals: The value should be hue-rotate(50deg) at 500ms expected "hue-rotate(50deg)" but got "hue-rotate(100deg)"
-FAIL filter: hue-rotate function with different unit(deg -> rad) assert_equals: The value should be hue-rotate(50.0873rad) at 500ms expected "hue-rotate(50.0873rad)" but got "hue-rotate(5729.5779513082325deg)"
-FAIL filter: drop-shadow function assert_equals: The value should be drop-shadow(rgba(85, 0, 170, 0.6) 30px 30px 30px) at 500ms expected "drop-shadow(rgba(85, 0, 170, 0.6) 30px 30px 30px)" but got "drop-shadow(rgba(0, 0, 255, 0.8) 50px 50px 50px)"
-FAIL filter: percentage or numeric-specifiable functions (number value) assert_equals: The value should be brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3) at 500ms expected "brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3)" but got "brightness(0.5) contrast(0.5) grayscale(0.5) invert(0.5) opacity(0.5) saturate(0.5) sepia(0.5)"
-FAIL filter: percentage or numeric-specifiable functions (percentage value) assert_equals: The value should be brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3) at 500ms expected "brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3)" but got "brightness(0.5) contrast(0.5) grayscale(0.5) invert(0.5) opacity(0.5) saturate(0.5) sepia(0.5)"
+PASS filter: blur function 
+PASS filter: hue-rotate function with same unit(deg) 
+FAIL filter: hue-rotate function with different unit(deg -> rad) assert_equals: The value should be hue-rotate(50.0873rad) at 500ms expected "hue-rotate(50.0873rad)" but got "hue-rotate(2869.7889756541163deg)"
+PASS filter: drop-shadow function 
+FAIL filter: percentage or numeric-specifiable functions (number value) assert_equals: The value should be brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3) at 500ms expected "brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3)" but got "brightness(0.30000000000000004) contrast(0.30000000000000004) grayscale(0.30000000000000004) invert(0.30000000000000004) opacity(0.30000000000000004) saturate(0.30000000000000004) sepia(0.30000000000000004)"
+FAIL filter: percentage or numeric-specifiable functions (percentage value) assert_equals: The value should be brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3) at 500ms expected "brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3)" but got "brightness(0.30000000000000004) contrast(0.30000000000000004) grayscale(0.30000000000000004) invert(0.30000000000000004) opacity(0.30000000000000004) saturate(0.30000000000000004) sepia(0.30000000000000004)"
 FAIL filter: interpolate different length of filter-function-list with function which lacuna value is 1 assert_equals: The value should be grayscale(0.5) brightness(0.5) contrast(0.5) opacity(0.5) saturate(0.5) at 500ms expected "grayscale(0.5) brightness(0.5) contrast(0.5) opacity(0.5) saturate(0.5)" but got "grayscale(1) brightness(0) contrast(0) opacity(0) saturate(0)"
-FAIL filter: interpolate different length of filter-function-list with function which lacuna value is 0 assert_equals: The value should be opacity(0.5) grayscale(0.5) invert(0.5) sepia(0.5) blur(5px) at 500ms expected "opacity(0.5) grayscale(0.5) invert(0.5) sepia(0.5) blur(5px)" but got "opacity(0) grayscale(1) invert(1) sepia(1) blur(10px)"
+PASS filter: interpolate different length of filter-function-list with function which lacuna value is 0 
 FAIL filter: interpolate different length of filter-function-list with drop-shadow function assert_equals: The value should be blur(5px) drop-shadow(rgba(85, 0, 170, 0.6) 5px 5px 5px at 500ms expected "blur(5px) drop-shadow(rgba(85, 0, 170, 0.6) 5px 5px 5px" but got "blur(10px) drop-shadow(rgba(0, 0, 255, 0.8) 10px 10px 10px)"
-FAIL filter: interpolate from none assert_equals: The value should be blur(5px) at 500ms expected "blur(5px)" but got "blur(10px)"
-FAIL filter: url function (interpoalte as discrete) assert_equals: The value should be blur(0px) url("#f1") at 499ms expected "blur(0px) url(\"#f1\")" but got "blur(10px) url(#f2)"
+PASS filter: interpolate from none 
+FAIL filter: url function (interpoalte as discrete) assert_equals: The value should be blur(0px) url("#f1") at 499ms expected "blur(0px) url(\"#f1\")" but got "blur(4.989999771118164px) url(#f1)"
 PASS flood-color (type: color) has testInterpolation function 
 PASS flood-color supports animating as color of rgb() 
 PASS flood-color supports animating as color of #RGB 
@@ -239,17 +239,17 @@ PASS transform (type: transformList) has testInterpolation function
 PASS transform: translate 
 PASS transform: rotate 
 PASS transform: scale 
-FAIL transform: skew assert_approx_equals: expected matrix(1,0.9999999999999999,0.9999999999999999,1,0,0) but got matrix(1.1153550716504106, 0.9659258262890682, 0.9659258262890681, 1.1153550716504106, 0, 0): The value should be matrix(1,0.9999999999999999,0.9999999999999999,1,0,0) at 500ms but got matrix(1.1153550716504106, 0.9659258262890682, 0.9659258262890681, 1.1153550716504106, 0, 0) expected 1 +/- 0.0001 but got 1.1153550716504106
+PASS transform: skew 
 PASS transform: rotate and translate 
-FAIL transform: translate and rotate assert_approx_equals: expected matrix(6.123233995736766e-17,1,-1,6.123233995736766e-17,9.184850993605149e-15,150) but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, -35.35533905932736, 106.06601717798213): The value should be matrix(6.123233995736766e-17,1,-1,6.123233995736766e-17,9.184850993605149e-15,150) at 500ms but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, -35.35533905932736, 106.06601717798213) expected 9.184850993605149e-15 +/- 0.0001 but got -35.35533905932736
+PASS transform: translate and rotate 
 PASS transform: mismatch order of translate and rotate 
 PASS transform: matrix 
-FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,-0.5,0,0.1464466094067262,0.8535533905932737,0.5,0,0.5,-0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.7499999999999999, 0.2499999999999999, -0.3535533905932737, 0, 0.24999999999999983, 0.75, 0.3535533905932737, 0, 0.35355339059327373, -0.3535533905932737, 0.5000000000000002, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,-0.5,0,0.1464466094067262,0.8535533905932737,0.5,0,0.5,-0.5,0.7071067811865476,0,0,0,0,1) at 500ms but got matrix3d(0.7499999999999999, 0.2499999999999999, -0.3535533905932737, 0, 0.24999999999999983, 0.75, 0.3535533905932737, 0, 0.35355339059327373, -0.3535533905932737, 0.5000000000000002, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.7499999999999999
+FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,-0.5,0,0.1464466094067262,0.8535533905932737,0.5,0,0.5,-0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.8660254037844386, 0.28867513459481287, -0.40824829046386296, 0, 0, 0.816496580927726, 0.5773502691896256, 0, 0.49999999999999994, -0.4999999999999999, 0.7071067811865476, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,-0.5,0,0.1464466094067262,0.8535533905932737,0.5,0,0.5,-0.5,0.7071067811865476,0,0,0,0,1) at 500ms but got matrix3d(0.8660254037844386, 0.28867513459481287, -0.40824829046386296, 0, 0, 0.816496580927726, 0.5773502691896256, 0, 0.49999999999999994, -0.4999999999999999, 0.7071067811865476, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.8660254037844386
 PASS transform: matrix3d 
 PASS transform: mismatched 3D transforms 
-FAIL transform: rotateY assert_approx_equals: expected matrix3d(0.8660254037844387,0,-0.49999999999999994,0,0,1,0,0,0.49999999999999994,0,0.8660254037844387,0,0,0,0,1) but got matrix3d(0.75, 0, -0.4330127018922192, 0, 0, 1, 0, 0, 0.4330127018922192, 0, 0.75, 0, 0, 0, 0, 1): The value should be matrix3d(0.8660254037844387,0,-0.49999999999999994,0,0,1,0,0,0.49999999999999994,0,0.8660254037844387,0,0,0,0,1) at 500ms but got matrix3d(0.75, 0, -0.4330127018922192, 0, 0, 1, 0, 0, 0.4330127018922192, 0, 0.75, 0, 0, 0, 0, 1) expected 0.8660254037844387 +/- 0.0001 but got 0.75
+PASS transform: rotateY 
 FAIL transform: non-invertible matrices assert_approx_equals: expected matrix(-1,0,0,-1,200,0) but got matrix(-0.0706572801427673, 0.719997959550522, -0.39514637992795165, -0.26007870466007205, 87.65015, 62.44984999999999): The value should be matrix(-1,0,0,-1,200,0) at 499ms but got matrix(-0.0706572801427673, 0.719997959550522, -0.39514637992795165, -0.26007870466007205, 87.65015, 62.44984999999999) expected -1 +/- 0.0001 but got -0.0706572801427673
-FAIL transform: non-invertible matrices in matched transform lists assert_approx_equals: expected matrix(0,-1,1,0,250,0) but got matrix(-0.7873989159254222, -1.115200903528419, 0.1364810122627057, -0.19136080826235746, 112.65025, 49.89999999999999): The value should be matrix(0,-1,1,0,250,0) at 499ms but got matrix(-0.7873989159254222, -1.115200903528419, 0.1364810122627057, -0.19136080826235746, 112.65025, 49.89999999999999) expected 0 +/- 0.0001 but got -0.7873989159254222
+FAIL transform: non-invertible matrices in matched transform lists assert_approx_equals: expected matrix(0,-1,1,0,250,0) but got matrix(-0.22996553737931208, -0.6925071587258891, 0.3290121037669934, -0.3263002137418429, 162.60014694824218, 62.44984999999999): The value should be matrix(0,-1,1,0,250,0) at 499ms but got matrix(-0.22996553737931208, -0.6925071587258891, 0.3290121037669934, -0.3263002137418429, 162.60014694824218, 62.44984999999999) expected 0 +/- 0.0001 but got -0.22996553737931208
 FAIL transform: non-invertible matrices in mismatched transform lists assert_approx_equals: expected matrix(-2,0,0,-2,250,0) but got matrix(0.457235039557905, 1.5761580466297944, -1.1176085646538838, -0.6572212090027189, 112.65025, 49.89999999999999): The value should be matrix(-2,0,0,-2,250,0) at 499ms but got matrix(0.457235039557905, 1.5761580466297944, -1.1176085646538838, -0.6572212090027189, 112.65025, 49.89999999999999) expected -2 +/- 0.0001 but got 0.457235039557905
 PASS visibility (type: visibility) has testInterpolation function 
 PASS visibility uses visibility animation when animating from "visible" to "hidden" 
index 6b7be26..b77ca34 100644 (file)
@@ -10,22 +10,22 @@ FAIL iteration composition of <calc()> value animation assert_equals: Animated c
 FAIL iteration composition of <calc()> value animation that the values can'tbe reduced assert_equals: Animated calc width style at 0s of the third iteration expected "40px" but got "0px"
 FAIL iteration composition of opacity animation assert_equals: Animated opacity style at 50s of the first iteration expected "0.2" but got "0.20000000298023224"
 FAIL iteration composition of box-shadow animation assert_equals: Animated box-shadow style at 0s of the third iteration expected "rgb(240, 240, 240) 20px 20px 20px 0px" but got "rgb(0, 0, 0) 0px 0px 0px 0px"
-FAIL iteration composition of filter blur animation assert_equals: Animated filter blur style at 50s of the first iteration expected "blur(5px)" but got "blur(10px)"
-FAIL iteration composition of filter brightness for different unit animation assert_equals: Animated filter brightness style at 50s of the first iteration expected "brightness(1.4)" but got "brightness(1.8)"
-FAIL iteration composition of filter brightness animation assert_equals: Animated filter brightness style at 50s of the first iteration expected "brightness(0.5)" but got "brightness(1)"
-FAIL iteration composition of filter drop-shadow animation assert_equals: Animated filter drop-shadow style at 50s of the first iteration expected "drop-shadow(rgb(60, 60, 60) 5px 5px 5px)" but got "drop-shadow(rgb(120, 120, 120) 10px 10px 10px)"
-FAIL iteration composition of same filter list animation assert_equals: Animated filter list at 50s of the first iteration expected "brightness(1.5) contrast(1.5)" but got "brightness(2) contrast(2)"
+FAIL iteration composition of filter blur animation assert_equals: Animated filter blur style at 0s of the third iteration expected "blur(20px)" but got "blur(0px)"
+FAIL iteration composition of filter brightness for different unit animation assert_equals: Animated filter brightness style at 0s of the third iteration expected "brightness(2.6)" but got "brightness(1)"
+PASS iteration composition of filter brightness animation 
+FAIL iteration composition of filter drop-shadow animation assert_equals: Animated filter drop-shadow style at 0s of the third iteration expected "drop-shadow(rgb(240, 240, 240) 20px 20px 20px)" but got "drop-shadow(rgb(0, 0, 0) 0px 0px 0px)"
+FAIL iteration composition of same filter list animation assert_equals: Animated filter list at 0s of the third iteration expected "brightness(3) contrast(3)" but got "brightness(1) contrast(1)"
 FAIL iteration composition of discrete filter list because of mismatch of the order assert_equals: Animated filter list at 0s of the third iteration expected "brightness(1) contrast(1)" but got "contrast(2) brightness(2)"
 FAIL iteration composition of different length filter list animation assert_equals: Animated filter list at 50s of the first iteration expected "sepia(0.5) contrast(1.5)" but got "sepia(1) contrast(2)"
-FAIL iteration composition of transform(rotate) animation assert_approx_equals: expected matrix(0, 1, -1, 0, 0, 0) but got matrix(-0.00000000000000018369701987210297, -1, 1, -0.00000000000000018369701987210297, 0, 0): Animated transform(rotate) style at 50s of the first iteration expected 1 +/- 0.0001 but got -1
-FAIL iteration composition of transform: [ scale(0), scale(1) ] animation assert_approx_equals: expected matrix(0.5, 0, 0, 0.5, 0, 0) but got matrix(0.25, -0.00000000000000006123233995736766, 0.00000000000000006123233995736766, 0.25, 0, 0): Animated transform(scale) style at 50s of the first iteration expected 0.5 +/- 0.0001 but got 0.25
-FAIL iteration composition of transform: [ scale(1), scale(2) ] animation assert_approx_equals: expected matrix(3, 0, 0, 3, 0, 0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 0, 0): Animated transform(scale) style at 0s of the third iteration expected 3 +/- 0.0001 but got 1
-FAIL iteration composition of transform: scale(2) animation assert_approx_equals: expected matrix(1, 0, 0, 1, 0, 0) but got matrix(0.5, -0.00000000000000012246467991473532, 0.00000000000000012246467991473532, 0.5, 0, 0): Animated transform(scale) style at 50s of the first iteration expected 1 +/- 0.0001 but got 0.5
-FAIL iteration composition of transform list animation assert_approx_equals: expected matrix(0, 1, -1, 0, 0, 5) but got matrix(-0.00000000000000018369701987210297, -1, 1, -0.00000000000000018369701987210297, -5, 0.0000000000000006123233995736766): Animated transform list at 50s of the first iteration expected 1 +/- 0.0001 but got -1
+PASS iteration composition of transform(rotate) animation 
+PASS iteration composition of transform: [ scale(0), scale(1) ] animation 
+FAIL iteration composition of transform: [ scale(1), scale(2) ] animation assert_approx_equals: expected matrix(3, 0, 0, 3, 0, 0) but got matrix(1, 0, 0, 1, 0, 0): Animated transform(scale) style at 0s of the third iteration expected 3 +/- 0.0001 but got 1
+FAIL iteration composition of transform: scale(2) animation assert_approx_equals: expected matrix(2, 0, 0, 2, 0, 0) but got matrix(0, 0, 0, 0, 0, 0): Animated transform(scale) style at 0s of the third iteration expected 2 +/- 0.0001 but got 0
+FAIL iteration composition of transform list animation assert_approx_equals: expected matrix(1, 0, 0, 1, 20, 0) but got matrix(1, 0, 0, 1, 0, 0): Animated transform list at 0s of the third iteration expected 20 +/- 0.0001 but got 0
 FAIL iteration composition of transform of matrix function assert_approx_equals: expected matrix(6, 0, 0, 6, 60, 0) but got matrix(2, -0.0000000000000004898587196589413, 0.0000000000000004898587196589413, 2, 0, 0): Animated transform of matrix function at 0s of the third iteration expected 6 +/- 0.0001 but got 2
 FAIL iteration composition of transform list animation whose order is mismatched assert_approx_equals: expected matrix(6, 0, 0, 6, 60, 0) but got matrix(2, -0.0000000000000004898587196589413, 0.0000000000000004898587196589413, 2, 0, 0): Animated transform list at 0s of the third iteration expected 6 +/- 0.0001 but got 2
 FAIL iteration composition of transform list animation whose order is mismatched because of missing functions assert_approx_equals: expected matrix(3, 0, 0, 3, 40, 0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 0, 0): Animated transform list at 0s of the third iteration expected 3 +/- 0.0001 but got 1
-FAIL iteration composition of transform from none to translate assert_approx_equals: expected matrix(1, 0, 0, 1, 20, 0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 0, 0): Animated transform list at 0s of the third iteration expected 20 +/- 0.0001 but got 0
+FAIL iteration composition of transform from none to translate assert_approx_equals: expected matrix(1, 0, 0, 1, 20, 0) but got matrix(1, 0, 0, 1, 0, 0): Animated transform list at 0s of the third iteration expected 20 +/- 0.0001 but got 0
 FAIL iteration composition of transform of matrix3d function assert_approx_equals: expected matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 130, 1) but got matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 30, 1): Animated transform of matrix3d function at 0s of the third iteration expected 130 +/- 0.0001 but got 30
 FAIL iteration composition of transform of rotate3d function assert_equals: dimension of the matrix: Animated transform of rotate3d function at 0s of the third iteration expected 16 but got 6
 FAIL iteration composition starts with non-zero value animation assert_equals: Animated margin-left style at 0s of the third iteration expected "50px" but got "10px"
index b13df45..bd89671 100644 (file)
@@ -190,21 +190,21 @@ FAIL stroke-opacity: [0, 1] number (clamped) assert_equals: The value should be
 PASS text-shadow (type: textShadowList) has testAccumulation function 
 FAIL text-shadow: shadow assert_equals: The value should be rgb(240, 240, 240) 20px 20px 20px at 0ms expected "rgb(240, 240, 240) 20px 20px 20px" but got "rgb(120, 120, 120) 10px 10px 10px"
 PASS transform (type: transformList) has testAccumulation function 
-FAIL transform: translate assert_approx_equals: expected matrix(1,0,0,1,-100,0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, -200, 0): The value should be matrix(1,0,0,1,-100,0) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, -200, 0) expected -100 +/- 0.0001 but got -200
+FAIL transform: translate assert_approx_equals: expected matrix(1,0,0,1,-100,0) but got matrix(1, 0, 0, 1, -200, 0): The value should be matrix(1,0,0,1,-100,0) at 0ms but got matrix(1, 0, 0, 1, -200, 0) expected -100 +/- 0.0001 but got -200
 FAIL transform: rotate assert_approx_equals: expected matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 0, 0): The value should be matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) at 0ms but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 0, 0) expected 0.7071067811865476 +/- 0.0001 but got 6.123233995736766e-17
-FAIL transform: scale assert_approx_equals: expected matrix(-2,0,0,-2,0,0) but got matrix(-3, -0.00000000000000036739403974420594, 0.00000000000000036739403974420594, -3, 0, 0): The value should be matrix(-2,0,0,-2,0,0) at 0ms but got matrix(-3, -0.00000000000000036739403974420594, 0.00000000000000036739403974420594, -3, 0, 0) expected -2 +/- 0.0001 but got -3
-FAIL transform: skew assert_approx_equals: expected matrix(1,0.5773502691896256,-0.36397023426620234,1,0,0) but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1.0000000000000002, 0, 0): The value should be matrix(1,0.5773502691896256,-0.36397023426620234,1,0,0) at 0ms but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1.0000000000000002, 0, 0) expected 0.5773502691896256 +/- 0.0001 but got 0.36397023426620234
+FAIL transform: scale assert_approx_equals: expected matrix(-2,0,0,-2,0,0) but got matrix(-3, 0, 0, -3, 0, 0): The value should be matrix(-2,0,0,-2,0,0) at 0ms but got matrix(-3, 0, 0, -3, 0, 0) expected -2 +/- 0.0001 but got -3
+FAIL transform: skew assert_approx_equals: expected matrix(1,0.5773502691896256,-0.36397023426620234,1,0,0) but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1, 0, 0): The value should be matrix(1,0.5773502691896256,-0.36397023426620234,1,0,0) at 0ms but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1, 0, 0) expected 0.5773502691896256 +/- 0.0001 but got 0.36397023426620234
 FAIL transform: rotate on translate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, 0, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, 0, 0) expected 100 +/- 0.0001 but got 0
-FAIL transform: translate on rotate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0) expected 0 +/- 0.0001 but got 1
+FAIL transform: translate on rotate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(1, 0, 0, 1, 100, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(1, 0, 0, 1, 100, 0) expected 0 +/- 0.0001 but got 1
 FAIL transform: matrix assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0) expected 0 +/- 0.0001 but got 1
-FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.4999999999999999, 0.4999999999999998, 0.7071067811865475, 0, 0.49999999999999967, 0.5, -0.7071067811865475, 0, -0.7071067811865475, 0.7071067811865474, 0.0000000000000002483427041595098, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.4999999999999999, 0.4999999999999998, 0.7071067811865475, 0, 0.49999999999999967, 0.5, -0.7071067811865475, 0, -0.7071067811865475, 0.7071067811865474, 0.0000000000000002483427041595098, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.4999999999999999
+FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.4999999999999999, 0.49999999999999994, 0.7071067811865476, 0, 0.49999999999999994, 0.5000000000000001, -0.7071067811865475, 0, -0.7071067811865476, 0.7071067811865475, 0.00000000000000006123233995736766, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.4999999999999999, 0.49999999999999994, 0.7071067811865476, 0, 0.49999999999999994, 0.5000000000000001, -0.7071067811865475, 0, -0.7071067811865476, 0.7071067811865475, 0.00000000000000006123233995736766, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.4999999999999999
 FAIL transform: matrix3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.5000000000000001, 0.49999999999999983, 0.7071067811865474, 0, 0.4999999999999997, 0.5000000000000002, -0.7071067811865476, 0, -0.7071067811865476, 0.7071067811865474, 0.000000000000000404259158300213, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.5000000000000001, 0.49999999999999983, 0.7071067811865474, 0, 0.4999999999999997, 0.5000000000000002, -0.7071067811865476, 0, -0.7071067811865476, 0.7071067811865474, 0.000000000000000404259158300213, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.5000000000000001
 FAIL transform: none assert_equals: dimension of the matrix: The value should be matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1) at 0ms but got matrix(1, 0, 0, 1, 0, 0) expected 16 but got 6
 FAIL transform: non-invertible matrices (non-invertible onto invertible) assert_approx_equals: expected matrix(1,1,0,0,0,100) but got matrix(1, 1, 0, 0, 49.999999999999986, 49.999999999999986): The value should be matrix(1,1,0,0,0,100) at 0ms but got matrix(1, 1, 0, 0, 49.999999999999986, 49.999999999999986) expected 0 +/- 0.0001 but got 49.999999999999986
 PASS transform: non-invertible matrices (invertible onto non-invertible) 
-PASS transform: non-invertible matrices in matched transform lists (non-invertible onto invertible) 
+FAIL transform: non-invertible matrices in matched transform lists (non-invertible onto invertible) assert_approx_equals: expected matrix(-1,-1,0,0,100,100) but got matrix(-1, -1, -0.00000000000000012246467991473532, -0.00000000000000012246467991473532, 150, 49.999999999999986): The value should be matrix(-1,-1,0,0,100,100) at 0ms but got matrix(-1, -1, -0.00000000000000012246467991473532, -0.00000000000000012246467991473532, 150, 49.999999999999986) expected 100 +/- 0.0001 but got 150
 PASS transform: non-invertible matrices in matched transform lists (invertible onto non-invertible) 
-PASS transform: non-invertible matrices in mismatched transform lists (non-invertible onto invertible) 
+FAIL transform: non-invertible matrices in mismatched transform lists (non-invertible onto invertible) assert_approx_equals: expected matrix(1,1,1,1,100,100) but got matrix(1, 1, 0.9999999999999999, 0.9999999999999999, 150, 49.999999999999986): The value should be matrix(1,1,1,1,100,100) at 0ms but got matrix(1, 1, 0.9999999999999999, 0.9999999999999999, 150, 49.999999999999986) expected 100 +/- 0.0001 but got 150
 PASS transform: non-invertible matrices in mismatched transform lists (invertible onto non-invertible) 
 PASS visibility (type: visibility) has testAccumulation function 
 FAIL visibility: onto "visible" assert_equals: The value should be visible at 1000ms expected "visible" but got "hidden"
index f0bb3b6..3609153 100644 (file)
@@ -118,8 +118,8 @@ PASS fill-opacity (type: opacity) has testAddition function
 FAIL fill-opacity: [0, 1] number assert_equals: The value should be 0.6 at 0ms expected "0.6" but got "0.30000001192092896"
 FAIL fill-opacity: [0, 1] number (clamped) assert_equals: The value should be 1 at 0ms expected "1" but got "0.30000001192092896"
 PASS filter (type: filterList) has testAddition function 
-FAIL filter: blur on blur assert_equals: The value should be blur(10px) blur(20px) at 0ms expected "blur(10px) blur(20px)" but got "blur(50px)"
-FAIL filter: different filter functions assert_equals: The value should be blur(10px) brightness(0.8) at 0ms expected "blur(10px) brightness(0.8)" but got "brightness(0.4)"
+FAIL filter: blur on blur assert_equals: The value should be blur(10px) blur(20px) at 0ms expected "blur(10px) blur(20px)" but got "blur(20px)"
+FAIL filter: different filter functions assert_equals: The value should be blur(10px) brightness(0.8) at 0ms expected "blur(10px) brightness(0.8)" but got "brightness(0.8)"
 PASS flood-color (type: color) has testAddition function 
 FAIL flood-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
 FAIL flood-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
@@ -190,17 +190,17 @@ FAIL stroke-opacity: [0, 1] number (clamped) assert_equals: The value should be
 PASS text-shadow (type: textShadowList) has testAddition function 
 FAIL text-shadow: shadow assert_equals: The value should be rgb(0, 0, 0) 0px 0px 0px, rgb(120, 120, 120) 10px 10px 10px at 0ms expected "rgb(0, 0, 0) 0px 0px 0px, rgb(120, 120, 120) 10px 10px 10px" but got "rgb(120, 120, 120) 10px 10px 10px"
 PASS transform (type: transformList) has testAddition function 
-FAIL transform: translate assert_approx_equals: expected matrix(1,0,0,1,-100,0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, -200, 0): The value should be matrix(1,0,0,1,-100,0) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, -200, 0) expected -100 +/- 0.0001 but got -200
+FAIL transform: translate assert_approx_equals: expected matrix(1,0,0,1,-100,0) but got matrix(1, 0, 0, 1, -200, 0): The value should be matrix(1,0,0,1,-100,0) at 0ms but got matrix(1, 0, 0, 1, -200, 0) expected -100 +/- 0.0001 but got -200
 FAIL transform: rotate assert_approx_equals: expected matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 0, 0): The value should be matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) at 0ms but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 0, 0) expected 0.7071067811865476 +/- 0.0001 but got 6.123233995736766e-17
-FAIL transform: scale assert_approx_equals: expected matrix(-6,0,0,-6,0,0) but got matrix(-3, -0.00000000000000036739403974420594, 0.00000000000000036739403974420594, -3, 0, 0): The value should be matrix(-6,0,0,-6,0,0) at 0ms but got matrix(-3, -0.00000000000000036739403974420594, 0.00000000000000036739403974420594, -3, 0, 0) expected -6 +/- 0.0001 but got -3
-FAIL transform: skew assert_approx_equals: expected matrix(1.064177772475912,0.5402972149746673,-0.40102328848116064,0.8981975702225738,0,0) but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1.0000000000000002, 0, 0): The value should be matrix(1.064177772475912,0.5402972149746673,-0.40102328848116064,0.8981975702225738,0,0) at 0ms but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1.0000000000000002, 0, 0) expected 1.064177772475912 +/- 0.0001 but got 1
+FAIL transform: scale assert_approx_equals: expected matrix(-6,0,0,-6,0,0) but got matrix(-3, 0, 0, -3, 0, 0): The value should be matrix(-6,0,0,-6,0,0) at 0ms but got matrix(-3, 0, 0, -3, 0, 0) expected -6 +/- 0.0001 but got -3
+FAIL transform: skew assert_approx_equals: expected matrix(1.064177772475912,0.5402972149746673,-0.40102328848116064,0.8981975702225738,0,0) but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1, 0, 0): The value should be matrix(1.064177772475912,0.5402972149746673,-0.40102328848116064,0.8981975702225738,0,0) at 0ms but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1, 0, 0) expected 1.064177772475912 +/- 0.0001 but got 1
 FAIL transform: rotate on translate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, 0, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, 0, 0) expected 100 +/- 0.0001 but got 0
-FAIL transform: translate on rotate assert_approx_equals: expected matrix(0,1,-1,0,0,100) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0): The value should be matrix(0,1,-1,0,0,100) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0) expected 0 +/- 0.0001 but got 1
+FAIL transform: translate on rotate assert_approx_equals: expected matrix(0,1,-1,0,0,100) but got matrix(1, 0, 0, 1, 100, 0): The value should be matrix(0,1,-1,0,0,100) at 0ms but got matrix(1, 0, 0, 1, 100, 0) expected 0 +/- 0.0001 but got 1
 FAIL transform: matrix assert_approx_equals: expected matrix(0,1,-1,0,0,100) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0): The value should be matrix(0,1,-1,0,0,100) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0) expected 0 +/- 0.0001 but got 1
-FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.4999999999999999, 0.4999999999999998, 0.7071067811865475, 0, 0.49999999999999967, 0.5, -0.7071067811865475, 0, -0.7071067811865475, 0.7071067811865474, 0.0000000000000002483427041595098, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.4999999999999999, 0.4999999999999998, 0.7071067811865475, 0, 0.49999999999999967, 0.5, -0.7071067811865475, 0, -0.7071067811865475, 0.7071067811865474, 0.0000000000000002483427041595098, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.4999999999999999
+FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.4999999999999999, 0.49999999999999994, 0.7071067811865476, 0, 0.49999999999999994, 0.5000000000000001, -0.7071067811865475, 0, -0.7071067811865476, 0.7071067811865475, 0.00000000000000006123233995736766, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.4999999999999999, 0.49999999999999994, 0.7071067811865476, 0, 0.49999999999999994, 0.5000000000000001, -0.7071067811865475, 0, -0.7071067811865476, 0.7071067811865475, 0.00000000000000006123233995736766, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.4999999999999999
 FAIL transform: matrix3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.5000000000000001, 0.49999999999999983, 0.7071067811865474, 0, 0.4999999999999997, 0.5000000000000002, -0.7071067811865476, 0, -0.7071067811865476, 0.7071067811865474, 0.000000000000000404259158300213, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.5000000000000001, 0.49999999999999983, 0.7071067811865474, 0, 0.4999999999999997, 0.5000000000000002, -0.7071067811865476, 0, -0.7071067811865476, 0.7071067811865474, 0.000000000000000404259158300213, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.5000000000000001
 FAIL transform: non-invertible matrices assert_approx_equals: expected matrix(-1,0,0,-1,250,0) but got matrix(-1, 0.00000000000000012246467991473532, -0.00000000000000012246467991473532, -1, 200, 0): The value should be matrix(-1,0,0,-1,250,0) at 0ms but got matrix(-1, 0.00000000000000012246467991473532, -0.00000000000000012246467991473532, -1, 200, 0) expected 250 +/- 0.0001 but got 200
-FAIL transform: non-invertible matrices in matched transform lists assert_approx_equals: expected matrix(0,-1,1,0,250,0) but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 200, 0): The value should be matrix(0,-1,1,0,250,0) at 0ms but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 200, 0) expected 250 +/- 0.0001 but got 200
+FAIL transform: non-invertible matrices in matched transform lists assert_approx_equals: expected matrix(0,-1,1,0,250,0) but got matrix(-0.00000000000000018369701987210297, -1, 1, -0.00000000000000018369701987210297, 200, 0): The value should be matrix(0,-1,1,0,250,0) at 0ms but got matrix(-0.00000000000000018369701987210297, -1, 1, -0.00000000000000018369701987210297, 200, 0) expected 250 +/- 0.0001 but got 200
 FAIL transform: non-invertible matrices in mismatched transform lists assert_approx_equals: expected matrix(-2,0,0,-2,250,0) but got matrix(-2, 0.00000000000000024492935982947064, -0.00000000000000024492935982947064, -2, 200, 0): The value should be matrix(-2,0,0,-2,250,0) at 0ms but got matrix(-2, 0.00000000000000024492935982947064, -0.00000000000000024492935982947064, -2, 200, 0) expected 250 +/- 0.0001 but got 200
 PASS visibility (type: visibility) has testAddition function 
 FAIL visibility: onto "visible" assert_equals: The value should be visible at 1000ms expected "visible" but got "hidden"
index 48674d6..3512c55 100644 (file)
@@ -133,17 +133,17 @@ FAIL column-width uses discrete animation when animating between "auto" and "1px
 PASS fill-opacity (type: opacity) has testInterpolation function 
 FAIL fill-opacity supports animating as a [0, 1] number assert_equals: The value should be 0.55 at 500ms expected "0.55" but got "0.550000011920929"
 PASS filter (type: filterList) has testInterpolation function 
-FAIL filter: blur function assert_equals: The value should be blur(30px) at 500ms expected "blur(30px)" but got "blur(50px)"
-FAIL filter: hue-rotate function with same unit(deg) assert_equals: The value should be hue-rotate(50deg) at 500ms expected "hue-rotate(50deg)" but got "hue-rotate(100deg)"
-FAIL filter: hue-rotate function with different unit(deg -> rad) assert_equals: The value should be hue-rotate(50.0873rad) at 500ms expected "hue-rotate(50.0873rad)" but got "hue-rotate(5729.5779513082325deg)"
-FAIL filter: drop-shadow function assert_equals: The value should be drop-shadow(rgba(85, 0, 170, 0.6) 30px 30px 30px) at 500ms expected "drop-shadow(rgba(85, 0, 170, 0.6) 30px 30px 30px)" but got "drop-shadow(rgba(0, 0, 255, 0.8) 50px 50px 50px)"
-FAIL filter: percentage or numeric-specifiable functions (number value) assert_equals: The value should be brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3) at 500ms expected "brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3)" but got "brightness(0.5) contrast(0.5) grayscale(0.5) invert(0.5) opacity(0.5) saturate(0.5) sepia(0.5)"
-FAIL filter: percentage or numeric-specifiable functions (percentage value) assert_equals: The value should be brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3) at 500ms expected "brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3)" but got "brightness(0.5) contrast(0.5) grayscale(0.5) invert(0.5) opacity(0.5) saturate(0.5) sepia(0.5)"
+PASS filter: blur function 
+PASS filter: hue-rotate function with same unit(deg) 
+FAIL filter: hue-rotate function with different unit(deg -> rad) assert_equals: The value should be hue-rotate(50.0873rad) at 500ms expected "hue-rotate(50.0873rad)" but got "hue-rotate(2869.7889756541163deg)"
+PASS filter: drop-shadow function 
+FAIL filter: percentage or numeric-specifiable functions (number value) assert_equals: The value should be brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3) at 500ms expected "brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3)" but got "brightness(0.30000000000000004) contrast(0.30000000000000004) grayscale(0.30000000000000004) invert(0.30000000000000004) opacity(0.30000000000000004) saturate(0.30000000000000004) sepia(0.30000000000000004)"
+FAIL filter: percentage or numeric-specifiable functions (percentage value) assert_equals: The value should be brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3) at 500ms expected "brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3)" but got "brightness(0.30000000000000004) contrast(0.30000000000000004) grayscale(0.30000000000000004) invert(0.30000000000000004) opacity(0.30000000000000004) saturate(0.30000000000000004) sepia(0.30000000000000004)"
 FAIL filter: interpolate different length of filter-function-list with function which lacuna value is 1 assert_equals: The value should be grayscale(0.5) brightness(0.5) contrast(0.5) opacity(0.5) saturate(0.5) at 500ms expected "grayscale(0.5) brightness(0.5) contrast(0.5) opacity(0.5) saturate(0.5)" but got "grayscale(1) brightness(0) contrast(0) opacity(0) saturate(0)"
-FAIL filter: interpolate different length of filter-function-list with function which lacuna value is 0 assert_equals: The value should be opacity(0.5) grayscale(0.5) invert(0.5) sepia(0.5) blur(5px) at 500ms expected "opacity(0.5) grayscale(0.5) invert(0.5) sepia(0.5) blur(5px)" but got "opacity(0) grayscale(1) invert(1) sepia(1) blur(10px)"
+PASS filter: interpolate different length of filter-function-list with function which lacuna value is 0 
 FAIL filter: interpolate different length of filter-function-list with drop-shadow function assert_equals: The value should be blur(5px) drop-shadow(rgba(85, 0, 170, 0.6) 5px 5px 5px at 500ms expected "blur(5px) drop-shadow(rgba(85, 0, 170, 0.6) 5px 5px 5px" but got "blur(10px) drop-shadow(rgba(0, 0, 255, 0.8) 10px 10px 10px)"
-FAIL filter: interpolate from none assert_equals: The value should be blur(5px) at 500ms expected "blur(5px)" but got "blur(10px)"
-FAIL filter: url function (interpoalte as discrete) assert_equals: The value should be blur(0px) url("#f1") at 499ms expected "blur(0px) url(\"#f1\")" but got "blur(10px) url(#f2)"
+PASS filter: interpolate from none 
+FAIL filter: url function (interpoalte as discrete) assert_equals: The value should be blur(0px) url("#f1") at 499ms expected "blur(0px) url(\"#f1\")" but got "blur(4.989999771118164px) url(#f1)"
 PASS flood-color (type: color) has testInterpolation function 
 PASS flood-color supports animating as color of rgb() 
 PASS flood-color supports animating as color of #RGB 
@@ -228,17 +228,17 @@ PASS transform (type: transformList) has testInterpolation function
 PASS transform: translate 
 PASS transform: rotate 
 PASS transform: scale 
-FAIL transform: skew assert_approx_equals: expected matrix(1,0.9999999999999999,0.9999999999999999,1,0,0) but got matrix(1.1153550716504106, 0.9659258262890682, 0.9659258262890681, 1.1153550716504106, 0, 0): The value should be matrix(1,0.9999999999999999,0.9999999999999999,1,0,0) at 500ms but got matrix(1.1153550716504106, 0.9659258262890682, 0.9659258262890681, 1.1153550716504106, 0, 0) expected 1 +/- 0.0001 but got 1.1153550716504106
+PASS transform: skew 
 PASS transform: rotate and translate 
-FAIL transform: translate and rotate assert_approx_equals: expected matrix(6.123233995736766e-17,1,-1,6.123233995736766e-17,9.184850993605149e-15,150) but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, -35.35533905932736, 106.06601717798213): The value should be matrix(6.123233995736766e-17,1,-1,6.123233995736766e-17,9.184850993605149e-15,150) at 500ms but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, -35.35533905932736, 106.06601717798213) expected 9.184850993605149e-15 +/- 0.0001 but got -35.35533905932736
+PASS transform: translate and rotate 
 PASS transform: mismatch order of translate and rotate 
 PASS transform: matrix 
-FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,-0.5,0,0.1464466094067262,0.8535533905932737,0.5,0,0.5,-0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.7499999999999999, 0.2499999999999999, -0.3535533905932737, 0, 0.24999999999999983, 0.75, 0.3535533905932737, 0, 0.35355339059327373, -0.3535533905932737, 0.5000000000000002, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,-0.5,0,0.1464466094067262,0.8535533905932737,0.5,0,0.5,-0.5,0.7071067811865476,0,0,0,0,1) at 500ms but got matrix3d(0.7499999999999999, 0.2499999999999999, -0.3535533905932737, 0, 0.24999999999999983, 0.75, 0.3535533905932737, 0, 0.35355339059327373, -0.3535533905932737, 0.5000000000000002, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.7499999999999999
+FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,-0.5,0,0.1464466094067262,0.8535533905932737,0.5,0,0.5,-0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.8660254037844386, 0.28867513459481287, -0.40824829046386296, 0, 0, 0.816496580927726, 0.5773502691896256, 0, 0.49999999999999994, -0.4999999999999999, 0.7071067811865476, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,-0.5,0,0.1464466094067262,0.8535533905932737,0.5,0,0.5,-0.5,0.7071067811865476,0,0,0,0,1) at 500ms but got matrix3d(0.8660254037844386, 0.28867513459481287, -0.40824829046386296, 0, 0, 0.816496580927726, 0.5773502691896256, 0, 0.49999999999999994, -0.4999999999999999, 0.7071067811865476, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.8660254037844386
 PASS transform: matrix3d 
 PASS transform: mismatched 3D transforms 
-FAIL transform: rotateY assert_approx_equals: expected matrix3d(0.8660254037844387,0,-0.49999999999999994,0,0,1,0,0,0.49999999999999994,0,0.8660254037844387,0,0,0,0,1) but got matrix3d(0.75, 0, -0.4330127018922192, 0, 0, 1, 0, 0, 0.4330127018922192, 0, 0.75, 0, 0, 0, 0, 1): The value should be matrix3d(0.8660254037844387,0,-0.49999999999999994,0,0,1,0,0,0.49999999999999994,0,0.8660254037844387,0,0,0,0,1) at 500ms but got matrix3d(0.75, 0, -0.4330127018922192, 0, 0, 1, 0, 0, 0.4330127018922192, 0, 0.75, 0, 0, 0, 0, 1) expected 0.8660254037844387 +/- 0.0001 but got 0.75
+PASS transform: rotateY 
 FAIL transform: non-invertible matrices assert_approx_equals: expected matrix(-1,0,0,-1,200,0) but got matrix(-0.0706572801427673, 0.719997959550522, -0.39514637992795165, -0.26007870466007205, 87.65015, 62.44984999999999): The value should be matrix(-1,0,0,-1,200,0) at 499ms but got matrix(-0.0706572801427673, 0.719997959550522, -0.39514637992795165, -0.26007870466007205, 87.65015, 62.44984999999999) expected -1 +/- 0.0001 but got -0.0706572801427673
-FAIL transform: non-invertible matrices in matched transform lists assert_approx_equals: expected matrix(0,-1,1,0,250,0) but got matrix(-0.7873989159254222, -1.115200903528419, 0.1364810122627057, -0.19136080826235746, 112.65025, 49.89999999999999): The value should be matrix(0,-1,1,0,250,0) at 499ms but got matrix(-0.7873989159254222, -1.115200903528419, 0.1364810122627057, -0.19136080826235746, 112.65025, 49.89999999999999) expected 0 +/- 0.0001 but got -0.7873989159254222
+FAIL transform: non-invertible matrices in matched transform lists assert_approx_equals: expected matrix(0,-1,1,0,250,0) but got matrix(-0.22996553737931208, -0.6925071587258891, 0.3290121037669934, -0.3263002137418429, 162.60014694824218, 62.44984999999999): The value should be matrix(0,-1,1,0,250,0) at 499ms but got matrix(-0.22996553737931208, -0.6925071587258891, 0.3290121037669934, -0.3263002137418429, 162.60014694824218, 62.44984999999999) expected 0 +/- 0.0001 but got -0.22996553737931208
 FAIL transform: non-invertible matrices in mismatched transform lists assert_approx_equals: expected matrix(-2,0,0,-2,250,0) but got matrix(0.457235039557905, 1.5761580466297944, -1.1176085646538838, -0.6572212090027189, 112.65025, 49.89999999999999): The value should be matrix(-2,0,0,-2,250,0) at 499ms but got matrix(0.457235039557905, 1.5761580466297944, -1.1176085646538838, -0.6572212090027189, 112.65025, 49.89999999999999) expected -2 +/- 0.0001 but got 0.457235039557905
 PASS visibility (type: visibility) has testInterpolation function 
 PASS visibility uses visibility animation when animating from "visible" to "hidden" 
index 5e6644a..2574567 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index 57c63ec..6f73bae 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index 87dc007..f5907d5 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE>
+<!DOCTYPE><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index 1b5ddaf..198ac7a 100644 (file)
@@ -1,4 +1,4 @@
-<!doctype html>
+<!doctype html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 <html>
   <head>
     <title>cubic-bezier value overflow: Lengths</title>
index 3555303..cb71bd7 100644 (file)
@@ -1,4 +1,4 @@
-<!doctype html>
+<!doctype html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 <html>
   <head>
     <title>cubic-bezier value overflow: SVG Lengths</title>
index c7972cb..2d6bda5 100644 (file)
@@ -1,4 +1,4 @@
-<html>
+<html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 <head>
   <style>
     #target {
index 202e64d..224a9ab 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE>
+<!DOCTYPE><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index 503067c..1ab02b0 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE>
+<!DOCTYPE><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
 
 <html>
 <head>
index 0041b53..8e3407f 100644 (file)
@@ -1,5 +1,28 @@
 2018-03-28  Antoine Quint  <graouts@apple.com>
 
+        [Web Animations] Implement more CSSPropertyBlendingClient methods
+        https://bugs.webkit.org/show_bug.cgi?id=184077
+
+        Reviewed by Dean Jackson.
+
+        We only had stubs for several of the CSSPropertyBlendingClient methods and thus always implied that we
+        were animating non-matching transform, filter and backdrop-filter properties. We now implement those using
+        the same code used in KeyframeAnimation. This allows for 31 new tests to opt into the CSS Animations and
+        CSS Transitions as Web Animations feature.
+
+        * animation/KeyframeEffectReadOnly.cpp:
+        (WebCore::KeyframeEffectReadOnly::copyPropertiesFromSource):
+        (WebCore::KeyframeEffectReadOnly::updateBlendingKeyframes):
+        (WebCore::KeyframeEffectReadOnly::setBlendingKeyframes):
+        (WebCore::KeyframeEffectReadOnly::checkForMatchingTransformFunctionLists):
+        (WebCore::KeyframeEffectReadOnly::checkForMatchingFilterFunctionLists):
+        (WebCore::KeyframeEffectReadOnly::checkForMatchingBackdropFilterFunctionLists):
+        (WebCore::KeyframeEffectReadOnly::computeCSSAnimationBlendingKeyframes):
+        (WebCore::KeyframeEffectReadOnly::computeCSSTransitionBlendingKeyframes):
+        * animation/KeyframeEffectReadOnly.h:
+
+2018-03-28  Antoine Quint  <graouts@apple.com>
+
         [Web Animations] Comparing two matching FramesTimingFunction objects fails
         https://bugs.webkit.org/show_bug.cgi?id=184078
 
index 372062e..7dd00f5 100644 (file)
@@ -487,7 +487,7 @@ void KeyframeEffectReadOnly::copyPropertiesFromSource(Ref<KeyframeEffectReadOnly
             keyframeValue.addProperty(propertyId);
         keyframeList.insert(WTFMove(keyframeValue));
     }
-    m_blendingKeyframes = WTFMove(keyframeList);
+    setBlendingKeyframes(keyframeList);
 }
 
 Vector<Strong<JSObject>> KeyframeEffectReadOnly::getKeyframes(ExecState& state)
@@ -687,11 +687,134 @@ void KeyframeEffectReadOnly::updateBlendingKeyframes()
         keyframeList.insert(WTFMove(keyframeValue));
     }
 
-    m_blendingKeyframes = WTFMove(keyframeList);
+    setBlendingKeyframes(keyframeList);
+}
+
+void KeyframeEffectReadOnly::setBlendingKeyframes(KeyframeList& blendingKeyframes)
+{
+    m_blendingKeyframes = WTFMove(blendingKeyframes);
 
     computeStackingContextImpact();
+
+    checkForMatchingTransformFunctionLists();
+    checkForMatchingFilterFunctionLists();
+#if ENABLE(FILTERS_LEVEL_2)
+    checkForMatchingBackdropFilterFunctionLists();
+#endif
+}
+
+void KeyframeEffectReadOnly::checkForMatchingTransformFunctionLists()
+{
+    m_transformFunctionListsMatch = false;
+
+    if (m_blendingKeyframes.size() < 2 || !m_blendingKeyframes.containsProperty(CSSPropertyTransform))
+        return;
+
+    // Empty transforms match anything, so find the first non-empty entry as the reference.
+    size_t numKeyframes = m_blendingKeyframes.size();
+    size_t firstNonEmptyTransformKeyframeIndex = numKeyframes;
+
+    for (size_t i = 0; i < numKeyframes; ++i) {
+        const KeyframeValue& currentKeyframe = m_blendingKeyframes[i];
+        if (currentKeyframe.style()->transform().operations().size()) {
+            firstNonEmptyTransformKeyframeIndex = i;
+            break;
+        }
+    }
+
+    if (firstNonEmptyTransformKeyframeIndex == numKeyframes)
+        return;
+
+    const TransformOperations* firstVal = &m_blendingKeyframes[firstNonEmptyTransformKeyframeIndex].style()->transform();
+    for (size_t i = firstNonEmptyTransformKeyframeIndex + 1; i < numKeyframes; ++i) {
+        const KeyframeValue& currentKeyframe = m_blendingKeyframes[i];
+        const TransformOperations* val = &currentKeyframe.style()->transform();
+
+        // An empty transform list matches anything.
+        if (val->operations().isEmpty())
+            continue;
+
+        if (!firstVal->operationsMatch(*val))
+            return;
+    }
+
+    m_transformFunctionListsMatch = true;
+}
+
+void KeyframeEffectReadOnly::checkForMatchingFilterFunctionLists()
+{
+    m_filterFunctionListsMatch = false;
+
+    if (m_blendingKeyframes.size() < 2 || !m_blendingKeyframes.containsProperty(CSSPropertyFilter))
+        return;
+
+    // Empty filters match anything, so find the first non-empty entry as the reference.
+    size_t numKeyframes = m_blendingKeyframes.size();
+    size_t firstNonEmptyFilterKeyframeIndex = numKeyframes;
+
+    for (size_t i = 0; i < numKeyframes; ++i) {
+        if (m_blendingKeyframes[i].style()->filter().operations().size()) {
+            firstNonEmptyFilterKeyframeIndex = i;
+            break;
+        }
+    }
+
+    if (firstNonEmptyFilterKeyframeIndex == numKeyframes)
+        return;
+
+    auto& firstVal = m_blendingKeyframes[firstNonEmptyFilterKeyframeIndex].style()->filter();
+    for (size_t i = firstNonEmptyFilterKeyframeIndex + 1; i < numKeyframes; ++i) {
+        auto& value = m_blendingKeyframes[i].style()->filter();
+
+        // An empty filter list matches anything.
+        if (value.operations().isEmpty())
+            continue;
+
+        if (!firstVal.operationsMatch(value))
+            return;
+    }
+
+    m_filterFunctionListsMatch = true;
 }
 
+#if ENABLE(FILTERS_LEVEL_2)
+void KeyframeEffectReadOnly::checkForMatchingBackdropFilterFunctionLists()
+{
+    m_backdropFilterFunctionListsMatch = false;
+
+    if (m_blendingKeyframes.size() < 2 || !m_blendingKeyframes.containsProperty(CSSPropertyWebkitBackdropFilter))
+        return;
+
+    // Empty filters match anything, so find the first non-empty entry as the reference.
+    size_t numKeyframes = m_blendingKeyframes.size();
+    size_t firstNonEmptyFilterKeyframeIndex = numKeyframes;
+
+    for (size_t i = 0; i < numKeyframes; ++i) {
+        if (m_blendingKeyframes[i].style()->backdropFilter().operations().size()) {
+            firstNonEmptyFilterKeyframeIndex = i;
+            break;
+        }
+    }
+
+    if (firstNonEmptyFilterKeyframeIndex == numKeyframes)
+        return;
+
+    auto& firstVal = m_blendingKeyframes[firstNonEmptyFilterKeyframeIndex].style()->backdropFilter();
+    for (size_t i = firstNonEmptyFilterKeyframeIndex + 1; i < numKeyframes; ++i) {
+        auto& value = m_blendingKeyframes[i].style()->backdropFilter();
+
+        // An empty filter list matches anything.
+        if (value.operations().isEmpty())
+            continue;
+
+        if (!firstVal.operationsMatch(value))
+            return;
+    }
+
+    m_backdropFilterFunctionListsMatch = true;
+}
+#endif
+
 void KeyframeEffectReadOnly::computeCSSAnimationBlendingKeyframes()
 {
     ASSERT(is<CSSAnimation>(animation()));
@@ -714,9 +837,7 @@ void KeyframeEffectReadOnly::computeCSSAnimationBlendingKeyframes()
             Style::loadPendingResources(*style, m_target->document(), m_target.get());
     }
 
-    m_blendingKeyframes = WTFMove(keyframeList);
-
-    computeStackingContextImpact();
+    setBlendingKeyframes(keyframeList);
 }
 
 void KeyframeEffectReadOnly::computeCSSTransitionBlendingKeyframes(const RenderStyle* oldStyle, const RenderStyle& newStyle)
@@ -743,9 +864,7 @@ void KeyframeEffectReadOnly::computeCSSTransitionBlendingKeyframes(const RenderS
     toKeyframeValue.addProperty(property);
     keyframeList.insert(WTFMove(toKeyframeValue));
 
-    m_blendingKeyframes = WTFMove(keyframeList);
-
-    computeStackingContextImpact();
+    setBlendingKeyframes(keyframeList);
 }
 
 bool KeyframeEffectReadOnly::stylesWouldYieldNewCSSTransitionsBlendingKeyframes(const RenderStyle& oldStyle, const RenderStyle& newStyle) const
index 9ffa82b..15b45d6 100644 (file)
@@ -104,10 +104,10 @@ public:
     RenderElement* renderer() const override;
     const RenderStyle& currentStyle() const override;
     bool isAccelerated() const override { return false; }
-    bool filterFunctionListsMatch() const override { return false; }
-    bool transformFunctionListsMatch() const override { return false; }
+    bool filterFunctionListsMatch() const override { return m_filterFunctionListsMatch; }
+    bool transformFunctionListsMatch() const override { return m_transformFunctionListsMatch; }
 #if ENABLE(FILTERS_LEVEL_2)
-    bool backdropFilterFunctionListsMatch() const override { return false; }
+    bool backdropFilterFunctionListsMatch() const override { return m_backdropFilterFunctionListsMatch; }
 #endif
 
     void computeCSSAnimationBlendingKeyframes();
@@ -130,10 +130,21 @@ private:
     void computeStackingContextImpact();
     void updateBlendingKeyframes();
     bool shouldRunAccelerated();
+    void setBlendingKeyframes(KeyframeList&);
+    void checkForMatchingTransformFunctionLists();
+    void checkForMatchingFilterFunctionLists();
+#if ENABLE(FILTERS_LEVEL_2)
+    void checkForMatchingBackdropFilterFunctionLists();
+#endif
 
     bool m_triggersStackingContext { false };
     bool m_started { false };
     bool m_startedAccelerated { false };
+    bool m_transformFunctionListsMatch { false };
+    bool m_filterFunctionListsMatch { false };
+#if ENABLE(FILTERS_LEVEL_2)
+    bool m_backdropFilterFunctionListsMatch { false };
+#endif
 
     RefPtr<Element> m_target;
     KeyframeList m_blendingKeyframes;