Changeset 286086 in webkit


Ignore:
Timestamp:
Nov 19, 2021 4:56:18 PM (8 months ago)
Author:
commit-queue@webkit.org
Message:

Implement parsing and animation support for ray() shape accepted by offset-path
https://bugs.webkit.org/show_bug.cgi?id=233153

Patch by Kiet Ho <Kiet Ho> on 2021-11-19
Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Rebaselined tests that now should pass.

  • web-platform-tests/css/motion/animation/offset-path-composition-expected.txt:
  • web-platform-tests/css/motion/animation/offset-path-interpolation-005-expected.txt:
  • web-platform-tests/css/motion/offset-supports-calc-expected.txt:
  • web-platform-tests/css/motion/parsing/offset-path-computed-expected.txt:
  • web-platform-tests/css/motion/parsing/offset-path-computed.html:
  • web-platform-tests/css/motion/parsing/offset-path-parsing-valid-expected.txt:

Source/WebCore:

Tests: imported/w3c/web-platform-tests/css/motion/animation/offset-path-composition.html

imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-005.html
imported/w3c/web-platform-tests/css/motion/offset-supports-calc.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-path-computed.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-path-parsing-invalid.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-path-parsing-valid.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc): Added support for blending between ray()s.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueIDForRaySize):
(WebCore::valueForPathOperation): Added support for getting the computed value of ray().

  • css/CSSRayValue.cpp: Added.

(WebCore::CSSRayValue::customCSSText const):
(WebCore::CSSRayValue::equals const):

  • css/CSSRayValue.h: Added.
  • css/CSSValue.cpp:

(WebCore::CSSValue::equals const):
(WebCore::CSSValue::cssText const):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isRayValue const):

  • css/CSSValueKeywords.in: Added new keywords used by ray().
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeRayShape): Added method to consume ray().
(WebCore::consumePathOperation): Added a switch to control whether to accept
ray() or not. Both clip-path and offset-path uses this function, however clip-path
doesn't support the ray shape, while offset-path does, hence the switch.
(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/PathOperation.h: Added a new subclass of PathOperation called RayPathOperation

to represent ray().

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::hitTestClipPath const):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertPathOperation): Added support for converting CSSRayValue
to RayPathOperation.

Location:
trunk
Files:
2 added
19 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r286061 r286086  
     12021-11-19  Kiet Ho  <tho22@apple.com>
     2
     3        Implement parsing and animation support for ray() shape accepted by offset-path
     4        https://bugs.webkit.org/show_bug.cgi?id=233153
     5
     6        Reviewed by Dean Jackson.
     7
     8        Rebaselined tests that now should pass.
     9
     10        * web-platform-tests/css/motion/animation/offset-path-composition-expected.txt:
     11        * web-platform-tests/css/motion/animation/offset-path-interpolation-005-expected.txt:
     12        * web-platform-tests/css/motion/offset-supports-calc-expected.txt:
     13        * web-platform-tests/css/motion/parsing/offset-path-computed-expected.txt:
     14        * web-platform-tests/css/motion/parsing/offset-path-computed.html:
     15        * web-platform-tests/css/motion/parsing/offset-path-parsing-valid-expected.txt:
     16
    1172021-11-19  Matt Woodrow  <matt.woodrow@gmail.com>
    218
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-composition-expected.txt

    r283645 r286086  
    11
    2 FAIL Compositing: property <offset-path> underlying [ray(20deg sides)] from add [ray(10deg sides)] to add [ray(20deg sides)] at (-0.3) should be [ray(27deg sides)] assert_true: 'from' value should be supported expected true got false
    3 FAIL Compositing: property <offset-path> underlying [ray(20deg sides)] from add [ray(10deg sides)] to add [ray(20deg sides)] at (0) should be [ray(30deg sides)] assert_true: 'from' value should be supported expected true got false
    4 FAIL Compositing: property <offset-path> underlying [ray(20deg sides)] from add [ray(10deg sides)] to add [ray(20deg sides)] at (0.3) should be [ray(33deg sides)] assert_true: 'from' value should be supported expected true got false
    5 FAIL Compositing: property <offset-path> underlying [ray(20deg sides)] from add [ray(10deg sides)] to add [ray(20deg sides)] at (0.6) should be [ray(36deg sides)] assert_true: 'from' value should be supported expected true got false
    6 FAIL Compositing: property <offset-path> underlying [ray(20deg sides)] from add [ray(10deg sides)] to add [ray(20deg sides)] at (1) should be [ray(40deg sides)] assert_true: 'from' value should be supported expected true got false
    7 FAIL Compositing: property <offset-path> underlying [ray(20deg sides)] from add [ray(10deg sides)] to add [ray(20deg sides)] at (1.5) should be [ray(45deg sides)] assert_true: 'from' value should be supported expected true got false
    8 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-corner contain)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (-0.3) should be [ray(7deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    9 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-corner contain)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (0) should be [ray(10deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    10 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-corner contain)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (0.3) should be [ray(13deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    11 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-corner contain)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (0.6) should be [ray(16deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    12 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-corner contain)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (1) should be [ray(20deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    13 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-corner contain)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (1.5) should be [ray(25deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    14 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (-0.3) should be [ray(7deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    15 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (0) should be [ray(10deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    16 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (0.3) should be [ray(13deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    17 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (0.6) should be [ray(16deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    18 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (1) should be [ray(20deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    19 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (1.5) should be [ray(25deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    20 FAIL Compositing: property <offset-path> underlying [ray(20deg farthest-side contain)] from add [ray(190deg farthest-side contain)] to add [ray(20deg farthest-side contain)] at (-0.3) should be [ray(261deg farthest-side contain)] assert_true: 'from' value should be supported expected true got false
    21 FAIL Compositing: property <offset-path> underlying [ray(20deg farthest-side contain)] from add [ray(190deg farthest-side contain)] to add [ray(20deg farthest-side contain)] at (0) should be [ray(210deg farthest-side contain)] assert_true: 'from' value should be supported expected true got false
    22 FAIL Compositing: property <offset-path> underlying [ray(20deg farthest-side contain)] from add [ray(190deg farthest-side contain)] to add [ray(20deg farthest-side contain)] at (0.3) should be [ray(159deg farthest-side contain)] assert_true: 'from' value should be supported expected true got false
    23 FAIL Compositing: property <offset-path> underlying [ray(20deg farthest-side contain)] from add [ray(190deg farthest-side contain)] to add [ray(20deg farthest-side contain)] at (0.6) should be [ray(108deg farthest-side contain)] assert_true: 'from' value should be supported expected true got false
    24 FAIL Compositing: property <offset-path> underlying [ray(20deg farthest-side contain)] from add [ray(190deg farthest-side contain)] to add [ray(20deg farthest-side contain)] at (1) should be [ray(40deg farthest-side contain)] assert_true: 'from' value should be supported expected true got false
    25 FAIL Compositing: property <offset-path> underlying [ray(20deg farthest-side contain)] from add [ray(190deg farthest-side contain)] to add [ray(20deg farthest-side contain)] at (1.5) should be [ray(-45deg farthest-side contain)] assert_true: 'from' value should be supported expected true got false
    26 FAIL Compositing: property <offset-path> underlying [ray(20deg farthest-corner)] from add [ray(190deg farthest-corner contain)] to add [ray(20deg farthest-corner)] at (-0.3) should be [ray(190deg farthest-corner contain)] assert_true: 'from' value should be supported expected true got false
    27 FAIL Compositing: property <offset-path> underlying [ray(20deg farthest-corner)] from add [ray(190deg farthest-corner contain)] to add [ray(20deg farthest-corner)] at (0) should be [ray(190deg farthest-corner contain)] assert_true: 'from' value should be supported expected true got false
    28 FAIL Compositing: property <offset-path> underlying [ray(20deg farthest-corner)] from add [ray(190deg farthest-corner contain)] to add [ray(20deg farthest-corner)] at (0.3) should be [ray(190deg farthest-corner contain)] assert_true: 'from' value should be supported expected true got false
    29 FAIL Compositing: property <offset-path> underlying [ray(20deg farthest-corner)] from add [ray(190deg farthest-corner contain)] to add [ray(20deg farthest-corner)] at (0.6) should be [ray(40deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    30 FAIL Compositing: property <offset-path> underlying [ray(20deg farthest-corner)] from add [ray(190deg farthest-corner contain)] to add [ray(20deg farthest-corner)] at (1) should be [ray(40deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    31 FAIL Compositing: property <offset-path> underlying [ray(20deg farthest-corner)] from add [ray(190deg farthest-corner contain)] to add [ray(20deg farthest-corner)] at (1.5) should be [ray(40deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    32 FAIL Compositing: property <offset-path> underlying [ray(20deg sides)] from replace [ray(190deg sides contain)] to add [ray(20deg sides)] at (-0.3) should be [ray(190deg sides contain)] assert_true: 'from' value should be supported expected true got false
    33 FAIL Compositing: property <offset-path> underlying [ray(20deg sides)] from replace [ray(190deg sides contain)] to add [ray(20deg sides)] at (0) should be [ray(190deg sides contain)] assert_true: 'from' value should be supported expected true got false
    34 FAIL Compositing: property <offset-path> underlying [ray(20deg sides)] from replace [ray(190deg sides contain)] to add [ray(20deg sides)] at (0.3) should be [ray(190deg sides contain)] assert_true: 'from' value should be supported expected true got false
    35 FAIL Compositing: property <offset-path> underlying [ray(20deg sides)] from replace [ray(190deg sides contain)] to add [ray(20deg sides)] at (0.6) should be [ray(40deg sides)] assert_true: 'from' value should be supported expected true got false
    36 FAIL Compositing: property <offset-path> underlying [ray(20deg sides)] from replace [ray(190deg sides contain)] to add [ray(20deg sides)] at (1) should be [ray(40deg sides)] assert_true: 'from' value should be supported expected true got false
    37 FAIL Compositing: property <offset-path> underlying [ray(20deg sides)] from replace [ray(190deg sides contain)] to add [ray(20deg sides)] at (1.5) should be [ray(40deg sides)] assert_true: 'from' value should be supported expected true got false
    38 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-side)] to replace [ray(10deg closest-side)] at (-0.3) should be [ray(36deg closest-side)] assert_true: 'from' value should be supported expected true got false
    39 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-side)] to replace [ray(10deg closest-side)] at (0) should be [ray(30deg closest-side)] assert_true: 'from' value should be supported expected true got false
    40 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-side)] to replace [ray(10deg closest-side)] at (0.3) should be [ray(24deg closest-side)] assert_true: 'from' value should be supported expected true got false
    41 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-side)] to replace [ray(10deg closest-side)] at (0.6) should be [ray(18deg closest-side)] assert_true: 'from' value should be supported expected true got false
    42 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-side)] to replace [ray(10deg closest-side)] at (1) should be [ray(10deg closest-side)] assert_true: 'from' value should be supported expected true got false
    43 FAIL Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-side)] to replace [ray(10deg closest-side)] at (1.5) should be [ray(0deg closest-side)] assert_true: 'from' value should be supported expected true got false
     2PASS Compositing: property <offset-path> underlying [ray(20deg sides)] from add [ray(10deg sides)] to add [ray(20deg sides)] at (-0.3) should be [ray(27deg sides)]
     3PASS Compositing: property <offset-path> underlying [ray(20deg sides)] from add [ray(10deg sides)] to add [ray(20deg sides)] at (0) should be [ray(30deg sides)]
     4PASS Compositing: property <offset-path> underlying [ray(20deg sides)] from add [ray(10deg sides)] to add [ray(20deg sides)] at (0.3) should be [ray(33deg sides)]
     5PASS Compositing: property <offset-path> underlying [ray(20deg sides)] from add [ray(10deg sides)] to add [ray(20deg sides)] at (0.6) should be [ray(36deg sides)]
     6PASS Compositing: property <offset-path> underlying [ray(20deg sides)] from add [ray(10deg sides)] to add [ray(20deg sides)] at (1) should be [ray(40deg sides)]
     7PASS Compositing: property <offset-path> underlying [ray(20deg sides)] from add [ray(10deg sides)] to add [ray(20deg sides)] at (1.5) should be [ray(45deg sides)]
     8PASS Compositing: property <offset-path> underlying [ray(20deg closest-corner contain)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (-0.3) should be [ray(7deg closest-corner)]
     9PASS Compositing: property <offset-path> underlying [ray(20deg closest-corner contain)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (0) should be [ray(10deg closest-corner)]
     10PASS Compositing: property <offset-path> underlying [ray(20deg closest-corner contain)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (0.3) should be [ray(13deg closest-corner)]
     11PASS Compositing: property <offset-path> underlying [ray(20deg closest-corner contain)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (0.6) should be [ray(16deg closest-corner)]
     12PASS Compositing: property <offset-path> underlying [ray(20deg closest-corner contain)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (1) should be [ray(20deg closest-corner)]
     13PASS Compositing: property <offset-path> underlying [ray(20deg closest-corner contain)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (1.5) should be [ray(25deg closest-corner)]
     14PASS Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (-0.3) should be [ray(7deg closest-corner)]
     15PASS Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (0) should be [ray(10deg closest-corner)]
     16PASS Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (0.3) should be [ray(13deg closest-corner)]
     17PASS Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (0.6) should be [ray(16deg closest-corner)]
     18PASS Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (1) should be [ray(20deg closest-corner)]
     19PASS Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-corner)] to add [ray(20deg closest-corner)] at (1.5) should be [ray(25deg closest-corner)]
     20PASS Compositing: property <offset-path> underlying [ray(20deg farthest-side contain)] from add [ray(190deg farthest-side contain)] to add [ray(20deg farthest-side contain)] at (-0.3) should be [ray(261deg farthest-side contain)]
     21PASS Compositing: property <offset-path> underlying [ray(20deg farthest-side contain)] from add [ray(190deg farthest-side contain)] to add [ray(20deg farthest-side contain)] at (0) should be [ray(210deg farthest-side contain)]
     22PASS Compositing: property <offset-path> underlying [ray(20deg farthest-side contain)] from add [ray(190deg farthest-side contain)] to add [ray(20deg farthest-side contain)] at (0.3) should be [ray(159deg farthest-side contain)]
     23PASS Compositing: property <offset-path> underlying [ray(20deg farthest-side contain)] from add [ray(190deg farthest-side contain)] to add [ray(20deg farthest-side contain)] at (0.6) should be [ray(108deg farthest-side contain)]
     24PASS Compositing: property <offset-path> underlying [ray(20deg farthest-side contain)] from add [ray(190deg farthest-side contain)] to add [ray(20deg farthest-side contain)] at (1) should be [ray(40deg farthest-side contain)]
     25PASS Compositing: property <offset-path> underlying [ray(20deg farthest-side contain)] from add [ray(190deg farthest-side contain)] to add [ray(20deg farthest-side contain)] at (1.5) should be [ray(-45deg farthest-side contain)]
     26PASS Compositing: property <offset-path> underlying [ray(20deg farthest-corner)] from add [ray(190deg farthest-corner contain)] to add [ray(20deg farthest-corner)] at (-0.3) should be [ray(190deg farthest-corner contain)]
     27PASS Compositing: property <offset-path> underlying [ray(20deg farthest-corner)] from add [ray(190deg farthest-corner contain)] to add [ray(20deg farthest-corner)] at (0) should be [ray(190deg farthest-corner contain)]
     28PASS Compositing: property <offset-path> underlying [ray(20deg farthest-corner)] from add [ray(190deg farthest-corner contain)] to add [ray(20deg farthest-corner)] at (0.3) should be [ray(190deg farthest-corner contain)]
     29PASS Compositing: property <offset-path> underlying [ray(20deg farthest-corner)] from add [ray(190deg farthest-corner contain)] to add [ray(20deg farthest-corner)] at (0.6) should be [ray(40deg farthest-corner)]
     30PASS Compositing: property <offset-path> underlying [ray(20deg farthest-corner)] from add [ray(190deg farthest-corner contain)] to add [ray(20deg farthest-corner)] at (1) should be [ray(40deg farthest-corner)]
     31PASS Compositing: property <offset-path> underlying [ray(20deg farthest-corner)] from add [ray(190deg farthest-corner contain)] to add [ray(20deg farthest-corner)] at (1.5) should be [ray(40deg farthest-corner)]
     32PASS Compositing: property <offset-path> underlying [ray(20deg sides)] from replace [ray(190deg sides contain)] to add [ray(20deg sides)] at (-0.3) should be [ray(190deg sides contain)]
     33PASS Compositing: property <offset-path> underlying [ray(20deg sides)] from replace [ray(190deg sides contain)] to add [ray(20deg sides)] at (0) should be [ray(190deg sides contain)]
     34PASS Compositing: property <offset-path> underlying [ray(20deg sides)] from replace [ray(190deg sides contain)] to add [ray(20deg sides)] at (0.3) should be [ray(190deg sides contain)]
     35PASS Compositing: property <offset-path> underlying [ray(20deg sides)] from replace [ray(190deg sides contain)] to add [ray(20deg sides)] at (0.6) should be [ray(40deg sides)]
     36PASS Compositing: property <offset-path> underlying [ray(20deg sides)] from replace [ray(190deg sides contain)] to add [ray(20deg sides)] at (1) should be [ray(40deg sides)]
     37PASS Compositing: property <offset-path> underlying [ray(20deg sides)] from replace [ray(190deg sides contain)] to add [ray(20deg sides)] at (1.5) should be [ray(40deg sides)]
     38PASS Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-side)] to replace [ray(10deg closest-side)] at (-0.3) should be [ray(36deg closest-side)]
     39PASS Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-side)] to replace [ray(10deg closest-side)] at (0) should be [ray(30deg closest-side)]
     40PASS Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-side)] to replace [ray(10deg closest-side)] at (0.3) should be [ray(24deg closest-side)]
     41PASS Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-side)] to replace [ray(10deg closest-side)] at (0.6) should be [ray(18deg closest-side)]
     42PASS Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-side)] to replace [ray(10deg closest-side)] at (1) should be [ray(10deg closest-side)]
     43PASS Compositing: property <offset-path> underlying [ray(20deg closest-side)] from add [ray(10deg closest-side)] to replace [ray(10deg closest-side)] at (1.5) should be [ray(0deg closest-side)]
    4444
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-005-expected.txt

    r285343 r286086  
    11
    2 FAIL CSS Transitions: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (-0.3) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    3 FAIL CSS Transitions: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    4 FAIL CSS Transitions: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.3) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    5 FAIL CSS Transitions: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.5) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    6 FAIL CSS Transitions: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.6) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    7 FAIL CSS Transitions: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (1) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    8 FAIL CSS Transitions: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (1.5) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    9 FAIL CSS Transitions with transition: all: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (-0.3) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    10 FAIL CSS Transitions with transition: all: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    11 FAIL CSS Transitions with transition: all: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.3) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    12 FAIL CSS Transitions with transition: all: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.5) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    13 FAIL CSS Transitions with transition: all: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.6) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    14 FAIL CSS Transitions with transition: all: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (1) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    15 FAIL CSS Transitions with transition: all: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (1.5) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    16 FAIL CSS Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (-0.3) should be [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] assert_true: 'to' value should be supported expected true got false
    17 FAIL CSS Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0) should be [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] assert_true: 'to' value should be supported expected true got false
    18 FAIL CSS Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.3) should be [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] assert_true: 'to' value should be supported expected true got false
    19 FAIL CSS Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.5) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    20 FAIL CSS Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.6) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    21 FAIL CSS Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (1) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    22 FAIL CSS Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (1.5) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    23 FAIL Web Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (-0.3) should be [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] assert_true: 'to' value should be supported expected true got false
    24 FAIL Web Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0) should be [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] assert_true: 'to' value should be supported expected true got false
    25 FAIL Web Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.3) should be [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] assert_true: 'to' value should be supported expected true got false
    26 FAIL Web Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.5) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    27 FAIL Web Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.6) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    28 FAIL Web Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (1) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    29 FAIL Web Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (1.5) should be [ray(0deg closest-side)] assert_true: 'to' value should be supported expected true got false
    30 FAIL CSS Transitions: property <offset-path> from [ray(0deg closest-corner)] to [none] at (-0.3) should be [none] assert_true: 'from' value should be supported expected true got false
    31 FAIL CSS Transitions: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0) should be [none] assert_true: 'from' value should be supported expected true got false
    32 FAIL CSS Transitions: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.3) should be [none] assert_true: 'from' value should be supported expected true got false
    33 FAIL CSS Transitions: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.5) should be [none] assert_true: 'from' value should be supported expected true got false
    34 FAIL CSS Transitions: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.6) should be [none] assert_true: 'from' value should be supported expected true got false
    35 FAIL CSS Transitions: property <offset-path> from [ray(0deg closest-corner)] to [none] at (1) should be [none] assert_true: 'from' value should be supported expected true got false
    36 FAIL CSS Transitions: property <offset-path> from [ray(0deg closest-corner)] to [none] at (1.5) should be [none] assert_true: 'from' value should be supported expected true got false
    37 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(0deg closest-corner)] to [none] at (-0.3) should be [none] assert_true: 'from' value should be supported expected true got false
    38 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0) should be [none] assert_true: 'from' value should be supported expected true got false
    39 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.3) should be [none] assert_true: 'from' value should be supported expected true got false
    40 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.5) should be [none] assert_true: 'from' value should be supported expected true got false
    41 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.6) should be [none] assert_true: 'from' value should be supported expected true got false
    42 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(0deg closest-corner)] to [none] at (1) should be [none] assert_true: 'from' value should be supported expected true got false
    43 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(0deg closest-corner)] to [none] at (1.5) should be [none] assert_true: 'from' value should be supported expected true got false
    44 FAIL CSS Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (-0.3) should be [ray(0deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    45 FAIL CSS Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0) should be [ray(0deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    46 FAIL CSS Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.3) should be [ray(0deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    47 FAIL CSS Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.5) should be [none] assert_true: 'from' value should be supported expected true got false
    48 FAIL CSS Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.6) should be [none] assert_true: 'from' value should be supported expected true got false
    49 FAIL CSS Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (1) should be [none] assert_true: 'from' value should be supported expected true got false
    50 FAIL CSS Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (1.5) should be [none] assert_true: 'from' value should be supported expected true got false
    51 FAIL Web Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (-0.3) should be [ray(0deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    52 FAIL Web Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0) should be [ray(0deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    53 FAIL Web Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.3) should be [ray(0deg closest-corner)] assert_true: 'from' value should be supported expected true got false
    54 FAIL Web Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.5) should be [none] assert_true: 'from' value should be supported expected true got false
    55 FAIL Web Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.6) should be [none] assert_true: 'from' value should be supported expected true got false
    56 FAIL Web Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (1) should be [none] assert_true: 'from' value should be supported expected true got false
    57 FAIL Web Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (1.5) should be [none] assert_true: 'from' value should be supported expected true got false
    58 FAIL CSS Transitions: property <offset-path> from neutral to [ray(20deg closest-side)] at (-0.3) should be [ray(7deg closest-side)] assert_true: 'to' value should be supported expected true got false
    59 FAIL CSS Transitions: property <offset-path> from neutral to [ray(20deg closest-side)] at (0) should be [ray(10deg closest-side)] assert_true: 'to' value should be supported expected true got false
    60 FAIL CSS Transitions: property <offset-path> from neutral to [ray(20deg closest-side)] at (0.3) should be [ray(13deg closest-side)] assert_true: 'to' value should be supported expected true got false
    61 FAIL CSS Transitions: property <offset-path> from neutral to [ray(20deg closest-side)] at (0.6) should be [ray(16deg closest-side)] assert_true: 'to' value should be supported expected true got false
    62 FAIL CSS Transitions: property <offset-path> from neutral to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    63 FAIL CSS Transitions: property <offset-path> from neutral to [ray(20deg closest-side)] at (1.5) should be [ray(25deg closest-side)] assert_true: 'to' value should be supported expected true got false
    64 FAIL CSS Transitions with transition: all: property <offset-path> from neutral to [ray(20deg closest-side)] at (-0.3) should be [ray(7deg closest-side)] assert_true: 'to' value should be supported expected true got false
    65 FAIL CSS Transitions with transition: all: property <offset-path> from neutral to [ray(20deg closest-side)] at (0) should be [ray(10deg closest-side)] assert_true: 'to' value should be supported expected true got false
    66 FAIL CSS Transitions with transition: all: property <offset-path> from neutral to [ray(20deg closest-side)] at (0.3) should be [ray(13deg closest-side)] assert_true: 'to' value should be supported expected true got false
    67 FAIL CSS Transitions with transition: all: property <offset-path> from neutral to [ray(20deg closest-side)] at (0.6) should be [ray(16deg closest-side)] assert_true: 'to' value should be supported expected true got false
    68 FAIL CSS Transitions with transition: all: property <offset-path> from neutral to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    69 FAIL CSS Transitions with transition: all: property <offset-path> from neutral to [ray(20deg closest-side)] at (1.5) should be [ray(25deg closest-side)] assert_true: 'to' value should be supported expected true got false
    70 FAIL CSS Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (-0.3) should be [ray(7deg closest-side)] assert_true: 'to' value should be supported expected true got false
    71 FAIL CSS Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (0) should be [ray(10deg closest-side)] assert_true: 'to' value should be supported expected true got false
    72 FAIL CSS Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (0.3) should be [ray(13deg closest-side)] assert_true: 'to' value should be supported expected true got false
    73 FAIL CSS Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (0.6) should be [ray(16deg closest-side)] assert_true: 'to' value should be supported expected true got false
    74 FAIL CSS Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    75 FAIL CSS Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (1.5) should be [ray(25deg closest-side)] assert_true: 'to' value should be supported expected true got false
    76 FAIL Web Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (-0.3) should be [ray(7deg closest-side)] assert_true: 'to' value should be supported expected true got false
    77 FAIL Web Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (0) should be [ray(10deg closest-side)] assert_true: 'to' value should be supported expected true got false
    78 FAIL Web Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (0.3) should be [ray(13deg closest-side)] assert_true: 'to' value should be supported expected true got false
    79 FAIL Web Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (0.6) should be [ray(16deg closest-side)] assert_true: 'to' value should be supported expected true got false
    80 FAIL Web Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    81 FAIL Web Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (1.5) should be [ray(25deg closest-side)] assert_true: 'to' value should be supported expected true got false
    82 FAIL CSS Transitions: property <offset-path> from [initial] to [ray(20deg closest-side)] at (-0.3) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    83 FAIL CSS Transitions: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    84 FAIL CSS Transitions: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.3) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    85 FAIL CSS Transitions: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    86 FAIL CSS Transitions: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    87 FAIL CSS Transitions: property <offset-path> from [initial] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    88 FAIL CSS Transitions: property <offset-path> from [initial] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    89 FAIL CSS Transitions with transition: all: property <offset-path> from [initial] to [ray(20deg closest-side)] at (-0.3) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    90 FAIL CSS Transitions with transition: all: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    91 FAIL CSS Transitions with transition: all: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.3) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    92 FAIL CSS Transitions with transition: all: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    93 FAIL CSS Transitions with transition: all: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    94 FAIL CSS Transitions with transition: all: property <offset-path> from [initial] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    95 FAIL CSS Transitions with transition: all: property <offset-path> from [initial] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    96 FAIL CSS Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (-0.3) should be [initial] assert_true: 'to' value should be supported expected true got false
    97 FAIL CSS Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0) should be [initial] assert_true: 'to' value should be supported expected true got false
    98 FAIL CSS Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.3) should be [initial] assert_true: 'to' value should be supported expected true got false
    99 FAIL CSS Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    100 FAIL CSS Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    101 FAIL CSS Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    102 FAIL CSS Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    103 FAIL Web Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (-0.3) should be [initial] assert_true: 'to' value should be supported expected true got false
    104 FAIL Web Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0) should be [initial] assert_true: 'to' value should be supported expected true got false
    105 FAIL Web Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.3) should be [initial] assert_true: 'to' value should be supported expected true got false
    106 FAIL Web Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    107 FAIL Web Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    108 FAIL Web Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    109 FAIL Web Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    110 FAIL CSS Transitions: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (-0.3) should be [ray(33deg closest-side)] assert_true: 'to' value should be supported expected true got false
    111 FAIL CSS Transitions: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0) should be [ray(30deg closest-side)] assert_true: 'to' value should be supported expected true got false
    112 FAIL CSS Transitions: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0.3) should be [ray(27deg closest-side)] assert_true: 'to' value should be supported expected true got false
    113 FAIL CSS Transitions: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0.6) should be [ray(24deg closest-side)] assert_true: 'to' value should be supported expected true got false
    114 FAIL CSS Transitions: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    115 FAIL CSS Transitions: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (1.5) should be [ray(15deg closest-side)] assert_true: 'to' value should be supported expected true got false
    116 FAIL CSS Transitions with transition: all: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (-0.3) should be [ray(33deg closest-side)] assert_true: 'to' value should be supported expected true got false
    117 FAIL CSS Transitions with transition: all: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0) should be [ray(30deg closest-side)] assert_true: 'to' value should be supported expected true got false
    118 FAIL CSS Transitions with transition: all: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0.3) should be [ray(27deg closest-side)] assert_true: 'to' value should be supported expected true got false
    119 FAIL CSS Transitions with transition: all: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0.6) should be [ray(24deg closest-side)] assert_true: 'to' value should be supported expected true got false
    120 FAIL CSS Transitions with transition: all: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    121 FAIL CSS Transitions with transition: all: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (1.5) should be [ray(15deg closest-side)] assert_true: 'to' value should be supported expected true got false
    122 FAIL CSS Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (-0.3) should be [ray(33deg closest-side)] assert_true: 'to' value should be supported expected true got false
    123 FAIL CSS Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0) should be [ray(30deg closest-side)] assert_true: 'to' value should be supported expected true got false
    124 FAIL CSS Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0.3) should be [ray(27deg closest-side)] assert_true: 'to' value should be supported expected true got false
    125 FAIL CSS Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0.6) should be [ray(24deg closest-side)] assert_true: 'to' value should be supported expected true got false
    126 FAIL CSS Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    127 FAIL CSS Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (1.5) should be [ray(15deg closest-side)] assert_true: 'to' value should be supported expected true got false
    128 FAIL Web Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (-0.3) should be [ray(33deg closest-side)] assert_true: 'to' value should be supported expected true got false
    129 FAIL Web Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0) should be [ray(30deg closest-side)] assert_true: 'to' value should be supported expected true got false
    130 FAIL Web Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0.3) should be [ray(27deg closest-side)] assert_true: 'to' value should be supported expected true got false
    131 FAIL Web Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0.6) should be [ray(24deg closest-side)] assert_true: 'to' value should be supported expected true got false
    132 FAIL Web Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    133 FAIL Web Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (1.5) should be [ray(15deg closest-side)] assert_true: 'to' value should be supported expected true got false
    134 FAIL CSS Transitions: property <offset-path> from [unset] to [ray(20deg closest-side)] at (-0.3) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    135 FAIL CSS Transitions: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    136 FAIL CSS Transitions: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.3) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    137 FAIL CSS Transitions: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    138 FAIL CSS Transitions: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    139 FAIL CSS Transitions: property <offset-path> from [unset] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    140 FAIL CSS Transitions: property <offset-path> from [unset] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    141 FAIL CSS Transitions with transition: all: property <offset-path> from [unset] to [ray(20deg closest-side)] at (-0.3) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    142 FAIL CSS Transitions with transition: all: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    143 FAIL CSS Transitions with transition: all: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.3) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    144 FAIL CSS Transitions with transition: all: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    145 FAIL CSS Transitions with transition: all: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    146 FAIL CSS Transitions with transition: all: property <offset-path> from [unset] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    147 FAIL CSS Transitions with transition: all: property <offset-path> from [unset] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    148 FAIL CSS Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (-0.3) should be [unset] assert_true: 'to' value should be supported expected true got false
    149 FAIL CSS Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0) should be [unset] assert_true: 'to' value should be supported expected true got false
    150 FAIL CSS Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.3) should be [unset] assert_true: 'to' value should be supported expected true got false
    151 FAIL CSS Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    152 FAIL CSS Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    153 FAIL CSS Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    154 FAIL CSS Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    155 FAIL Web Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (-0.3) should be [unset] assert_true: 'to' value should be supported expected true got false
    156 FAIL Web Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0) should be [unset] assert_true: 'to' value should be supported expected true got false
    157 FAIL Web Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.3) should be [unset] assert_true: 'to' value should be supported expected true got false
    158 FAIL Web Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    159 FAIL Web Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    160 FAIL Web Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    161 FAIL Web Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    162 FAIL CSS Transitions: property <offset-path> from [none] to [ray(20deg closest-side)] at (-0.3) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    163 FAIL CSS Transitions: property <offset-path> from [none] to [ray(20deg closest-side)] at (0) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    164 FAIL CSS Transitions: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.3) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    165 FAIL CSS Transitions: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    166 FAIL CSS Transitions: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    167 FAIL CSS Transitions: property <offset-path> from [none] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    168 FAIL CSS Transitions: property <offset-path> from [none] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    169 FAIL CSS Transitions with transition: all: property <offset-path> from [none] to [ray(20deg closest-side)] at (-0.3) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    170 FAIL CSS Transitions with transition: all: property <offset-path> from [none] to [ray(20deg closest-side)] at (0) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    171 FAIL CSS Transitions with transition: all: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.3) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    172 FAIL CSS Transitions with transition: all: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    173 FAIL CSS Transitions with transition: all: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    174 FAIL CSS Transitions with transition: all: property <offset-path> from [none] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    175 FAIL CSS Transitions with transition: all: property <offset-path> from [none] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    176 FAIL CSS Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (-0.3) should be [none] assert_true: 'to' value should be supported expected true got false
    177 FAIL CSS Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (0) should be [none] assert_true: 'to' value should be supported expected true got false
    178 FAIL CSS Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.3) should be [none] assert_true: 'to' value should be supported expected true got false
    179 FAIL CSS Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    180 FAIL CSS Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    181 FAIL CSS Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    182 FAIL CSS Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    183 FAIL Web Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (-0.3) should be [none] assert_true: 'to' value should be supported expected true got false
    184 FAIL Web Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (0) should be [none] assert_true: 'to' value should be supported expected true got false
    185 FAIL Web Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.3) should be [none] assert_true: 'to' value should be supported expected true got false
    186 FAIL Web Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    187 FAIL Web Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    188 FAIL Web Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    189 FAIL Web Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)] assert_true: 'to' value should be supported expected true got false
    190 FAIL CSS Transitions: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (-1) should be [ray(-30deg sides contain)] assert_true: 'from' value should be supported expected true got false
    191 FAIL CSS Transitions: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0) should be [ray(10deg sides contain)] assert_true: 'from' value should be supported expected true got false
    192 FAIL CSS Transitions: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0.125) should be [ray(15deg sides contain)] assert_true: 'from' value should be supported expected true got false
    193 FAIL CSS Transitions: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0.875) should be [ray(45deg sides contain)] assert_true: 'from' value should be supported expected true got false
    194 FAIL CSS Transitions: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (1) should be [ray(50deg sides contain)] assert_true: 'from' value should be supported expected true got false
    195 FAIL CSS Transitions: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (2) should be [ray(90deg sides contain)] assert_true: 'from' value should be supported expected true got false
    196 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (-1) should be [ray(-30deg sides contain)] assert_true: 'from' value should be supported expected true got false
    197 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0) should be [ray(10deg sides contain)] assert_true: 'from' value should be supported expected true got false
    198 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0.125) should be [ray(15deg sides contain)] assert_true: 'from' value should be supported expected true got false
    199 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0.875) should be [ray(45deg sides contain)] assert_true: 'from' value should be supported expected true got false
    200 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (1) should be [ray(50deg sides contain)] assert_true: 'from' value should be supported expected true got false
    201 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (2) should be [ray(90deg sides contain)] assert_true: 'from' value should be supported expected true got false
    202 FAIL CSS Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (-1) should be [ray(-30deg sides contain)] assert_true: 'from' value should be supported expected true got false
    203 FAIL CSS Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0) should be [ray(10deg sides contain)] assert_true: 'from' value should be supported expected true got false
    204 FAIL CSS Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0.125) should be [ray(15deg sides contain)] assert_true: 'from' value should be supported expected true got false
    205 FAIL CSS Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0.875) should be [ray(45deg sides contain)] assert_true: 'from' value should be supported expected true got false
    206 FAIL CSS Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (1) should be [ray(50deg sides contain)] assert_true: 'from' value should be supported expected true got false
    207 FAIL CSS Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (2) should be [ray(90deg sides contain)] assert_true: 'from' value should be supported expected true got false
    208 FAIL Web Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (-1) should be [ray(-30deg sides contain)] assert_true: 'from' value should be supported expected true got false
    209 FAIL Web Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0) should be [ray(10deg sides contain)] assert_true: 'from' value should be supported expected true got false
    210 FAIL Web Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0.125) should be [ray(15deg sides contain)] assert_true: 'from' value should be supported expected true got false
    211 FAIL Web Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0.875) should be [ray(45deg sides contain)] assert_true: 'from' value should be supported expected true got false
    212 FAIL Web Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (1) should be [ray(50deg sides contain)] assert_true: 'from' value should be supported expected true got false
    213 FAIL Web Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (2) should be [ray(90deg sides contain)] assert_true: 'from' value should be supported expected true got false
    214 FAIL CSS Transitions: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (-1) should be [ray(30deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    215 FAIL CSS Transitions: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0) should be [ray(-10deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    216 FAIL CSS Transitions: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0.125) should be [ray(-15deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    217 FAIL CSS Transitions: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0.875) should be [ray(-45deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    218 FAIL CSS Transitions: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (1) should be [ray(-50deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    219 FAIL CSS Transitions: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (2) should be [ray(-90deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    220 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (-1) should be [ray(30deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    221 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0) should be [ray(-10deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    222 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0.125) should be [ray(-15deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    223 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0.875) should be [ray(-45deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    224 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (1) should be [ray(-50deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    225 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (2) should be [ray(-90deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    226 FAIL CSS Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (-1) should be [ray(30deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    227 FAIL CSS Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0) should be [ray(-10deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    228 FAIL CSS Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0.125) should be [ray(-15deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    229 FAIL CSS Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0.875) should be [ray(-45deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    230 FAIL CSS Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (1) should be [ray(-50deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    231 FAIL CSS Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (2) should be [ray(-90deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    232 FAIL Web Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (-1) should be [ray(30deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    233 FAIL Web Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0) should be [ray(-10deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    234 FAIL Web Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0.125) should be [ray(-15deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    235 FAIL Web Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0.875) should be [ray(-45deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    236 FAIL Web Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (1) should be [ray(-50deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    237 FAIL Web Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (2) should be [ray(-90deg farthest-corner)] assert_true: 'from' value should be supported expected true got false
    238 FAIL CSS Transitions: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (-0.3) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    239 FAIL CSS Transitions: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    240 FAIL CSS Transitions: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.3) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    241 FAIL CSS Transitions: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    242 FAIL CSS Transitions: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    243 FAIL CSS Transitions: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    244 FAIL CSS Transitions: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    245 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (-0.3) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    246 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    247 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.3) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    248 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    249 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    250 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    251 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    252 FAIL CSS Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (-0.3) should be [ray(200deg farthest-side)] assert_true: 'from' value should be supported expected true got false
    253 FAIL CSS Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0) should be [ray(200deg farthest-side)] assert_true: 'from' value should be supported expected true got false
    254 FAIL CSS Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.3) should be [ray(200deg farthest-side)] assert_true: 'from' value should be supported expected true got false
    255 FAIL CSS Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    256 FAIL CSS Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    257 FAIL CSS Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    258 FAIL CSS Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    259 FAIL Web Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (-0.3) should be [ray(200deg farthest-side)] assert_true: 'from' value should be supported expected true got false
    260 FAIL Web Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0) should be [ray(200deg farthest-side)] assert_true: 'from' value should be supported expected true got false
    261 FAIL Web Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.3) should be [ray(200deg farthest-side)] assert_true: 'from' value should be supported expected true got false
    262 FAIL Web Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    263 FAIL Web Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    264 FAIL Web Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    265 FAIL Web Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    266 FAIL CSS Transitions: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (-0.3) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    267 FAIL CSS Transitions: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    268 FAIL CSS Transitions: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.3) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    269 FAIL CSS Transitions: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    270 FAIL CSS Transitions: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    271 FAIL CSS Transitions: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    272 FAIL CSS Transitions: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    273 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (-0.3) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    274 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    275 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.3) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    276 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    277 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    278 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    279 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    280 FAIL CSS Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (-0.3) should be [ray(200deg sides contain)] assert_true: 'from' value should be supported expected true got false
    281 FAIL CSS Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0) should be [ray(200deg sides contain)] assert_true: 'from' value should be supported expected true got false
    282 FAIL CSS Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.3) should be [ray(200deg sides contain)] assert_true: 'from' value should be supported expected true got false
    283 FAIL CSS Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    284 FAIL CSS Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    285 FAIL CSS Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    286 FAIL CSS Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    287 FAIL Web Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (-0.3) should be [ray(200deg sides contain)] assert_true: 'from' value should be supported expected true got false
    288 FAIL Web Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0) should be [ray(200deg sides contain)] assert_true: 'from' value should be supported expected true got false
    289 FAIL Web Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.3) should be [ray(200deg sides contain)] assert_true: 'from' value should be supported expected true got false
    290 FAIL Web Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    291 FAIL Web Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    292 FAIL Web Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    293 FAIL Web Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    294 FAIL CSS Transitions: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (-0.3) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    295 FAIL CSS Transitions: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    296 FAIL CSS Transitions: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.3) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    297 FAIL CSS Transitions: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    298 FAIL CSS Transitions: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    299 FAIL CSS Transitions: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    300 FAIL CSS Transitions: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    301 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (-0.3) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    302 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    303 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.3) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    304 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    305 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    306 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    307 FAIL CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    308 FAIL CSS Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (-0.3) should be [ray(200deg farthest-side contain)] assert_true: 'from' value should be supported expected true got false
    309 FAIL CSS Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0) should be [ray(200deg farthest-side contain)] assert_true: 'from' value should be supported expected true got false
    310 FAIL CSS Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.3) should be [ray(200deg farthest-side contain)] assert_true: 'from' value should be supported expected true got false
    311 FAIL CSS Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    312 FAIL CSS Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    313 FAIL CSS Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    314 FAIL CSS Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    315 FAIL Web Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (-0.3) should be [ray(200deg farthest-side contain)] assert_true: 'from' value should be supported expected true got false
    316 FAIL Web Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0) should be [ray(200deg farthest-side contain)] assert_true: 'from' value should be supported expected true got false
    317 FAIL Web Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.3) should be [ray(200deg farthest-side contain)] assert_true: 'from' value should be supported expected true got false
    318 FAIL Web Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    319 FAIL Web Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    320 FAIL Web Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
    321 FAIL Web Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)] assert_true: 'from' value should be supported expected true got false
     2PASS CSS Transitions: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (-0.3) should be [ray(0deg closest-side)]
     3PASS CSS Transitions: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0) should be [ray(0deg closest-side)]
     4PASS CSS Transitions: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.3) should be [ray(0deg closest-side)]
     5PASS CSS Transitions: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.5) should be [ray(0deg closest-side)]
     6PASS CSS Transitions: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.6) should be [ray(0deg closest-side)]
     7PASS CSS Transitions: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (1) should be [ray(0deg closest-side)]
     8PASS CSS Transitions: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (1.5) should be [ray(0deg closest-side)]
     9PASS CSS Transitions with transition: all: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (-0.3) should be [ray(0deg closest-side)]
     10PASS CSS Transitions with transition: all: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0) should be [ray(0deg closest-side)]
     11PASS CSS Transitions with transition: all: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.3) should be [ray(0deg closest-side)]
     12PASS CSS Transitions with transition: all: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.5) should be [ray(0deg closest-side)]
     13PASS CSS Transitions with transition: all: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.6) should be [ray(0deg closest-side)]
     14PASS CSS Transitions with transition: all: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (1) should be [ray(0deg closest-side)]
     15PASS CSS Transitions with transition: all: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (1.5) should be [ray(0deg closest-side)]
     16PASS CSS Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (-0.3) should be [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')]
     17PASS CSS Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0) should be [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')]
     18PASS CSS Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.3) should be [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')]
     19PASS CSS Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.5) should be [ray(0deg closest-side)]
     20PASS CSS Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.6) should be [ray(0deg closest-side)]
     21PASS CSS Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (1) should be [ray(0deg closest-side)]
     22PASS CSS Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (1.5) should be [ray(0deg closest-side)]
     23PASS Web Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (-0.3) should be [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')]
     24PASS Web Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0) should be [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')]
     25PASS Web Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.3) should be [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')]
     26PASS Web Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.5) should be [ray(0deg closest-side)]
     27PASS Web Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (0.6) should be [ray(0deg closest-side)]
     28PASS Web Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (1) should be [ray(0deg closest-side)]
     29PASS Web Animations: property <offset-path> from [path('M 0 0 L 100 100 M 100 200 L 200 200 Z L 200 100 Z')] to [ray(0deg closest-side)] at (1.5) should be [ray(0deg closest-side)]
     30PASS CSS Transitions: property <offset-path> from [ray(0deg closest-corner)] to [none] at (-0.3) should be [none]
     31PASS CSS Transitions: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0) should be [none]
     32PASS CSS Transitions: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.3) should be [none]
     33PASS CSS Transitions: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.5) should be [none]
     34PASS CSS Transitions: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.6) should be [none]
     35PASS CSS Transitions: property <offset-path> from [ray(0deg closest-corner)] to [none] at (1) should be [none]
     36PASS CSS Transitions: property <offset-path> from [ray(0deg closest-corner)] to [none] at (1.5) should be [none]
     37PASS CSS Transitions with transition: all: property <offset-path> from [ray(0deg closest-corner)] to [none] at (-0.3) should be [none]
     38PASS CSS Transitions with transition: all: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0) should be [none]
     39PASS CSS Transitions with transition: all: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.3) should be [none]
     40PASS CSS Transitions with transition: all: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.5) should be [none]
     41PASS CSS Transitions with transition: all: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.6) should be [none]
     42PASS CSS Transitions with transition: all: property <offset-path> from [ray(0deg closest-corner)] to [none] at (1) should be [none]
     43PASS CSS Transitions with transition: all: property <offset-path> from [ray(0deg closest-corner)] to [none] at (1.5) should be [none]
     44PASS CSS Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (-0.3) should be [ray(0deg closest-corner)]
     45PASS CSS Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0) should be [ray(0deg closest-corner)]
     46PASS CSS Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.3) should be [ray(0deg closest-corner)]
     47PASS CSS Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.5) should be [none]
     48PASS CSS Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.6) should be [none]
     49PASS CSS Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (1) should be [none]
     50PASS CSS Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (1.5) should be [none]
     51PASS Web Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (-0.3) should be [ray(0deg closest-corner)]
     52PASS Web Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0) should be [ray(0deg closest-corner)]
     53PASS Web Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.3) should be [ray(0deg closest-corner)]
     54PASS Web Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.5) should be [none]
     55PASS Web Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (0.6) should be [none]
     56PASS Web Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (1) should be [none]
     57PASS Web Animations: property <offset-path> from [ray(0deg closest-corner)] to [none] at (1.5) should be [none]
     58PASS CSS Transitions: property <offset-path> from neutral to [ray(20deg closest-side)] at (-0.3) should be [ray(7deg closest-side)]
     59PASS CSS Transitions: property <offset-path> from neutral to [ray(20deg closest-side)] at (0) should be [ray(10deg closest-side)]
     60PASS CSS Transitions: property <offset-path> from neutral to [ray(20deg closest-side)] at (0.3) should be [ray(13deg closest-side)]
     61PASS CSS Transitions: property <offset-path> from neutral to [ray(20deg closest-side)] at (0.6) should be [ray(16deg closest-side)]
     62PASS CSS Transitions: property <offset-path> from neutral to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     63PASS CSS Transitions: property <offset-path> from neutral to [ray(20deg closest-side)] at (1.5) should be [ray(25deg closest-side)]
     64PASS CSS Transitions with transition: all: property <offset-path> from neutral to [ray(20deg closest-side)] at (-0.3) should be [ray(7deg closest-side)]
     65PASS CSS Transitions with transition: all: property <offset-path> from neutral to [ray(20deg closest-side)] at (0) should be [ray(10deg closest-side)]
     66PASS CSS Transitions with transition: all: property <offset-path> from neutral to [ray(20deg closest-side)] at (0.3) should be [ray(13deg closest-side)]
     67PASS CSS Transitions with transition: all: property <offset-path> from neutral to [ray(20deg closest-side)] at (0.6) should be [ray(16deg closest-side)]
     68PASS CSS Transitions with transition: all: property <offset-path> from neutral to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     69PASS CSS Transitions with transition: all: property <offset-path> from neutral to [ray(20deg closest-side)] at (1.5) should be [ray(25deg closest-side)]
     70PASS CSS Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (-0.3) should be [ray(7deg closest-side)]
     71PASS CSS Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (0) should be [ray(10deg closest-side)]
     72PASS CSS Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (0.3) should be [ray(13deg closest-side)]
     73PASS CSS Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (0.6) should be [ray(16deg closest-side)]
     74PASS CSS Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     75PASS CSS Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (1.5) should be [ray(25deg closest-side)]
     76PASS Web Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (-0.3) should be [ray(7deg closest-side)]
     77PASS Web Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (0) should be [ray(10deg closest-side)]
     78PASS Web Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (0.3) should be [ray(13deg closest-side)]
     79PASS Web Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (0.6) should be [ray(16deg closest-side)]
     80PASS Web Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     81PASS Web Animations: property <offset-path> from neutral to [ray(20deg closest-side)] at (1.5) should be [ray(25deg closest-side)]
     82PASS CSS Transitions: property <offset-path> from [initial] to [ray(20deg closest-side)] at (-0.3) should be [ray(20deg closest-side)]
     83PASS CSS Transitions: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0) should be [ray(20deg closest-side)]
     84PASS CSS Transitions: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.3) should be [ray(20deg closest-side)]
     85PASS CSS Transitions: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)]
     86PASS CSS Transitions: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)]
     87PASS CSS Transitions: property <offset-path> from [initial] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     88PASS CSS Transitions: property <offset-path> from [initial] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)]
     89PASS CSS Transitions with transition: all: property <offset-path> from [initial] to [ray(20deg closest-side)] at (-0.3) should be [ray(20deg closest-side)]
     90PASS CSS Transitions with transition: all: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0) should be [ray(20deg closest-side)]
     91PASS CSS Transitions with transition: all: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.3) should be [ray(20deg closest-side)]
     92PASS CSS Transitions with transition: all: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)]
     93PASS CSS Transitions with transition: all: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)]
     94PASS CSS Transitions with transition: all: property <offset-path> from [initial] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     95PASS CSS Transitions with transition: all: property <offset-path> from [initial] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)]
     96PASS CSS Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (-0.3) should be [initial]
     97PASS CSS Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0) should be [initial]
     98PASS CSS Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.3) should be [initial]
     99PASS CSS Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)]
     100PASS CSS Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)]
     101PASS CSS Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     102PASS CSS Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)]
     103PASS Web Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (-0.3) should be [initial]
     104PASS Web Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0) should be [initial]
     105PASS Web Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.3) should be [initial]
     106PASS Web Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)]
     107PASS Web Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)]
     108PASS Web Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     109PASS Web Animations: property <offset-path> from [initial] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)]
     110PASS CSS Transitions: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (-0.3) should be [ray(33deg closest-side)]
     111PASS CSS Transitions: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0) should be [ray(30deg closest-side)]
     112PASS CSS Transitions: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0.3) should be [ray(27deg closest-side)]
     113PASS CSS Transitions: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0.6) should be [ray(24deg closest-side)]
     114PASS CSS Transitions: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     115PASS CSS Transitions: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (1.5) should be [ray(15deg closest-side)]
     116PASS CSS Transitions with transition: all: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (-0.3) should be [ray(33deg closest-side)]
     117PASS CSS Transitions with transition: all: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0) should be [ray(30deg closest-side)]
     118PASS CSS Transitions with transition: all: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0.3) should be [ray(27deg closest-side)]
     119PASS CSS Transitions with transition: all: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0.6) should be [ray(24deg closest-side)]
     120PASS CSS Transitions with transition: all: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     121PASS CSS Transitions with transition: all: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (1.5) should be [ray(15deg closest-side)]
     122PASS CSS Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (-0.3) should be [ray(33deg closest-side)]
     123PASS CSS Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0) should be [ray(30deg closest-side)]
     124PASS CSS Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0.3) should be [ray(27deg closest-side)]
     125PASS CSS Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0.6) should be [ray(24deg closest-side)]
     126PASS CSS Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     127PASS CSS Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (1.5) should be [ray(15deg closest-side)]
     128PASS Web Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (-0.3) should be [ray(33deg closest-side)]
     129PASS Web Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0) should be [ray(30deg closest-side)]
     130PASS Web Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0.3) should be [ray(27deg closest-side)]
     131PASS Web Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (0.6) should be [ray(24deg closest-side)]
     132PASS Web Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     133PASS Web Animations: property <offset-path> from [inherit] to [ray(20deg closest-side)] at (1.5) should be [ray(15deg closest-side)]
     134PASS CSS Transitions: property <offset-path> from [unset] to [ray(20deg closest-side)] at (-0.3) should be [ray(20deg closest-side)]
     135PASS CSS Transitions: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0) should be [ray(20deg closest-side)]
     136PASS CSS Transitions: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.3) should be [ray(20deg closest-side)]
     137PASS CSS Transitions: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)]
     138PASS CSS Transitions: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)]
     139PASS CSS Transitions: property <offset-path> from [unset] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     140PASS CSS Transitions: property <offset-path> from [unset] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)]
     141PASS CSS Transitions with transition: all: property <offset-path> from [unset] to [ray(20deg closest-side)] at (-0.3) should be [ray(20deg closest-side)]
     142PASS CSS Transitions with transition: all: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0) should be [ray(20deg closest-side)]
     143PASS CSS Transitions with transition: all: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.3) should be [ray(20deg closest-side)]
     144PASS CSS Transitions with transition: all: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)]
     145PASS CSS Transitions with transition: all: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)]
     146PASS CSS Transitions with transition: all: property <offset-path> from [unset] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     147PASS CSS Transitions with transition: all: property <offset-path> from [unset] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)]
     148PASS CSS Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (-0.3) should be [unset]
     149PASS CSS Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0) should be [unset]
     150PASS CSS Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.3) should be [unset]
     151PASS CSS Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)]
     152PASS CSS Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)]
     153PASS CSS Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     154PASS CSS Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)]
     155PASS Web Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (-0.3) should be [unset]
     156PASS Web Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0) should be [unset]
     157PASS Web Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.3) should be [unset]
     158PASS Web Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)]
     159PASS Web Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)]
     160PASS Web Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     161PASS Web Animations: property <offset-path> from [unset] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)]
     162PASS CSS Transitions: property <offset-path> from [none] to [ray(20deg closest-side)] at (-0.3) should be [ray(20deg closest-side)]
     163PASS CSS Transitions: property <offset-path> from [none] to [ray(20deg closest-side)] at (0) should be [ray(20deg closest-side)]
     164PASS CSS Transitions: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.3) should be [ray(20deg closest-side)]
     165PASS CSS Transitions: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)]
     166PASS CSS Transitions: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)]
     167PASS CSS Transitions: property <offset-path> from [none] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     168PASS CSS Transitions: property <offset-path> from [none] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)]
     169PASS CSS Transitions with transition: all: property <offset-path> from [none] to [ray(20deg closest-side)] at (-0.3) should be [ray(20deg closest-side)]
     170PASS CSS Transitions with transition: all: property <offset-path> from [none] to [ray(20deg closest-side)] at (0) should be [ray(20deg closest-side)]
     171PASS CSS Transitions with transition: all: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.3) should be [ray(20deg closest-side)]
     172PASS CSS Transitions with transition: all: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)]
     173PASS CSS Transitions with transition: all: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)]
     174PASS CSS Transitions with transition: all: property <offset-path> from [none] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     175PASS CSS Transitions with transition: all: property <offset-path> from [none] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)]
     176PASS CSS Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (-0.3) should be [none]
     177PASS CSS Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (0) should be [none]
     178PASS CSS Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.3) should be [none]
     179PASS CSS Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)]
     180PASS CSS Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)]
     181PASS CSS Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     182PASS CSS Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)]
     183PASS Web Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (-0.3) should be [none]
     184PASS Web Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (0) should be [none]
     185PASS Web Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.3) should be [none]
     186PASS Web Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.5) should be [ray(20deg closest-side)]
     187PASS Web Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (0.6) should be [ray(20deg closest-side)]
     188PASS Web Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (1) should be [ray(20deg closest-side)]
     189PASS Web Animations: property <offset-path> from [none] to [ray(20deg closest-side)] at (1.5) should be [ray(20deg closest-side)]
     190PASS CSS Transitions: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (-1) should be [ray(-30deg sides contain)]
     191PASS CSS Transitions: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0) should be [ray(10deg sides contain)]
     192PASS CSS Transitions: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0.125) should be [ray(15deg sides contain)]
     193PASS CSS Transitions: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0.875) should be [ray(45deg sides contain)]
     194PASS CSS Transitions: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (1) should be [ray(50deg sides contain)]
     195PASS CSS Transitions: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (2) should be [ray(90deg sides contain)]
     196PASS CSS Transitions with transition: all: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (-1) should be [ray(-30deg sides contain)]
     197PASS CSS Transitions with transition: all: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0) should be [ray(10deg sides contain)]
     198PASS CSS Transitions with transition: all: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0.125) should be [ray(15deg sides contain)]
     199PASS CSS Transitions with transition: all: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0.875) should be [ray(45deg sides contain)]
     200PASS CSS Transitions with transition: all: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (1) should be [ray(50deg sides contain)]
     201PASS CSS Transitions with transition: all: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (2) should be [ray(90deg sides contain)]
     202PASS CSS Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (-1) should be [ray(-30deg sides contain)]
     203PASS CSS Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0) should be [ray(10deg sides contain)]
     204PASS CSS Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0.125) should be [ray(15deg sides contain)]
     205PASS CSS Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0.875) should be [ray(45deg sides contain)]
     206PASS CSS Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (1) should be [ray(50deg sides contain)]
     207PASS CSS Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (2) should be [ray(90deg sides contain)]
     208PASS Web Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (-1) should be [ray(-30deg sides contain)]
     209PASS Web Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0) should be [ray(10deg sides contain)]
     210PASS Web Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0.125) should be [ray(15deg sides contain)]
     211PASS Web Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (0.875) should be [ray(45deg sides contain)]
     212PASS Web Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (1) should be [ray(50deg sides contain)]
     213PASS Web Animations: property <offset-path> from [ray(10deg sides contain)] to [ray(50deg sides contain)] at (2) should be [ray(90deg sides contain)]
     214PASS CSS Transitions: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (-1) should be [ray(30deg farthest-corner)]
     215PASS CSS Transitions: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0) should be [ray(-10deg farthest-corner)]
     216PASS CSS Transitions: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0.125) should be [ray(-15deg farthest-corner)]
     217PASS CSS Transitions: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0.875) should be [ray(-45deg farthest-corner)]
     218PASS CSS Transitions: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (1) should be [ray(-50deg farthest-corner)]
     219PASS CSS Transitions: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (2) should be [ray(-90deg farthest-corner)]
     220PASS CSS Transitions with transition: all: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (-1) should be [ray(30deg farthest-corner)]
     221PASS CSS Transitions with transition: all: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0) should be [ray(-10deg farthest-corner)]
     222PASS CSS Transitions with transition: all: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0.125) should be [ray(-15deg farthest-corner)]
     223PASS CSS Transitions with transition: all: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0.875) should be [ray(-45deg farthest-corner)]
     224PASS CSS Transitions with transition: all: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (1) should be [ray(-50deg farthest-corner)]
     225PASS CSS Transitions with transition: all: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (2) should be [ray(-90deg farthest-corner)]
     226PASS CSS Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (-1) should be [ray(30deg farthest-corner)]
     227PASS CSS Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0) should be [ray(-10deg farthest-corner)]
     228PASS CSS Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0.125) should be [ray(-15deg farthest-corner)]
     229PASS CSS Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0.875) should be [ray(-45deg farthest-corner)]
     230PASS CSS Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (1) should be [ray(-50deg farthest-corner)]
     231PASS CSS Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (2) should be [ray(-90deg farthest-corner)]
     232PASS Web Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (-1) should be [ray(30deg farthest-corner)]
     233PASS Web Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0) should be [ray(-10deg farthest-corner)]
     234PASS Web Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0.125) should be [ray(-15deg farthest-corner)]
     235PASS Web Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (0.875) should be [ray(-45deg farthest-corner)]
     236PASS Web Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (1) should be [ray(-50deg farthest-corner)]
     237PASS Web Animations: property <offset-path> from [ray(-10deg farthest-corner)] to [ray(-50deg farthest-corner)] at (2) should be [ray(-90deg farthest-corner)]
     238PASS CSS Transitions: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (-0.3) should be [ray(300deg sides)]
     239PASS CSS Transitions: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0) should be [ray(300deg sides)]
     240PASS CSS Transitions: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.3) should be [ray(300deg sides)]
     241PASS CSS Transitions: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)]
     242PASS CSS Transitions: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)]
     243PASS CSS Transitions: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)]
     244PASS CSS Transitions: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)]
     245PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (-0.3) should be [ray(300deg sides)]
     246PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0) should be [ray(300deg sides)]
     247PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.3) should be [ray(300deg sides)]
     248PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)]
     249PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)]
     250PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)]
     251PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)]
     252PASS CSS Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (-0.3) should be [ray(200deg farthest-side)]
     253PASS CSS Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0) should be [ray(200deg farthest-side)]
     254PASS CSS Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.3) should be [ray(200deg farthest-side)]
     255PASS CSS Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)]
     256PASS CSS Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)]
     257PASS CSS Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)]
     258PASS CSS Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)]
     259PASS Web Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (-0.3) should be [ray(200deg farthest-side)]
     260PASS Web Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0) should be [ray(200deg farthest-side)]
     261PASS Web Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.3) should be [ray(200deg farthest-side)]
     262PASS Web Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)]
     263PASS Web Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)]
     264PASS Web Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)]
     265PASS Web Animations: property <offset-path> from [ray(200deg farthest-side)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)]
     266PASS CSS Transitions: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (-0.3) should be [ray(300deg sides)]
     267PASS CSS Transitions: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0) should be [ray(300deg sides)]
     268PASS CSS Transitions: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.3) should be [ray(300deg sides)]
     269PASS CSS Transitions: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)]
     270PASS CSS Transitions: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)]
     271PASS CSS Transitions: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)]
     272PASS CSS Transitions: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)]
     273PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (-0.3) should be [ray(300deg sides)]
     274PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0) should be [ray(300deg sides)]
     275PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.3) should be [ray(300deg sides)]
     276PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)]
     277PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)]
     278PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)]
     279PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)]
     280PASS CSS Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (-0.3) should be [ray(200deg sides contain)]
     281PASS CSS Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0) should be [ray(200deg sides contain)]
     282PASS CSS Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.3) should be [ray(200deg sides contain)]
     283PASS CSS Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)]
     284PASS CSS Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)]
     285PASS CSS Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)]
     286PASS CSS Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)]
     287PASS Web Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (-0.3) should be [ray(200deg sides contain)]
     288PASS Web Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0) should be [ray(200deg sides contain)]
     289PASS Web Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.3) should be [ray(200deg sides contain)]
     290PASS Web Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)]
     291PASS Web Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)]
     292PASS Web Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)]
     293PASS Web Animations: property <offset-path> from [ray(200deg sides contain)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)]
     294PASS CSS Transitions: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (-0.3) should be [ray(300deg sides)]
     295PASS CSS Transitions: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0) should be [ray(300deg sides)]
     296PASS CSS Transitions: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.3) should be [ray(300deg sides)]
     297PASS CSS Transitions: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)]
     298PASS CSS Transitions: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)]
     299PASS CSS Transitions: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)]
     300PASS CSS Transitions: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)]
     301PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (-0.3) should be [ray(300deg sides)]
     302PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0) should be [ray(300deg sides)]
     303PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.3) should be [ray(300deg sides)]
     304PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)]
     305PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)]
     306PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)]
     307PASS CSS Transitions with transition: all: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)]
     308PASS CSS Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (-0.3) should be [ray(200deg farthest-side contain)]
     309PASS CSS Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0) should be [ray(200deg farthest-side contain)]
     310PASS CSS Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.3) should be [ray(200deg farthest-side contain)]
     311PASS CSS Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)]
     312PASS CSS Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)]
     313PASS CSS Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)]
     314PASS CSS Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)]
     315PASS Web Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (-0.3) should be [ray(200deg farthest-side contain)]
     316PASS Web Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0) should be [ray(200deg farthest-side contain)]
     317PASS Web Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.3) should be [ray(200deg farthest-side contain)]
     318PASS Web Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.5) should be [ray(300deg sides)]
     319PASS Web Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (0.6) should be [ray(300deg sides)]
     320PASS Web Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (1) should be [ray(300deg sides)]
     321PASS Web Animations: property <offset-path> from [ray(200deg farthest-side contain)] to [ray(300deg sides)] at (1.5) should be [ray(300deg sides)]
    322322
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/motion/offset-supports-calc-expected.txt

    r285822 r286086  
    11
    22PASS offset-position supports calc
    3 FAIL offset-path supports calc assert_equals: expected "ray(270deg closest-side)" but got "none"
     3PASS offset-path supports calc
    44PASS offset-distance supports calc
    55PASS offset-rotate supports calc
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/motion/parsing/offset-path-computed-expected.txt

    r285343 r286086  
    11
    22PASS Property offset-path value 'none'
    3 FAIL Property offset-path value 'ray(0rad closest-side)' assert_true: 'ray(0rad closest-side)' is a supported value for offset-path. expected true got false
    4 FAIL Property offset-path value 'ray(0.25turn closest-corner contain)' assert_true: 'ray(0.25turn closest-corner contain)' is a supported value for offset-path. expected true got false
    5 FAIL Property offset-path value 'ray(200grad farthest-side)' assert_true: 'ray(200grad farthest-side)' is a supported value for offset-path. expected true got false
    6 FAIL Property offset-path value 'ray(270deg farthest-corner contain)' assert_true: 'ray(270deg farthest-corner contain)' is a supported value for offset-path. expected true got false
    7 FAIL Property offset-path value 'ray(-720deg sides)' assert_true: 'ray(-720deg sides)' is a supported value for offset-path. expected true got false
    8 FAIL Property offset-path value 'ray(calc(180deg - 45deg) farthest-side)' assert_true: 'ray(calc(180deg - 45deg) farthest-side)' is a supported value for offset-path. expected true got false
     3PASS Property offset-path value 'ray(0rad closest-side)'
     4PASS Property offset-path value 'ray(0.25turn closest-corner contain)'
     5PASS Property offset-path value 'ray(200grad farthest-side)'
     6PASS Property offset-path value 'ray(270deg farthest-corner contain)'
     7PASS Property offset-path value 'ray(-720deg sides)'
     8PASS Property offset-path value 'ray(calc(180deg - 45deg) farthest-side)'
    99PASS Property offset-path value 'path("m 20 0 h -100")'
    1010PASS Property offset-path value 'path("M 0 0 L 100 100 M 100 200 L 200 200 Z L 300 300 Z")'
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/motion/parsing/offset-path-computed.html

    r283645 r286086  
    2020test_computed_value("offset-path", "ray(270deg farthest-corner contain)");
    2121test_computed_value("offset-path", "ray(-720deg sides)");
    22 test_computed_value("offset-path", "ray(calc(180deg - 45deg) farthest-side)", "ray(calc(135deg) farthest-side)");
     22test_computed_value("offset-path", "ray(calc(180deg - 45deg) farthest-side)", "ray(135deg farthest-side)");
    2323
    2424test_computed_value("offset-path", 'path("m 20 0 h -100")', 'path("M 20 0 H -80")');
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/motion/parsing/offset-path-parsing-valid-expected.txt

    r285343 r286086  
    11
    22PASS e.style['offset-path'] = "none" should set the property value
    3 FAIL e.style['offset-path'] = "ray(0rad closest-side)" should set the property value assert_not_equals: property should be set got disallowed value ""
    4 FAIL e.style['offset-path'] = "ray(0.25turn closest-corner contain)" should set the property value assert_not_equals: property should be set got disallowed value ""
    5 FAIL e.style['offset-path'] = "ray(200grad farthest-side)" should set the property value assert_not_equals: property should be set got disallowed value ""
    6 FAIL e.style['offset-path'] = "ray(270deg farthest-corner contain)" should set the property value assert_not_equals: property should be set got disallowed value ""
    7 FAIL e.style['offset-path'] = "ray(-720deg sides)" should set the property value assert_not_equals: property should be set got disallowed value ""
    8 FAIL e.style['offset-path'] = "ray(calc(180deg - 45deg) farthest-side)" should set the property value assert_not_equals: property should be set got disallowed value ""
     3PASS e.style['offset-path'] = "ray(0rad closest-side)" should set the property value
     4PASS e.style['offset-path'] = "ray(0.25turn closest-corner contain)" should set the property value
     5PASS e.style['offset-path'] = "ray(200grad farthest-side)" should set the property value
     6PASS e.style['offset-path'] = "ray(270deg farthest-corner contain)" should set the property value
     7PASS e.style['offset-path'] = "ray(-720deg sides)" should set the property value
     8PASS e.style['offset-path'] = "ray(calc(180deg - 45deg) farthest-side)" should set the property value
    99PASS e.style['offset-path'] = "path(\"m 20 0 h -100\")" should set the property value
    1010PASS e.style['offset-path'] = "path(\"M 0 0 L 100 100 M 100 200 L 200 200 Z L 300 300 Z\")" should set the property value
  • trunk/Source/WebCore/ChangeLog

    r286085 r286086  
     12021-11-19  Kiet Ho  <tho22@apple.com>
     2
     3        Implement parsing and animation support for ray() shape accepted by offset-path
     4        https://bugs.webkit.org/show_bug.cgi?id=233153
     5
     6        Reviewed by Dean Jackson.
     7
     8        Tests: imported/w3c/web-platform-tests/css/motion/animation/offset-path-composition.html
     9               imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-005.html
     10               imported/w3c/web-platform-tests/css/motion/offset-supports-calc.html
     11               imported/w3c/web-platform-tests/css/motion/parsing/offset-path-computed.html
     12               imported/w3c/web-platform-tests/css/motion/parsing/offset-path-parsing-invalid.html
     13               imported/w3c/web-platform-tests/css/motion/parsing/offset-path-parsing-valid.html
     14
     15        * Sources.txt:
     16        * WebCore.xcodeproj/project.pbxproj:
     17        * animation/CSSPropertyAnimation.cpp:
     18        (WebCore::blendFunc): Added support for blending between ray()s.
     19        * css/CSSComputedStyleDeclaration.cpp:
     20        (WebCore::valueIDForRaySize):
     21        (WebCore::valueForPathOperation): Added support for getting the computed value of ray().
     22        * css/CSSRayValue.cpp: Added.
     23        (WebCore::CSSRayValue::customCSSText const):
     24        (WebCore::CSSRayValue::equals const):
     25        * css/CSSRayValue.h: Added.
     26        * css/CSSValue.cpp:
     27        (WebCore::CSSValue::equals const):
     28        (WebCore::CSSValue::cssText const):
     29        (WebCore::CSSValue::destroy):
     30        * css/CSSValue.h:
     31        (WebCore::CSSValue::isRayValue const):
     32        * css/CSSValueKeywords.in: Added new keywords used by ray().
     33        * css/parser/CSSPropertyParser.cpp:
     34        (WebCore::consumeRayShape): Added method to consume ray().
     35        (WebCore::consumePathOperation): Added a switch to control whether to accept
     36        ray() or not. Both clip-path and offset-path uses this function, however clip-path
     37        doesn't support the ray shape, while offset-path does, hence the switch.
     38        (WebCore::CSSPropertyParser::parseSingleValue):
     39        * rendering/PathOperation.h: Added a new subclass of PathOperation called RayPathOperation
     40        to represent ray().
     41        * rendering/RenderBox.cpp:
     42        (WebCore::RenderBox::hitTestClipPath const):
     43        * style/StyleBuilderConverter.h:
     44        (WebCore::Style::BuilderConverter::convertPathOperation): Added support for converting CSSRayValue
     45        to RayPathOperation.
     46
    1472021-11-19  Kiet Ho  <tho22@apple.com>
    248
  • trunk/Source/WebCore/Sources.txt

    r286058 r286086  
    743743css/CSSProperty.cpp
    744744css/CSSPropertySourceData.cpp
     745css/CSSRayValue.cpp
    745746css/CSSReflectValue.cpp
    746747css/CSSRegisteredCustomProperty.cpp
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r286058 r286086  
    1040810408                65E0E9431133C89F00B4CB10 /* JSDOMWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDOMWrapper.h; sourceTree = "<group>"; };
    1040910409                65FEA86809833ADE00BED4AB /* Page.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Page.cpp; sourceTree = "<group>"; };
     10410                66007A0127444CE200946C9B /* CSSRayValue.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CSSRayValue.cpp; sourceTree = "<group>"; };
     10411                66007A0227444CE200946C9B /* CSSRayValue.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSSRayValue.h; sourceTree = "<group>"; };
    1041010412                662DEC8D271FEDCC00D935CA /* SVGPathAbsoluteConverter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathAbsoluteConverter.cpp; sourceTree = "<group>"; };
    1041110413                662DEC8E271FEDCC00D935CA /* SVGPathAbsoluteConverter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SVGPathAbsoluteConverter.h; sourceTree = "<group>"; };
     
    3066730669                                82E3D8DC122EA0D1003AE5BC /* CSSPropertySourceData.cpp */,
    3066830670                                82E3D8DD122EA0D1003AE5BC /* CSSPropertySourceData.h */,
     30671                                66007A0127444CE200946C9B /* CSSRayValue.cpp */,
     30672                                66007A0227444CE200946C9B /* CSSRayValue.h */,
    3066930673                                BC5A12DD0DC0414800C9AFAD /* CSSReflectValue.cpp */,
    3067030674                                BC5A12DE0DC0414800C9AFAD /* CSSReflectValue.h */,
  • trunk/Source/WebCore/animation/CSSPropertyAnimation.cpp

    r285904 r286086  
    295295    }
    296296
     297    if (is<RayPathOperation>(from) && is<RayPathOperation>(to)) {
     298        auto& fromRay = downcast<RayPathOperation>(*from);
     299        auto& toRay = downcast<RayPathOperation>(*to);
     300
     301        if (fromRay.canBlend(toRay))
     302            return fromRay.blend(toRay, context);
     303    }
     304
    297305    // fall back to discrete animation.
    298306    return context.progress < 0.5 ? from : to;
     
    10901098
    10911099            return fromShape.canBlend(toShape);
     1100        }
     1101
     1102        if (is<RayPathOperation>(fromPath) && is<RayPathOperation>(toPath)) {
     1103            auto& fromRay = downcast<RayPathOperation>(*fromPath);
     1104            auto& toRay = downcast<RayPathOperation>(*toPath);
     1105
     1106            return fromRay.canBlend(toRay);
    10921107        }
    10931108
  • trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp

    r285904 r286086  
    4242#include "CSSPropertyNames.h"
    4343#include "CSSPropertyParser.h"
     44#include "CSSRayValue.h"
    4445#include "CSSReflectValue.h"
    4546#include "CSSSelector.h"
     
    14571458}
    14581459
     1460static CSSValueID valueIDForRaySize(RayPathOperation::Size size)
     1461{
     1462    switch (size) {
     1463    case RayPathOperation::Size::ClosestCorner:
     1464        return CSSValueClosestCorner;
     1465    case RayPathOperation::Size::ClosestSide:
     1466        return CSSValueClosestSide;
     1467    case RayPathOperation::Size::FarthestCorner:
     1468        return CSSValueFarthestCorner;
     1469    case RayPathOperation::Size::FarthestSide:
     1470        return CSSValueFarthestSide;
     1471    case RayPathOperation::Size::Sides:
     1472        return CSSValueSides;
     1473    }
     1474
     1475    ASSERT_NOT_REACHED();
     1476    return CSSValueInvalid;
     1477}
     1478
    14591479static Ref<CSSValue> valueForPathOperation(const RenderStyle& style, const PathOperation* operation, SVGPathConversion conversion = SVGPathConversion::None)
    14601480{
     
    14641484        return cssValuePool.createIdentifierValue(CSSValueNone);
    14651485
    1466     if (is<ReferencePathOperation>(*operation))
     1486    switch (operation->type()) {
     1487    case PathOperation::Reference:
    14671488        return CSSPrimitiveValue::create(downcast<ReferencePathOperation>(*operation).url(), CSSUnitType::CSS_URI);
    14681489
    1469     auto list = CSSValueList::createSpaceSeparated();
    1470     if (is<ShapePathOperation>(*operation)) {
     1490    case PathOperation::Shape: {
     1491        auto list = CSSValueList::createSpaceSeparated();
     1492
    14711493        auto& shapeOperation = downcast<ShapePathOperation>(*operation);
    14721494        list->append(valueForBasicShape(style, shapeOperation.basicShape(), conversion));
     1495
    14731496        if (shapeOperation.referenceBox() != CSSBoxType::BoxMissing)
    14741497            list->append(cssValuePool.createValue(shapeOperation.referenceBox()));
    1475     }
    1476 
    1477     if (is<BoxPathOperation>(*operation))
    1478         list->append(cssValuePool.createValue(downcast<BoxPathOperation>(*operation).referenceBox()));
    1479 
    1480     return list;
     1498
     1499        return list;
     1500    }
     1501
     1502    case PathOperation::Box:
     1503        return cssValuePool.createValue(downcast<BoxPathOperation>(*operation).referenceBox());
     1504
     1505    case PathOperation::Ray: {
     1506        auto& ray = downcast<RayPathOperation>(*operation);
     1507
     1508        auto angle = cssValuePool.createValue(ray.angle(), CSSUnitType::CSS_DEG);
     1509        auto size = cssValuePool.createIdentifierValue(valueIDForRaySize(ray.size()));
     1510
     1511        return CSSRayValue::create(WTFMove(angle), WTFMove(size), ray.isContaining());
     1512    }
     1513    }
     1514
     1515    ASSERT_NOT_REACHED();
     1516    return cssValuePool.createIdentifierValue(CSSValueNone);
    14811517}
    14821518
  • trunk/Source/WebCore/css/CSSValue.cpp

    r286061 r286086  
    5757#include "CSSPrimitiveValue.h"
    5858#include "CSSProperty.h"
     59#include "CSSRayValue.h"
    5960#include "CSSReflectValue.h"
    6061#include "CSSShadowValue.h"
     
    218219        case OffsetRotateClass:
    219220            return compareCSSValues<CSSOffsetRotateValue>(*this, other);
     221        case RayClass:
     222            return compareCSSValues<CSSRayValue>(*this, other);
    220223        case FontStyleClass:
    221224            return compareCSSValues<CSSFontStyleValue>(*this, other);
     
    321324    case OffsetRotateClass:
    322325        return downcast<CSSOffsetRotateValue>(*this).customCSSText();
     326    case RayClass:
     327        return downcast<CSSRayValue>(*this).customCSSText();
    323328    case FontStyleClass:
    324329        return downcast<CSSFontStyleValue>(*this).customCSSText();
     
    468473        delete downcast<CSSOffsetRotateValue>(this);
    469474        return;
     475    case RayClass:
     476        delete downcast<CSSRayValue>(this);
     477        return;
    470478    case FontStyleClass:
    471479        delete downcast<CSSFontStyleValue>(this);
  • trunk/Source/WebCore/css/CSSValue.h

    r286061 r286086  
    141141
    142142    bool isOffsetRotateValue() const { return m_classType == OffsetRotateClass; }
     143    bool isRayValue() const { return m_classType == RayClass; }
    143144
    144145    bool hasVariableReferences() const { return isVariableReferenceValue() || isPendingSubstitutionValue(); }
     
    214215
    215216        OffsetRotateClass,
     217        RayClass,
    216218
    217219        // List class types must appear after ValueListClass. Note CSSFunctionValue
  • trunk/Source/WebCore/css/CSSValueKeywords.in

    r285624 r286086  
    15781578paint
    15791579#endif
     1580
     1581// offset-path
     1582// https://drafts.fxtf.org/motion-1/#offset-path-property
     1583ray
     1584// closest-side
     1585// closest-corner
     1586// farthest-side
     1587// farthest-corner
     1588sides
     1589// contain
  • trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp

    r285837 r286086  
    5656#include "CSSPendingSubstitutionValue.h"
    5757#include "CSSPrimitiveValueMappings.h"
     58#include "CSSRayValue.h"
    5859#include "CSSReflectValue.h"
    5960#include "CSSShadowValue.h"
     
    27752776}
    27762777
     2778// Parses the ray() definition as defined in https://drafts.fxtf.org/motion-1/#funcdef-offset-path-ray
     2779// ray( [ <angle> && <size> && contain? ] )
     2780static RefPtr<CSSRayValue> consumeRayShape(CSSParserTokenRange& range, const CSSParserContext& context)
     2781{
     2782    if (range.peek().type() != FunctionToken || range.peek().functionId() != CSSValueRay)
     2783        return nullptr;
     2784
     2785    CSSParserTokenRange args = consumeFunction(range);
     2786
     2787    RefPtr<CSSPrimitiveValue> angle;
     2788    RefPtr<CSSPrimitiveValue> size;
     2789    bool isContaining = false;
     2790    while (!args.atEnd()) {
     2791        if (!angle && (angle = consumeAngle(args, context.mode, UnitlessQuirk::Forbid, UnitlessZeroQuirk::Forbid)))
     2792            continue;
     2793
     2794        if (!size && (size = consumeIdent<CSSValueClosestSide, CSSValueClosestCorner, CSSValueFarthestSide, CSSValueFarthestCorner, CSSValueSides>(args)))
     2795            continue;
     2796
     2797        if (!isContaining && (isContaining = consumeIdent<CSSValueContain>(args)))
     2798            continue;
     2799
     2800        return nullptr;
     2801    }
     2802
     2803    // <angle> and <size> must be present.
     2804    if (!angle || !size)
     2805        return nullptr;
     2806
     2807    return CSSRayValue::create(angle.releaseNonNull(), size.releaseNonNull(), isContaining);
     2808}
     2809
     2810enum class ConsumeRay { Include, Exclude };
     2811
    27772812// Consumes shapes accepted by clip-path and offset-path.
    2778 // FIXME: implement support for ray() shape accepted by offset-path.
    2779 static RefPtr<CSSValue> consumePathOperation(CSSParserTokenRange& range, const CSSParserContext& context)
     2813static RefPtr<CSSValue> consumePathOperation(CSSParserTokenRange& range, const CSSParserContext& context, ConsumeRay consumeRay)
    27802814{
    27812815    if (range.peek().id() == CSSValueNone)
     
    27832817    if (RefPtr<CSSPrimitiveValue> url = consumeUrl(range))
    27842818        return url;
     2819
     2820    if (consumeRay == ConsumeRay::Include) {
     2821        if (auto ray = consumeRayShape(range, context))
     2822            return ray;
     2823    }
     2824
    27852825    return consumeBasicShapeOrBox(range, context);
    27862826}
     
    44144454        return consumePercent(m_range, ValueRange::All);
    44154455    case CSSPropertyOffsetPath:
    4416         return consumePathOperation(m_range, m_context);
     4456        return consumePathOperation(m_range, m_context, ConsumeRay::Include);
    44174457    case CSSPropertyOffsetDistance:
    44184458        return consumeLengthOrPercent(m_range, m_context.mode, ValueRange::All, UnitlessQuirk::Forbid);
     
    44774517        return consumeShapeOutside(m_range, m_context);
    44784518    case CSSPropertyClipPath:
    4479         return consumePathOperation(m_range, m_context);
     4519        return consumePathOperation(m_range, m_context, ConsumeRay::Exclude);
    44804520    case CSSPropertyJustifyContent:
    44814521        // justify-content property does not allow the <baseline-position> values.
  • trunk/Source/WebCore/rendering/PathOperation.h

    r284718 r286086  
    4444        Reference,
    4545        Shape,
    46         Box
     46        Box,
     47        Ray
    4748    };
    4849
     
    162163};
    163164
     165
     166class RayPathOperation final : public PathOperation {
     167public:
     168    enum class Size {
     169        ClosestSide,
     170        ClosestCorner,
     171        FarthestSide,
     172        FarthestCorner,
     173        Sides
     174    };
     175
     176    static Ref<RayPathOperation> create(float angle, Size size, bool isContaining)
     177    {
     178        return adoptRef(*new RayPathOperation(angle, size, isContaining));
     179    }
     180
     181    float angle() const { return m_angle; }
     182    Size size() const { return m_size; }
     183    bool isContaining() const { return m_isContaining; }
     184
     185    bool canBlend(const RayPathOperation& other) const
     186    {
     187        // Two rays can only be blended if they have the same size and are both containing.
     188        return m_size == other.m_size && m_isContaining == other.m_isContaining;
     189    }
     190
     191    Ref<RayPathOperation> blend(const RayPathOperation& to, const BlendingContext& context) const
     192    {
     193        return RayPathOperation::create(WebCore::blend(m_angle, to.m_angle, context), m_size, m_isContaining);
     194    }
     195
     196private:
     197    bool operator==(const PathOperation& other) const override
     198    {
     199        if (!isSameType(other))
     200            return false;
     201
     202        auto& otherCasted = downcast<RayPathOperation>(other);
     203        return m_angle == otherCasted.m_angle
     204            && m_size == otherCasted.m_size
     205            && m_isContaining == otherCasted.m_isContaining;
     206    }
     207
     208    RayPathOperation(float angle, Size size, bool isContaining)
     209        : PathOperation(Ray)
     210        , m_angle(angle)
     211        , m_size(size)
     212        , m_isContaining(isContaining)
     213    {
     214    }
     215
     216    float m_angle;
     217    Size m_size;
     218    bool m_isContaining;
     219};
     220
    164221} // namespace WebCore
    165222
     
    172229SPECIALIZE_TYPE_TRAITS_CLIP_PATH_OPERATION(ShapePathOperation, PathOperation::Shape)
    173230SPECIALIZE_TYPE_TRAITS_CLIP_PATH_OPERATION(BoxPathOperation, PathOperation::Box)
     231SPECIALIZE_TYPE_TRAITS_CLIP_PATH_OPERATION(RayPathOperation, PathOperation::Ray)
  • trunk/Source/WebCore/rendering/RenderBox.cpp

    r285923 r286086  
    14591459    case PathOperation::Box:
    14601460        break;
     1461    case PathOperation::Ray:
     1462        ASSERT_NOT_REACHED("clip-path does not support Ray shape");
     1463        break;
    14611464    }
    14621465
  • trunk/Source/WebCore/style/StyleBuilderConverter.h

    r285904 r286086  
    4343#include "CSSPrimitiveValue.h"
    4444#include "CSSPrimitiveValueMappings.h"
     45#include "CSSRayValue.h"
    4546#include "CSSReflectValue.h"
    4647#include "CalcExpressionLength.h"
     
    637638    }
    638639
     640    if (is<CSSRayValue>(value)) {
     641        auto& rayValue = downcast<CSSRayValue>(value);
     642
     643        RayPathOperation::Size size = RayPathOperation::Size::ClosestCorner;
     644        switch (rayValue.size()->valueID()) {
     645        case CSSValueClosestCorner:
     646            size = RayPathOperation::Size::ClosestCorner;
     647            break;
     648        case CSSValueClosestSide:
     649            size = RayPathOperation::Size::ClosestSide;
     650            break;
     651        case CSSValueFarthestCorner:
     652            size = RayPathOperation::Size::FarthestCorner;
     653            break;
     654        case CSSValueFarthestSide:
     655            size = RayPathOperation::Size::FarthestSide;
     656            break;
     657        case CSSValueSides:
     658            size = RayPathOperation::Size::Sides;
     659            break;
     660        default:
     661            ASSERT_NOT_REACHED();
     662            return nullptr;
     663        }
     664
     665        return RayPathOperation::create(rayValue.angle()->computeDegrees(), size, rayValue.isContaining());
     666    }
     667
    639668    CSSBoxType referenceBox = CSSBoxType::BoxMissing;
    640669    RefPtr<PathOperation> operation;
Note: See TracChangeset for help on using the changeset viewer.