Properties that take <position> should not accept 3 values
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 28 Oct 2019 20:32:16 +0000 (20:32 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 28 Oct 2019 20:32:16 +0000 (20:32 +0000)
https://bugs.webkit.org/show_bug.cgi?id=189142
LayoutTests/imported/w3c:

<rdar://problem/44110851>

Reviewed by Antti Koivisto.

New PASS results.

* web-platform-tests/css/css-images/parsing/gradient-position-invalid-expected.txt:
* web-platform-tests/css/css-images/parsing/object-position-invalid-expected.txt:
* web-platform-tests/css/css-shapes/parsing/shape-outside-invalid-position-expected.txt:

Source/WebCore:

Reviewed by Antti Koivisto.

The resolution in https://github.com/w3c/csswg-drafts/issues/2140 changed the syntax for <position>,
disallowing the 3-value syntax. This is used in object-position, gradients and shapes. background-position
continues to use the old syntax.

Fix CSS parsing accordingly.

Tested by css-images WPT, by shapes tests, and object-position tests.

* css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::consumePerspectiveOrigin):
(WebCore::consumeBasicShapeCircle):
(WebCore::consumeBasicShapeEllipse):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::consumeBackgroundPosition):
(WebCore::CSSPropertyParser::consumeBackgroundShorthand):
* css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::backgroundPositionFromThreeValues):
(WebCore::CSSPropertyParserHelpers::positionFromFourValues):
(WebCore::CSSPropertyParserHelpers::consumePosition):
(WebCore::CSSPropertyParserHelpers::consumeRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumeConicGradient):
(WebCore::CSSPropertyParserHelpers::positionFromThreeOrFourValues): Deleted.
* css/parser/CSSPropertyParserHelpers.h:

LayoutTests:

Reviewed by Antti Koivisto.

Land some FAIL results for these shapes tests. They should get removed when
the css/css-shapes WPT are imported (webkit.org/b/203441), though the WPT
haven't been updated for the new syntax either.

* css3/shapes/shape-outside/values/shape-outside-circle-002-expected.txt:
* css3/shapes/shape-outside/values/shape-outside-circle-004-expected.txt:
* css3/shapes/shape-outside/values/shape-outside-ellipse-002-expected.txt:
* css3/shapes/shape-outside/values/shape-outside-ellipse-004-expected.txt:
* fast/css/object-position/parsing-object-position-expected.txt:
* fast/css/object-position/parsing-object-position.html: Remove the invalid position test.
* fast/shapes/parsing/parsing-shape-outside-expected.txt:
* fast/shapes/parsing/parsing-test-utils.js:  Remove the invalid position tests.

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

17 files changed:
LayoutTests/ChangeLog
LayoutTests/css3/shapes/shape-outside/values/shape-outside-circle-002-expected.txt
LayoutTests/css3/shapes/shape-outside/values/shape-outside-circle-004-expected.txt
LayoutTests/css3/shapes/shape-outside/values/shape-outside-ellipse-002-expected.txt
LayoutTests/css3/shapes/shape-outside/values/shape-outside-ellipse-004-expected.txt
LayoutTests/fast/css/object-position/parsing-object-position-expected.txt
LayoutTests/fast/css/object-position/parsing-object-position.html
LayoutTests/fast/shapes/parsing/parsing-shape-outside-expected.txt
LayoutTests/fast/shapes/parsing/parsing-test-utils.js
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/css/css-images/parsing/gradient-position-invalid-expected.txt
LayoutTests/imported/w3c/web-platform-tests/css/css-images/parsing/object-position-invalid-expected.txt
LayoutTests/imported/w3c/web-platform-tests/css/css-shapes/parsing/shape-outside-invalid-position-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/css/parser/CSSPropertyParser.cpp
Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp
Source/WebCore/css/parser/CSSPropertyParserHelpers.h

index 67c04f6..f67a513 100644 (file)
@@ -7,6 +7,26 @@
 
         * platform/mac-wk1/TestExpectations:
 
+2019-10-28  Simon Fraser  <simon.fraser@apple.com>
+
+        Properties that take <position> should not accept 3 values
+        https://bugs.webkit.org/show_bug.cgi?id=189142
+
+        Reviewed by Antti Koivisto.
+
+        Land some FAIL results for these shapes tests. They should get removed when
+        the css/css-shapes WPT are imported (webkit.org/b/203441), though the WPT
+        haven't been updated for the new syntax either.
+
+        * css3/shapes/shape-outside/values/shape-outside-circle-002-expected.txt:
+        * css3/shapes/shape-outside/values/shape-outside-circle-004-expected.txt:
+        * css3/shapes/shape-outside/values/shape-outside-ellipse-002-expected.txt:
+        * css3/shapes/shape-outside/values/shape-outside-ellipse-004-expected.txt:
+        * fast/css/object-position/parsing-object-position-expected.txt:
+        * fast/css/object-position/parsing-object-position.html: Remove the invalid position test.
+        * fast/shapes/parsing/parsing-shape-outside-expected.txt:
+        * fast/shapes/parsing/parsing-test-utils.js:  Remove the invalid position tests.
+
 2019-10-28  John Wilander  <wilander@apple.com>
 
         Storage Access API: Make the API work with the experimental 3rd-party cookie blocking
index 75302be..347292d 100644 (file)
@@ -39,54 +39,54 @@ PASS circle(at center 60%) serializes as circle(at 50% 60%) - inline
 PASS circle(at center 60px) serializes as circle(at 50% 60px) - inline 
 PASS circle(at 60% center) serializes as circle(at 60% 50%) - inline 
 PASS circle(at 60px center) serializes as circle(at 60px 50%) - inline 
-PASS circle(at center top 50%) serializes as circle(at 50% 50%) - inline 
-PASS circle(at center top 50px) serializes as circle(at 50% 50px) - inline 
-PASS circle(at center left 50%) serializes as circle(at 50% 50%) - inline 
-PASS circle(at center left 50px) serializes as circle(at 50px 50%) - inline 
-PASS circle(at center right 70%) serializes as circle(at 30% 50%) - inline 
-PASS circle(at center right 70px) serializes as circle(at right 70px top 50%) - inline 
-PASS circle(at center bottom 70%) serializes as circle(at 50% 30%) - inline 
-PASS circle(at center bottom 70px) serializes as circle(at left 50% bottom 70px) - inline 
-PASS circle(at left top 50%) serializes as circle(at 0% 50%) - inline 
-PASS circle(at left top 50px) serializes as circle(at 0% 50px) - inline 
-PASS circle(at left bottom 70%) serializes as circle(at 0% 30%) - inline 
-PASS circle(at left bottom 70px) serializes as circle(at left 0% bottom 70px) - inline 
-PASS circle(at top left 50%) serializes as circle(at 50% 0%) - inline 
-PASS circle(at top left 50px) serializes as circle(at 50px 0%) - inline 
-PASS circle(at top right 70%) serializes as circle(at 30% 0%) - inline 
-PASS circle(at top right 70px) serializes as circle(at right 70px top 0%) - inline 
-PASS circle(at bottom left 50%) serializes as circle(at 50% 100%) - inline 
-PASS circle(at bottom left 50px) serializes as circle(at 50px 100%) - inline 
-PASS circle(at bottom right 70%) serializes as circle(at 30% 100%) - inline 
-PASS circle(at bottom right 70px) serializes as circle(at right 70px top 100%) - inline 
-PASS circle(at right bottom 70%) serializes as circle(at 100% 30%) - inline 
-PASS circle(at right bottom 70px) serializes as circle(at left 100% bottom 70px) - inline 
-PASS circle(at right top 50%) serializes as circle(at 100% 50%) - inline 
-PASS circle(at right top 50px) serializes as circle(at 100% 50px) - inline 
-PASS circle(at left 50% center) serializes as circle(at 50% 50%) - inline 
-PASS circle(at left 50px center) serializes as circle(at 50px 50%) - inline 
-PASS circle(at left 50% top) serializes as circle(at 50% 0%) - inline 
-PASS circle(at left 50px top) serializes as circle(at 50px 0%) - inline 
-PASS circle(at left 50% bottom) serializes as circle(at 50% 100%) - inline 
-PASS circle(at left 50px bottom) serializes as circle(at 50px 100%) - inline 
-PASS circle(at top 50% center) serializes as circle(at 50% 50%) - inline 
-PASS circle(at top 50px center) serializes as circle(at 50% 50px) - inline 
-PASS circle(at top 50% left) serializes as circle(at 0% 50%) - inline 
-PASS circle(at top 50px left) serializes as circle(at 0% 50px) - inline 
-PASS circle(at top 50% right) serializes as circle(at 100% 50%) - inline 
-PASS circle(at top 50px right) serializes as circle(at 100% 50px) - inline 
-PASS circle(at bottom 70% center) serializes as circle(at 50% 30%) - inline 
-PASS circle(at bottom 70px center) serializes as circle(at left 50% bottom 70px) - inline 
-PASS circle(at bottom 70% left) serializes as circle(at 0% 30%) - inline 
-PASS circle(at bottom 70px left) serializes as circle(at left 0% bottom 70px) - inline 
-PASS circle(at bottom 70% right) serializes as circle(at 100% 30%) - inline 
-PASS circle(at bottom 70px right) serializes as circle(at left 100% bottom 70px) - inline 
-PASS circle(at right 80% center) serializes as circle(at 20% 50%) - inline 
-PASS circle(at right 80px center) serializes as circle(at right 80px top 50%) - inline 
-PASS circle(at right 80% bottom) serializes as circle(at 20% 100%) - inline 
-PASS circle(at right 80px bottom) serializes as circle(at right 80px top 100%) - inline 
-PASS circle(at right 80% top) serializes as circle(at 20% 0%) - inline 
-PASS circle(at right 80px top) serializes as circle(at right 80px top 0%) - inline 
+FAIL circle(at center top 50%) serializes as circle(at 50% 50%) - inline assert_equals: expected "circle(at 50% 50%)" but got ""
+FAIL circle(at center top 50px) serializes as circle(at 50% 50px) - inline assert_equals: expected "circle(at 50% 50px)" but got ""
+FAIL circle(at center left 50%) serializes as circle(at 50% 50%) - inline assert_equals: expected "circle(at 50% 50%)" but got ""
+FAIL circle(at center left 50px) serializes as circle(at 50px 50%) - inline assert_equals: expected "circle(at 50px 50%)" but got ""
+FAIL circle(at center right 70%) serializes as circle(at 30% 50%) - inline assert_equals: expected "circle(at 30% 50%)" but got ""
+FAIL circle(at center right 70px) serializes as circle(at right 70px top 50%) - inline assert_equals: expected "circle(at right 70px top 50%)" but got ""
+FAIL circle(at center bottom 70%) serializes as circle(at 50% 30%) - inline assert_equals: expected "circle(at 50% 30%)" but got ""
+FAIL circle(at center bottom 70px) serializes as circle(at left 50% bottom 70px) - inline assert_equals: expected "circle(at left 50% bottom 70px)" but got ""
+FAIL circle(at left top 50%) serializes as circle(at 0% 50%) - inline assert_equals: expected "circle(at 0% 50%)" but got ""
+FAIL circle(at left top 50px) serializes as circle(at 0% 50px) - inline assert_equals: expected "circle(at 0% 50px)" but got ""
+FAIL circle(at left bottom 70%) serializes as circle(at 0% 30%) - inline assert_equals: expected "circle(at 0% 30%)" but got ""
+FAIL circle(at left bottom 70px) serializes as circle(at left 0% bottom 70px) - inline assert_equals: expected "circle(at left 0% bottom 70px)" but got ""
+FAIL circle(at top left 50%) serializes as circle(at 50% 0%) - inline assert_equals: expected "circle(at 50% 0%)" but got ""
+FAIL circle(at top left 50px) serializes as circle(at 50px 0%) - inline assert_equals: expected "circle(at 50px 0%)" but got ""
+FAIL circle(at top right 70%) serializes as circle(at 30% 0%) - inline assert_equals: expected "circle(at 30% 0%)" but got ""
+FAIL circle(at top right 70px) serializes as circle(at right 70px top 0%) - inline assert_equals: expected "circle(at right 70px top 0%)" but got ""
+FAIL circle(at bottom left 50%) serializes as circle(at 50% 100%) - inline assert_equals: expected "circle(at 50% 100%)" but got ""
+FAIL circle(at bottom left 50px) serializes as circle(at 50px 100%) - inline assert_equals: expected "circle(at 50px 100%)" but got ""
+FAIL circle(at bottom right 70%) serializes as circle(at 30% 100%) - inline assert_equals: expected "circle(at 30% 100%)" but got ""
+FAIL circle(at bottom right 70px) serializes as circle(at right 70px top 100%) - inline assert_equals: expected "circle(at right 70px top 100%)" but got ""
+FAIL circle(at right bottom 70%) serializes as circle(at 100% 30%) - inline assert_equals: expected "circle(at 100% 30%)" but got ""
+FAIL circle(at right bottom 70px) serializes as circle(at left 100% bottom 70px) - inline assert_equals: expected "circle(at left 100% bottom 70px)" but got ""
+FAIL circle(at right top 50%) serializes as circle(at 100% 50%) - inline assert_equals: expected "circle(at 100% 50%)" but got ""
+FAIL circle(at right top 50px) serializes as circle(at 100% 50px) - inline assert_equals: expected "circle(at 100% 50px)" but got ""
+FAIL circle(at left 50% center) serializes as circle(at 50% 50%) - inline assert_equals: expected "circle(at 50% 50%)" but got ""
+FAIL circle(at left 50px center) serializes as circle(at 50px 50%) - inline assert_equals: expected "circle(at 50px 50%)" but got ""
+FAIL circle(at left 50% top) serializes as circle(at 50% 0%) - inline assert_equals: expected "circle(at 50% 0%)" but got ""
+FAIL circle(at left 50px top) serializes as circle(at 50px 0%) - inline assert_equals: expected "circle(at 50px 0%)" but got ""
+FAIL circle(at left 50% bottom) serializes as circle(at 50% 100%) - inline assert_equals: expected "circle(at 50% 100%)" but got ""
+FAIL circle(at left 50px bottom) serializes as circle(at 50px 100%) - inline assert_equals: expected "circle(at 50px 100%)" but got ""
+FAIL circle(at top 50% center) serializes as circle(at 50% 50%) - inline assert_equals: expected "circle(at 50% 50%)" but got ""
+FAIL circle(at top 50px center) serializes as circle(at 50% 50px) - inline assert_equals: expected "circle(at 50% 50px)" but got ""
+FAIL circle(at top 50% left) serializes as circle(at 0% 50%) - inline assert_equals: expected "circle(at 0% 50%)" but got ""
+FAIL circle(at top 50px left) serializes as circle(at 0% 50px) - inline assert_equals: expected "circle(at 0% 50px)" but got ""
+FAIL circle(at top 50% right) serializes as circle(at 100% 50%) - inline assert_equals: expected "circle(at 100% 50%)" but got ""
+FAIL circle(at top 50px right) serializes as circle(at 100% 50px) - inline assert_equals: expected "circle(at 100% 50px)" but got ""
+FAIL circle(at bottom 70% center) serializes as circle(at 50% 30%) - inline assert_equals: expected "circle(at 50% 30%)" but got ""
+FAIL circle(at bottom 70px center) serializes as circle(at left 50% bottom 70px) - inline assert_equals: expected "circle(at left 50% bottom 70px)" but got ""
+FAIL circle(at bottom 70% left) serializes as circle(at 0% 30%) - inline assert_equals: expected "circle(at 0% 30%)" but got ""
+FAIL circle(at bottom 70px left) serializes as circle(at left 0% bottom 70px) - inline assert_equals: expected "circle(at left 0% bottom 70px)" but got ""
+FAIL circle(at bottom 70% right) serializes as circle(at 100% 30%) - inline assert_equals: expected "circle(at 100% 30%)" but got ""
+FAIL circle(at bottom 70px right) serializes as circle(at left 100% bottom 70px) - inline assert_equals: expected "circle(at left 100% bottom 70px)" but got ""
+FAIL circle(at right 80% center) serializes as circle(at 20% 50%) - inline assert_equals: expected "circle(at 20% 50%)" but got ""
+FAIL circle(at right 80px center) serializes as circle(at right 80px top 50%) - inline assert_equals: expected "circle(at right 80px top 50%)" but got ""
+FAIL circle(at right 80% bottom) serializes as circle(at 20% 100%) - inline assert_equals: expected "circle(at 20% 100%)" but got ""
+FAIL circle(at right 80px bottom) serializes as circle(at right 80px top 100%) - inline assert_equals: expected "circle(at right 80px top 100%)" but got ""
+FAIL circle(at right 80% top) serializes as circle(at 20% 0%) - inline assert_equals: expected "circle(at 20% 0%)" but got ""
+FAIL circle(at right 80px top) serializes as circle(at right 80px top 0%) - inline assert_equals: expected "circle(at right 80px top 0%)" but got ""
 PASS circle(at left 50% top 50%) serializes as circle(at 50% 50%) - inline 
 PASS circle(at left 50% top 50px) serializes as circle(at 50% 50px) - inline 
 PASS circle(at left 50% bottom 70%) serializes as circle(at 50% 30%) - inline 
@@ -159,54 +159,54 @@ PASS circle(at center 60%) serializes as circle(at 50% 60%) - computed
 PASS circle(at center 60px) serializes as circle(at 50% 60px) - computed 
 PASS circle(at 60% center) serializes as circle(at 60% 50%) - computed 
 PASS circle(at 60px center) serializes as circle(at 60px 50%) - computed 
-PASS circle(at center top 50%) serializes as circle(at 50% 50%) - computed 
-PASS circle(at center top 50px) serializes as circle(at 50% 50px) - computed 
-PASS circle(at center left 50%) serializes as circle(at 50% 50%) - computed 
-PASS circle(at center left 50px) serializes as circle(at 50px 50%) - computed 
-PASS circle(at center right 70%) serializes as circle(at 30% 50%) - computed 
-PASS circle(at center right 70px) serializes as circle(at right 70px top 50%) - computed 
-PASS circle(at center bottom 70%) serializes as circle(at 50% 30%) - computed 
-PASS circle(at center bottom 70px) serializes as circle(at left 50% bottom 70px) - computed 
-PASS circle(at left top 50%) serializes as circle(at 0% 50%) - computed 
-PASS circle(at left top 50px) serializes as circle(at 0% 50px) - computed 
-PASS circle(at left bottom 70%) serializes as circle(at 0% 30%) - computed 
-PASS circle(at left bottom 70px) serializes as circle(at left 0% bottom 70px) - computed 
-PASS circle(at top left 50%) serializes as circle(at 50% 0%) - computed 
-PASS circle(at top left 50px) serializes as circle(at 50px 0%) - computed 
-PASS circle(at top right 70%) serializes as circle(at 30% 0%) - computed 
-PASS circle(at top right 70px) serializes as circle(at right 70px top 0%) - computed 
-PASS circle(at bottom left 50%) serializes as circle(at 50% 100%) - computed 
-PASS circle(at bottom left 50px) serializes as circle(at 50px 100%) - computed 
-PASS circle(at bottom right 70%) serializes as circle(at 30% 100%) - computed 
-PASS circle(at bottom right 70px) serializes as circle(at right 70px top 100%) - computed 
-PASS circle(at right bottom 70%) serializes as circle(at 100% 30%) - computed 
-PASS circle(at right bottom 70px) serializes as circle(at left 100% bottom 70px) - computed 
-PASS circle(at right top 50%) serializes as circle(at 100% 50%) - computed 
-PASS circle(at right top 50px) serializes as circle(at 100% 50px) - computed 
-PASS circle(at left 50% center) serializes as circle(at 50% 50%) - computed 
-PASS circle(at left 50px center) serializes as circle(at 50px 50%) - computed 
-PASS circle(at left 50% top) serializes as circle(at 50% 0%) - computed 
-PASS circle(at left 50px top) serializes as circle(at 50px 0%) - computed 
-PASS circle(at left 50% bottom) serializes as circle(at 50% 100%) - computed 
-PASS circle(at left 50px bottom) serializes as circle(at 50px 100%) - computed 
-PASS circle(at top 50% center) serializes as circle(at 50% 50%) - computed 
-PASS circle(at top 50px center) serializes as circle(at 50% 50px) - computed 
-PASS circle(at top 50% left) serializes as circle(at 0% 50%) - computed 
-PASS circle(at top 50px left) serializes as circle(at 0% 50px) - computed 
-PASS circle(at top 50% right) serializes as circle(at 100% 50%) - computed 
-PASS circle(at top 50px right) serializes as circle(at 100% 50px) - computed 
-PASS circle(at bottom 70% center) serializes as circle(at 50% 30%) - computed 
-PASS circle(at bottom 70px center) serializes as circle(at left 50% bottom 70px) - computed 
-PASS circle(at bottom 70% left) serializes as circle(at 0% 30%) - computed 
-PASS circle(at bottom 70px left) serializes as circle(at left 0% bottom 70px) - computed 
-PASS circle(at bottom 70% right) serializes as circle(at 100% 30%) - computed 
-PASS circle(at bottom 70px right) serializes as circle(at left 100% bottom 70px) - computed 
-PASS circle(at right 80% center) serializes as circle(at 20% 50%) - computed 
-PASS circle(at right 80px center) serializes as circle(at right 80px top 50%) - computed 
-PASS circle(at right 80% bottom) serializes as circle(at 20% 100%) - computed 
-PASS circle(at right 80px bottom) serializes as circle(at right 80px top 100%) - computed 
-PASS circle(at right 80% top) serializes as circle(at 20% 0%) - computed 
-PASS circle(at right 80px top) serializes as circle(at right 80px top 0%) - computed 
+FAIL circle(at center top 50%) serializes as circle(at 50% 50%) - computed assert_equals: expected "circle(at 50% 50%)" but got "none"
+FAIL circle(at center top 50px) serializes as circle(at 50% 50px) - computed assert_equals: expected "circle(at 50% 50px)" but got "none"
+FAIL circle(at center left 50%) serializes as circle(at 50% 50%) - computed assert_equals: expected "circle(at 50% 50%)" but got "none"
+FAIL circle(at center left 50px) serializes as circle(at 50px 50%) - computed assert_equals: expected "circle(at 50px 50%)" but got "none"
+FAIL circle(at center right 70%) serializes as circle(at 30% 50%) - computed assert_equals: expected "circle(at 30% 50%)" but got "none"
+FAIL circle(at center right 70px) serializes as circle(at right 70px top 50%) - computed assert_equals: expected "circle(at right 70px top 50%)" but got "none"
+FAIL circle(at center bottom 70%) serializes as circle(at 50% 30%) - computed assert_equals: expected "circle(at 50% 30%)" but got "none"
+FAIL circle(at center bottom 70px) serializes as circle(at left 50% bottom 70px) - computed assert_equals: expected "circle(at left 50% bottom 70px)" but got "none"
+FAIL circle(at left top 50%) serializes as circle(at 0% 50%) - computed assert_equals: expected "circle(at 0% 50%)" but got "none"
+FAIL circle(at left top 50px) serializes as circle(at 0% 50px) - computed assert_equals: expected "circle(at 0% 50px)" but got "none"
+FAIL circle(at left bottom 70%) serializes as circle(at 0% 30%) - computed assert_equals: expected "circle(at 0% 30%)" but got "none"
+FAIL circle(at left bottom 70px) serializes as circle(at left 0% bottom 70px) - computed assert_equals: expected "circle(at left 0% bottom 70px)" but got "none"
+FAIL circle(at top left 50%) serializes as circle(at 50% 0%) - computed assert_equals: expected "circle(at 50% 0%)" but got "none"
+FAIL circle(at top left 50px) serializes as circle(at 50px 0%) - computed assert_equals: expected "circle(at 50px 0%)" but got "none"
+FAIL circle(at top right 70%) serializes as circle(at 30% 0%) - computed assert_equals: expected "circle(at 30% 0%)" but got "none"
+FAIL circle(at top right 70px) serializes as circle(at right 70px top 0%) - computed assert_equals: expected "circle(at right 70px top 0%)" but got "none"
+FAIL circle(at bottom left 50%) serializes as circle(at 50% 100%) - computed assert_equals: expected "circle(at 50% 100%)" but got "none"
+FAIL circle(at bottom left 50px) serializes as circle(at 50px 100%) - computed assert_equals: expected "circle(at 50px 100%)" but got "none"
+FAIL circle(at bottom right 70%) serializes as circle(at 30% 100%) - computed assert_equals: expected "circle(at 30% 100%)" but got "none"
+FAIL circle(at bottom right 70px) serializes as circle(at right 70px top 100%) - computed assert_equals: expected "circle(at right 70px top 100%)" but got "none"
+FAIL circle(at right bottom 70%) serializes as circle(at 100% 30%) - computed assert_equals: expected "circle(at 100% 30%)" but got "none"
+FAIL circle(at right bottom 70px) serializes as circle(at left 100% bottom 70px) - computed assert_equals: expected "circle(at left 100% bottom 70px)" but got "none"
+FAIL circle(at right top 50%) serializes as circle(at 100% 50%) - computed assert_equals: expected "circle(at 100% 50%)" but got "none"
+FAIL circle(at right top 50px) serializes as circle(at 100% 50px) - computed assert_equals: expected "circle(at 100% 50px)" but got "none"
+FAIL circle(at left 50% center) serializes as circle(at 50% 50%) - computed assert_equals: expected "circle(at 50% 50%)" but got "none"
+FAIL circle(at left 50px center) serializes as circle(at 50px 50%) - computed assert_equals: expected "circle(at 50px 50%)" but got "none"
+FAIL circle(at left 50% top) serializes as circle(at 50% 0%) - computed assert_equals: expected "circle(at 50% 0%)" but got "none"
+FAIL circle(at left 50px top) serializes as circle(at 50px 0%) - computed assert_equals: expected "circle(at 50px 0%)" but got "none"
+FAIL circle(at left 50% bottom) serializes as circle(at 50% 100%) - computed assert_equals: expected "circle(at 50% 100%)" but got "none"
+FAIL circle(at left 50px bottom) serializes as circle(at 50px 100%) - computed assert_equals: expected "circle(at 50px 100%)" but got "none"
+FAIL circle(at top 50% center) serializes as circle(at 50% 50%) - computed assert_equals: expected "circle(at 50% 50%)" but got "none"
+FAIL circle(at top 50px center) serializes as circle(at 50% 50px) - computed assert_equals: expected "circle(at 50% 50px)" but got "none"
+FAIL circle(at top 50% left) serializes as circle(at 0% 50%) - computed assert_equals: expected "circle(at 0% 50%)" but got "none"
+FAIL circle(at top 50px left) serializes as circle(at 0% 50px) - computed assert_equals: expected "circle(at 0% 50px)" but got "none"
+FAIL circle(at top 50% right) serializes as circle(at 100% 50%) - computed assert_equals: expected "circle(at 100% 50%)" but got "none"
+FAIL circle(at top 50px right) serializes as circle(at 100% 50px) - computed assert_equals: expected "circle(at 100% 50px)" but got "none"
+FAIL circle(at bottom 70% center) serializes as circle(at 50% 30%) - computed assert_equals: expected "circle(at 50% 30%)" but got "none"
+FAIL circle(at bottom 70px center) serializes as circle(at left 50% bottom 70px) - computed assert_equals: expected "circle(at left 50% bottom 70px)" but got "none"
+FAIL circle(at bottom 70% left) serializes as circle(at 0% 30%) - computed assert_equals: expected "circle(at 0% 30%)" but got "none"
+FAIL circle(at bottom 70px left) serializes as circle(at left 0% bottom 70px) - computed assert_equals: expected "circle(at left 0% bottom 70px)" but got "none"
+FAIL circle(at bottom 70% right) serializes as circle(at 100% 30%) - computed assert_equals: expected "circle(at 100% 30%)" but got "none"
+FAIL circle(at bottom 70px right) serializes as circle(at left 100% bottom 70px) - computed assert_equals: expected "circle(at left 100% bottom 70px)" but got "none"
+FAIL circle(at right 80% center) serializes as circle(at 20% 50%) - computed assert_equals: expected "circle(at 20% 50%)" but got "none"
+FAIL circle(at right 80px center) serializes as circle(at right 80px top 50%) - computed assert_equals: expected "circle(at right 80px top 50%)" but got "none"
+FAIL circle(at right 80% bottom) serializes as circle(at 20% 100%) - computed assert_equals: expected "circle(at 20% 100%)" but got "none"
+FAIL circle(at right 80px bottom) serializes as circle(at right 80px top 100%) - computed assert_equals: expected "circle(at right 80px top 100%)" but got "none"
+FAIL circle(at right 80% top) serializes as circle(at 20% 0%) - computed assert_equals: expected "circle(at 20% 0%)" but got "none"
+FAIL circle(at right 80px top) serializes as circle(at right 80px top 0%) - computed assert_equals: expected "circle(at right 80px top 0%)" but got "none"
 PASS circle(at left 50% top 50%) serializes as circle(at 50% 50%) - computed 
 PASS circle(at left 50% top 50px) serializes as circle(at 50% 50px) - computed 
 PASS circle(at left 50% bottom 70%) serializes as circle(at 50% 30%) - computed 
index 1740090..752552e 100644 (file)
@@ -9,30 +9,30 @@ PASS test unit (inline): cm - circle(at right 80cm)
 PASS test unit (inline): cm - circle(at 70cm bottom) 
 PASS test unit (inline): cm - circle(at center 60cm) 
 PASS test unit (inline): cm - circle(at 60cm center) 
-PASS test unit (inline): cm - circle(at center top 50cm) 
-PASS test unit (inline): cm - circle(at center left 50cm) 
-PASS test unit (inline): cm - circle(at center right 70cm) 
-PASS test unit (inline): cm - circle(at center bottom 70cm) 
-PASS test unit (inline): cm - circle(at left top 50cm) 
-PASS test unit (inline): cm - circle(at left bottom 70cm) 
-PASS test unit (inline): cm - circle(at top left 50cm) 
-PASS test unit (inline): cm - circle(at top right 70cm) 
-PASS test unit (inline): cm - circle(at bottom left 50cm) 
-PASS test unit (inline): cm - circle(at bottom right 70cm) 
-PASS test unit (inline): cm - circle(at right bottom 70cm) 
-PASS test unit (inline): cm - circle(at right top 50cm) 
-PASS test unit (inline): cm - circle(at left 50cm center) 
-PASS test unit (inline): cm - circle(at left 50cm top) 
-PASS test unit (inline): cm - circle(at left 50cm bottom) 
-PASS test unit (inline): cm - circle(at top 50cm center) 
-PASS test unit (inline): cm - circle(at top 50cm left) 
-PASS test unit (inline): cm - circle(at top 50cm right) 
-PASS test unit (inline): cm - circle(at bottom 70cm center) 
-PASS test unit (inline): cm - circle(at bottom 70cm left) 
-PASS test unit (inline): cm - circle(at bottom 70cm right) 
-PASS test unit (inline): cm - circle(at right 80cm center) 
-PASS test unit (inline): cm - circle(at right 80cm bottom) 
-PASS test unit (inline): cm - circle(at right 80cm top) 
+FAIL test unit (inline): cm - circle(at center top 50cm) assert_equals: expected "circle(at 50% 50cm)" but got ""
+FAIL test unit (inline): cm - circle(at center left 50cm) assert_equals: expected "circle(at 50cm 50%)" but got ""
+FAIL test unit (inline): cm - circle(at center right 70cm) assert_equals: expected "circle(at right 70cm top 50%)" but got ""
+FAIL test unit (inline): cm - circle(at center bottom 70cm) assert_equals: expected "circle(at left 50% bottom 70cm)" but got ""
+FAIL test unit (inline): cm - circle(at left top 50cm) assert_equals: expected "circle(at 0% 50cm)" but got ""
+FAIL test unit (inline): cm - circle(at left bottom 70cm) assert_equals: expected "circle(at left 0% bottom 70cm)" but got ""
+FAIL test unit (inline): cm - circle(at top left 50cm) assert_equals: expected "circle(at 50cm 0%)" but got ""
+FAIL test unit (inline): cm - circle(at top right 70cm) assert_equals: expected "circle(at right 70cm top 0%)" but got ""
+FAIL test unit (inline): cm - circle(at bottom left 50cm) assert_equals: expected "circle(at 50cm 100%)" but got ""
+FAIL test unit (inline): cm - circle(at bottom right 70cm) assert_equals: expected "circle(at right 70cm top 100%)" but got ""
+FAIL test unit (inline): cm - circle(at right bottom 70cm) assert_equals: expected "circle(at left 100% bottom 70cm)" but got ""
+FAIL test unit (inline): cm - circle(at right top 50cm) assert_equals: expected "circle(at 100% 50cm)" but got ""
+FAIL test unit (inline): cm - circle(at left 50cm center) assert_equals: expected "circle(at 50cm 50%)" but got ""
+FAIL test unit (inline): cm - circle(at left 50cm top) assert_equals: expected "circle(at 50cm 0%)" but got ""
+FAIL test unit (inline): cm - circle(at left 50cm bottom) assert_equals: expected "circle(at 50cm 100%)" but got ""
+FAIL test unit (inline): cm - circle(at top 50cm center) assert_equals: expected "circle(at 50% 50cm)" but got ""
+FAIL test unit (inline): cm - circle(at top 50cm left) assert_equals: expected "circle(at 0% 50cm)" but got ""
+FAIL test unit (inline): cm - circle(at top 50cm right) assert_equals: expected "circle(at 100% 50cm)" but got ""
+FAIL test unit (inline): cm - circle(at bottom 70cm center) assert_equals: expected "circle(at left 50% bottom 70cm)" but got ""
+FAIL test unit (inline): cm - circle(at bottom 70cm left) assert_equals: expected "circle(at left 0% bottom 70cm)" but got ""
+FAIL test unit (inline): cm - circle(at bottom 70cm right) assert_equals: expected "circle(at left 100% bottom 70cm)" but got ""
+FAIL test unit (inline): cm - circle(at right 80cm center) assert_equals: expected "circle(at right 80cm top 50%)" but got ""
+FAIL test unit (inline): cm - circle(at right 80cm bottom) assert_equals: expected "circle(at right 80cm top 100%)" but got ""
+FAIL test unit (inline): cm - circle(at right 80cm top) assert_equals: expected "circle(at right 80cm top 0%)" but got ""
 PASS test unit (inline): cm - circle(at left 50% top 50cm) 
 PASS test unit (inline): cm - circle(at left 50% bottom 70cm) 
 PASS test unit (inline): cm - circle(at left 50cm top 50%) 
@@ -67,30 +67,30 @@ PASS test unit (inline): mm - circle(at right 80mm)
 PASS test unit (inline): mm - circle(at 70mm bottom) 
 PASS test unit (inline): mm - circle(at center 60mm) 
 PASS test unit (inline): mm - circle(at 60mm center) 
-PASS test unit (inline): mm - circle(at center top 50mm) 
-PASS test unit (inline): mm - circle(at center left 50mm) 
-PASS test unit (inline): mm - circle(at center right 70mm) 
-PASS test unit (inline): mm - circle(at center bottom 70mm) 
-PASS test unit (inline): mm - circle(at left top 50mm) 
-PASS test unit (inline): mm - circle(at left bottom 70mm) 
-PASS test unit (inline): mm - circle(at top left 50mm) 
-PASS test unit (inline): mm - circle(at top right 70mm) 
-PASS test unit (inline): mm - circle(at bottom left 50mm) 
-PASS test unit (inline): mm - circle(at bottom right 70mm) 
-PASS test unit (inline): mm - circle(at right bottom 70mm) 
-PASS test unit (inline): mm - circle(at right top 50mm) 
-PASS test unit (inline): mm - circle(at left 50mm center) 
-PASS test unit (inline): mm - circle(at left 50mm top) 
-PASS test unit (inline): mm - circle(at left 50mm bottom) 
-PASS test unit (inline): mm - circle(at top 50mm center) 
-PASS test unit (inline): mm - circle(at top 50mm left) 
-PASS test unit (inline): mm - circle(at top 50mm right) 
-PASS test unit (inline): mm - circle(at bottom 70mm center) 
-PASS test unit (inline): mm - circle(at bottom 70mm left) 
-PASS test unit (inline): mm - circle(at bottom 70mm right) 
-PASS test unit (inline): mm - circle(at right 80mm center) 
-PASS test unit (inline): mm - circle(at right 80mm bottom) 
-PASS test unit (inline): mm - circle(at right 80mm top) 
+FAIL test unit (inline): mm - circle(at center top 50mm) assert_equals: expected "circle(at 50% 50mm)" but got ""
+FAIL test unit (inline): mm - circle(at center left 50mm) assert_equals: expected "circle(at 50mm 50%)" but got ""
+FAIL test unit (inline): mm - circle(at center right 70mm) assert_equals: expected "circle(at right 70mm top 50%)" but got ""
+FAIL test unit (inline): mm - circle(at center bottom 70mm) assert_equals: expected "circle(at left 50% bottom 70mm)" but got ""
+FAIL test unit (inline): mm - circle(at left top 50mm) assert_equals: expected "circle(at 0% 50mm)" but got ""
+FAIL test unit (inline): mm - circle(at left bottom 70mm) assert_equals: expected "circle(at left 0% bottom 70mm)" but got ""
+FAIL test unit (inline): mm - circle(at top left 50mm) assert_equals: expected "circle(at 50mm 0%)" but got ""
+FAIL test unit (inline): mm - circle(at top right 70mm) assert_equals: expected "circle(at right 70mm top 0%)" but got ""
+FAIL test unit (inline): mm - circle(at bottom left 50mm) assert_equals: expected "circle(at 50mm 100%)" but got ""
+FAIL test unit (inline): mm - circle(at bottom right 70mm) assert_equals: expected "circle(at right 70mm top 100%)" but got ""
+FAIL test unit (inline): mm - circle(at right bottom 70mm) assert_equals: expected "circle(at left 100% bottom 70mm)" but got ""
+FAIL test unit (inline): mm - circle(at right top 50mm) assert_equals: expected "circle(at 100% 50mm)" but got ""
+FAIL test unit (inline): mm - circle(at left 50mm center) assert_equals: expected "circle(at 50mm 50%)" but got ""
+FAIL test unit (inline): mm - circle(at left 50mm top) assert_equals: expected "circle(at 50mm 0%)" but got ""
+FAIL test unit (inline): mm - circle(at left 50mm bottom) assert_equals: expected "circle(at 50mm 100%)" but got ""
+FAIL test unit (inline): mm - circle(at top 50mm center) assert_equals: expected "circle(at 50% 50mm)" but got ""
+FAIL test unit (inline): mm - circle(at top 50mm left) assert_equals: expected "circle(at 0% 50mm)" but got ""
+FAIL test unit (inline): mm - circle(at top 50mm right) assert_equals: expected "circle(at 100% 50mm)" but got ""
+FAIL test unit (inline): mm - circle(at bottom 70mm center) assert_equals: expected "circle(at left 50% bottom 70mm)" but got ""
+FAIL test unit (inline): mm - circle(at bottom 70mm left) assert_equals: expected "circle(at left 0% bottom 70mm)" but got ""
+FAIL test unit (inline): mm - circle(at bottom 70mm right) assert_equals: expected "circle(at left 100% bottom 70mm)" but got ""
+FAIL test unit (inline): mm - circle(at right 80mm center) assert_equals: expected "circle(at right 80mm top 50%)" but got ""
+FAIL test unit (inline): mm - circle(at right 80mm bottom) assert_equals: expected "circle(at right 80mm top 100%)" but got ""
+FAIL test unit (inline): mm - circle(at right 80mm top) assert_equals: expected "circle(at right 80mm top 0%)" but got ""
 PASS test unit (inline): mm - circle(at left 50% top 50mm) 
 PASS test unit (inline): mm - circle(at left 50% bottom 70mm) 
 PASS test unit (inline): mm - circle(at left 50mm top 50%) 
@@ -125,30 +125,30 @@ PASS test unit (inline): in - circle(at right 80in)
 PASS test unit (inline): in - circle(at 70in bottom) 
 PASS test unit (inline): in - circle(at center 60in) 
 PASS test unit (inline): in - circle(at 60in center) 
-PASS test unit (inline): in - circle(at center top 50in) 
-PASS test unit (inline): in - circle(at center left 50in) 
-PASS test unit (inline): in - circle(at center right 70in) 
-PASS test unit (inline): in - circle(at center bottom 70in) 
-PASS test unit (inline): in - circle(at left top 50in) 
-PASS test unit (inline): in - circle(at left bottom 70in) 
-PASS test unit (inline): in - circle(at top left 50in) 
-PASS test unit (inline): in - circle(at top right 70in) 
-PASS test unit (inline): in - circle(at bottom left 50in) 
-PASS test unit (inline): in - circle(at bottom right 70in) 
-PASS test unit (inline): in - circle(at right bottom 70in) 
-PASS test unit (inline): in - circle(at right top 50in) 
-PASS test unit (inline): in - circle(at left 50in center) 
-PASS test unit (inline): in - circle(at left 50in top) 
-PASS test unit (inline): in - circle(at left 50in bottom) 
-PASS test unit (inline): in - circle(at top 50in center) 
-PASS test unit (inline): in - circle(at top 50in left) 
-PASS test unit (inline): in - circle(at top 50in right) 
-PASS test unit (inline): in - circle(at bottom 70in center) 
-PASS test unit (inline): in - circle(at bottom 70in left) 
-PASS test unit (inline): in - circle(at bottom 70in right) 
-PASS test unit (inline): in - circle(at right 80in center) 
-PASS test unit (inline): in - circle(at right 80in bottom) 
-PASS test unit (inline): in - circle(at right 80in top) 
+FAIL test unit (inline): in - circle(at center top 50in) assert_equals: expected "circle(at 50% 50in)" but got ""
+FAIL test unit (inline): in - circle(at center left 50in) assert_equals: expected "circle(at 50in 50%)" but got ""
+FAIL test unit (inline): in - circle(at center right 70in) assert_equals: expected "circle(at right 70in top 50%)" but got ""
+FAIL test unit (inline): in - circle(at center bottom 70in) assert_equals: expected "circle(at left 50% bottom 70in)" but got ""
+FAIL test unit (inline): in - circle(at left top 50in) assert_equals: expected "circle(at 0% 50in)" but got ""
+FAIL test unit (inline): in - circle(at left bottom 70in) assert_equals: expected "circle(at left 0% bottom 70in)" but got ""
+FAIL test unit (inline): in - circle(at top left 50in) assert_equals: expected "circle(at 50in 0%)" but got ""
+FAIL test unit (inline): in - circle(at top right 70in) assert_equals: expected "circle(at right 70in top 0%)" but got ""
+FAIL test unit (inline): in - circle(at bottom left 50in) assert_equals: expected "circle(at 50in 100%)" but got ""
+FAIL test unit (inline): in - circle(at bottom right 70in) assert_equals: expected "circle(at right 70in top 100%)" but got ""
+FAIL test unit (inline): in - circle(at right bottom 70in) assert_equals: expected "circle(at left 100% bottom 70in)" but got ""
+FAIL test unit (inline): in - circle(at right top 50in) assert_equals: expected "circle(at 100% 50in)" but got ""
+FAIL test unit (inline): in - circle(at left 50in center) assert_equals: expected "circle(at 50in 50%)" but got ""
+FAIL test unit (inline): in - circle(at left 50in top) assert_equals: expected "circle(at 50in 0%)" but got ""
+FAIL test unit (inline): in - circle(at left 50in bottom) assert_equals: expected "circle(at 50in 100%)" but got ""
+FAIL test unit (inline): in - circle(at top 50in center) assert_equals: expected "circle(at 50% 50in)" but got ""
+FAIL test unit (inline): in - circle(at top 50in left) assert_equals: expected "circle(at 0% 50in)" but got ""
+FAIL test unit (inline): in - circle(at top 50in right) assert_equals: expected "circle(at 100% 50in)" but got ""
+FAIL test unit (inline): in - circle(at bottom 70in center) assert_equals: expected "circle(at left 50% bottom 70in)" but got ""
+FAIL test unit (inline): in - circle(at bottom 70in left) assert_equals: expected "circle(at left 0% bottom 70in)" but got ""
+FAIL test unit (inline): in - circle(at bottom 70in right) assert_equals: expected "circle(at left 100% bottom 70in)" but got ""
+FAIL test unit (inline): in - circle(at right 80in center) assert_equals: expected "circle(at right 80in top 50%)" but got ""
+FAIL test unit (inline): in - circle(at right 80in bottom) assert_equals: expected "circle(at right 80in top 100%)" but got ""
+FAIL test unit (inline): in - circle(at right 80in top) assert_equals: expected "circle(at right 80in top 0%)" but got ""
 PASS test unit (inline): in - circle(at left 50% top 50in) 
 PASS test unit (inline): in - circle(at left 50% bottom 70in) 
 PASS test unit (inline): in - circle(at left 50in top 50%) 
@@ -183,30 +183,30 @@ PASS test unit (inline): pt - circle(at right 80pt)
 PASS test unit (inline): pt - circle(at 70pt bottom) 
 PASS test unit (inline): pt - circle(at center 60pt) 
 PASS test unit (inline): pt - circle(at 60pt center) 
-PASS test unit (inline): pt - circle(at center top 50pt) 
-PASS test unit (inline): pt - circle(at center left 50pt) 
-PASS test unit (inline): pt - circle(at center right 70pt) 
-PASS test unit (inline): pt - circle(at center bottom 70pt) 
-PASS test unit (inline): pt - circle(at left top 50pt) 
-PASS test unit (inline): pt - circle(at left bottom 70pt) 
-PASS test unit (inline): pt - circle(at top left 50pt) 
-PASS test unit (inline): pt - circle(at top right 70pt) 
-PASS test unit (inline): pt - circle(at bottom left 50pt) 
-PASS test unit (inline): pt - circle(at bottom right 70pt) 
-PASS test unit (inline): pt - circle(at right bottom 70pt) 
-PASS test unit (inline): pt - circle(at right top 50pt) 
-PASS test unit (inline): pt - circle(at left 50pt center) 
-PASS test unit (inline): pt - circle(at left 50pt top) 
-PASS test unit (inline): pt - circle(at left 50pt bottom) 
-PASS test unit (inline): pt - circle(at top 50pt center) 
-PASS test unit (inline): pt - circle(at top 50pt left) 
-PASS test unit (inline): pt - circle(at top 50pt right) 
-PASS test unit (inline): pt - circle(at bottom 70pt center) 
-PASS test unit (inline): pt - circle(at bottom 70pt left) 
-PASS test unit (inline): pt - circle(at bottom 70pt right) 
-PASS test unit (inline): pt - circle(at right 80pt center) 
-PASS test unit (inline): pt - circle(at right 80pt bottom) 
-PASS test unit (inline): pt - circle(at right 80pt top) 
+FAIL test unit (inline): pt - circle(at center top 50pt) assert_equals: expected "circle(at 50% 50pt)" but got ""
+FAIL test unit (inline): pt - circle(at center left 50pt) assert_equals: expected "circle(at 50pt 50%)" but got ""
+FAIL test unit (inline): pt - circle(at center right 70pt) assert_equals: expected "circle(at right 70pt top 50%)" but got ""
+FAIL test unit (inline): pt - circle(at center bottom 70pt) assert_equals: expected "circle(at left 50% bottom 70pt)" but got ""
+FAIL test unit (inline): pt - circle(at left top 50pt) assert_equals: expected "circle(at 0% 50pt)" but got ""
+FAIL test unit (inline): pt - circle(at left bottom 70pt) assert_equals: expected "circle(at left 0% bottom 70pt)" but got ""
+FAIL test unit (inline): pt - circle(at top left 50pt) assert_equals: expected "circle(at 50pt 0%)" but got ""
+FAIL test unit (inline): pt - circle(at top right 70pt) assert_equals: expected "circle(at right 70pt top 0%)" but got ""
+FAIL test unit (inline): pt - circle(at bottom left 50pt) assert_equals: expected "circle(at 50pt 100%)" but got ""
+FAIL test unit (inline): pt - circle(at bottom right 70pt) assert_equals: expected "circle(at right 70pt top 100%)" but got ""
+FAIL test unit (inline): pt - circle(at right bottom 70pt) assert_equals: expected "circle(at left 100% bottom 70pt)" but got ""
+FAIL test unit (inline): pt - circle(at right top 50pt) assert_equals: expected "circle(at 100% 50pt)" but got ""
+FAIL test unit (inline): pt - circle(at left 50pt center) assert_equals: expected "circle(at 50pt 50%)" but got ""
+FAIL test unit (inline): pt - circle(at left 50pt top) assert_equals: expected "circle(at 50pt 0%)" but got ""
+FAIL test unit (inline): pt - circle(at left 50pt bottom) assert_equals: expected "circle(at 50pt 100%)" but got ""
+FAIL test unit (inline): pt - circle(at top 50pt center) assert_equals: expected "circle(at 50% 50pt)" but got ""
+FAIL test unit (inline): pt - circle(at top 50pt left) assert_equals: expected "circle(at 0% 50pt)" but got ""
+FAIL test unit (inline): pt - circle(at top 50pt right) assert_equals: expected "circle(at 100% 50pt)" but got ""
+FAIL test unit (inline): pt - circle(at bottom 70pt center) assert_equals: expected "circle(at left 50% bottom 70pt)" but got ""
+FAIL test unit (inline): pt - circle(at bottom 70pt left) assert_equals: expected "circle(at left 0% bottom 70pt)" but got ""
+FAIL test unit (inline): pt - circle(at bottom 70pt right) assert_equals: expected "circle(at left 100% bottom 70pt)" but got ""
+FAIL test unit (inline): pt - circle(at right 80pt center) assert_equals: expected "circle(at right 80pt top 50%)" but got ""
+FAIL test unit (inline): pt - circle(at right 80pt bottom) assert_equals: expected "circle(at right 80pt top 100%)" but got ""
+FAIL test unit (inline): pt - circle(at right 80pt top) assert_equals: expected "circle(at right 80pt top 0%)" but got ""
 PASS test unit (inline): pt - circle(at left 50% top 50pt) 
 PASS test unit (inline): pt - circle(at left 50% bottom 70pt) 
 PASS test unit (inline): pt - circle(at left 50pt top 50%) 
@@ -241,30 +241,30 @@ PASS test unit (inline): pc - circle(at right 80pc)
 PASS test unit (inline): pc - circle(at 70pc bottom) 
 PASS test unit (inline): pc - circle(at center 60pc) 
 PASS test unit (inline): pc - circle(at 60pc center) 
-PASS test unit (inline): pc - circle(at center top 50pc) 
-PASS test unit (inline): pc - circle(at center left 50pc) 
-PASS test unit (inline): pc - circle(at center right 70pc) 
-PASS test unit (inline): pc - circle(at center bottom 70pc) 
-PASS test unit (inline): pc - circle(at left top 50pc) 
-PASS test unit (inline): pc - circle(at left bottom 70pc) 
-PASS test unit (inline): pc - circle(at top left 50pc) 
-PASS test unit (inline): pc - circle(at top right 70pc) 
-PASS test unit (inline): pc - circle(at bottom left 50pc) 
-PASS test unit (inline): pc - circle(at bottom right 70pc) 
-PASS test unit (inline): pc - circle(at right bottom 70pc) 
-PASS test unit (inline): pc - circle(at right top 50pc) 
-PASS test unit (inline): pc - circle(at left 50pc center) 
-PASS test unit (inline): pc - circle(at left 50pc top) 
-PASS test unit (inline): pc - circle(at left 50pc bottom) 
-PASS test unit (inline): pc - circle(at top 50pc center) 
-PASS test unit (inline): pc - circle(at top 50pc left) 
-PASS test unit (inline): pc - circle(at top 50pc right) 
-PASS test unit (inline): pc - circle(at bottom 70pc center) 
-PASS test unit (inline): pc - circle(at bottom 70pc left) 
-PASS test unit (inline): pc - circle(at bottom 70pc right) 
-PASS test unit (inline): pc - circle(at right 80pc center) 
-PASS test unit (inline): pc - circle(at right 80pc bottom) 
-PASS test unit (inline): pc - circle(at right 80pc top) 
+FAIL test unit (inline): pc - circle(at center top 50pc) assert_equals: expected "circle(at 50% 50pc)" but got ""
+FAIL test unit (inline): pc - circle(at center left 50pc) assert_equals: expected "circle(at 50pc 50%)" but got ""
+FAIL test unit (inline): pc - circle(at center right 70pc) assert_equals: expected "circle(at right 70pc top 50%)" but got ""
+FAIL test unit (inline): pc - circle(at center bottom 70pc) assert_equals: expected "circle(at left 50% bottom 70pc)" but got ""
+FAIL test unit (inline): pc - circle(at left top 50pc) assert_equals: expected "circle(at 0% 50pc)" but got ""
+FAIL test unit (inline): pc - circle(at left bottom 70pc) assert_equals: expected "circle(at left 0% bottom 70pc)" but got ""
+FAIL test unit (inline): pc - circle(at top left 50pc) assert_equals: expected "circle(at 50pc 0%)" but got ""
+FAIL test unit (inline): pc - circle(at top right 70pc) assert_equals: expected "circle(at right 70pc top 0%)" but got ""
+FAIL test unit (inline): pc - circle(at bottom left 50pc) assert_equals: expected "circle(at 50pc 100%)" but got ""
+FAIL test unit (inline): pc - circle(at bottom right 70pc) assert_equals: expected "circle(at right 70pc top 100%)" but got ""
+FAIL test unit (inline): pc - circle(at right bottom 70pc) assert_equals: expected "circle(at left 100% bottom 70pc)" but got ""
+FAIL test unit (inline): pc - circle(at right top 50pc) assert_equals: expected "circle(at 100% 50pc)" but got ""
+FAIL test unit (inline): pc - circle(at left 50pc center) assert_equals: expected "circle(at 50pc 50%)" but got ""
+FAIL test unit (inline): pc - circle(at left 50pc top) assert_equals: expected "circle(at 50pc 0%)" but got ""
+FAIL test unit (inline): pc - circle(at left 50pc bottom) assert_equals: expected "circle(at 50pc 100%)" but got ""
+FAIL test unit (inline): pc - circle(at top 50pc center) assert_equals: expected "circle(at 50% 50pc)" but got ""
+FAIL test unit (inline): pc - circle(at top 50pc left) assert_equals: expected "circle(at 0% 50pc)" but got ""
+FAIL test unit (inline): pc - circle(at top 50pc right) assert_equals: expected "circle(at 100% 50pc)" but got ""
+FAIL test unit (inline): pc - circle(at bottom 70pc center) assert_equals: expected "circle(at left 50% bottom 70pc)" but got ""
+FAIL test unit (inline): pc - circle(at bottom 70pc left) assert_equals: expected "circle(at left 0% bottom 70pc)" but got ""
+FAIL test unit (inline): pc - circle(at bottom 70pc right) assert_equals: expected "circle(at left 100% bottom 70pc)" but got ""
+FAIL test unit (inline): pc - circle(at right 80pc center) assert_equals: expected "circle(at right 80pc top 50%)" but got ""
+FAIL test unit (inline): pc - circle(at right 80pc bottom) assert_equals: expected "circle(at right 80pc top 100%)" but got ""
+FAIL test unit (inline): pc - circle(at right 80pc top) assert_equals: expected "circle(at right 80pc top 0%)" but got ""
 PASS test unit (inline): pc - circle(at left 50% top 50pc) 
 PASS test unit (inline): pc - circle(at left 50% bottom 70pc) 
 PASS test unit (inline): pc - circle(at left 50pc top 50%) 
@@ -299,30 +299,30 @@ PASS test unit (inline): em - circle(at right 80em)
 PASS test unit (inline): em - circle(at 70em bottom) 
 PASS test unit (inline): em - circle(at center 60em) 
 PASS test unit (inline): em - circle(at 60em center) 
-PASS test unit (inline): em - circle(at center top 50em) 
-PASS test unit (inline): em - circle(at center left 50em) 
-PASS test unit (inline): em - circle(at center right 70em) 
-PASS test unit (inline): em - circle(at center bottom 70em) 
-PASS test unit (inline): em - circle(at left top 50em) 
-PASS test unit (inline): em - circle(at left bottom 70em) 
-PASS test unit (inline): em - circle(at top left 50em) 
-PASS test unit (inline): em - circle(at top right 70em) 
-PASS test unit (inline): em - circle(at bottom left 50em) 
-PASS test unit (inline): em - circle(at bottom right 70em) 
-PASS test unit (inline): em - circle(at right bottom 70em) 
-PASS test unit (inline): em - circle(at right top 50em) 
-PASS test unit (inline): em - circle(at left 50em center) 
-PASS test unit (inline): em - circle(at left 50em top) 
-PASS test unit (inline): em - circle(at left 50em bottom) 
-PASS test unit (inline): em - circle(at top 50em center) 
-PASS test unit (inline): em - circle(at top 50em left) 
-PASS test unit (inline): em - circle(at top 50em right) 
-PASS test unit (inline): em - circle(at bottom 70em center) 
-PASS test unit (inline): em - circle(at bottom 70em left) 
-PASS test unit (inline): em - circle(at bottom 70em right) 
-PASS test unit (inline): em - circle(at right 80em center) 
-PASS test unit (inline): em - circle(at right 80em bottom) 
-PASS test unit (inline): em - circle(at right 80em top) 
+FAIL test unit (inline): em - circle(at center top 50em) assert_equals: expected "circle(at 50% 50em)" but got ""
+FAIL test unit (inline): em - circle(at center left 50em) assert_equals: expected "circle(at 50em 50%)" but got ""
+FAIL test unit (inline): em - circle(at center right 70em) assert_equals: expected "circle(at right 70em top 50%)" but got ""
+FAIL test unit (inline): em - circle(at center bottom 70em) assert_equals: expected "circle(at left 50% bottom 70em)" but got ""
+FAIL test unit (inline): em - circle(at left top 50em) assert_equals: expected "circle(at 0% 50em)" but got ""
+FAIL test unit (inline): em - circle(at left bottom 70em) assert_equals: expected "circle(at left 0% bottom 70em)" but got ""
+FAIL test unit (inline): em - circle(at top left 50em) assert_equals: expected "circle(at 50em 0%)" but got ""
+FAIL test unit (inline): em - circle(at top right 70em) assert_equals: expected "circle(at right 70em top 0%)" but got ""
+FAIL test unit (inline): em - circle(at bottom left 50em) assert_equals: expected "circle(at 50em 100%)" but got ""
+FAIL test unit (inline): em - circle(at bottom right 70em) assert_equals: expected "circle(at right 70em top 100%)" but got ""
+FAIL test unit (inline): em - circle(at right bottom 70em) assert_equals: expected "circle(at left 100% bottom 70em)" but got ""
+FAIL test unit (inline): em - circle(at right top 50em) assert_equals: expected "circle(at 100% 50em)" but got ""
+FAIL test unit (inline): em - circle(at left 50em center) assert_equals: expected "circle(at 50em 50%)" but got ""
+FAIL test unit (inline): em - circle(at left 50em top) assert_equals: expected "circle(at 50em 0%)" but got ""
+FAIL test unit (inline): em - circle(at left 50em bottom) assert_equals: expected "circle(at 50em 100%)" but got ""
+FAIL test unit (inline): em - circle(at top 50em center) assert_equals: expected "circle(at 50% 50em)" but got ""
+FAIL test unit (inline): em - circle(at top 50em left) assert_equals: expected "circle(at 0% 50em)" but got ""
+FAIL test unit (inline): em - circle(at top 50em right) assert_equals: expected "circle(at 100% 50em)" but got ""
+FAIL test unit (inline): em - circle(at bottom 70em center) assert_equals: expected "circle(at left 50% bottom 70em)" but got ""
+FAIL test unit (inline): em - circle(at bottom 70em left) assert_equals: expected "circle(at left 0% bottom 70em)" but got ""
+FAIL test unit (inline): em - circle(at bottom 70em right) assert_equals: expected "circle(at left 100% bottom 70em)" but got ""
+FAIL test unit (inline): em - circle(at right 80em center) assert_equals: expected "circle(at right 80em top 50%)" but got ""
+FAIL test unit (inline): em - circle(at right 80em bottom) assert_equals: expected "circle(at right 80em top 100%)" but got ""
+FAIL test unit (inline): em - circle(at right 80em top) assert_equals: expected "circle(at right 80em top 0%)" but got ""
 PASS test unit (inline): em - circle(at left 50% top 50em) 
 PASS test unit (inline): em - circle(at left 50% bottom 70em) 
 PASS test unit (inline): em - circle(at left 50em top 50%) 
@@ -357,30 +357,30 @@ PASS test unit (inline): ex - circle(at right 80ex)
 PASS test unit (inline): ex - circle(at 70ex bottom) 
 PASS test unit (inline): ex - circle(at center 60ex) 
 PASS test unit (inline): ex - circle(at 60ex center) 
-PASS test unit (inline): ex - circle(at center top 50ex) 
-PASS test unit (inline): ex - circle(at center left 50ex) 
-PASS test unit (inline): ex - circle(at center right 70ex) 
-PASS test unit (inline): ex - circle(at center bottom 70ex) 
-PASS test unit (inline): ex - circle(at left top 50ex) 
-PASS test unit (inline): ex - circle(at left bottom 70ex) 
-PASS test unit (inline): ex - circle(at top left 50ex) 
-PASS test unit (inline): ex - circle(at top right 70ex) 
-PASS test unit (inline): ex - circle(at bottom left 50ex) 
-PASS test unit (inline): ex - circle(at bottom right 70ex) 
-PASS test unit (inline): ex - circle(at right bottom 70ex) 
-PASS test unit (inline): ex - circle(at right top 50ex) 
-PASS test unit (inline): ex - circle(at left 50ex center) 
-PASS test unit (inline): ex - circle(at left 50ex top) 
-PASS test unit (inline): ex - circle(at left 50ex bottom) 
-PASS test unit (inline): ex - circle(at top 50ex center) 
-PASS test unit (inline): ex - circle(at top 50ex left) 
-PASS test unit (inline): ex - circle(at top 50ex right) 
-PASS test unit (inline): ex - circle(at bottom 70ex center) 
-PASS test unit (inline): ex - circle(at bottom 70ex left) 
-PASS test unit (inline): ex - circle(at bottom 70ex right) 
-PASS test unit (inline): ex - circle(at right 80ex center) 
-PASS test unit (inline): ex - circle(at right 80ex bottom) 
-PASS test unit (inline): ex - circle(at right 80ex top) 
+FAIL test unit (inline): ex - circle(at center top 50ex) assert_equals: expected "circle(at 50% 50ex)" but got ""
+FAIL test unit (inline): ex - circle(at center left 50ex) assert_equals: expected "circle(at 50ex 50%)" but got ""
+FAIL test unit (inline): ex - circle(at center right 70ex) assert_equals: expected "circle(at right 70ex top 50%)" but got ""
+FAIL test unit (inline): ex - circle(at center bottom 70ex) assert_equals: expected "circle(at left 50% bottom 70ex)" but got ""
+FAIL test unit (inline): ex - circle(at left top 50ex) assert_equals: expected "circle(at 0% 50ex)" but got ""
+FAIL test unit (inline): ex - circle(at left bottom 70ex) assert_equals: expected "circle(at left 0% bottom 70ex)" but got ""
+FAIL test unit (inline): ex - circle(at top left 50ex) assert_equals: expected "circle(at 50ex 0%)" but got ""
+FAIL test unit (inline): ex - circle(at top right 70ex) assert_equals: expected "circle(at right 70ex top 0%)" but got ""
+FAIL test unit (inline): ex - circle(at bottom left 50ex) assert_equals: expected "circle(at 50ex 100%)" but got ""
+FAIL test unit (inline): ex - circle(at bottom right 70ex) assert_equals: expected "circle(at right 70ex top 100%)" but got ""
+FAIL test unit (inline): ex - circle(at right bottom 70ex) assert_equals: expected "circle(at left 100% bottom 70ex)" but got ""
+FAIL test unit (inline): ex - circle(at right top 50ex) assert_equals: expected "circle(at 100% 50ex)" but got ""
+FAIL test unit (inline): ex - circle(at left 50ex center) assert_equals: expected "circle(at 50ex 50%)" but got ""
+FAIL test unit (inline): ex - circle(at left 50ex top) assert_equals: expected "circle(at 50ex 0%)" but got ""
+FAIL test unit (inline): ex - circle(at left 50ex bottom) assert_equals: expected "circle(at 50ex 100%)" but got ""
+FAIL test unit (inline): ex - circle(at top 50ex center) assert_equals: expected "circle(at 50% 50ex)" but got ""
+FAIL test unit (inline): ex - circle(at top 50ex left) assert_equals: expected "circle(at 0% 50ex)" but got ""
+FAIL test unit (inline): ex - circle(at top 50ex right) assert_equals: expected "circle(at 100% 50ex)" but got ""
+FAIL test unit (inline): ex - circle(at bottom 70ex center) assert_equals: expected "circle(at left 50% bottom 70ex)" but got ""
+FAIL test unit (inline): ex - circle(at bottom 70ex left) assert_equals: expected "circle(at left 0% bottom 70ex)" but got ""
+FAIL test unit (inline): ex - circle(at bottom 70ex right) assert_equals: expected "circle(at left 100% bottom 70ex)" but got ""
+FAIL test unit (inline): ex - circle(at right 80ex center) assert_equals: expected "circle(at right 80ex top 50%)" but got ""
+FAIL test unit (inline): ex - circle(at right 80ex bottom) assert_equals: expected "circle(at right 80ex top 100%)" but got ""
+FAIL test unit (inline): ex - circle(at right 80ex top) assert_equals: expected "circle(at right 80ex top 0%)" but got ""
 PASS test unit (inline): ex - circle(at left 50% top 50ex) 
 PASS test unit (inline): ex - circle(at left 50% bottom 70ex) 
 PASS test unit (inline): ex - circle(at left 50ex top 50%) 
@@ -415,30 +415,30 @@ PASS test unit (inline): ch - circle(at right 80ch)
 PASS test unit (inline): ch - circle(at 70ch bottom) 
 PASS test unit (inline): ch - circle(at center 60ch) 
 PASS test unit (inline): ch - circle(at 60ch center) 
-PASS test unit (inline): ch - circle(at center top 50ch) 
-PASS test unit (inline): ch - circle(at center left 50ch) 
-PASS test unit (inline): ch - circle(at center right 70ch) 
-PASS test unit (inline): ch - circle(at center bottom 70ch) 
-PASS test unit (inline): ch - circle(at left top 50ch) 
-PASS test unit (inline): ch - circle(at left bottom 70ch) 
-PASS test unit (inline): ch - circle(at top left 50ch) 
-PASS test unit (inline): ch - circle(at top right 70ch) 
-PASS test unit (inline): ch - circle(at bottom left 50ch) 
-PASS test unit (inline): ch - circle(at bottom right 70ch) 
-PASS test unit (inline): ch - circle(at right bottom 70ch) 
-PASS test unit (inline): ch - circle(at right top 50ch) 
-PASS test unit (inline): ch - circle(at left 50ch center) 
-PASS test unit (inline): ch - circle(at left 50ch top) 
-PASS test unit (inline): ch - circle(at left 50ch bottom) 
-PASS test unit (inline): ch - circle(at top 50ch center) 
-PASS test unit (inline): ch - circle(at top 50ch left) 
-PASS test unit (inline): ch - circle(at top 50ch right) 
-PASS test unit (inline): ch - circle(at bottom 70ch center) 
-PASS test unit (inline): ch - circle(at bottom 70ch left) 
-PASS test unit (inline): ch - circle(at bottom 70ch right) 
-PASS test unit (inline): ch - circle(at right 80ch center) 
-PASS test unit (inline): ch - circle(at right 80ch bottom) 
-PASS test unit (inline): ch - circle(at right 80ch top) 
+FAIL test unit (inline): ch - circle(at center top 50ch) assert_equals: expected "circle(at 50% 50ch)" but got ""
+FAIL test unit (inline): ch - circle(at center left 50ch) assert_equals: expected "circle(at 50ch 50%)" but got ""
+FAIL test unit (inline): ch - circle(at center right 70ch) assert_equals: expected "circle(at right 70ch top 50%)" but got ""
+FAIL test unit (inline): ch - circle(at center bottom 70ch) assert_equals: expected "circle(at left 50% bottom 70ch)" but got ""
+FAIL test unit (inline): ch - circle(at left top 50ch) assert_equals: expected "circle(at 0% 50ch)" but got ""
+FAIL test unit (inline): ch - circle(at left bottom 70ch) assert_equals: expected "circle(at left 0% bottom 70ch)" but got ""
+FAIL test unit (inline): ch - circle(at top left 50ch) assert_equals: expected "circle(at 50ch 0%)" but got ""
+FAIL test unit (inline): ch - circle(at top right 70ch) assert_equals: expected "circle(at right 70ch top 0%)" but got ""
+FAIL test unit (inline): ch - circle(at bottom left 50ch) assert_equals: expected "circle(at 50ch 100%)" but got ""
+FAIL test unit (inline): ch - circle(at bottom right 70ch) assert_equals: expected "circle(at right 70ch top 100%)" but got ""
+FAIL test unit (inline): ch - circle(at right bottom 70ch) assert_equals: expected "circle(at left 100% bottom 70ch)" but got ""
+FAIL test unit (inline): ch - circle(at right top 50ch) assert_equals: expected "circle(at 100% 50ch)" but got ""
+FAIL test unit (inline): ch - circle(at left 50ch center) assert_equals: expected "circle(at 50ch 50%)" but got ""
+FAIL test unit (inline): ch - circle(at left 50ch top) assert_equals: expected "circle(at 50ch 0%)" but got ""
+FAIL test unit (inline): ch - circle(at left 50ch bottom) assert_equals: expected "circle(at 50ch 100%)" but got ""
+FAIL test unit (inline): ch - circle(at top 50ch center) assert_equals: expected "circle(at 50% 50ch)" but got ""
+FAIL test unit (inline): ch - circle(at top 50ch left) assert_equals: expected "circle(at 0% 50ch)" but got ""
+FAIL test unit (inline): ch - circle(at top 50ch right) assert_equals: expected "circle(at 100% 50ch)" but got ""
+FAIL test unit (inline): ch - circle(at bottom 70ch center) assert_equals: expected "circle(at left 50% bottom 70ch)" but got ""
+FAIL test unit (inline): ch - circle(at bottom 70ch left) assert_equals: expected "circle(at left 0% bottom 70ch)" but got ""
+FAIL test unit (inline): ch - circle(at bottom 70ch right) assert_equals: expected "circle(at left 100% bottom 70ch)" but got ""
+FAIL test unit (inline): ch - circle(at right 80ch center) assert_equals: expected "circle(at right 80ch top 50%)" but got ""
+FAIL test unit (inline): ch - circle(at right 80ch bottom) assert_equals: expected "circle(at right 80ch top 100%)" but got ""
+FAIL test unit (inline): ch - circle(at right 80ch top) assert_equals: expected "circle(at right 80ch top 0%)" but got ""
 PASS test unit (inline): ch - circle(at left 50% top 50ch) 
 PASS test unit (inline): ch - circle(at left 50% bottom 70ch) 
 PASS test unit (inline): ch - circle(at left 50ch top 50%) 
@@ -473,30 +473,30 @@ PASS test unit (inline): rem - circle(at right 80rem)
 PASS test unit (inline): rem - circle(at 70rem bottom) 
 PASS test unit (inline): rem - circle(at center 60rem) 
 PASS test unit (inline): rem - circle(at 60rem center) 
-PASS test unit (inline): rem - circle(at center top 50rem) 
-PASS test unit (inline): rem - circle(at center left 50rem) 
-PASS test unit (inline): rem - circle(at center right 70rem) 
-PASS test unit (inline): rem - circle(at center bottom 70rem) 
-PASS test unit (inline): rem - circle(at left top 50rem) 
-PASS test unit (inline): rem - circle(at left bottom 70rem) 
-PASS test unit (inline): rem - circle(at top left 50rem) 
-PASS test unit (inline): rem - circle(at top right 70rem) 
-PASS test unit (inline): rem - circle(at bottom left 50rem) 
-PASS test unit (inline): rem - circle(at bottom right 70rem) 
-PASS test unit (inline): rem - circle(at right bottom 70rem) 
-PASS test unit (inline): rem - circle(at right top 50rem) 
-PASS test unit (inline): rem - circle(at left 50rem center) 
-PASS test unit (inline): rem - circle(at left 50rem top) 
-PASS test unit (inline): rem - circle(at left 50rem bottom) 
-PASS test unit (inline): rem - circle(at top 50rem center) 
-PASS test unit (inline): rem - circle(at top 50rem left) 
-PASS test unit (inline): rem - circle(at top 50rem right) 
-PASS test unit (inline): rem - circle(at bottom 70rem center) 
-PASS test unit (inline): rem - circle(at bottom 70rem left) 
-PASS test unit (inline): rem - circle(at bottom 70rem right) 
-PASS test unit (inline): rem - circle(at right 80rem center) 
-PASS test unit (inline): rem - circle(at right 80rem bottom) 
-PASS test unit (inline): rem - circle(at right 80rem top) 
+FAIL test unit (inline): rem - circle(at center top 50rem) assert_equals: expected "circle(at 50% 50rem)" but got ""
+FAIL test unit (inline): rem - circle(at center left 50rem) assert_equals: expected "circle(at 50rem 50%)" but got ""
+FAIL test unit (inline): rem - circle(at center right 70rem) assert_equals: expected "circle(at right 70rem top 50%)" but got ""
+FAIL test unit (inline): rem - circle(at center bottom 70rem) assert_equals: expected "circle(at left 50% bottom 70rem)" but got ""
+FAIL test unit (inline): rem - circle(at left top 50rem) assert_equals: expected "circle(at 0% 50rem)" but got ""
+FAIL test unit (inline): rem - circle(at left bottom 70rem) assert_equals: expected "circle(at left 0% bottom 70rem)" but got ""
+FAIL test unit (inline): rem - circle(at top left 50rem) assert_equals: expected "circle(at 50rem 0%)" but got ""
+FAIL test unit (inline): rem - circle(at top right 70rem) assert_equals: expected "circle(at right 70rem top 0%)" but got ""
+FAIL test unit (inline): rem - circle(at bottom left 50rem) assert_equals: expected "circle(at 50rem 100%)" but got ""
+FAIL test unit (inline): rem - circle(at bottom right 70rem) assert_equals: expected "circle(at right 70rem top 100%)" but got ""
+FAIL test unit (inline): rem - circle(at right bottom 70rem) assert_equals: expected "circle(at left 100% bottom 70rem)" but got ""
+FAIL test unit (inline): rem - circle(at right top 50rem) assert_equals: expected "circle(at 100% 50rem)" but got ""
+FAIL test unit (inline): rem - circle(at left 50rem center) assert_equals: expected "circle(at 50rem 50%)" but got ""
+FAIL test unit (inline): rem - circle(at left 50rem top) assert_equals: expected "circle(at 50rem 0%)" but got ""
+FAIL test unit (inline): rem - circle(at left 50rem bottom) assert_equals: expected "circle(at 50rem 100%)" but got ""
+FAIL test unit (inline): rem - circle(at top 50rem center) assert_equals: expected "circle(at 50% 50rem)" but got ""
+FAIL test unit (inline): rem - circle(at top 50rem left) assert_equals: expected "circle(at 0% 50rem)" but got ""
+FAIL test unit (inline): rem - circle(at top 50rem right) assert_equals: expected "circle(at 100% 50rem)" but got ""
+FAIL test unit (inline): rem - circle(at bottom 70rem center) assert_equals: expected "circle(at left 50% bottom 70rem)" but got ""
+FAIL test unit (inline): rem - circle(at bottom 70rem left) assert_equals: expected "circle(at left 0% bottom 70rem)" but got ""
+FAIL test unit (inline): rem - circle(at bottom 70rem right) assert_equals: expected "circle(at left 100% bottom 70rem)" but got ""
+FAIL test unit (inline): rem - circle(at right 80rem center) assert_equals: expected "circle(at right 80rem top 50%)" but got ""
+FAIL test unit (inline): rem - circle(at right 80rem bottom) assert_equals: expected "circle(at right 80rem top 100%)" but got ""
+FAIL test unit (inline): rem - circle(at right 80rem top) assert_equals: expected "circle(at right 80rem top 0%)" but got ""
 PASS test unit (inline): rem - circle(at left 50% top 50rem) 
 PASS test unit (inline): rem - circle(at left 50% bottom 70rem) 
 PASS test unit (inline): rem - circle(at left 50rem top 50%) 
@@ -531,30 +531,30 @@ PASS test unit (inline): vw - circle(at right 80vw)
 PASS test unit (inline): vw - circle(at 70vw bottom) 
 PASS test unit (inline): vw - circle(at center 60vw) 
 PASS test unit (inline): vw - circle(at 60vw center) 
-PASS test unit (inline): vw - circle(at center top 50vw) 
-PASS test unit (inline): vw - circle(at center left 50vw) 
-PASS test unit (inline): vw - circle(at center right 70vw) 
-PASS test unit (inline): vw - circle(at center bottom 70vw) 
-PASS test unit (inline): vw - circle(at left top 50vw) 
-PASS test unit (inline): vw - circle(at left bottom 70vw) 
-PASS test unit (inline): vw - circle(at top left 50vw) 
-PASS test unit (inline): vw - circle(at top right 70vw) 
-PASS test unit (inline): vw - circle(at bottom left 50vw) 
-PASS test unit (inline): vw - circle(at bottom right 70vw) 
-PASS test unit (inline): vw - circle(at right bottom 70vw) 
-PASS test unit (inline): vw - circle(at right top 50vw) 
-PASS test unit (inline): vw - circle(at left 50vw center) 
-PASS test unit (inline): vw - circle(at left 50vw top) 
-PASS test unit (inline): vw - circle(at left 50vw bottom) 
-PASS test unit (inline): vw - circle(at top 50vw center) 
-PASS test unit (inline): vw - circle(at top 50vw left) 
-PASS test unit (inline): vw - circle(at top 50vw right) 
-PASS test unit (inline): vw - circle(at bottom 70vw center) 
-PASS test unit (inline): vw - circle(at bottom 70vw left) 
-PASS test unit (inline): vw - circle(at bottom 70vw right) 
-PASS test unit (inline): vw - circle(at right 80vw center) 
-PASS test unit (inline): vw - circle(at right 80vw bottom) 
-PASS test unit (inline): vw - circle(at right 80vw top) 
+FAIL test unit (inline): vw - circle(at center top 50vw) assert_equals: expected "circle(at 50% 50vw)" but got ""
+FAIL test unit (inline): vw - circle(at center left 50vw) assert_equals: expected "circle(at 50vw 50%)" but got ""
+FAIL test unit (inline): vw - circle(at center right 70vw) assert_equals: expected "circle(at right 70vw top 50%)" but got ""
+FAIL test unit (inline): vw - circle(at center bottom 70vw) assert_equals: expected "circle(at left 50% bottom 70vw)" but got ""
+FAIL test unit (inline): vw - circle(at left top 50vw) assert_equals: expected "circle(at 0% 50vw)" but got ""
+FAIL test unit (inline): vw - circle(at left bottom 70vw) assert_equals: expected "circle(at left 0% bottom 70vw)" but got ""
+FAIL test unit (inline): vw - circle(at top left 50vw) assert_equals: expected "circle(at 50vw 0%)" but got ""
+FAIL test unit (inline): vw - circle(at top right 70vw) assert_equals: expected "circle(at right 70vw top 0%)" but got ""
+FAIL test unit (inline): vw - circle(at bottom left 50vw) assert_equals: expected "circle(at 50vw 100%)" but got ""
+FAIL test unit (inline): vw - circle(at bottom right 70vw) assert_equals: expected "circle(at right 70vw top 100%)" but got ""
+FAIL test unit (inline): vw - circle(at right bottom 70vw) assert_equals: expected "circle(at left 100% bottom 70vw)" but got ""
+FAIL test unit (inline): vw - circle(at right top 50vw) assert_equals: expected "circle(at 100% 50vw)" but got ""
+FAIL test unit (inline): vw - circle(at left 50vw center) assert_equals: expected "circle(at 50vw 50%)" but got ""
+FAIL test unit (inline): vw - circle(at left 50vw top) assert_equals: expected "circle(at 50vw 0%)" but got ""
+FAIL test unit (inline): vw - circle(at left 50vw bottom) assert_equals: expected "circle(at 50vw 100%)" but got ""
+FAIL test unit (inline): vw - circle(at top 50vw center) assert_equals: expected "circle(at 50% 50vw)" but got ""
+FAIL test unit (inline): vw - circle(at top 50vw left) assert_equals: expected "circle(at 0% 50vw)" but got ""
+FAIL test unit (inline): vw - circle(at top 50vw right) assert_equals: expected "circle(at 100% 50vw)" but got ""
+FAIL test unit (inline): vw - circle(at bottom 70vw center) assert_equals: expected "circle(at left 50% bottom 70vw)" but got ""
+FAIL test unit (inline): vw - circle(at bottom 70vw left) assert_equals: expected "circle(at left 0% bottom 70vw)" but got ""
+FAIL test unit (inline): vw - circle(at bottom 70vw right) assert_equals: expected "circle(at left 100% bottom 70vw)" but got ""
+FAIL test unit (inline): vw - circle(at right 80vw center) assert_equals: expected "circle(at right 80vw top 50%)" but got ""
+FAIL test unit (inline): vw - circle(at right 80vw bottom) assert_equals: expected "circle(at right 80vw top 100%)" but got ""
+FAIL test unit (inline): vw - circle(at right 80vw top) assert_equals: expected "circle(at right 80vw top 0%)" but got ""
 PASS test unit (inline): vw - circle(at left 50% top 50vw) 
 PASS test unit (inline): vw - circle(at left 50% bottom 70vw) 
 PASS test unit (inline): vw - circle(at left 50vw top 50%) 
@@ -589,30 +589,30 @@ PASS test unit (inline): vh - circle(at right 80vh)
 PASS test unit (inline): vh - circle(at 70vh bottom) 
 PASS test unit (inline): vh - circle(at center 60vh) 
 PASS test unit (inline): vh - circle(at 60vh center) 
-PASS test unit (inline): vh - circle(at center top 50vh) 
-PASS test unit (inline): vh - circle(at center left 50vh) 
-PASS test unit (inline): vh - circle(at center right 70vh) 
-PASS test unit (inline): vh - circle(at center bottom 70vh) 
-PASS test unit (inline): vh - circle(at left top 50vh) 
-PASS test unit (inline): vh - circle(at left bottom 70vh) 
-PASS test unit (inline): vh - circle(at top left 50vh) 
-PASS test unit (inline): vh - circle(at top right 70vh) 
-PASS test unit (inline): vh - circle(at bottom left 50vh) 
-PASS test unit (inline): vh - circle(at bottom right 70vh) 
-PASS test unit (inline): vh - circle(at right bottom 70vh) 
-PASS test unit (inline): vh - circle(at right top 50vh) 
-PASS test unit (inline): vh - circle(at left 50vh center) 
-PASS test unit (inline): vh - circle(at left 50vh top) 
-PASS test unit (inline): vh - circle(at left 50vh bottom) 
-PASS test unit (inline): vh - circle(at top 50vh center) 
-PASS test unit (inline): vh - circle(at top 50vh left) 
-PASS test unit (inline): vh - circle(at top 50vh right) 
-PASS test unit (inline): vh - circle(at bottom 70vh center) 
-PASS test unit (inline): vh - circle(at bottom 70vh left) 
-PASS test unit (inline): vh - circle(at bottom 70vh right) 
-PASS test unit (inline): vh - circle(at right 80vh center) 
-PASS test unit (inline): vh - circle(at right 80vh bottom) 
-PASS test unit (inline): vh - circle(at right 80vh top) 
+FAIL test unit (inline): vh - circle(at center top 50vh) assert_equals: expected "circle(at 50% 50vh)" but got ""
+FAIL test unit (inline): vh - circle(at center left 50vh) assert_equals: expected "circle(at 50vh 50%)" but got ""
+FAIL test unit (inline): vh - circle(at center right 70vh) assert_equals: expected "circle(at right 70vh top 50%)" but got ""
+FAIL test unit (inline): vh - circle(at center bottom 70vh) assert_equals: expected "circle(at left 50% bottom 70vh)" but got ""
+FAIL test unit (inline): vh - circle(at left top 50vh) assert_equals: expected "circle(at 0% 50vh)" but got ""
+FAIL test unit (inline): vh - circle(at left bottom 70vh) assert_equals: expected "circle(at left 0% bottom 70vh)" but got ""
+FAIL test unit (inline): vh - circle(at top left 50vh) assert_equals: expected "circle(at 50vh 0%)" but got ""
+FAIL test unit (inline): vh - circle(at top right 70vh) assert_equals: expected "circle(at right 70vh top 0%)" but got ""
+FAIL test unit (inline): vh - circle(at bottom left 50vh) assert_equals: expected "circle(at 50vh 100%)" but got ""
+FAIL test unit (inline): vh - circle(at bottom right 70vh) assert_equals: expected "circle(at right 70vh top 100%)" but got ""
+FAIL test unit (inline): vh - circle(at right bottom 70vh) assert_equals: expected "circle(at left 100% bottom 70vh)" but got ""
+FAIL test unit (inline): vh - circle(at right top 50vh) assert_equals: expected "circle(at 100% 50vh)" but got ""
+FAIL test unit (inline): vh - circle(at left 50vh center) assert_equals: expected "circle(at 50vh 50%)" but got ""
+FAIL test unit (inline): vh - circle(at left 50vh top) assert_equals: expected "circle(at 50vh 0%)" but got ""
+FAIL test unit (inline): vh - circle(at left 50vh bottom) assert_equals: expected "circle(at 50vh 100%)" but got ""
+FAIL test unit (inline): vh - circle(at top 50vh center) assert_equals: expected "circle(at 50% 50vh)" but got ""
+FAIL test unit (inline): vh - circle(at top 50vh left) assert_equals: expected "circle(at 0% 50vh)" but got ""
+FAIL test unit (inline): vh - circle(at top 50vh right) assert_equals: expected "circle(at 100% 50vh)" but got ""
+FAIL test unit (inline): vh - circle(at bottom 70vh center) assert_equals: expected "circle(at left 50% bottom 70vh)" but got ""
+FAIL test unit (inline): vh - circle(at bottom 70vh left) assert_equals: expected "circle(at left 0% bottom 70vh)" but got ""
+FAIL test unit (inline): vh - circle(at bottom 70vh right) assert_equals: expected "circle(at left 100% bottom 70vh)" but got ""
+FAIL test unit (inline): vh - circle(at right 80vh center) assert_equals: expected "circle(at right 80vh top 50%)" but got ""
+FAIL test unit (inline): vh - circle(at right 80vh bottom) assert_equals: expected "circle(at right 80vh top 100%)" but got ""
+FAIL test unit (inline): vh - circle(at right 80vh top) assert_equals: expected "circle(at right 80vh top 0%)" but got ""
 PASS test unit (inline): vh - circle(at left 50% top 50vh) 
 PASS test unit (inline): vh - circle(at left 50% bottom 70vh) 
 PASS test unit (inline): vh - circle(at left 50vh top 50%) 
@@ -647,30 +647,30 @@ PASS test unit (inline): vmin - circle(at right 80vmin)
 PASS test unit (inline): vmin - circle(at 70vmin bottom) 
 PASS test unit (inline): vmin - circle(at center 60vmin) 
 PASS test unit (inline): vmin - circle(at 60vmin center) 
-PASS test unit (inline): vmin - circle(at center top 50vmin) 
-PASS test unit (inline): vmin - circle(at center left 50vmin) 
-PASS test unit (inline): vmin - circle(at center right 70vmin) 
-PASS test unit (inline): vmin - circle(at center bottom 70vmin) 
-PASS test unit (inline): vmin - circle(at left top 50vmin) 
-PASS test unit (inline): vmin - circle(at left bottom 70vmin) 
-PASS test unit (inline): vmin - circle(at top left 50vmin) 
-PASS test unit (inline): vmin - circle(at top right 70vmin) 
-PASS test unit (inline): vmin - circle(at bottom left 50vmin) 
-PASS test unit (inline): vmin - circle(at bottom right 70vmin) 
-PASS test unit (inline): vmin - circle(at right bottom 70vmin) 
-PASS test unit (inline): vmin - circle(at right top 50vmin) 
-PASS test unit (inline): vmin - circle(at left 50vmin center) 
-PASS test unit (inline): vmin - circle(at left 50vmin top) 
-PASS test unit (inline): vmin - circle(at left 50vmin bottom) 
-PASS test unit (inline): vmin - circle(at top 50vmin center) 
-PASS test unit (inline): vmin - circle(at top 50vmin left) 
-PASS test unit (inline): vmin - circle(at top 50vmin right) 
-PASS test unit (inline): vmin - circle(at bottom 70vmin center) 
-PASS test unit (inline): vmin - circle(at bottom 70vmin left) 
-PASS test unit (inline): vmin - circle(at bottom 70vmin right) 
-PASS test unit (inline): vmin - circle(at right 80vmin center) 
-PASS test unit (inline): vmin - circle(at right 80vmin bottom) 
-PASS test unit (inline): vmin - circle(at right 80vmin top) 
+FAIL test unit (inline): vmin - circle(at center top 50vmin) assert_equals: expected "circle(at 50% 50vmin)" but got ""
+FAIL test unit (inline): vmin - circle(at center left 50vmin) assert_equals: expected "circle(at 50vmin 50%)" but got ""
+FAIL test unit (inline): vmin - circle(at center right 70vmin) assert_equals: expected "circle(at right 70vmin top 50%)" but got ""
+FAIL test unit (inline): vmin - circle(at center bottom 70vmin) assert_equals: expected "circle(at left 50% bottom 70vmin)" but got ""
+FAIL test unit (inline): vmin - circle(at left top 50vmin) assert_equals: expected "circle(at 0% 50vmin)" but got ""
+FAIL test unit (inline): vmin - circle(at left bottom 70vmin) assert_equals: expected "circle(at left 0% bottom 70vmin)" but got ""
+FAIL test unit (inline): vmin - circle(at top left 50vmin) assert_equals: expected "circle(at 50vmin 0%)" but got ""
+FAIL test unit (inline): vmin - circle(at top right 70vmin) assert_equals: expected "circle(at right 70vmin top 0%)" but got ""
+FAIL test unit (inline): vmin - circle(at bottom left 50vmin) assert_equals: expected "circle(at 50vmin 100%)" but got ""
+FAIL test unit (inline): vmin - circle(at bottom right 70vmin) assert_equals: expected "circle(at right 70vmin top 100%)" but got ""
+FAIL test unit (inline): vmin - circle(at right bottom 70vmin) assert_equals: expected "circle(at left 100% bottom 70vmin)" but got ""
+FAIL test unit (inline): vmin - circle(at right top 50vmin) assert_equals: expected "circle(at 100% 50vmin)" but got ""
+FAIL test unit (inline): vmin - circle(at left 50vmin center) assert_equals: expected "circle(at 50vmin 50%)" but got ""
+FAIL test unit (inline): vmin - circle(at left 50vmin top) assert_equals: expected "circle(at 50vmin 0%)" but got ""
+FAIL test unit (inline): vmin - circle(at left 50vmin bottom) assert_equals: expected "circle(at 50vmin 100%)" but got ""
+FAIL test unit (inline): vmin - circle(at top 50vmin center) assert_equals: expected "circle(at 50% 50vmin)" but got ""
+FAIL test unit (inline): vmin - circle(at top 50vmin left) assert_equals: expected "circle(at 0% 50vmin)" but got ""
+FAIL test unit (inline): vmin - circle(at top 50vmin right) assert_equals: expected "circle(at 100% 50vmin)" but got ""
+FAIL test unit (inline): vmin - circle(at bottom 70vmin center) assert_equals: expected "circle(at left 50% bottom 70vmin)" but got ""
+FAIL test unit (inline): vmin - circle(at bottom 70vmin left) assert_equals: expected "circle(at left 0% bottom 70vmin)" but got ""
+FAIL test unit (inline): vmin - circle(at bottom 70vmin right) assert_equals: expected "circle(at left 100% bottom 70vmin)" but got ""
+FAIL test unit (inline): vmin - circle(at right 80vmin center) assert_equals: expected "circle(at right 80vmin top 50%)" but got ""
+FAIL test unit (inline): vmin - circle(at right 80vmin bottom) assert_equals: expected "circle(at right 80vmin top 100%)" but got ""
+FAIL test unit (inline): vmin - circle(at right 80vmin top) assert_equals: expected "circle(at right 80vmin top 0%)" but got ""
 PASS test unit (inline): vmin - circle(at left 50% top 50vmin) 
 PASS test unit (inline): vmin - circle(at left 50% bottom 70vmin) 
 PASS test unit (inline): vmin - circle(at left 50vmin top 50%) 
@@ -705,30 +705,30 @@ PASS test unit (inline): vmax - circle(at right 80vmax)
 PASS test unit (inline): vmax - circle(at 70vmax bottom) 
 PASS test unit (inline): vmax - circle(at center 60vmax) 
 PASS test unit (inline): vmax - circle(at 60vmax center) 
-PASS test unit (inline): vmax - circle(at center top 50vmax) 
-PASS test unit (inline): vmax - circle(at center left 50vmax) 
-PASS test unit (inline): vmax - circle(at center right 70vmax) 
-PASS test unit (inline): vmax - circle(at center bottom 70vmax) 
-PASS test unit (inline): vmax - circle(at left top 50vmax) 
-PASS test unit (inline): vmax - circle(at left bottom 70vmax) 
-PASS test unit (inline): vmax - circle(at top left 50vmax) 
-PASS test unit (inline): vmax - circle(at top right 70vmax) 
-PASS test unit (inline): vmax - circle(at bottom left 50vmax) 
-PASS test unit (inline): vmax - circle(at bottom right 70vmax) 
-PASS test unit (inline): vmax - circle(at right bottom 70vmax) 
-PASS test unit (inline): vmax - circle(at right top 50vmax) 
-PASS test unit (inline): vmax - circle(at left 50vmax center) 
-PASS test unit (inline): vmax - circle(at left 50vmax top) 
-PASS test unit (inline): vmax - circle(at left 50vmax bottom) 
-PASS test unit (inline): vmax - circle(at top 50vmax center) 
-PASS test unit (inline): vmax - circle(at top 50vmax left) 
-PASS test unit (inline): vmax - circle(at top 50vmax right) 
-PASS test unit (inline): vmax - circle(at bottom 70vmax center) 
-PASS test unit (inline): vmax - circle(at bottom 70vmax left) 
-PASS test unit (inline): vmax - circle(at bottom 70vmax right) 
-PASS test unit (inline): vmax - circle(at right 80vmax center) 
-PASS test unit (inline): vmax - circle(at right 80vmax bottom) 
-PASS test unit (inline): vmax - circle(at right 80vmax top) 
+FAIL test unit (inline): vmax - circle(at center top 50vmax) assert_equals: expected "circle(at 50% 50vmax)" but got ""
+FAIL test unit (inline): vmax - circle(at center left 50vmax) assert_equals: expected "circle(at 50vmax 50%)" but got ""
+FAIL test unit (inline): vmax - circle(at center right 70vmax) assert_equals: expected "circle(at right 70vmax top 50%)" but got ""
+FAIL test unit (inline): vmax - circle(at center bottom 70vmax) assert_equals: expected "circle(at left 50% bottom 70vmax)" but got ""
+FAIL test unit (inline): vmax - circle(at left top 50vmax) assert_equals: expected "circle(at 0% 50vmax)" but got ""
+FAIL test unit (inline): vmax - circle(at left bottom 70vmax) assert_equals: expected "circle(at left 0% bottom 70vmax)" but got ""
+FAIL test unit (inline): vmax - circle(at top left 50vmax) assert_equals: expected "circle(at 50vmax 0%)" but got ""
+FAIL test unit (inline): vmax - circle(at top right 70vmax) assert_equals: expected "circle(at right 70vmax top 0%)" but got ""
+FAIL test unit (inline): vmax - circle(at bottom left 50vmax) assert_equals: expected "circle(at 50vmax 100%)" but got ""
+FAIL test unit (inline): vmax - circle(at bottom right 70vmax) assert_equals: expected "circle(at right 70vmax top 100%)" but got ""
+FAIL test unit (inline): vmax - circle(at right bottom 70vmax) assert_equals: expected "circle(at left 100% bottom 70vmax)" but got ""
+FAIL test unit (inline): vmax - circle(at right top 50vmax) assert_equals: expected "circle(at 100% 50vmax)" but got ""
+FAIL test unit (inline): vmax - circle(at left 50vmax center) assert_equals: expected "circle(at 50vmax 50%)" but got ""
+FAIL test unit (inline): vmax - circle(at left 50vmax top) assert_equals: expected "circle(at 50vmax 0%)" but got ""
+FAIL test unit (inline): vmax - circle(at left 50vmax bottom) assert_equals: expected "circle(at 50vmax 100%)" but got ""
+FAIL test unit (inline): vmax - circle(at top 50vmax center) assert_equals: expected "circle(at 50% 50vmax)" but got ""
+FAIL test unit (inline): vmax - circle(at top 50vmax left) assert_equals: expected "circle(at 0% 50vmax)" but got ""
+FAIL test unit (inline): vmax - circle(at top 50vmax right) assert_equals: expected "circle(at 100% 50vmax)" but got ""
+FAIL test unit (inline): vmax - circle(at bottom 70vmax center) assert_equals: expected "circle(at left 50% bottom 70vmax)" but got ""
+FAIL test unit (inline): vmax - circle(at bottom 70vmax left) assert_equals: expected "circle(at left 0% bottom 70vmax)" but got ""
+FAIL test unit (inline): vmax - circle(at bottom 70vmax right) assert_equals: expected "circle(at left 100% bottom 70vmax)" but got ""
+FAIL test unit (inline): vmax - circle(at right 80vmax center) assert_equals: expected "circle(at right 80vmax top 50%)" but got ""
+FAIL test unit (inline): vmax - circle(at right 80vmax bottom) assert_equals: expected "circle(at right 80vmax top 100%)" but got ""
+FAIL test unit (inline): vmax - circle(at right 80vmax top) assert_equals: expected "circle(at right 80vmax top 0%)" but got ""
 PASS test unit (inline): vmax - circle(at left 50% top 50vmax) 
 PASS test unit (inline): vmax - circle(at left 50% bottom 70vmax) 
 PASS test unit (inline): vmax - circle(at left 50vmax top 50%) 
@@ -763,30 +763,30 @@ PASS test unit (computed): cm - circle(at right 80cm)
 PASS test unit (computed): cm - circle(at 70cm bottom) 
 PASS test unit (computed): cm - circle(at center 60cm) 
 PASS test unit (computed): cm - circle(at 60cm center) 
-PASS test unit (computed): cm - circle(at center top 50cm) 
-PASS test unit (computed): cm - circle(at center left 50cm) 
-PASS test unit (computed): cm - circle(at center right 70cm) 
-PASS test unit (computed): cm - circle(at center bottom 70cm) 
-PASS test unit (computed): cm - circle(at left top 50cm) 
-PASS test unit (computed): cm - circle(at left bottom 70cm) 
-PASS test unit (computed): cm - circle(at top left 50cm) 
-PASS test unit (computed): cm - circle(at top right 70cm) 
-PASS test unit (computed): cm - circle(at bottom left 50cm) 
-PASS test unit (computed): cm - circle(at bottom right 70cm) 
-PASS test unit (computed): cm - circle(at right bottom 70cm) 
-PASS test unit (computed): cm - circle(at right top 50cm) 
-PASS test unit (computed): cm - circle(at left 50cm center) 
-PASS test unit (computed): cm - circle(at left 50cm top) 
-PASS test unit (computed): cm - circle(at left 50cm bottom) 
-PASS test unit (computed): cm - circle(at top 50cm center) 
-PASS test unit (computed): cm - circle(at top 50cm left) 
-PASS test unit (computed): cm - circle(at top 50cm right) 
-PASS test unit (computed): cm - circle(at bottom 70cm center) 
-PASS test unit (computed): cm - circle(at bottom 70cm left) 
-PASS test unit (computed): cm - circle(at bottom 70cm right) 
-PASS test unit (computed): cm - circle(at right 80cm center) 
-PASS test unit (computed): cm - circle(at right 80cm bottom) 
-PASS test unit (computed): cm - circle(at right 80cm top) 
+FAIL test unit (computed): cm - circle(at center top 50cm) assert_equals: expected "circle(at 50% 1889.764px)" but got "none"
+FAIL test unit (computed): cm - circle(at center left 50cm) assert_equals: expected "circle(at 1889.764px 50%)" but got "none"
+FAIL test unit (computed): cm - circle(at center right 70cm) assert_equals: expected "circle(at right 2645.669px top 50%)" but got "none"
+FAIL test unit (computed): cm - circle(at center bottom 70cm) assert_equals: expected "circle(at left 50% bottom 2645.669px)" but got "none"
+FAIL test unit (computed): cm - circle(at left top 50cm) assert_equals: expected "circle(at 0% 1889.764px)" but got "none"
+FAIL test unit (computed): cm - circle(at left bottom 70cm) assert_equals: expected "circle(at left 0% bottom 2645.669px)" but got "none"
+FAIL test unit (computed): cm - circle(at top left 50cm) assert_equals: expected "circle(at 1889.764px 0%)" but got "none"
+FAIL test unit (computed): cm - circle(at top right 70cm) assert_equals: expected "circle(at right 2645.669px top 0%)" but got "none"
+FAIL test unit (computed): cm - circle(at bottom left 50cm) assert_equals: expected "circle(at 1889.764px 100%)" but got "none"
+FAIL test unit (computed): cm - circle(at bottom right 70cm) assert_equals: expected "circle(at right 2645.669px top 100%)" but got "none"
+FAIL test unit (computed): cm - circle(at right bottom 70cm) assert_equals: expected "circle(at left 100% bottom 2645.669px)" but got "none"
+FAIL test unit (computed): cm - circle(at right top 50cm) assert_equals: expected "circle(at 100% 1889.764px)" but got "none"
+FAIL test unit (computed): cm - circle(at left 50cm center) assert_equals: expected "circle(at 1889.764px 50%)" but got "none"
+FAIL test unit (computed): cm - circle(at left 50cm top) assert_equals: expected "circle(at 1889.764px 0%)" but got "none"
+FAIL test unit (computed): cm - circle(at left 50cm bottom) assert_equals: expected "circle(at 1889.764px 100%)" but got "none"
+FAIL test unit (computed): cm - circle(at top 50cm center) assert_equals: expected "circle(at 50% 1889.764px)" but got "none"
+FAIL test unit (computed): cm - circle(at top 50cm left) assert_equals: expected "circle(at 0% 1889.764px)" but got "none"
+FAIL test unit (computed): cm - circle(at top 50cm right) assert_equals: expected "circle(at 100% 1889.764px)" but got "none"
+FAIL test unit (computed): cm - circle(at bottom 70cm center) assert_equals: expected "circle(at left 50% bottom 2645.669px)" but got "none"
+FAIL test unit (computed): cm - circle(at bottom 70cm left) assert_equals: expected "circle(at left 0% bottom 2645.669px)" but got "none"
+FAIL test unit (computed): cm - circle(at bottom 70cm right) assert_equals: expected "circle(at left 100% bottom 2645.669px)" but got "none"
+FAIL test unit (computed): cm - circle(at right 80cm center) assert_equals: expected "circle(at right 3023.622px top 50%)" but got "none"
+FAIL test unit (computed): cm - circle(at right 80cm bottom) assert_equals: expected "circle(at right 3023.622px top 100%)" but got "none"
+FAIL test unit (computed): cm - circle(at right 80cm top) assert_equals: expected "circle(at right 3023.622px top 0%)" but got "none"
 PASS test unit (computed): cm - circle(at left 50% top 50cm) 
 PASS test unit (computed): cm - circle(at left 50% bottom 70cm) 
 PASS test unit (computed): cm - circle(at left 50cm top 50%) 
@@ -821,30 +821,30 @@ PASS test unit (computed): mm - circle(at right 80mm)
 PASS test unit (computed): mm - circle(at 70mm bottom) 
 PASS test unit (computed): mm - circle(at center 60mm) 
 PASS test unit (computed): mm - circle(at 60mm center) 
-PASS test unit (computed): mm - circle(at center top 50mm) 
-PASS test unit (computed): mm - circle(at center left 50mm) 
-PASS test unit (computed): mm - circle(at center right 70mm) 
-PASS test unit (computed): mm - circle(at center bottom 70mm) 
-PASS test unit (computed): mm - circle(at left top 50mm) 
-PASS test unit (computed): mm - circle(at left bottom 70mm) 
-PASS test unit (computed): mm - circle(at top left 50mm) 
-PASS test unit (computed): mm - circle(at top right 70mm) 
-PASS test unit (computed): mm - circle(at bottom left 50mm) 
-PASS test unit (computed): mm - circle(at bottom right 70mm) 
-PASS test unit (computed): mm - circle(at right bottom 70mm) 
-PASS test unit (computed): mm - circle(at right top 50mm) 
-PASS test unit (computed): mm - circle(at left 50mm center) 
-PASS test unit (computed): mm - circle(at left 50mm top) 
-PASS test unit (computed): mm - circle(at left 50mm bottom) 
-PASS test unit (computed): mm - circle(at top 50mm center) 
-PASS test unit (computed): mm - circle(at top 50mm left) 
-PASS test unit (computed): mm - circle(at top 50mm right) 
-PASS test unit (computed): mm - circle(at bottom 70mm center) 
-PASS test unit (computed): mm - circle(at bottom 70mm left) 
-PASS test unit (computed): mm - circle(at bottom 70mm right) 
-PASS test unit (computed): mm - circle(at right 80mm center) 
-PASS test unit (computed): mm - circle(at right 80mm bottom) 
-PASS test unit (computed): mm - circle(at right 80mm top) 
+FAIL test unit (computed): mm - circle(at center top 50mm) assert_equals: expected "circle(at 50% 188.976px)" but got "none"
+FAIL test unit (computed): mm - circle(at center left 50mm) assert_equals: expected "circle(at 188.976px 50%)" but got "none"
+FAIL test unit (computed): mm - circle(at center right 70mm) assert_equals: expected "circle(at right 264.567px top 50%)" but got "none"
+FAIL test unit (computed): mm - circle(at center bottom 70mm) assert_equals: expected "circle(at left 50% bottom 264.567px)" but got "none"
+FAIL test unit (computed): mm - circle(at left top 50mm) assert_equals: expected "circle(at 0% 188.976px)" but got "none"
+FAIL test unit (computed): mm - circle(at left bottom 70mm) assert_equals: expected "circle(at left 0% bottom 264.567px)" but got "none"
+FAIL test unit (computed): mm - circle(at top left 50mm) assert_equals: expected "circle(at 188.976px 0%)" but got "none"
+FAIL test unit (computed): mm - circle(at top right 70mm) assert_equals: expected "circle(at right 264.567px top 0%)" but got "none"
+FAIL test unit (computed): mm - circle(at bottom left 50mm) assert_equals: expected "circle(at 188.976px 100%)" but got "none"
+FAIL test unit (computed): mm - circle(at bottom right 70mm) assert_equals: expected "circle(at right 264.567px top 100%)" but got "none"
+FAIL test unit (computed): mm - circle(at right bottom 70mm) assert_equals: expected "circle(at left 100% bottom 264.567px)" but got "none"
+FAIL test unit (computed): mm - circle(at right top 50mm) assert_equals: expected "circle(at 100% 188.976px)" but got "none"
+FAIL test unit (computed): mm - circle(at left 50mm center) assert_equals: expected "circle(at 188.976px 50%)" but got "none"
+FAIL test unit (computed): mm - circle(at left 50mm top) assert_equals: expected "circle(at 188.976px 0%)" but got "none"
+FAIL test unit (computed): mm - circle(at left 50mm bottom) assert_equals: expected "circle(at 188.976px 100%)" but got "none"
+FAIL test unit (computed): mm - circle(at top 50mm center) assert_equals: expected "circle(at 50% 188.976px)" but got "none"
+FAIL test unit (computed): mm - circle(at top 50mm left) assert_equals: expected "circle(at 0% 188.976px)" but got "none"
+FAIL test unit (computed): mm - circle(at top 50mm right) assert_equals: expected "circle(at 100% 188.976px)" but got "none"
+FAIL test unit (computed): mm - circle(at bottom 70mm center) assert_equals: expected "circle(at left 50% bottom 264.567px)" but got "none"
+FAIL test unit (computed): mm - circle(at bottom 70mm left) assert_equals: expected "circle(at left 0% bottom 264.567px)" but got "none"
+FAIL test unit (computed): mm - circle(at bottom 70mm right) assert_equals: expected "circle(at left 100% bottom 264.567px)" but got "none"
+FAIL test unit (computed): mm - circle(at right 80mm center) assert_equals: expected "circle(at right 302.362px top 50%)" but got "none"
+FAIL test unit (computed): mm - circle(at right 80mm bottom) assert_equals: expected "circle(at right 302.362px top 100%)" but got "none"
+FAIL test unit (computed): mm - circle(at right 80mm top) assert_equals: expected "circle(at right 302.362px top 0%)" but got "none"
 PASS test unit (computed): mm - circle(at left 50% top 50mm) 
 PASS test unit (computed): mm - circle(at left 50% bottom 70mm) 
 PASS test unit (computed): mm - circle(at left 50mm top 50%) 
@@ -879,30 +879,30 @@ PASS test unit (computed): in - circle(at right 80in)
 PASS test unit (computed): in - circle(at 70in bottom) 
 PASS test unit (computed): in - circle(at center 60in) 
 PASS test unit (computed): in - circle(at 60in center) 
-PASS test unit (computed): in - circle(at center top 50in) 
-PASS test unit (computed): in - circle(at center left 50in) 
-PASS test unit (computed): in - circle(at center right 70in) 
-PASS test unit (computed): in - circle(at center bottom 70in) 
-PASS test unit (computed): in - circle(at left top 50in) 
-PASS test unit (computed): in - circle(at left bottom 70in) 
-PASS test unit (computed): in - circle(at top left 50in) 
-PASS test unit (computed): in - circle(at top right 70in) 
-PASS test unit (computed): in - circle(at bottom left 50in) 
-PASS test unit (computed): in - circle(at bottom right 70in) 
-PASS test unit (computed): in - circle(at right bottom 70in) 
-PASS test unit (computed): in - circle(at right top 50in) 
-PASS test unit (computed): in - circle(at left 50in center) 
-PASS test unit (computed): in - circle(at left 50in top) 
-PASS test unit (computed): in - circle(at left 50in bottom) 
-PASS test unit (computed): in - circle(at top 50in center) 
-PASS test unit (computed): in - circle(at top 50in left) 
-PASS test unit (computed): in - circle(at top 50in right) 
-PASS test unit (computed): in - circle(at bottom 70in center) 
-PASS test unit (computed): in - circle(at bottom 70in left) 
-PASS test unit (computed): in - circle(at bottom 70in right) 
-PASS test unit (computed): in - circle(at right 80in center) 
-PASS test unit (computed): in - circle(at right 80in bottom) 
-PASS test unit (computed): in - circle(at right 80in top) 
+FAIL test unit (computed): in - circle(at center top 50in) assert_equals: expected "circle(at 50% 4800px)" but got "none"
+FAIL test unit (computed): in - circle(at center left 50in) assert_equals: expected "circle(at 4800px 50%)" but got "none"
+FAIL test unit (computed): in - circle(at center right 70in) assert_equals: expected "circle(at right 6720px top 50%)" but got "none"
+FAIL test unit (computed): in - circle(at center bottom 70in) assert_equals: expected "circle(at left 50% bottom 6720px)" but got "none"
+FAIL test unit (computed): in - circle(at left top 50in) assert_equals: expected "circle(at 0% 4800px)" but got "none"
+FAIL test unit (computed): in - circle(at left bottom 70in) assert_equals: expected "circle(at left 0% bottom 6720px)" but got "none"
+FAIL test unit (computed): in - circle(at top left 50in) assert_equals: expected "circle(at 4800px 0%)" but got "none"
+FAIL test unit (computed): in - circle(at top right 70in) assert_equals: expected "circle(at right 6720px top 0%)" but got "none"
+FAIL test unit (computed): in - circle(at bottom left 50in) assert_equals: expected "circle(at 4800px 100%)" but got "none"
+FAIL test unit (computed): in - circle(at bottom right 70in) assert_equals: expected "circle(at right 6720px top 100%)" but got "none"
+FAIL test unit (computed): in - circle(at right bottom 70in) assert_equals: expected "circle(at left 100% bottom 6720px)" but got "none"
+FAIL test unit (computed): in - circle(at right top 50in) assert_equals: expected "circle(at 100% 4800px)" but got "none"
+FAIL test unit (computed): in - circle(at left 50in center) assert_equals: expected "circle(at 4800px 50%)" but got "none"
+FAIL test unit (computed): in - circle(at left 50in top) assert_equals: expected "circle(at 4800px 0%)" but got "none"
+FAIL test unit (computed): in - circle(at left 50in bottom) assert_equals: expected "circle(at 4800px 100%)" but got "none"
+FAIL test unit (computed): in - circle(at top 50in center) assert_equals: expected "circle(at 50% 4800px)" but got "none"
+FAIL test unit (computed): in - circle(at top 50in left) assert_equals: expected "circle(at 0% 4800px)" but got "none"
+FAIL test unit (computed): in - circle(at top 50in right) assert_equals: expected "circle(at 100% 4800px)" but got "none"
+FAIL test unit (computed): in - circle(at bottom 70in center) assert_equals: expected "circle(at left 50% bottom 6720px)" but got "none"
+FAIL test unit (computed): in - circle(at bottom 70in left) assert_equals: expected "circle(at left 0% bottom 6720px)" but got "none"
+FAIL test unit (computed): in - circle(at bottom 70in right) assert_equals: expected "circle(at left 100% bottom 6720px)" but got "none"
+FAIL test unit (computed): in - circle(at right 80in center) assert_equals: expected "circle(at right 7680px top 50%)" but got "none"
+FAIL test unit (computed): in - circle(at right 80in bottom) assert_equals: expected "circle(at right 7680px top 100%)" but got "none"
+FAIL test unit (computed): in - circle(at right 80in top) assert_equals: expected "circle(at right 7680px top 0%)" but got "none"
 PASS test unit (computed): in - circle(at left 50% top 50in) 
 PASS test unit (computed): in - circle(at left 50% bottom 70in) 
 PASS test unit (computed): in - circle(at left 50in top 50%) 
@@ -937,30 +937,30 @@ PASS test unit (computed): pt - circle(at right 80pt)
 PASS test unit (computed): pt - circle(at 70pt bottom) 
 PASS test unit (computed): pt - circle(at center 60pt) 
 PASS test unit (computed): pt - circle(at 60pt center) 
-PASS test unit (computed): pt - circle(at center top 50pt) 
-PASS test unit (computed): pt - circle(at center left 50pt) 
-PASS test unit (computed): pt - circle(at center right 70pt) 
-PASS test unit (computed): pt - circle(at center bottom 70pt) 
-PASS test unit (computed): pt - circle(at left top 50pt) 
-PASS test unit (computed): pt - circle(at left bottom 70pt) 
-PASS test unit (computed): pt - circle(at top left 50pt) 
-PASS test unit (computed): pt - circle(at top right 70pt) 
-PASS test unit (computed): pt - circle(at bottom left 50pt) 
-PASS test unit (computed): pt - circle(at bottom right 70pt) 
-PASS test unit (computed): pt - circle(at right bottom 70pt) 
-PASS test unit (computed): pt - circle(at right top 50pt) 
-PASS test unit (computed): pt - circle(at left 50pt center) 
-PASS test unit (computed): pt - circle(at left 50pt top) 
-PASS test unit (computed): pt - circle(at left 50pt bottom) 
-PASS test unit (computed): pt - circle(at top 50pt center) 
-PASS test unit (computed): pt - circle(at top 50pt left) 
-PASS test unit (computed): pt - circle(at top 50pt right) 
-PASS test unit (computed): pt - circle(at bottom 70pt center) 
-PASS test unit (computed): pt - circle(at bottom 70pt left) 
-PASS test unit (computed): pt - circle(at bottom 70pt right) 
-PASS test unit (computed): pt - circle(at right 80pt center) 
-PASS test unit (computed): pt - circle(at right 80pt bottom) 
-PASS test unit (computed): pt - circle(at right 80pt top) 
+FAIL test unit (computed): pt - circle(at center top 50pt) assert_equals: expected "circle(at 50% 66.667px)" but got "none"
+FAIL test unit (computed): pt - circle(at center left 50pt) assert_equals: expected "circle(at 66.667px 50%)" but got "none"
+FAIL test unit (computed): pt - circle(at center right 70pt) assert_equals: expected "circle(at right 93.333px top 50%)" but got "none"
+FAIL test unit (computed): pt - circle(at center bottom 70pt) assert_equals: expected "circle(at left 50% bottom 93.333px)" but got "none"
+FAIL test unit (computed): pt - circle(at left top 50pt) assert_equals: expected "circle(at 0% 66.667px)" but got "none"
+FAIL test unit (computed): pt - circle(at left bottom 70pt) assert_equals: expected "circle(at left 0% bottom 93.333px)" but got "none"
+FAIL test unit (computed): pt - circle(at top left 50pt) assert_equals: expected "circle(at 66.667px 0%)" but got "none"
+FAIL test unit (computed): pt - circle(at top right 70pt) assert_equals: expected "circle(at right 93.333px top 0%)" but got "none"
+FAIL test unit (computed): pt - circle(at bottom left 50pt) assert_equals: expected "circle(at 66.667px 100%)" but got "none"
+FAIL test unit (computed): pt - circle(at bottom right 70pt) assert_equals: expected "circle(at right 93.333px top 100%)" but got "none"
+FAIL test unit (computed): pt - circle(at right bottom 70pt) assert_equals: expected "circle(at left 100% bottom 93.333px)" but got "none"
+FAIL test unit (computed): pt - circle(at right top 50pt) assert_equals: expected "circle(at 100% 66.667px)" but got "none"
+FAIL test unit (computed): pt - circle(at left 50pt center) assert_equals: expected "circle(at 66.667px 50%)" but got "none"
+FAIL test unit (computed): pt - circle(at left 50pt top) assert_equals: expected "circle(at 66.667px 0%)" but got "none"
+FAIL test unit (computed): pt - circle(at left 50pt bottom) assert_equals: expected "circle(at 66.667px 100%)" but got "none"
+FAIL test unit (computed): pt - circle(at top 50pt center) assert_equals: expected "circle(at 50% 66.667px)" but got "none"
+FAIL test unit (computed): pt - circle(at top 50pt left) assert_equals: expected "circle(at 0% 66.667px)" but got "none"
+FAIL test unit (computed): pt - circle(at top 50pt right) assert_equals: expected "circle(at 100% 66.667px)" but got "none"
+FAIL test unit (computed): pt - circle(at bottom 70pt center) assert_equals: expected "circle(at left 50% bottom 93.333px)" but got "none"
+FAIL test unit (computed): pt - circle(at bottom 70pt left) assert_equals: expected "circle(at left 0% bottom 93.333px)" but got "none"
+FAIL test unit (computed): pt - circle(at bottom 70pt right) assert_equals: expected "circle(at left 100% bottom 93.333px)" but got "none"
+FAIL test unit (computed): pt - circle(at right 80pt center) assert_equals: expected "circle(at right 106.667px top 50%)" but got "none"
+FAIL test unit (computed): pt - circle(at right 80pt bottom) assert_equals: expected "circle(at right 106.667px top 100%)" but got "none"
+FAIL test unit (computed): pt - circle(at right 80pt top) assert_equals: expected "circle(at right 106.667px top 0%)" but got "none"
 PASS test unit (computed): pt - circle(at left 50% top 50pt) 
 PASS test unit (computed): pt - circle(at left 50% bottom 70pt) 
 PASS test unit (computed): pt - circle(at left 50pt top 50%) 
@@ -995,30 +995,30 @@ PASS test unit (computed): pc - circle(at right 80pc)
 PASS test unit (computed): pc - circle(at 70pc bottom) 
 PASS test unit (computed): pc - circle(at center 60pc) 
 PASS test unit (computed): pc - circle(at 60pc center) 
-PASS test unit (computed): pc - circle(at center top 50pc) 
-PASS test unit (computed): pc - circle(at center left 50pc) 
-PASS test unit (computed): pc - circle(at center right 70pc) 
-PASS test unit (computed): pc - circle(at center bottom 70pc) 
-PASS test unit (computed): pc - circle(at left top 50pc) 
-PASS test unit (computed): pc - circle(at left bottom 70pc) 
-PASS test unit (computed): pc - circle(at top left 50pc) 
-PASS test unit (computed): pc - circle(at top right 70pc) 
-PASS test unit (computed): pc - circle(at bottom left 50pc) 
-PASS test unit (computed): pc - circle(at bottom right 70pc) 
-PASS test unit (computed): pc - circle(at right bottom 70pc) 
-PASS test unit (computed): pc - circle(at right top 50pc) 
-PASS test unit (computed): pc - circle(at left 50pc center) 
-PASS test unit (computed): pc - circle(at left 50pc top) 
-PASS test unit (computed): pc - circle(at left 50pc bottom) 
-PASS test unit (computed): pc - circle(at top 50pc center) 
-PASS test unit (computed): pc - circle(at top 50pc left) 
-PASS test unit (computed): pc - circle(at top 50pc right) 
-PASS test unit (computed): pc - circle(at bottom 70pc center) 
-PASS test unit (computed): pc - circle(at bottom 70pc left) 
-PASS test unit (computed): pc - circle(at bottom 70pc right) 
-PASS test unit (computed): pc - circle(at right 80pc center) 
-PASS test unit (computed): pc - circle(at right 80pc bottom) 
-PASS test unit (computed): pc - circle(at right 80pc top) 
+FAIL test unit (computed): pc - circle(at center top 50pc) assert_equals: expected "circle(at 50% 800px)" but got "none"
+FAIL test unit (computed): pc - circle(at center left 50pc) assert_equals: expected "circle(at 800px 50%)" but got "none"
+FAIL test unit (computed): pc - circle(at center right 70pc) assert_equals: expected "circle(at right 1120px top 50%)" but got "none"
+FAIL test unit (computed): pc - circle(at center bottom 70pc) assert_equals: expected "circle(at left 50% bottom 1120px)" but got "none"
+FAIL test unit (computed): pc - circle(at left top 50pc) assert_equals: expected "circle(at 0% 800px)" but got "none"
+FAIL test unit (computed): pc - circle(at left bottom 70pc) assert_equals: expected "circle(at left 0% bottom 1120px)" but got "none"
+FAIL test unit (computed): pc - circle(at top left 50pc) assert_equals: expected "circle(at 800px 0%)" but got "none"
+FAIL test unit (computed): pc - circle(at top right 70pc) assert_equals: expected "circle(at right 1120px top 0%)" but got "none"
+FAIL test unit (computed): pc - circle(at bottom left 50pc) assert_equals: expected "circle(at 800px 100%)" but got "none"
+FAIL test unit (computed): pc - circle(at bottom right 70pc) assert_equals: expected "circle(at right 1120px top 100%)" but got "none"
+FAIL test unit (computed): pc - circle(at right bottom 70pc) assert_equals: expected "circle(at left 100% bottom 1120px)" but got "none"
+FAIL test unit (computed): pc - circle(at right top 50pc) assert_equals: expected "circle(at 100% 800px)" but got "none"
+FAIL test unit (computed): pc - circle(at left 50pc center) assert_equals: expected "circle(at 800px 50%)" but got "none"
+FAIL test unit (computed): pc - circle(at left 50pc top) assert_equals: expected "circle(at 800px 0%)" but got "none"
+FAIL test unit (computed): pc - circle(at left 50pc bottom) assert_equals: expected "circle(at 800px 100%)" but got "none"
+FAIL test unit (computed): pc - circle(at top 50pc center) assert_equals: expected "circle(at 50% 800px)" but got "none"
+FAIL test unit (computed): pc - circle(at top 50pc left) assert_equals: expected "circle(at 0% 800px)" but got "none"
+FAIL test unit (computed): pc - circle(at top 50pc right) assert_equals: expected "circle(at 100% 800px)" but got "none"
+FAIL test unit (computed): pc - circle(at bottom 70pc center) assert_equals: expected "circle(at left 50% bottom 1120px)" but got "none"
+FAIL test unit (computed): pc - circle(at bottom 70pc left) assert_equals: expected "circle(at left 0% bottom 1120px)" but got "none"
+FAIL test unit (computed): pc - circle(at bottom 70pc right) assert_equals: expected "circle(at left 100% bottom 1120px)" but got "none"
+FAIL test unit (computed): pc - circle(at right 80pc center) assert_equals: expected "circle(at right 1280px top 50%)" but got "none"
+FAIL test unit (computed): pc - circle(at right 80pc bottom) assert_equals: expected "circle(at right 1280px top 100%)" but got "none"
+FAIL test unit (computed): pc - circle(at right 80pc top) assert_equals: expected "circle(at right 1280px top 0%)" but got "none"
 PASS test unit (computed): pc - circle(at left 50% top 50pc) 
 PASS test unit (computed): pc - circle(at left 50% bottom 70pc) 
 PASS test unit (computed): pc - circle(at left 50pc top 50%) 
@@ -1053,30 +1053,30 @@ PASS test unit (computed): em - circle(at right 80em)
 PASS test unit (computed): em - circle(at 70em bottom) 
 PASS test unit (computed): em - circle(at center 60em) 
 PASS test unit (computed): em - circle(at 60em center) 
-PASS test unit (computed): em - circle(at center top 50em) 
-PASS test unit (computed): em - circle(at center left 50em) 
-PASS test unit (computed): em - circle(at center right 70em) 
-PASS test unit (computed): em - circle(at center bottom 70em) 
-PASS test unit (computed): em - circle(at left top 50em) 
-PASS test unit (computed): em - circle(at left bottom 70em) 
-PASS test unit (computed): em - circle(at top left 50em) 
-PASS test unit (computed): em - circle(at top right 70em) 
-PASS test unit (computed): em - circle(at bottom left 50em) 
-PASS test unit (computed): em - circle(at bottom right 70em) 
-PASS test unit (computed): em - circle(at right bottom 70em) 
-PASS test unit (computed): em - circle(at right top 50em) 
-PASS test unit (computed): em - circle(at left 50em center) 
-PASS test unit (computed): em - circle(at left 50em top) 
-PASS test unit (computed): em - circle(at left 50em bottom) 
-PASS test unit (computed): em - circle(at top 50em center) 
-PASS test unit (computed): em - circle(at top 50em left) 
-PASS test unit (computed): em - circle(at top 50em right) 
-PASS test unit (computed): em - circle(at bottom 70em center) 
-PASS test unit (computed): em - circle(at bottom 70em left) 
-PASS test unit (computed): em - circle(at bottom 70em right) 
-PASS test unit (computed): em - circle(at right 80em center) 
-PASS test unit (computed): em - circle(at right 80em bottom) 
-PASS test unit (computed): em - circle(at right 80em top) 
+FAIL test unit (computed): em - circle(at center top 50em) assert_equals: expected "circle(at 50% 800px)" but got "none"
+FAIL test unit (computed): em - circle(at center left 50em) assert_equals: expected "circle(at 800px 50%)" but got "none"
+FAIL test unit (computed): em - circle(at center right 70em) assert_equals: expected "circle(at right 1120px top 50%)" but got "none"
+FAIL test unit (computed): em - circle(at center bottom 70em) assert_equals: expected "circle(at left 50% bottom 1120px)" but got "none"
+FAIL test unit (computed): em - circle(at left top 50em) assert_equals: expected "circle(at 0% 800px)" but got "none"
+FAIL test unit (computed): em - circle(at left bottom 70em) assert_equals: expected "circle(at left 0% bottom 1120px)" but got "none"
+FAIL test unit (computed): em - circle(at top left 50em) assert_equals: expected "circle(at 800px 0%)" but got "none"
+FAIL test unit (computed): em - circle(at top right 70em) assert_equals: expected "circle(at right 1120px top 0%)" but got "none"
+FAIL test unit (computed): em - circle(at bottom left 50em) assert_equals: expected "circle(at 800px 100%)" but got "none"
+FAIL test unit (computed): em - circle(at bottom right 70em) assert_equals: expected "circle(at right 1120px top 100%)" but got "none"
+FAIL test unit (computed): em - circle(at right bottom 70em) assert_equals: expected "circle(at left 100% bottom 1120px)" but got "none"
+FAIL test unit (computed): em - circle(at right top 50em) assert_equals: expected "circle(at 100% 800px)" but got "none"
+FAIL test unit (computed): em - circle(at left 50em center) assert_equals: expected "circle(at 800px 50%)" but got "none"
+FAIL test unit (computed): em - circle(at left 50em top) assert_equals: expected "circle(at 800px 0%)" but got "none"
+FAIL test unit (computed): em - circle(at left 50em bottom) assert_equals: expected "circle(at 800px 100%)" but got "none"
+FAIL test unit (computed): em - circle(at top 50em center) assert_equals: expected "circle(at 50% 800px)" but got "none"
+FAIL test unit (computed): em - circle(at top 50em left) assert_equals: expected "circle(at 0% 800px)" but got "none"
+FAIL test unit (computed): em - circle(at top 50em right) assert_equals: expected "circle(at 100% 800px)" but got "none"
+FAIL test unit (computed): em - circle(at bottom 70em center) assert_equals: expected "circle(at left 50% bottom 1120px)" but got "none"
+FAIL test unit (computed): em - circle(at bottom 70em left) assert_equals: expected "circle(at left 0% bottom 1120px)" but got "none"
+FAIL test unit (computed): em - circle(at bottom 70em right) assert_equals: expected "circle(at left 100% bottom 1120px)" but got "none"
+FAIL test unit (computed): em - circle(at right 80em center) assert_equals: expected "circle(at right 1280px top 50%)" but got "none"
+FAIL test unit (computed): em - circle(at right 80em bottom) assert_equals: expected "circle(at right 1280px top 100%)" but got "none"
+FAIL test unit (computed): em - circle(at right 80em top) assert_equals: expected "circle(at right 1280px top 0%)" but got "none"
 PASS test unit (computed): em - circle(at left 50% top 50em) 
 PASS test unit (computed): em - circle(at left 50% bottom 70em) 
 PASS test unit (computed): em - circle(at left 50em top 50%) 
@@ -1111,30 +1111,30 @@ PASS test unit (computed): ex - circle(at right 80ex)
 PASS test unit (computed): ex - circle(at 70ex bottom) 
 PASS test unit (computed): ex - circle(at center 60ex) 
 PASS test unit (computed): ex - circle(at 60ex center) 
-PASS test unit (computed): ex - circle(at center top 50ex) 
-PASS test unit (computed): ex - circle(at center left 50ex) 
-PASS test unit (computed): ex - circle(at center right 70ex) 
-PASS test unit (computed): ex - circle(at center bottom 70ex) 
-PASS test unit (computed): ex - circle(at left top 50ex) 
-PASS test unit (computed): ex - circle(at left bottom 70ex) 
-PASS test unit (computed): ex - circle(at top left 50ex) 
-PASS test unit (computed): ex - circle(at top right 70ex) 
-PASS test unit (computed): ex - circle(at bottom left 50ex) 
-PASS test unit (computed): ex - circle(at bottom right 70ex) 
-PASS test unit (computed): ex - circle(at right bottom 70ex) 
-PASS test unit (computed): ex - circle(at right top 50ex) 
-PASS test unit (computed): ex - circle(at left 50ex center) 
-PASS test unit (computed): ex - circle(at left 50ex top) 
-PASS test unit (computed): ex - circle(at left 50ex bottom) 
-PASS test unit (computed): ex - circle(at top 50ex center) 
-PASS test unit (computed): ex - circle(at top 50ex left) 
-PASS test unit (computed): ex - circle(at top 50ex right) 
-PASS test unit (computed): ex - circle(at bottom 70ex center) 
-PASS test unit (computed): ex - circle(at bottom 70ex left) 
-PASS test unit (computed): ex - circle(at bottom 70ex right) 
-PASS test unit (computed): ex - circle(at right 80ex center) 
-PASS test unit (computed): ex - circle(at right 80ex bottom) 
-PASS test unit (computed): ex - circle(at right 80ex top) 
+FAIL test unit (computed): ex - circle(at center top 50ex) assert_equals: expected "circle(at 50% 358.984px)" but got "none"
+FAIL test unit (computed): ex - circle(at center left 50ex) assert_equals: expected "circle(at 358.984px 50%)" but got "none"
+FAIL test unit (computed): ex - circle(at center right 70ex) assert_equals: expected "circle(at right 502.578px top 50%)" but got "none"
+FAIL test unit (computed): ex - circle(at center bottom 70ex) assert_equals: expected "circle(at left 50% bottom 502.578px)" but got "none"
+FAIL test unit (computed): ex - circle(at left top 50ex) assert_equals: expected "circle(at 0% 358.984px)" but got "none"
+FAIL test unit (computed): ex - circle(at left bottom 70ex) assert_equals: expected "circle(at left 0% bottom 502.578px)" but got "none"
+FAIL test unit (computed): ex - circle(at top left 50ex) assert_equals: expected "circle(at 358.984px 0%)" but got "none"
+FAIL test unit (computed): ex - circle(at top right 70ex) assert_equals: expected "circle(at right 502.578px top 0%)" but got "none"
+FAIL test unit (computed): ex - circle(at bottom left 50ex) assert_equals: expected "circle(at 358.984px 100%)" but got "none"
+FAIL test unit (computed): ex - circle(at bottom right 70ex) assert_equals: expected "circle(at right 502.578px top 100%)" but got "none"
+FAIL test unit (computed): ex - circle(at right bottom 70ex) assert_equals: expected "circle(at left 100% bottom 502.578px)" but got "none"
+FAIL test unit (computed): ex - circle(at right top 50ex) assert_equals: expected "circle(at 100% 358.984px)" but got "none"
+FAIL test unit (computed): ex - circle(at left 50ex center) assert_equals: expected "circle(at 358.984px 50%)" but got "none"
+FAIL test unit (computed): ex - circle(at left 50ex top) assert_equals: expected "circle(at 358.984px 0%)" but got "none"
+FAIL test unit (computed): ex - circle(at left 50ex bottom) assert_equals: expected "circle(at 358.984px 100%)" but got "none"
+FAIL test unit (computed): ex - circle(at top 50ex center) assert_equals: expected "circle(at 50% 358.984px)" but got "none"
+FAIL test unit (computed): ex - circle(at top 50ex left) assert_equals: expected "circle(at 0% 358.984px)" but got "none"
+FAIL test unit (computed): ex - circle(at top 50ex right) assert_equals: expected "circle(at 100% 358.984px)" but got "none"
+FAIL test unit (computed): ex - circle(at bottom 70ex center) assert_equals: expected "circle(at left 50% bottom 502.578px)" but got "none"
+FAIL test unit (computed): ex - circle(at bottom 70ex left) assert_equals: expected "circle(at left 0% bottom 502.578px)" but got "none"
+FAIL test unit (computed): ex - circle(at bottom 70ex right) assert_equals: expected "circle(at left 100% bottom 502.578px)" but got "none"
+FAIL test unit (computed): ex - circle(at right 80ex center) assert_equals: expected "circle(at right 574.375px top 50%)" but got "none"
+FAIL test unit (computed): ex - circle(at right 80ex bottom) assert_equals: expected "circle(at right 574.375px top 100%)" but got "none"
+FAIL test unit (computed): ex - circle(at right 80ex top) assert_equals: expected "circle(at right 574.375px top 0%)" but got "none"
 PASS test unit (computed): ex - circle(at left 50% top 50ex) 
 PASS test unit (computed): ex - circle(at left 50% bottom 70ex) 
 PASS test unit (computed): ex - circle(at left 50ex top 50%) 
@@ -1169,30 +1169,30 @@ PASS test unit (computed): ch - circle(at right 80ch)
 PASS test unit (computed): ch - circle(at 70ch bottom) 
 PASS test unit (computed): ch - circle(at center 60ch) 
 PASS test unit (computed): ch - circle(at 60ch center) 
-PASS test unit (computed): ch - circle(at center top 50ch) 
-PASS test unit (computed): ch - circle(at center left 50ch) 
-PASS test unit (computed): ch - circle(at center right 70ch) 
-PASS test unit (computed): ch - circle(at center bottom 70ch) 
-PASS test unit (computed): ch - circle(at left top 50ch) 
-PASS test unit (computed): ch - circle(at left bottom 70ch) 
-PASS test unit (computed): ch - circle(at top left 50ch) 
-PASS test unit (computed): ch - circle(at top right 70ch) 
-PASS test unit (computed): ch - circle(at bottom left 50ch) 
-PASS test unit (computed): ch - circle(at bottom right 70ch) 
-PASS test unit (computed): ch - circle(at right bottom 70ch) 
-PASS test unit (computed): ch - circle(at right top 50ch) 
-PASS test unit (computed): ch - circle(at left 50ch center) 
-PASS test unit (computed): ch - circle(at left 50ch top) 
-PASS test unit (computed): ch - circle(at left 50ch bottom) 
-PASS test unit (computed): ch - circle(at top 50ch center) 
-PASS test unit (computed): ch - circle(at top 50ch left) 
-PASS test unit (computed): ch - circle(at top 50ch right) 
-PASS test unit (computed): ch - circle(at bottom 70ch center) 
-PASS test unit (computed): ch - circle(at bottom 70ch left) 
-PASS test unit (computed): ch - circle(at bottom 70ch right) 
-PASS test unit (computed): ch - circle(at right 80ch center) 
-PASS test unit (computed): ch - circle(at right 80ch bottom) 
-PASS test unit (computed): ch - circle(at right 80ch top) 
+FAIL test unit (computed): ch - circle(at center top 50ch) assert_equals: expected "circle(at 50% 400px)" but got "none"
+FAIL test unit (computed): ch - circle(at center left 50ch) assert_equals: expected "circle(at 400px 50%)" but got "none"
+FAIL test unit (computed): ch - circle(at center right 70ch) assert_equals: expected "circle(at right 560px top 50%)" but got "none"
+FAIL test unit (computed): ch - circle(at center bottom 70ch) assert_equals: expected "circle(at left 50% bottom 560px)" but got "none"
+FAIL test unit (computed): ch - circle(at left top 50ch) assert_equals: expected "circle(at 0% 400px)" but got "none"
+FAIL test unit (computed): ch - circle(at left bottom 70ch) assert_equals: expected "circle(at left 0% bottom 560px)" but got "none"
+FAIL test unit (computed): ch - circle(at top left 50ch) assert_equals: expected "circle(at 400px 0%)" but got "none"
+FAIL test unit (computed): ch - circle(at top right 70ch) assert_equals: expected "circle(at right 560px top 0%)" but got "none"
+FAIL test unit (computed): ch - circle(at bottom left 50ch) assert_equals: expected "circle(at 400px 100%)" but got "none"
+FAIL test unit (computed): ch - circle(at bottom right 70ch) assert_equals: expected "circle(at right 560px top 100%)" but got "none"
+FAIL test unit (computed): ch - circle(at right bottom 70ch) assert_equals: expected "circle(at left 100% bottom 560px)" but got "none"
+FAIL test unit (computed): ch - circle(at right top 50ch) assert_equals: expected "circle(at 100% 400px)" but got "none"
+FAIL test unit (computed): ch - circle(at left 50ch center) assert_equals: expected "circle(at 400px 50%)" but got "none"
+FAIL test unit (computed): ch - circle(at left 50ch top) assert_equals: expected "circle(at 400px 0%)" but got "none"
+FAIL test unit (computed): ch - circle(at left 50ch bottom) assert_equals: expected "circle(at 400px 100%)" but got "none"
+FAIL test unit (computed): ch - circle(at top 50ch center) assert_equals: expected "circle(at 50% 400px)" but got "none"
+FAIL test unit (computed): ch - circle(at top 50ch left) assert_equals: expected "circle(at 0% 400px)" but got "none"
+FAIL test unit (computed): ch - circle(at top 50ch right) assert_equals: expected "circle(at 100% 400px)" but got "none"
+FAIL test unit (computed): ch - circle(at bottom 70ch center) assert_equals: expected "circle(at left 50% bottom 560px)" but got "none"
+FAIL test unit (computed): ch - circle(at bottom 70ch left) assert_equals: expected "circle(at left 0% bottom 560px)" but got "none"
+FAIL test unit (computed): ch - circle(at bottom 70ch right) assert_equals: expected "circle(at left 100% bottom 560px)" but got "none"
+FAIL test unit (computed): ch - circle(at right 80ch center) assert_equals: expected "circle(at right 640px top 50%)" but got "none"
+FAIL test unit (computed): ch - circle(at right 80ch bottom) assert_equals: expected "circle(at right 640px top 100%)" but got "none"
+FAIL test unit (computed): ch - circle(at right 80ch top) assert_equals: expected "circle(at right 640px top 0%)" but got "none"
 PASS test unit (computed): ch - circle(at left 50% top 50ch) 
 PASS test unit (computed): ch - circle(at left 50% bottom 70ch) 
 PASS test unit (computed): ch - circle(at left 50ch top 50%) 
@@ -1227,30 +1227,30 @@ PASS test unit (computed): rem - circle(at right 80rem)
 PASS test unit (computed): rem - circle(at 70rem bottom) 
 PASS test unit (computed): rem - circle(at center 60rem) 
 PASS test unit (computed): rem - circle(at 60rem center) 
-PASS test unit (computed): rem - circle(at center top 50rem) 
-PASS test unit (computed): rem - circle(at center left 50rem) 
-PASS test unit (computed): rem - circle(at center right 70rem) 
-PASS test unit (computed): rem - circle(at center bottom 70rem) 
-PASS test unit (computed): rem - circle(at left top 50rem) 
-PASS test unit (computed): rem - circle(at left bottom 70rem) 
-PASS test unit (computed): rem - circle(at top left 50rem) 
-PASS test unit (computed): rem - circle(at top right 70rem) 
-PASS test unit (computed): rem - circle(at bottom left 50rem) 
-PASS test unit (computed): rem - circle(at bottom right 70rem) 
-PASS test unit (computed): rem - circle(at right bottom 70rem) 
-PASS test unit (computed): rem - circle(at right top 50rem) 
-PASS test unit (computed): rem - circle(at left 50rem center) 
-PASS test unit (computed): rem - circle(at left 50rem top) 
-PASS test unit (computed): rem - circle(at left 50rem bottom) 
-PASS test unit (computed): rem - circle(at top 50rem center) 
-PASS test unit (computed): rem - circle(at top 50rem left) 
-PASS test unit (computed): rem - circle(at top 50rem right) 
-PASS test unit (computed): rem - circle(at bottom 70rem center) 
-PASS test unit (computed): rem - circle(at bottom 70rem left) 
-PASS test unit (computed): rem - circle(at bottom 70rem right) 
-PASS test unit (computed): rem - circle(at right 80rem center) 
-PASS test unit (computed): rem - circle(at right 80rem bottom) 
-PASS test unit (computed): rem - circle(at right 80rem top) 
+FAIL test unit (computed): rem - circle(at center top 50rem) assert_equals: expected "circle(at 50% 800px)" but got "none"
+FAIL test unit (computed): rem - circle(at center left 50rem) assert_equals: expected "circle(at 800px 50%)" but got "none"
+FAIL test unit (computed): rem - circle(at center right 70rem) assert_equals: expected "circle(at right 1120px top 50%)" but got "none"
+FAIL test unit (computed): rem - circle(at center bottom 70rem) assert_equals: expected "circle(at left 50% bottom 1120px)" but got "none"
+FAIL test unit (computed): rem - circle(at left top 50rem) assert_equals: expected "circle(at 0% 800px)" but got "none"
+FAIL test unit (computed): rem - circle(at left bottom 70rem) assert_equals: expected "circle(at left 0% bottom 1120px)" but got "none"
+FAIL test unit (computed): rem - circle(at top left 50rem) assert_equals: expected "circle(at 800px 0%)" but got "none"
+FAIL test unit (computed): rem - circle(at top right 70rem) assert_equals: expected "circle(at right 1120px top 0%)" but got "none"
+FAIL test unit (computed): rem - circle(at bottom left 50rem) assert_equals: expected "circle(at 800px 100%)" but got "none"
+FAIL test unit (computed): rem - circle(at bottom right 70rem) assert_equals: expected "circle(at right 1120px top 100%)" but got "none"
+FAIL test unit (computed): rem - circle(at right bottom 70rem) assert_equals: expected "circle(at left 100% bottom 1120px)" but got "none"
+FAIL test unit (computed): rem - circle(at right top 50rem) assert_equals: expected "circle(at 100% 800px)" but got "none"
+FAIL test unit (computed): rem - circle(at left 50rem center) assert_equals: expected "circle(at 800px 50%)" but got "none"
+FAIL test unit (computed): rem - circle(at left 50rem top) assert_equals: expected "circle(at 800px 0%)" but got "none"
+FAIL test unit (computed): rem - circle(at left 50rem bottom) assert_equals: expected "circle(at 800px 100%)" but got "none"
+FAIL test unit (computed): rem - circle(at top 50rem center) assert_equals: expected "circle(at 50% 800px)" but got "none"
+FAIL test unit (computed): rem - circle(at top 50rem left) assert_equals: expected "circle(at 0% 800px)" but got "none"
+FAIL test unit (computed): rem - circle(at top 50rem right) assert_equals: expected "circle(at 100% 800px)" but got "none"
+FAIL test unit (computed): rem - circle(at bottom 70rem center) assert_equals: expected "circle(at left 50% bottom 1120px)" but got "none"
+FAIL test unit (computed): rem - circle(at bottom 70rem left) assert_equals: expected "circle(at left 0% bottom 1120px)" but got "none"
+FAIL test unit (computed): rem - circle(at bottom 70rem right) assert_equals: expected "circle(at left 100% bottom 1120px)" but got "none"
+FAIL test unit (computed): rem - circle(at right 80rem center) assert_equals: expected "circle(at right 1280px top 50%)" but got "none"
+FAIL test unit (computed): rem - circle(at right 80rem bottom) assert_equals: expected "circle(at right 1280px top 100%)" but got "none"
+FAIL test unit (computed): rem - circle(at right 80rem top) assert_equals: expected "circle(at right 1280px top 0%)" but got "none"
 PASS test unit (computed): rem - circle(at left 50% top 50rem) 
 PASS test unit (computed): rem - circle(at left 50% bottom 70rem) 
 PASS test unit (computed): rem - circle(at left 50rem top 50%) 
@@ -1285,30 +1285,30 @@ PASS test unit (computed): vw - circle(at right 80vw)
 PASS test unit (computed): vw - circle(at 70vw bottom) 
 PASS test unit (computed): vw - circle(at center 60vw) 
 PASS test unit (computed): vw - circle(at 60vw center) 
-PASS test unit (computed): vw - circle(at center top 50vw) 
-PASS test unit (computed): vw - circle(at center left 50vw) 
-PASS test unit (computed): vw - circle(at center right 70vw) 
-PASS test unit (computed): vw - circle(at center bottom 70vw) 
-PASS test unit (computed): vw - circle(at left top 50vw) 
-PASS test unit (computed): vw - circle(at left bottom 70vw) 
-PASS test unit (computed): vw - circle(at top left 50vw) 
-PASS test unit (computed): vw - circle(at top right 70vw) 
-PASS test unit (computed): vw - circle(at bottom left 50vw) 
-PASS test unit (computed): vw - circle(at bottom right 70vw) 
-PASS test unit (computed): vw - circle(at right bottom 70vw) 
-PASS test unit (computed): vw - circle(at right top 50vw) 
-PASS test unit (computed): vw - circle(at left 50vw center) 
-PASS test unit (computed): vw - circle(at left 50vw top) 
-PASS test unit (computed): vw - circle(at left 50vw bottom) 
-PASS test unit (computed): vw - circle(at top 50vw center) 
-PASS test unit (computed): vw - circle(at top 50vw left) 
-PASS test unit (computed): vw - circle(at top 50vw right) 
-PASS test unit (computed): vw - circle(at bottom 70vw center) 
-PASS test unit (computed): vw - circle(at bottom 70vw left) 
-PASS test unit (computed): vw - circle(at bottom 70vw right) 
-PASS test unit (computed): vw - circle(at right 80vw center) 
-PASS test unit (computed): vw - circle(at right 80vw bottom) 
-PASS test unit (computed): vw - circle(at right 80vw top) 
+FAIL test unit (computed): vw - circle(at center top 50vw) assert_equals: expected "circle(at 50% 400px)" but got "none"
+FAIL test unit (computed): vw - circle(at center left 50vw) assert_equals: expected "circle(at 400px 50%)" but got "none"
+FAIL test unit (computed): vw - circle(at center right 70vw) assert_equals: expected "circle(at right 560px top 50%)" but got "none"
+FAIL test unit (computed): vw - circle(at center bottom 70vw) assert_equals: expected "circle(at left 50% bottom 560px)" but got "none"
+FAIL test unit (computed): vw - circle(at left top 50vw) assert_equals: expected "circle(at 0% 400px)" but got "none"
+FAIL test unit (computed): vw - circle(at left bottom 70vw) assert_equals: expected "circle(at left 0% bottom 560px)" but got "none"
+FAIL test unit (computed): vw - circle(at top left 50vw) assert_equals: expected "circle(at 400px 0%)" but got "none"
+FAIL test unit (computed): vw - circle(at top right 70vw) assert_equals: expected "circle(at right 560px top 0%)" but got "none"
+FAIL test unit (computed): vw - circle(at bottom left 50vw) assert_equals: expected "circle(at 400px 100%)" but got "none"
+FAIL test unit (computed): vw - circle(at bottom right 70vw) assert_equals: expected "circle(at right 560px top 100%)" but got "none"
+FAIL test unit (computed): vw - circle(at right bottom 70vw) assert_equals: expected "circle(at left 100% bottom 560px)" but got "none"
+FAIL test unit (computed): vw - circle(at right top 50vw) assert_equals: expected "circle(at 100% 400px)" but got "none"
+FAIL test unit (computed): vw - circle(at left 50vw center) assert_equals: expected "circle(at 400px 50%)" but got "none"
+FAIL test unit (computed): vw - circle(at left 50vw top) assert_equals: expected "circle(at 400px 0%)" but got "none"
+FAIL test unit (computed): vw - circle(at left 50vw bottom) assert_equals: expected "circle(at 400px 100%)" but got "none"
+FAIL test unit (computed): vw - circle(at top 50vw center) assert_equals: expected "circle(at 50% 400px)" but got "none"
+FAIL test unit (computed): vw - circle(at top 50vw left) assert_equals: expected "circle(at 0% 400px)" but got "none"
+FAIL test unit (computed): vw - circle(at top 50vw right) assert_equals: expected "circle(at 100% 400px)" but got "none"
+FAIL test unit (computed): vw - circle(at bottom 70vw center) assert_equals: expected "circle(at left 50% bottom 560px)" but got "none"
+FAIL test unit (computed): vw - circle(at bottom 70vw left) assert_equals: expected "circle(at left 0% bottom 560px)" but got "none"
+FAIL test unit (computed): vw - circle(at bottom 70vw right) assert_equals: expected "circle(at left 100% bottom 560px)" but got "none"
+FAIL test unit (computed): vw - circle(at right 80vw center) assert_equals: expected "circle(at right 640px top 50%)" but got "none"
+FAIL test unit (computed): vw - circle(at right 80vw bottom) assert_equals: expected "circle(at right 640px top 100%)" but got "none"
+FAIL test unit (computed): vw - circle(at right 80vw top) assert_equals: expected "circle(at right 640px top 0%)" but got "none"
 PASS test unit (computed): vw - circle(at left 50% top 50vw) 
 PASS test unit (computed): vw - circle(at left 50% bottom 70vw) 
 PASS test unit (computed): vw - circle(at left 50vw top 50%) 
@@ -1343,30 +1343,30 @@ PASS test unit (computed): vh - circle(at right 80vh)
 PASS test unit (computed): vh - circle(at 70vh bottom) 
 PASS test unit (computed): vh - circle(at center 60vh) 
 PASS test unit (computed): vh - circle(at 60vh center) 
-PASS test unit (computed): vh - circle(at center top 50vh) 
-PASS test unit (computed): vh - circle(at center left 50vh) 
-PASS test unit (computed): vh - circle(at center right 70vh) 
-PASS test unit (computed): vh - circle(at center bottom 70vh) 
-PASS test unit (computed): vh - circle(at left top 50vh) 
-PASS test unit (computed): vh - circle(at left bottom 70vh) 
-PASS test unit (computed): vh - circle(at top left 50vh) 
-PASS test unit (computed): vh - circle(at top right 70vh) 
-PASS test unit (computed): vh - circle(at bottom left 50vh) 
-PASS test unit (computed): vh - circle(at bottom right 70vh) 
-PASS test unit (computed): vh - circle(at right bottom 70vh) 
-PASS test unit (computed): vh - circle(at right top 50vh) 
-PASS test unit (computed): vh - circle(at left 50vh center) 
-PASS test unit (computed): vh - circle(at left 50vh top) 
-PASS test unit (computed): vh - circle(at left 50vh bottom) 
-PASS test unit (computed): vh - circle(at top 50vh center) 
-PASS test unit (computed): vh - circle(at top 50vh left) 
-PASS test unit (computed): vh - circle(at top 50vh right) 
-PASS test unit (computed): vh - circle(at bottom 70vh center) 
-PASS test unit (computed): vh - circle(at bottom 70vh left) 
-PASS test unit (computed): vh - circle(at bottom 70vh right) 
-PASS test unit (computed): vh - circle(at right 80vh center) 
-PASS test unit (computed): vh - circle(at right 80vh bottom) 
-PASS test unit (computed): vh - circle(at right 80vh top) 
+FAIL test unit (computed): vh - circle(at center top 50vh) assert_equals: expected "circle(at 50% 300px)" but got "none"
+FAIL test unit (computed): vh - circle(at center left 50vh) assert_equals: expected "circle(at 300px 50%)" but got "none"
+FAIL test unit (computed): vh - circle(at center right 70vh) assert_equals: expected "circle(at right 420px top 50%)" but got "none"
+FAIL test unit (computed): vh - circle(at center bottom 70vh) assert_equals: expected "circle(at left 50% bottom 420px)" but got "none"
+FAIL test unit (computed): vh - circle(at left top 50vh) assert_equals: expected "circle(at 0% 300px)" but got "none"
+FAIL test unit (computed): vh - circle(at left bottom 70vh) assert_equals: expected "circle(at left 0% bottom 420px)" but got "none"
+FAIL test unit (computed): vh - circle(at top left 50vh) assert_equals: expected "circle(at 300px 0%)" but got "none"
+FAIL test unit (computed): vh - circle(at top right 70vh) assert_equals: expected "circle(at right 420px top 0%)" but got "none"
+FAIL test unit (computed): vh - circle(at bottom left 50vh) assert_equals: expected "circle(at 300px 100%)" but got "none"
+FAIL test unit (computed): vh - circle(at bottom right 70vh) assert_equals: expected "circle(at right 420px top 100%)" but got "none"
+FAIL test unit (computed): vh - circle(at right bottom 70vh) assert_equals: expected "circle(at left 100% bottom 420px)" but got "none"
+FAIL test unit (computed): vh - circle(at right top 50vh) assert_equals: expected "circle(at 100% 300px)" but got "none"
+FAIL test unit (computed): vh - circle(at left 50vh center) assert_equals: expected "circle(at 300px 50%)" but got "none"
+FAIL test unit (computed): vh - circle(at left 50vh top) assert_equals: expected "circle(at 300px 0%)" but got "none"
+FAIL test unit (computed): vh - circle(at left 50vh bottom) assert_equals: expected "circle(at 300px 100%)" but got "none"
+FAIL test unit (computed): vh - circle(at top 50vh center) assert_equals: expected "circle(at 50% 300px)" but got "none"
+FAIL test unit (computed): vh - circle(at top 50vh left) assert_equals: expected "circle(at 0% 300px)" but got "none"
+FAIL test unit (computed): vh - circle(at top 50vh right) assert_equals: expected "circle(at 100% 300px)" but got "none"
+FAIL test unit (computed): vh - circle(at bottom 70vh center) assert_equals: expected "circle(at left 50% bottom 420px)" but got "none"
+FAIL test unit (computed): vh - circle(at bottom 70vh left) assert_equals: expected "circle(at left 0% bottom 420px)" but got "none"
+FAIL test unit (computed): vh - circle(at bottom 70vh right) assert_equals: expected "circle(at left 100% bottom 420px)" but got "none"
+FAIL test unit (computed): vh - circle(at right 80vh center) assert_equals: expected "circle(at right 480px top 50%)" but got "none"
+FAIL test unit (computed): vh - circle(at right 80vh bottom) assert_equals: expected "circle(at right 480px top 100%)" but got "none"
+FAIL test unit (computed): vh - circle(at right 80vh top) assert_equals: expected "circle(at right 480px top 0%)" but got "none"
 PASS test unit (computed): vh - circle(at left 50% top 50vh) 
 PASS test unit (computed): vh - circle(at left 50% bottom 70vh) 
 PASS test unit (computed): vh - circle(at left 50vh top 50%) 
@@ -1401,30 +1401,30 @@ PASS test unit (computed): vmin - circle(at right 80vmin)
 PASS test unit (computed): vmin - circle(at 70vmin bottom) 
 PASS test unit (computed): vmin - circle(at center 60vmin) 
 PASS test unit (computed): vmin - circle(at 60vmin center) 
-PASS test unit (computed): vmin - circle(at center top 50vmin) 
-PASS test unit (computed): vmin - circle(at center left 50vmin) 
-PASS test unit (computed): vmin - circle(at center right 70vmin) 
-PASS test unit (computed): vmin - circle(at center bottom 70vmin) 
-PASS test unit (computed): vmin - circle(at left top 50vmin) 
-PASS test unit (computed): vmin - circle(at left bottom 70vmin) 
-PASS test unit (computed): vmin - circle(at top left 50vmin) 
-PASS test unit (computed): vmin - circle(at top right 70vmin) 
-PASS test unit (computed): vmin - circle(at bottom left 50vmin) 
-PASS test unit (computed): vmin - circle(at bottom right 70vmin) 
-PASS test unit (computed): vmin - circle(at right bottom 70vmin) 
-PASS test unit (computed): vmin - circle(at right top 50vmin) 
-PASS test unit (computed): vmin - circle(at left 50vmin center) 
-PASS test unit (computed): vmin - circle(at left 50vmin top) 
-PASS test unit (computed): vmin - circle(at left 50vmin bottom) 
-PASS test unit (computed): vmin - circle(at top 50vmin center) 
-PASS test unit (computed): vmin - circle(at top 50vmin left) 
-PASS test unit (computed): vmin - circle(at top 50vmin right) 
-PASS test unit (computed): vmin - circle(at bottom 70vmin center) 
-PASS test unit (computed): vmin - circle(at bottom 70vmin left) 
-PASS test unit (computed): vmin - circle(at bottom 70vmin right) 
-PASS test unit (computed): vmin - circle(at right 80vmin center) 
-PASS test unit (computed): vmin - circle(at right 80vmin bottom) 
-PASS test unit (computed): vmin - circle(at right 80vmin top) 
+FAIL test unit (computed): vmin - circle(at center top 50vmin) assert_equals: expected "circle(at 50% 300px)" but got "none"
+FAIL test unit (computed): vmin - circle(at center left 50vmin) assert_equals: expected "circle(at 300px 50%)" but got "none"
+FAIL test unit (computed): vmin - circle(at center right 70vmin) assert_equals: expected "circle(at right 420px top 50%)" but got "none"
+FAIL test unit (computed): vmin - circle(at center bottom 70vmin) assert_equals: expected "circle(at left 50% bottom 420px)" but got "none"
+FAIL test unit (computed): vmin - circle(at left top 50vmin) assert_equals: expected "circle(at 0% 300px)" but got "none"
+FAIL test unit (computed): vmin - circle(at left bottom 70vmin) assert_equals: expected "circle(at left 0% bottom 420px)" but got "none"
+FAIL test unit (computed): vmin - circle(at top left 50vmin) assert_equals: expected "circle(at 300px 0%)" but got "none"
+FAIL test unit (computed): vmin - circle(at top right 70vmin) assert_equals: expected "circle(at right 420px top 0%)" but got "none"
+FAIL test unit (computed): vmin - circle(at bottom left 50vmin) assert_equals: expected "circle(at 300px 100%)" but got "none"
+FAIL test unit (computed): vmin - circle(at bottom right 70vmin) assert_equals: expected "circle(at right 420px top 100%)" but got "none"
+FAIL test unit (computed): vmin - circle(at right bottom 70vmin) assert_equals: expected "circle(at left 100% bottom 420px)" but got "none"
+FAIL test unit (computed): vmin - circle(at right top 50vmin) assert_equals: expected "circle(at 100% 300px)" but got "none"
+FAIL test unit (computed): vmin - circle(at left 50vmin center) assert_equals: expected "circle(at 300px 50%)" but got "none"
+FAIL test unit (computed): vmin - circle(at left 50vmin top) assert_equals: expected "circle(at 300px 0%)" but got "none"
+FAIL test unit (computed): vmin - circle(at left 50vmin bottom) assert_equals: expected "circle(at 300px 100%)" but got "none"
+FAIL test unit (computed): vmin - circle(at top 50vmin center) assert_equals: expected "circle(at 50% 300px)" but got "none"
+FAIL test unit (computed): vmin - circle(at top 50vmin left) assert_equals: expected "circle(at 0% 300px)" but got "none"
+FAIL test unit (computed): vmin - circle(at top 50vmin right) assert_equals: expected "circle(at 100% 300px)" but got "none"
+FAIL test unit (computed): vmin - circle(at bottom 70vmin center) assert_equals: expected "circle(at left 50% bottom 420px)" but got "none"
+FAIL test unit (computed): vmin - circle(at bottom 70vmin left) assert_equals: expected "circle(at left 0% bottom 420px)" but got "none"
+FAIL test unit (computed): vmin - circle(at bottom 70vmin right) assert_equals: expected "circle(at left 100% bottom 420px)" but got "none"
+FAIL test unit (computed): vmin - circle(at right 80vmin center) assert_equals: expected "circle(at right 480px top 50%)" but got "none"
+FAIL test unit (computed): vmin - circle(at right 80vmin bottom) assert_equals: expected "circle(at right 480px top 100%)" but got "none"
+FAIL test unit (computed): vmin - circle(at right 80vmin top) assert_equals: expected "circle(at right 480px top 0%)" but got "none"
 PASS test unit (computed): vmin - circle(at left 50% top 50vmin) 
 PASS test unit (computed): vmin - circle(at left 50% bottom 70vmin) 
 PASS test unit (computed): vmin - circle(at left 50vmin top 50%) 
@@ -1459,30 +1459,30 @@ PASS test unit (computed): vmax - circle(at right 80vmax)
 PASS test unit (computed): vmax - circle(at 70vmax bottom) 
 PASS test unit (computed): vmax - circle(at center 60vmax) 
 PASS test unit (computed): vmax - circle(at 60vmax center) 
-PASS test unit (computed): vmax - circle(at center top 50vmax) 
-PASS test unit (computed): vmax - circle(at center left 50vmax) 
-PASS test unit (computed): vmax - circle(at center right 70vmax) 
-PASS test unit (computed): vmax - circle(at center bottom 70vmax) 
-PASS test unit (computed): vmax - circle(at left top 50vmax) 
-PASS test unit (computed): vmax - circle(at left bottom 70vmax) 
-PASS test unit (computed): vmax - circle(at top left 50vmax) 
-PASS test unit (computed): vmax - circle(at top right 70vmax) 
-PASS test unit (computed): vmax - circle(at bottom left 50vmax) 
-PASS test unit (computed): vmax - circle(at bottom right 70vmax) 
-PASS test unit (computed): vmax - circle(at right bottom 70vmax) 
-PASS test unit (computed): vmax - circle(at right top 50vmax) 
-PASS test unit (computed): vmax - circle(at left 50vmax center) 
-PASS test unit (computed): vmax - circle(at left 50vmax top) 
-PASS test unit (computed): vmax - circle(at left 50vmax bottom) 
-PASS test unit (computed): vmax - circle(at top 50vmax center) 
-PASS test unit (computed): vmax - circle(at top 50vmax left) 
-PASS test unit (computed): vmax - circle(at top 50vmax right) 
-PASS test unit (computed): vmax - circle(at bottom 70vmax center) 
-PASS test unit (computed): vmax - circle(at bottom 70vmax left) 
-PASS test unit (computed): vmax - circle(at bottom 70vmax right) 
-PASS test unit (computed): vmax - circle(at right 80vmax center) 
-PASS test unit (computed): vmax - circle(at right 80vmax bottom) 
-PASS test unit (computed): vmax - circle(at right 80vmax top) 
+FAIL test unit (computed): vmax - circle(at center top 50vmax) assert_equals: expected "circle(at 50% 400px)" but got "none"
+FAIL test unit (computed): vmax - circle(at center left 50vmax) assert_equals: expected "circle(at 400px 50%)" but got "none"
+FAIL test unit (computed): vmax - circle(at center right 70vmax) assert_equals: expected "circle(at right 560px top 50%)" but got "none"
+FAIL test unit (computed): vmax - circle(at center bottom 70vmax) assert_equals: expected "circle(at left 50% bottom 560px)" but got "none"
+FAIL test unit (computed): vmax - circle(at left top 50vmax) assert_equals: expected "circle(at 0% 400px)" but got "none"
+FAIL test unit (computed): vmax - circle(at left bottom 70vmax) assert_equals: expected "circle(at left 0% bottom 560px)" but got "none"
+FAIL test unit (computed): vmax - circle(at top left 50vmax) assert_equals: expected "circle(at 400px 0%)" but got "none"
+FAIL test unit (computed): vmax - circle(at top right 70vmax) assert_equals: expected "circle(at right 560px top 0%)" but got "none"
+FAIL test unit (computed): vmax - circle(at bottom left 50vmax) assert_equals: expected "circle(at 400px 100%)" but got "none"
+FAIL test unit (computed): vmax - circle(at bottom right 70vmax) assert_equals: expected "circle(at right 560px top 100%)" but got "none"
+FAIL test unit (computed): vmax - circle(at right bottom 70vmax) assert_equals: expected "circle(at left 100% bottom 560px)" but got "none"
+FAIL test unit (computed): vmax - circle(at right top 50vmax) assert_equals: expected "circle(at 100% 400px)" but got "none"
+FAIL test unit (computed): vmax - circle(at left 50vmax center) assert_equals: expected "circle(at 400px 50%)" but got "none"
+FAIL test unit (computed): vmax - circle(at left 50vmax top) assert_equals: expected "circle(at 400px 0%)" but got "none"
+FAIL test unit (computed): vmax - circle(at left 50vmax bottom) assert_equals: expected "circle(at 400px 100%)" but got "none"
+FAIL test unit (computed): vmax - circle(at top 50vmax center) assert_equals: expected "circle(at 50% 400px)" but got "none"
+FAIL test unit (computed): vmax - circle(at top 50vmax left) assert_equals: expected "circle(at 0% 400px)" but got "none"
+FAIL test unit (computed): vmax - circle(at top 50vmax right) assert_equals: expected "circle(at 100% 400px)" but got "none"
+FAIL test unit (computed): vmax - circle(at bottom 70vmax center) assert_equals: expected "circle(at left 50% bottom 560px)" but got "none"
+FAIL test unit (computed): vmax - circle(at bottom 70vmax left) assert_equals: expected "circle(at left 0% bottom 560px)" but got "none"
+FAIL test unit (computed): vmax - circle(at bottom 70vmax right) assert_equals: expected "circle(at left 100% bottom 560px)" but got "none"
+FAIL test unit (computed): vmax - circle(at right 80vmax center) assert_equals: expected "circle(at right 640px top 50%)" but got "none"
+FAIL test unit (computed): vmax - circle(at right 80vmax bottom) assert_equals: expected "circle(at right 640px top 100%)" but got "none"
+FAIL test unit (computed): vmax - circle(at right 80vmax top) assert_equals: expected "circle(at right 640px top 0%)" but got "none"
 PASS test unit (computed): vmax - circle(at left 50% top 50vmax) 
 PASS test unit (computed): vmax - circle(at left 50% bottom 70vmax) 
 PASS test unit (computed): vmax - circle(at left 50vmax top 50%) 
index da69f52..dc7493a 100644 (file)
@@ -39,54 +39,54 @@ PASS ellipse(at center 60%) serializes as ellipse(at 50% 60%) - inline
 PASS ellipse(at center 60px) serializes as ellipse(at 50% 60px) - inline 
 PASS ellipse(at 60% center) serializes as ellipse(at 60% 50%) - inline 
 PASS ellipse(at 60px center) serializes as ellipse(at 60px 50%) - inline 
-PASS ellipse(at center top 50%) serializes as ellipse(at 50% 50%) - inline 
-PASS ellipse(at center top 50px) serializes as ellipse(at 50% 50px) - inline 
-PASS ellipse(at center left 50%) serializes as ellipse(at 50% 50%) - inline 
-PASS ellipse(at center left 50px) serializes as ellipse(at 50px 50%) - inline 
-PASS ellipse(at center right 70%) serializes as ellipse(at 30% 50%) - inline 
-PASS ellipse(at center right 70px) serializes as ellipse(at right 70px top 50%) - inline 
-PASS ellipse(at center bottom 70%) serializes as ellipse(at 50% 30%) - inline 
-PASS ellipse(at center bottom 70px) serializes as ellipse(at left 50% bottom 70px) - inline 
-PASS ellipse(at left top 50%) serializes as ellipse(at 0% 50%) - inline 
-PASS ellipse(at left top 50px) serializes as ellipse(at 0% 50px) - inline 
-PASS ellipse(at left bottom 70%) serializes as ellipse(at 0% 30%) - inline 
-PASS ellipse(at left bottom 70px) serializes as ellipse(at left 0% bottom 70px) - inline 
-PASS ellipse(at top left 50%) serializes as ellipse(at 50% 0%) - inline 
-PASS ellipse(at top left 50px) serializes as ellipse(at 50px 0%) - inline 
-PASS ellipse(at top right 70%) serializes as ellipse(at 30% 0%) - inline 
-PASS ellipse(at top right 70px) serializes as ellipse(at right 70px top 0%) - inline 
-PASS ellipse(at bottom left 50%) serializes as ellipse(at 50% 100%) - inline 
-PASS ellipse(at bottom left 50px) serializes as ellipse(at 50px 100%) - inline 
-PASS ellipse(at bottom right 70%) serializes as ellipse(at 30% 100%) - inline 
-PASS ellipse(at bottom right 70px) serializes as ellipse(at right 70px top 100%) - inline 
-PASS ellipse(at right bottom 70%) serializes as ellipse(at 100% 30%) - inline 
-PASS ellipse(at right bottom 70px) serializes as ellipse(at left 100% bottom 70px) - inline 
-PASS ellipse(at right top 50%) serializes as ellipse(at 100% 50%) - inline 
-PASS ellipse(at right top 50px) serializes as ellipse(at 100% 50px) - inline 
-PASS ellipse(at left 50% center) serializes as ellipse(at 50% 50%) - inline 
-PASS ellipse(at left 50px center) serializes as ellipse(at 50px 50%) - inline 
-PASS ellipse(at left 50% top) serializes as ellipse(at 50% 0%) - inline 
-PASS ellipse(at left 50px top) serializes as ellipse(at 50px 0%) - inline 
-PASS ellipse(at left 50% bottom) serializes as ellipse(at 50% 100%) - inline 
-PASS ellipse(at left 50px bottom) serializes as ellipse(at 50px 100%) - inline 
-PASS ellipse(at top 50% center) serializes as ellipse(at 50% 50%) - inline 
-PASS ellipse(at top 50px center) serializes as ellipse(at 50% 50px) - inline 
-PASS ellipse(at top 50% left) serializes as ellipse(at 0% 50%) - inline 
-PASS ellipse(at top 50px left) serializes as ellipse(at 0% 50px) - inline 
-PASS ellipse(at top 50% right) serializes as ellipse(at 100% 50%) - inline 
-PASS ellipse(at top 50px right) serializes as ellipse(at 100% 50px) - inline 
-PASS ellipse(at bottom 70% center) serializes as ellipse(at 50% 30%) - inline 
-PASS ellipse(at bottom 70px center) serializes as ellipse(at left 50% bottom 70px) - inline 
-PASS ellipse(at bottom 70% left) serializes as ellipse(at 0% 30%) - inline 
-PASS ellipse(at bottom 70px left) serializes as ellipse(at left 0% bottom 70px) - inline 
-PASS ellipse(at bottom 70% right) serializes as ellipse(at 100% 30%) - inline 
-PASS ellipse(at bottom 70px right) serializes as ellipse(at left 100% bottom 70px) - inline 
-PASS ellipse(at right 80% center) serializes as ellipse(at 20% 50%) - inline 
-PASS ellipse(at right 80px center) serializes as ellipse(at right 80px top 50%) - inline 
-PASS ellipse(at right 80% bottom) serializes as ellipse(at 20% 100%) - inline 
-PASS ellipse(at right 80px bottom) serializes as ellipse(at right 80px top 100%) - inline 
-PASS ellipse(at right 80% top) serializes as ellipse(at 20% 0%) - inline 
-PASS ellipse(at right 80px top) serializes as ellipse(at right 80px top 0%) - inline 
+FAIL ellipse(at center top 50%) serializes as ellipse(at 50% 50%) - inline assert_equals: expected "ellipse(at 50% 50%)" but got ""
+FAIL ellipse(at center top 50px) serializes as ellipse(at 50% 50px) - inline assert_equals: expected "ellipse(at 50% 50px)" but got ""
+FAIL ellipse(at center left 50%) serializes as ellipse(at 50% 50%) - inline assert_equals: expected "ellipse(at 50% 50%)" but got ""
+FAIL ellipse(at center left 50px) serializes as ellipse(at 50px 50%) - inline assert_equals: expected "ellipse(at 50px 50%)" but got ""
+FAIL ellipse(at center right 70%) serializes as ellipse(at 30% 50%) - inline assert_equals: expected "ellipse(at 30% 50%)" but got ""
+FAIL ellipse(at center right 70px) serializes as ellipse(at right 70px top 50%) - inline assert_equals: expected "ellipse(at right 70px top 50%)" but got ""
+FAIL ellipse(at center bottom 70%) serializes as ellipse(at 50% 30%) - inline assert_equals: expected "ellipse(at 50% 30%)" but got ""
+FAIL ellipse(at center bottom 70px) serializes as ellipse(at left 50% bottom 70px) - inline assert_equals: expected "ellipse(at left 50% bottom 70px)" but got ""
+FAIL ellipse(at left top 50%) serializes as ellipse(at 0% 50%) - inline assert_equals: expected "ellipse(at 0% 50%)" but got ""
+FAIL ellipse(at left top 50px) serializes as ellipse(at 0% 50px) - inline assert_equals: expected "ellipse(at 0% 50px)" but got ""
+FAIL ellipse(at left bottom 70%) serializes as ellipse(at 0% 30%) - inline assert_equals: expected "ellipse(at 0% 30%)" but got ""
+FAIL ellipse(at left bottom 70px) serializes as ellipse(at left 0% bottom 70px) - inline assert_equals: expected "ellipse(at left 0% bottom 70px)" but got ""
+FAIL ellipse(at top left 50%) serializes as ellipse(at 50% 0%) - inline assert_equals: expected "ellipse(at 50% 0%)" but got ""
+FAIL ellipse(at top left 50px) serializes as ellipse(at 50px 0%) - inline assert_equals: expected "ellipse(at 50px 0%)" but got ""
+FAIL ellipse(at top right 70%) serializes as ellipse(at 30% 0%) - inline assert_equals: expected "ellipse(at 30% 0%)" but got ""
+FAIL ellipse(at top right 70px) serializes as ellipse(at right 70px top 0%) - inline assert_equals: expected "ellipse(at right 70px top 0%)" but got ""
+FAIL ellipse(at bottom left 50%) serializes as ellipse(at 50% 100%) - inline assert_equals: expected "ellipse(at 50% 100%)" but got ""
+FAIL ellipse(at bottom left 50px) serializes as ellipse(at 50px 100%) - inline assert_equals: expected "ellipse(at 50px 100%)" but got ""
+FAIL ellipse(at bottom right 70%) serializes as ellipse(at 30% 100%) - inline assert_equals: expected "ellipse(at 30% 100%)" but got ""
+FAIL ellipse(at bottom right 70px) serializes as ellipse(at right 70px top 100%) - inline assert_equals: expected "ellipse(at right 70px top 100%)" but got ""
+FAIL ellipse(at right bottom 70%) serializes as ellipse(at 100% 30%) - inline assert_equals: expected "ellipse(at 100% 30%)" but got ""
+FAIL ellipse(at right bottom 70px) serializes as ellipse(at left 100% bottom 70px) - inline assert_equals: expected "ellipse(at left 100% bottom 70px)" but got ""
+FAIL ellipse(at right top 50%) serializes as ellipse(at 100% 50%) - inline assert_equals: expected "ellipse(at 100% 50%)" but got ""
+FAIL ellipse(at right top 50px) serializes as ellipse(at 100% 50px) - inline assert_equals: expected "ellipse(at 100% 50px)" but got ""
+FAIL ellipse(at left 50% center) serializes as ellipse(at 50% 50%) - inline assert_equals: expected "ellipse(at 50% 50%)" but got ""
+FAIL ellipse(at left 50px center) serializes as ellipse(at 50px 50%) - inline assert_equals: expected "ellipse(at 50px 50%)" but got ""
+FAIL ellipse(at left 50% top) serializes as ellipse(at 50% 0%) - inline assert_equals: expected "ellipse(at 50% 0%)" but got ""
+FAIL ellipse(at left 50px top) serializes as ellipse(at 50px 0%) - inline assert_equals: expected "ellipse(at 50px 0%)" but got ""
+FAIL ellipse(at left 50% bottom) serializes as ellipse(at 50% 100%) - inline assert_equals: expected "ellipse(at 50% 100%)" but got ""
+FAIL ellipse(at left 50px bottom) serializes as ellipse(at 50px 100%) - inline assert_equals: expected "ellipse(at 50px 100%)" but got ""
+FAIL ellipse(at top 50% center) serializes as ellipse(at 50% 50%) - inline assert_equals: expected "ellipse(at 50% 50%)" but got ""
+FAIL ellipse(at top 50px center) serializes as ellipse(at 50% 50px) - inline assert_equals: expected "ellipse(at 50% 50px)" but got ""
+FAIL ellipse(at top 50% left) serializes as ellipse(at 0% 50%) - inline assert_equals: expected "ellipse(at 0% 50%)" but got ""
+FAIL ellipse(at top 50px left) serializes as ellipse(at 0% 50px) - inline assert_equals: expected "ellipse(at 0% 50px)" but got ""
+FAIL ellipse(at top 50% right) serializes as ellipse(at 100% 50%) - inline assert_equals: expected "ellipse(at 100% 50%)" but got ""
+FAIL ellipse(at top 50px right) serializes as ellipse(at 100% 50px) - inline assert_equals: expected "ellipse(at 100% 50px)" but got ""
+FAIL ellipse(at bottom 70% center) serializes as ellipse(at 50% 30%) - inline assert_equals: expected "ellipse(at 50% 30%)" but got ""
+FAIL ellipse(at bottom 70px center) serializes as ellipse(at left 50% bottom 70px) - inline assert_equals: expected "ellipse(at left 50% bottom 70px)" but got ""
+FAIL ellipse(at bottom 70% left) serializes as ellipse(at 0% 30%) - inline assert_equals: expected "ellipse(at 0% 30%)" but got ""
+FAIL ellipse(at bottom 70px left) serializes as ellipse(at left 0% bottom 70px) - inline assert_equals: expected "ellipse(at left 0% bottom 70px)" but got ""
+FAIL ellipse(at bottom 70% right) serializes as ellipse(at 100% 30%) - inline assert_equals: expected "ellipse(at 100% 30%)" but got ""
+FAIL ellipse(at bottom 70px right) serializes as ellipse(at left 100% bottom 70px) - inline assert_equals: expected "ellipse(at left 100% bottom 70px)" but got ""
+FAIL ellipse(at right 80% center) serializes as ellipse(at 20% 50%) - inline assert_equals: expected "ellipse(at 20% 50%)" but got ""
+FAIL ellipse(at right 80px center) serializes as ellipse(at right 80px top 50%) - inline assert_equals: expected "ellipse(at right 80px top 50%)" but got ""
+FAIL ellipse(at right 80% bottom) serializes as ellipse(at 20% 100%) - inline assert_equals: expected "ellipse(at 20% 100%)" but got ""
+FAIL ellipse(at right 80px bottom) serializes as ellipse(at right 80px top 100%) - inline assert_equals: expected "ellipse(at right 80px top 100%)" but got ""
+FAIL ellipse(at right 80% top) serializes as ellipse(at 20% 0%) - inline assert_equals: expected "ellipse(at 20% 0%)" but got ""
+FAIL ellipse(at right 80px top) serializes as ellipse(at right 80px top 0%) - inline assert_equals: expected "ellipse(at right 80px top 0%)" but got ""
 PASS ellipse(at left 50% top 50%) serializes as ellipse(at 50% 50%) - inline 
 PASS ellipse(at left 50% top 50px) serializes as ellipse(at 50% 50px) - inline 
 PASS ellipse(at left 50% bottom 70%) serializes as ellipse(at 50% 30%) - inline 
@@ -159,54 +159,54 @@ PASS ellipse(at center 60%) serializes as ellipse(at 50% 60%) - computed
 PASS ellipse(at center 60px) serializes as ellipse(at 50% 60px) - computed 
 PASS ellipse(at 60% center) serializes as ellipse(at 60% 50%) - computed 
 PASS ellipse(at 60px center) serializes as ellipse(at 60px 50%) - computed 
-PASS ellipse(at center top 50%) serializes as ellipse(at 50% 50%) - computed 
-PASS ellipse(at center top 50px) serializes as ellipse(at 50% 50px) - computed 
-PASS ellipse(at center left 50%) serializes as ellipse(at 50% 50%) - computed 
-PASS ellipse(at center left 50px) serializes as ellipse(at 50px 50%) - computed 
-PASS ellipse(at center right 70%) serializes as ellipse(at 30% 50%) - computed 
-PASS ellipse(at center right 70px) serializes as ellipse(at right 70px top 50%) - computed 
-PASS ellipse(at center bottom 70%) serializes as ellipse(at 50% 30%) - computed 
-PASS ellipse(at center bottom 70px) serializes as ellipse(at left 50% bottom 70px) - computed 
-PASS ellipse(at left top 50%) serializes as ellipse(at 0% 50%) - computed 
-PASS ellipse(at left top 50px) serializes as ellipse(at 0% 50px) - computed 
-PASS ellipse(at left bottom 70%) serializes as ellipse(at 0% 30%) - computed 
-PASS ellipse(at left bottom 70px) serializes as ellipse(at left 0% bottom 70px) - computed 
-PASS ellipse(at top left 50%) serializes as ellipse(at 50% 0%) - computed 
-PASS ellipse(at top left 50px) serializes as ellipse(at 50px 0%) - computed 
-PASS ellipse(at top right 70%) serializes as ellipse(at 30% 0%) - computed 
-PASS ellipse(at top right 70px) serializes as ellipse(at right 70px top 0%) - computed 
-PASS ellipse(at bottom left 50%) serializes as ellipse(at 50% 100%) - computed 
-PASS ellipse(at bottom left 50px) serializes as ellipse(at 50px 100%) - computed 
-PASS ellipse(at bottom right 70%) serializes as ellipse(at 30% 100%) - computed 
-PASS ellipse(at bottom right 70px) serializes as ellipse(at right 70px top 100%) - computed 
-PASS ellipse(at right bottom 70%) serializes as ellipse(at 100% 30%) - computed 
-PASS ellipse(at right bottom 70px) serializes as ellipse(at left 100% bottom 70px) - computed 
-PASS ellipse(at right top 50%) serializes as ellipse(at 100% 50%) - computed 
-PASS ellipse(at right top 50px) serializes as ellipse(at 100% 50px) - computed 
-PASS ellipse(at left 50% center) serializes as ellipse(at 50% 50%) - computed 
-PASS ellipse(at left 50px center) serializes as ellipse(at 50px 50%) - computed 
-PASS ellipse(at left 50% top) serializes as ellipse(at 50% 0%) - computed 
-PASS ellipse(at left 50px top) serializes as ellipse(at 50px 0%) - computed 
-PASS ellipse(at left 50% bottom) serializes as ellipse(at 50% 100%) - computed 
-PASS ellipse(at left 50px bottom) serializes as ellipse(at 50px 100%) - computed 
-PASS ellipse(at top 50% center) serializes as ellipse(at 50% 50%) - computed 
-PASS ellipse(at top 50px center) serializes as ellipse(at 50% 50px) - computed 
-PASS ellipse(at top 50% left) serializes as ellipse(at 0% 50%) - computed 
-PASS ellipse(at top 50px left) serializes as ellipse(at 0% 50px) - computed 
-PASS ellipse(at top 50% right) serializes as ellipse(at 100% 50%) - computed 
-PASS ellipse(at top 50px right) serializes as ellipse(at 100% 50px) - computed 
-PASS ellipse(at bottom 70% center) serializes as ellipse(at 50% 30%) - computed 
-PASS ellipse(at bottom 70px center) serializes as ellipse(at left 50% bottom 70px) - computed 
-PASS ellipse(at bottom 70% left) serializes as ellipse(at 0% 30%) - computed 
-PASS ellipse(at bottom 70px left) serializes as ellipse(at left 0% bottom 70px) - computed 
-PASS ellipse(at bottom 70% right) serializes as ellipse(at 100% 30%) - computed 
-PASS ellipse(at bottom 70px right) serializes as ellipse(at left 100% bottom 70px) - computed 
-PASS ellipse(at right 80% center) serializes as ellipse(at 20% 50%) - computed 
-PASS ellipse(at right 80px center) serializes as ellipse(at right 80px top 50%) - computed 
-PASS ellipse(at right 80% bottom) serializes as ellipse(at 20% 100%) - computed 
-PASS ellipse(at right 80px bottom) serializes as ellipse(at right 80px top 100%) - computed 
-PASS ellipse(at right 80% top) serializes as ellipse(at 20% 0%) - computed 
-PASS ellipse(at right 80px top) serializes as ellipse(at right 80px top 0%) - computed 
+FAIL ellipse(at center top 50%) serializes as ellipse(at 50% 50%) - computed assert_equals: expected "ellipse(at 50% 50%)" but got "none"
+FAIL ellipse(at center top 50px) serializes as ellipse(at 50% 50px) - computed assert_equals: expected "ellipse(at 50% 50px)" but got "none"
+FAIL ellipse(at center left 50%) serializes as ellipse(at 50% 50%) - computed assert_equals: expected "ellipse(at 50% 50%)" but got "none"
+FAIL ellipse(at center left 50px) serializes as ellipse(at 50px 50%) - computed assert_equals: expected "ellipse(at 50px 50%)" but got "none"
+FAIL ellipse(at center right 70%) serializes as ellipse(at 30% 50%) - computed assert_equals: expected "ellipse(at 30% 50%)" but got "none"
+FAIL ellipse(at center right 70px) serializes as ellipse(at right 70px top 50%) - computed assert_equals: expected "ellipse(at right 70px top 50%)" but got "none"
+FAIL ellipse(at center bottom 70%) serializes as ellipse(at 50% 30%) - computed assert_equals: expected "ellipse(at 50% 30%)" but got "none"
+FAIL ellipse(at center bottom 70px) serializes as ellipse(at left 50% bottom 70px) - computed assert_equals: expected "ellipse(at left 50% bottom 70px)" but got "none"
+FAIL ellipse(at left top 50%) serializes as ellipse(at 0% 50%) - computed assert_equals: expected "ellipse(at 0% 50%)" but got "none"
+FAIL ellipse(at left top 50px) serializes as ellipse(at 0% 50px) - computed assert_equals: expected "ellipse(at 0% 50px)" but got "none"
+FAIL ellipse(at left bottom 70%) serializes as ellipse(at 0% 30%) - computed assert_equals: expected "ellipse(at 0% 30%)" but got "none"
+FAIL ellipse(at left bottom 70px) serializes as ellipse(at left 0% bottom 70px) - computed assert_equals: expected "ellipse(at left 0% bottom 70px)" but got "none"
+FAIL ellipse(at top left 50%) serializes as ellipse(at 50% 0%) - computed assert_equals: expected "ellipse(at 50% 0%)" but got "none"
+FAIL ellipse(at top left 50px) serializes as ellipse(at 50px 0%) - computed assert_equals: expected "ellipse(at 50px 0%)" but got "none"
+FAIL ellipse(at top right 70%) serializes as ellipse(at 30% 0%) - computed assert_equals: expected "ellipse(at 30% 0%)" but got "none"
+FAIL ellipse(at top right 70px) serializes as ellipse(at right 70px top 0%) - computed assert_equals: expected "ellipse(at right 70px top 0%)" but got "none"
+FAIL ellipse(at bottom left 50%) serializes as ellipse(at 50% 100%) - computed assert_equals: expected "ellipse(at 50% 100%)" but got "none"
+FAIL ellipse(at bottom left 50px) serializes as ellipse(at 50px 100%) - computed assert_equals: expected "ellipse(at 50px 100%)" but got "none"
+FAIL ellipse(at bottom right 70%) serializes as ellipse(at 30% 100%) - computed assert_equals: expected "ellipse(at 30% 100%)" but got "none"
+FAIL ellipse(at bottom right 70px) serializes as ellipse(at right 70px top 100%) - computed assert_equals: expected "ellipse(at right 70px top 100%)" but got "none"
+FAIL ellipse(at right bottom 70%) serializes as ellipse(at 100% 30%) - computed assert_equals: expected "ellipse(at 100% 30%)" but got "none"
+FAIL ellipse(at right bottom 70px) serializes as ellipse(at left 100% bottom 70px) - computed assert_equals: expected "ellipse(at left 100% bottom 70px)" but got "none"
+FAIL ellipse(at right top 50%) serializes as ellipse(at 100% 50%) - computed assert_equals: expected "ellipse(at 100% 50%)" but got "none"
+FAIL ellipse(at right top 50px) serializes as ellipse(at 100% 50px) - computed assert_equals: expected "ellipse(at 100% 50px)" but got "none"
+FAIL ellipse(at left 50% center) serializes as ellipse(at 50% 50%) - computed assert_equals: expected "ellipse(at 50% 50%)" but got "none"
+FAIL ellipse(at left 50px center) serializes as ellipse(at 50px 50%) - computed assert_equals: expected "ellipse(at 50px 50%)" but got "none"
+FAIL ellipse(at left 50% top) serializes as ellipse(at 50% 0%) - computed assert_equals: expected "ellipse(at 50% 0%)" but got "none"
+FAIL ellipse(at left 50px top) serializes as ellipse(at 50px 0%) - computed assert_equals: expected "ellipse(at 50px 0%)" but got "none"
+FAIL ellipse(at left 50% bottom) serializes as ellipse(at 50% 100%) - computed assert_equals: expected "ellipse(at 50% 100%)" but got "none"
+FAIL ellipse(at left 50px bottom) serializes as ellipse(at 50px 100%) - computed assert_equals: expected "ellipse(at 50px 100%)" but got "none"
+FAIL ellipse(at top 50% center) serializes as ellipse(at 50% 50%) - computed assert_equals: expected "ellipse(at 50% 50%)" but got "none"
+FAIL ellipse(at top 50px center) serializes as ellipse(at 50% 50px) - computed assert_equals: expected "ellipse(at 50% 50px)" but got "none"
+FAIL ellipse(at top 50% left) serializes as ellipse(at 0% 50%) - computed assert_equals: expected "ellipse(at 0% 50%)" but got "none"
+FAIL ellipse(at top 50px left) serializes as ellipse(at 0% 50px) - computed assert_equals: expected "ellipse(at 0% 50px)" but got "none"
+FAIL ellipse(at top 50% right) serializes as ellipse(at 100% 50%) - computed assert_equals: expected "ellipse(at 100% 50%)" but got "none"
+FAIL ellipse(at top 50px right) serializes as ellipse(at 100% 50px) - computed assert_equals: expected "ellipse(at 100% 50px)" but got "none"
+FAIL ellipse(at bottom 70% center) serializes as ellipse(at 50% 30%) - computed assert_equals: expected "ellipse(at 50% 30%)" but got "none"
+FAIL ellipse(at bottom 70px center) serializes as ellipse(at left 50% bottom 70px) - computed assert_equals: expected "ellipse(at left 50% bottom 70px)" but got "none"
+FAIL ellipse(at bottom 70% left) serializes as ellipse(at 0% 30%) - computed assert_equals: expected "ellipse(at 0% 30%)" but got "none"
+FAIL ellipse(at bottom 70px left) serializes as ellipse(at left 0% bottom 70px) - computed assert_equals: expected "ellipse(at left 0% bottom 70px)" but got "none"
+FAIL ellipse(at bottom 70% right) serializes as ellipse(at 100% 30%) - computed assert_equals: expected "ellipse(at 100% 30%)" but got "none"
+FAIL ellipse(at bottom 70px right) serializes as ellipse(at left 100% bottom 70px) - computed assert_equals: expected "ellipse(at left 100% bottom 70px)" but got "none"
+FAIL ellipse(at right 80% center) serializes as ellipse(at 20% 50%) - computed assert_equals: expected "ellipse(at 20% 50%)" but got "none"
+FAIL ellipse(at right 80px center) serializes as ellipse(at right 80px top 50%) - computed assert_equals: expected "ellipse(at right 80px top 50%)" but got "none"
+FAIL ellipse(at right 80% bottom) serializes as ellipse(at 20% 100%) - computed assert_equals: expected "ellipse(at 20% 100%)" but got "none"
+FAIL ellipse(at right 80px bottom) serializes as ellipse(at right 80px top 100%) - computed assert_equals: expected "ellipse(at right 80px top 100%)" but got "none"
+FAIL ellipse(at right 80% top) serializes as ellipse(at 20% 0%) - computed assert_equals: expected "ellipse(at 20% 0%)" but got "none"
+FAIL ellipse(at right 80px top) serializes as ellipse(at right 80px top 0%) - computed assert_equals: expected "ellipse(at right 80px top 0%)" but got "none"
 PASS ellipse(at left 50% top 50%) serializes as ellipse(at 50% 50%) - computed 
 PASS ellipse(at left 50% top 50px) serializes as ellipse(at 50% 50px) - computed 
 PASS ellipse(at left 50% bottom 70%) serializes as ellipse(at 50% 30%) - computed 
index 487104e..cd30d09 100644 (file)
@@ -9,30 +9,30 @@ PASS test unit (inline): cm - ellipse(at right 80cm)
 PASS test unit (inline): cm - ellipse(at 70cm bottom) 
 PASS test unit (inline): cm - ellipse(at center 60cm) 
 PASS test unit (inline): cm - ellipse(at 60cm center) 
-PASS test unit (inline): cm - ellipse(at center top 50cm) 
-PASS test unit (inline): cm - ellipse(at center left 50cm) 
-PASS test unit (inline): cm - ellipse(at center right 70cm) 
-PASS test unit (inline): cm - ellipse(at center bottom 70cm) 
-PASS test unit (inline): cm - ellipse(at left top 50cm) 
-PASS test unit (inline): cm - ellipse(at left bottom 70cm) 
-PASS test unit (inline): cm - ellipse(at top left 50cm) 
-PASS test unit (inline): cm - ellipse(at top right 70cm) 
-PASS test unit (inline): cm - ellipse(at bottom left 50cm) 
-PASS test unit (inline): cm - ellipse(at bottom right 70cm) 
-PASS test unit (inline): cm - ellipse(at right bottom 70cm) 
-PASS test unit (inline): cm - ellipse(at right top 50cm) 
-PASS test unit (inline): cm - ellipse(at left 50cm center) 
-PASS test unit (inline): cm - ellipse(at left 50cm top) 
-PASS test unit (inline): cm - ellipse(at left 50cm bottom) 
-PASS test unit (inline): cm - ellipse(at top 50cm center) 
-PASS test unit (inline): cm - ellipse(at top 50cm left) 
-PASS test unit (inline): cm - ellipse(at top 50cm right) 
-PASS test unit (inline): cm - ellipse(at bottom 70cm center) 
-PASS test unit (inline): cm - ellipse(at bottom 70cm left) 
-PASS test unit (inline): cm - ellipse(at bottom 70cm right) 
-PASS test unit (inline): cm - ellipse(at right 80cm center) 
-PASS test unit (inline): cm - ellipse(at right 80cm bottom) 
-PASS test unit (inline): cm - ellipse(at right 80cm top) 
+FAIL test unit (inline): cm - ellipse(at center top 50cm) assert_equals: expected "ellipse(at 50% 50cm)" but got ""
+FAIL test unit (inline): cm - ellipse(at center left 50cm) assert_equals: expected "ellipse(at 50cm 50%)" but got ""
+FAIL test unit (inline): cm - ellipse(at center right 70cm) assert_equals: expected "ellipse(at right 70cm top 50%)" but got ""
+FAIL test unit (inline): cm - ellipse(at center bottom 70cm) assert_equals: expected "ellipse(at left 50% bottom 70cm)" but got ""
+FAIL test unit (inline): cm - ellipse(at left top 50cm) assert_equals: expected "ellipse(at 0% 50cm)" but got ""
+FAIL test unit (inline): cm - ellipse(at left bottom 70cm) assert_equals: expected "ellipse(at left 0% bottom 70cm)" but got ""
+FAIL test unit (inline): cm - ellipse(at top left 50cm) assert_equals: expected "ellipse(at 50cm 0%)" but got ""
+FAIL test unit (inline): cm - ellipse(at top right 70cm) assert_equals: expected "ellipse(at right 70cm top 0%)" but got ""
+FAIL test unit (inline): cm - ellipse(at bottom left 50cm) assert_equals: expected "ellipse(at 50cm 100%)" but got ""
+FAIL test unit (inline): cm - ellipse(at bottom right 70cm) assert_equals: expected "ellipse(at right 70cm top 100%)" but got ""
+FAIL test unit (inline): cm - ellipse(at right bottom 70cm) assert_equals: expected "ellipse(at left 100% bottom 70cm)" but got ""
+FAIL test unit (inline): cm - ellipse(at right top 50cm) assert_equals: expected "ellipse(at 100% 50cm)" but got ""
+FAIL test unit (inline): cm - ellipse(at left 50cm center) assert_equals: expected "ellipse(at 50cm 50%)" but got ""
+FAIL test unit (inline): cm - ellipse(at left 50cm top) assert_equals: expected "ellipse(at 50cm 0%)" but got ""
+FAIL test unit (inline): cm - ellipse(at left 50cm bottom) assert_equals: expected "ellipse(at 50cm 100%)" but got ""
+FAIL test unit (inline): cm - ellipse(at top 50cm center) assert_equals: expected "ellipse(at 50% 50cm)" but got ""
+FAIL test unit (inline): cm - ellipse(at top 50cm left) assert_equals: expected "ellipse(at 0% 50cm)" but got ""
+FAIL test unit (inline): cm - ellipse(at top 50cm right) assert_equals: expected "ellipse(at 100% 50cm)" but got ""
+FAIL test unit (inline): cm - ellipse(at bottom 70cm center) assert_equals: expected "ellipse(at left 50% bottom 70cm)" but got ""
+FAIL test unit (inline): cm - ellipse(at bottom 70cm left) assert_equals: expected "ellipse(at left 0% bottom 70cm)" but got ""
+FAIL test unit (inline): cm - ellipse(at bottom 70cm right) assert_equals: expected "ellipse(at left 100% bottom 70cm)" but got ""
+FAIL test unit (inline): cm - ellipse(at right 80cm center) assert_equals: expected "ellipse(at right 80cm top 50%)" but got ""
+FAIL test unit (inline): cm - ellipse(at right 80cm bottom) assert_equals: expected "ellipse(at right 80cm top 100%)" but got ""
+FAIL test unit (inline): cm - ellipse(at right 80cm top) assert_equals: expected "ellipse(at right 80cm top 0%)" but got ""
 PASS test unit (inline): cm - ellipse(at left 50% top 50cm) 
 PASS test unit (inline): cm - ellipse(at left 50% bottom 70cm) 
 PASS test unit (inline): cm - ellipse(at left 50cm top 50%) 
@@ -67,30 +67,30 @@ PASS test unit (inline): mm - ellipse(at right 80mm)
 PASS test unit (inline): mm - ellipse(at 70mm bottom) 
 PASS test unit (inline): mm - ellipse(at center 60mm) 
 PASS test unit (inline): mm - ellipse(at 60mm center) 
-PASS test unit (inline): mm - ellipse(at center top 50mm) 
-PASS test unit (inline): mm - ellipse(at center left 50mm) 
-PASS test unit (inline): mm - ellipse(at center right 70mm) 
-PASS test unit (inline): mm - ellipse(at center bottom 70mm) 
-PASS test unit (inline): mm - ellipse(at left top 50mm) 
-PASS test unit (inline): mm - ellipse(at left bottom 70mm) 
-PASS test unit (inline): mm - ellipse(at top left 50mm) 
-PASS test unit (inline): mm - ellipse(at top right 70mm) 
-PASS test unit (inline): mm - ellipse(at bottom left 50mm) 
-PASS test unit (inline): mm - ellipse(at bottom right 70mm) 
-PASS test unit (inline): mm - ellipse(at right bottom 70mm) 
-PASS test unit (inline): mm - ellipse(at right top 50mm) 
-PASS test unit (inline): mm - ellipse(at left 50mm center) 
-PASS test unit (inline): mm - ellipse(at left 50mm top) 
-PASS test unit (inline): mm - ellipse(at left 50mm bottom) 
-PASS test unit (inline): mm - ellipse(at top 50mm center) 
-PASS test unit (inline): mm - ellipse(at top 50mm left) 
-PASS test unit (inline): mm - ellipse(at top 50mm right) 
-PASS test unit (inline): mm - ellipse(at bottom 70mm center) 
-PASS test unit (inline): mm - ellipse(at bottom 70mm left) 
-PASS test unit (inline): mm - ellipse(at bottom 70mm right) 
-PASS test unit (inline): mm - ellipse(at right 80mm center) 
-PASS test unit (inline): mm - ellipse(at right 80mm bottom) 
-PASS test unit (inline): mm - ellipse(at right 80mm top) 
+FAIL test unit (inline): mm - ellipse(at center top 50mm) assert_equals: expected "ellipse(at 50% 50mm)" but got ""
+FAIL test unit (inline): mm - ellipse(at center left 50mm) assert_equals: expected "ellipse(at 50mm 50%)" but got ""
+FAIL test unit (inline): mm - ellipse(at center right 70mm) assert_equals: expected "ellipse(at right 70mm top 50%)" but got ""
+FAIL test unit (inline): mm - ellipse(at center bottom 70mm) assert_equals: expected "ellipse(at left 50% bottom 70mm)" but got ""
+FAIL test unit (inline): mm - ellipse(at left top 50mm) assert_equals: expected "ellipse(at 0% 50mm)" but got ""
+FAIL test unit (inline): mm - ellipse(at left bottom 70mm) assert_equals: expected "ellipse(at left 0% bottom 70mm)" but got ""
+FAIL test unit (inline): mm - ellipse(at top left 50mm) assert_equals: expected "ellipse(at 50mm 0%)" but got ""
+FAIL test unit (inline): mm - ellipse(at top right 70mm) assert_equals: expected "ellipse(at right 70mm top 0%)" but got ""
+FAIL test unit (inline): mm - ellipse(at bottom left 50mm) assert_equals: expected "ellipse(at 50mm 100%)" but got ""
+FAIL test unit (inline): mm - ellipse(at bottom right 70mm) assert_equals: expected "ellipse(at right 70mm top 100%)" but got ""
+FAIL test unit (inline): mm - ellipse(at right bottom 70mm) assert_equals: expected "ellipse(at left 100% bottom 70mm)" but got ""
+FAIL test unit (inline): mm - ellipse(at right top 50mm) assert_equals: expected "ellipse(at 100% 50mm)" but got ""
+FAIL test unit (inline): mm - ellipse(at left 50mm center) assert_equals: expected "ellipse(at 50mm 50%)" but got ""
+FAIL test unit (inline): mm - ellipse(at left 50mm top) assert_equals: expected "ellipse(at 50mm 0%)" but got ""
+FAIL test unit (inline): mm - ellipse(at left 50mm bottom) assert_equals: expected "ellipse(at 50mm 100%)" but got ""
+FAIL test unit (inline): mm - ellipse(at top 50mm center) assert_equals: expected "ellipse(at 50% 50mm)" but got ""
+FAIL test unit (inline): mm - ellipse(at top 50mm left) assert_equals: expected "ellipse(at 0% 50mm)" but got ""
+FAIL test unit (inline): mm - ellipse(at top 50mm right) assert_equals: expected "ellipse(at 100% 50mm)" but got ""
+FAIL test unit (inline): mm - ellipse(at bottom 70mm center) assert_equals: expected "ellipse(at left 50% bottom 70mm)" but got ""
+FAIL test unit (inline): mm - ellipse(at bottom 70mm left) assert_equals: expected "ellipse(at left 0% bottom 70mm)" but got ""
+FAIL test unit (inline): mm - ellipse(at bottom 70mm right) assert_equals: expected "ellipse(at left 100% bottom 70mm)" but got ""
+FAIL test unit (inline): mm - ellipse(at right 80mm center) assert_equals: expected "ellipse(at right 80mm top 50%)" but got ""
+FAIL test unit (inline): mm - ellipse(at right 80mm bottom) assert_equals: expected "ellipse(at right 80mm top 100%)" but got ""
+FAIL test unit (inline): mm - ellipse(at right 80mm top) assert_equals: expected "ellipse(at right 80mm top 0%)" but got ""
 PASS test unit (inline): mm - ellipse(at left 50% top 50mm) 
 PASS test unit (inline): mm - ellipse(at left 50% bottom 70mm) 
 PASS test unit (inline): mm - ellipse(at left 50mm top 50%) 
@@ -125,30 +125,30 @@ PASS test unit (inline): in - ellipse(at right 80in)
 PASS test unit (inline): in - ellipse(at 70in bottom) 
 PASS test unit (inline): in - ellipse(at center 60in) 
 PASS test unit (inline): in - ellipse(at 60in center) 
-PASS test unit (inline): in - ellipse(at center top 50in) 
-PASS test unit (inline): in - ellipse(at center left 50in) 
-PASS test unit (inline): in - ellipse(at center right 70in) 
-PASS test unit (inline): in - ellipse(at center bottom 70in) 
-PASS test unit (inline): in - ellipse(at left top 50in) 
-PASS test unit (inline): in - ellipse(at left bottom 70in) 
-PASS test unit (inline): in - ellipse(at top left 50in) 
-PASS test unit (inline): in - ellipse(at top right 70in) 
-PASS test unit (inline): in - ellipse(at bottom left 50in) 
-PASS test unit (inline): in - ellipse(at bottom right 70in) 
-PASS test unit (inline): in - ellipse(at right bottom 70in) 
-PASS test unit (inline): in - ellipse(at right top 50in) 
-PASS test unit (inline): in - ellipse(at left 50in center) 
-PASS test unit (inline): in - ellipse(at left 50in top) 
-PASS test unit (inline): in - ellipse(at left 50in bottom) 
-PASS test unit (inline): in - ellipse(at top 50in center) 
-PASS test unit (inline): in - ellipse(at top 50in left) 
-PASS test unit (inline): in - ellipse(at top 50in right) 
-PASS test unit (inline): in - ellipse(at bottom 70in center) 
-PASS test unit (inline): in - ellipse(at bottom 70in left) 
-PASS test unit (inline): in - ellipse(at bottom 70in right) 
-PASS test unit (inline): in - ellipse(at right 80in center) 
-PASS test unit (inline): in - ellipse(at right 80in bottom) 
-PASS test unit (inline): in - ellipse(at right 80in top) 
+FAIL test unit (inline): in - ellipse(at center top 50in) assert_equals: expected "ellipse(at 50% 50in)" but got ""
+FAIL test unit (inline): in - ellipse(at center left 50in) assert_equals: expected "ellipse(at 50in 50%)" but got ""
+FAIL test unit (inline): in - ellipse(at center right 70in) assert_equals: expected "ellipse(at right 70in top 50%)" but got ""
+FAIL test unit (inline): in - ellipse(at center bottom 70in) assert_equals: expected "ellipse(at left 50% bottom 70in)" but got ""
+FAIL test unit (inline): in - ellipse(at left top 50in) assert_equals: expected "ellipse(at 0% 50in)" but got ""
+FAIL test unit (inline): in - ellipse(at left bottom 70in) assert_equals: expected "ellipse(at left 0% bottom 70in)" but got ""
+FAIL test unit (inline): in - ellipse(at top left 50in) assert_equals: expected "ellipse(at 50in 0%)" but got ""
+FAIL test unit (inline): in - ellipse(at top right 70in) assert_equals: expected "ellipse(at right 70in top 0%)" but got ""
+FAIL test unit (inline): in - ellipse(at bottom left 50in) assert_equals: expected "ellipse(at 50in 100%)" but got ""
+FAIL test unit (inline): in - ellipse(at bottom right 70in) assert_equals: expected "ellipse(at right 70in top 100%)" but got ""
+FAIL test unit (inline): in - ellipse(at right bottom 70in) assert_equals: expected "ellipse(at left 100% bottom 70in)" but got ""
+FAIL test unit (inline): in - ellipse(at right top 50in) assert_equals: expected "ellipse(at 100% 50in)" but got ""
+FAIL test unit (inline): in - ellipse(at left 50in center) assert_equals: expected "ellipse(at 50in 50%)" but got ""
+FAIL test unit (inline): in - ellipse(at left 50in top) assert_equals: expected "ellipse(at 50in 0%)" but got ""
+FAIL test unit (inline): in - ellipse(at left 50in bottom) assert_equals: expected "ellipse(at 50in 100%)" but got ""
+FAIL test unit (inline): in - ellipse(at top 50in center) assert_equals: expected "ellipse(at 50% 50in)" but got ""
+FAIL test unit (inline): in - ellipse(at top 50in left) assert_equals: expected "ellipse(at 0% 50in)" but got ""
+FAIL test unit (inline): in - ellipse(at top 50in right) assert_equals: expected "ellipse(at 100% 50in)" but got ""
+FAIL test unit (inline): in - ellipse(at bottom 70in center) assert_equals: expected "ellipse(at left 50% bottom 70in)" but got ""
+FAIL test unit (inline): in - ellipse(at bottom 70in left) assert_equals: expected "ellipse(at left 0% bottom 70in)" but got ""
+FAIL test unit (inline): in - ellipse(at bottom 70in right) assert_equals: expected "ellipse(at left 100% bottom 70in)" but got ""
+FAIL test unit (inline): in - ellipse(at right 80in center) assert_equals: expected "ellipse(at right 80in top 50%)" but got ""
+FAIL test unit (inline): in - ellipse(at right 80in bottom) assert_equals: expected "ellipse(at right 80in top 100%)" but got ""
+FAIL test unit (inline): in - ellipse(at right 80in top) assert_equals: expected "ellipse(at right 80in top 0%)" but got ""
 PASS test unit (inline): in - ellipse(at left 50% top 50in) 
 PASS test unit (inline): in - ellipse(at left 50% bottom 70in) 
 PASS test unit (inline): in - ellipse(at left 50in top 50%) 
@@ -183,30 +183,30 @@ PASS test unit (inline): pt - ellipse(at right 80pt)
 PASS test unit (inline): pt - ellipse(at 70pt bottom) 
 PASS test unit (inline): pt - ellipse(at center 60pt) 
 PASS test unit (inline): pt - ellipse(at 60pt center) 
-PASS test unit (inline): pt - ellipse(at center top 50pt) 
-PASS test unit (inline): pt - ellipse(at center left 50pt) 
-PASS test unit (inline): pt - ellipse(at center right 70pt) 
-PASS test unit (inline): pt - ellipse(at center bottom 70pt) 
-PASS test unit (inline): pt - ellipse(at left top 50pt) 
-PASS test unit (inline): pt - ellipse(at left bottom 70pt) 
-PASS test unit (inline): pt - ellipse(at top left 50pt) 
-PASS test unit (inline): pt - ellipse(at top right 70pt) 
-PASS test unit (inline): pt - ellipse(at bottom left 50pt) 
-PASS test unit (inline): pt - ellipse(at bottom right 70pt) 
-PASS test unit (inline): pt - ellipse(at right bottom 70pt) 
-PASS test unit (inline): pt - ellipse(at right top 50pt) 
-PASS test unit (inline): pt - ellipse(at left 50pt center) 
-PASS test unit (inline): pt - ellipse(at left 50pt top) 
-PASS test unit (inline): pt - ellipse(at left 50pt bottom) 
-PASS test unit (inline): pt - ellipse(at top 50pt center) 
-PASS test unit (inline): pt - ellipse(at top 50pt left) 
-PASS test unit (inline): pt - ellipse(at top 50pt right) 
-PASS test unit (inline): pt - ellipse(at bottom 70pt center) 
-PASS test unit (inline): pt - ellipse(at bottom 70pt left) 
-PASS test unit (inline): pt - ellipse(at bottom 70pt right) 
-PASS test unit (inline): pt - ellipse(at right 80pt center) 
-PASS test unit (inline): pt - ellipse(at right 80pt bottom) 
-PASS test unit (inline): pt - ellipse(at right 80pt top) 
+FAIL test unit (inline): pt - ellipse(at center top 50pt) assert_equals: expected "ellipse(at 50% 50pt)" but got ""
+FAIL test unit (inline): pt - ellipse(at center left 50pt) assert_equals: expected "ellipse(at 50pt 50%)" but got ""
+FAIL test unit (inline): pt - ellipse(at center right 70pt) assert_equals: expected "ellipse(at right 70pt top 50%)" but got ""
+FAIL test unit (inline): pt - ellipse(at center bottom 70pt) assert_equals: expected "ellipse(at left 50% bottom 70pt)" but got ""
+FAIL test unit (inline): pt - ellipse(at left top 50pt) assert_equals: expected "ellipse(at 0% 50pt)" but got ""
+FAIL test unit (inline): pt - ellipse(at left bottom 70pt) assert_equals: expected "ellipse(at left 0% bottom 70pt)" but got ""
+FAIL test unit (inline): pt - ellipse(at top left 50pt) assert_equals: expected "ellipse(at 50pt 0%)" but got ""
+FAIL test unit (inline): pt - ellipse(at top right 70pt) assert_equals: expected "ellipse(at right 70pt top 0%)" but got ""
+FAIL test unit (inline): pt - ellipse(at bottom left 50pt) assert_equals: expected "ellipse(at 50pt 100%)" but got ""
+FAIL test unit (inline): pt - ellipse(at bottom right 70pt) assert_equals: expected "ellipse(at right 70pt top 100%)" but got ""
+FAIL test unit (inline): pt - ellipse(at right bottom 70pt) assert_equals: expected "ellipse(at left 100% bottom 70pt)" but got ""
+FAIL test unit (inline): pt - ellipse(at right top 50pt) assert_equals: expected "ellipse(at 100% 50pt)" but got ""
+FAIL test unit (inline): pt - ellipse(at left 50pt center) assert_equals: expected "ellipse(at 50pt 50%)" but got ""
+FAIL test unit (inline): pt - ellipse(at left 50pt top) assert_equals: expected "ellipse(at 50pt 0%)" but got ""
+FAIL test unit (inline): pt - ellipse(at left 50pt bottom) assert_equals: expected "ellipse(at 50pt 100%)" but got ""
+FAIL test unit (inline): pt - ellipse(at top 50pt center) assert_equals: expected "ellipse(at 50% 50pt)" but got ""
+FAIL test unit (inline): pt - ellipse(at top 50pt left) assert_equals: expected "ellipse(at 0% 50pt)" but got ""
+FAIL test unit (inline): pt - ellipse(at top 50pt right) assert_equals: expected "ellipse(at 100% 50pt)" but got ""
+FAIL test unit (inline): pt - ellipse(at bottom 70pt center) assert_equals: expected "ellipse(at left 50% bottom 70pt)" but got ""
+FAIL test unit (inline): pt - ellipse(at bottom 70pt left) assert_equals: expected "ellipse(at left 0% bottom 70pt)" but got ""
+FAIL test unit (inline): pt - ellipse(at bottom 70pt right) assert_equals: expected "ellipse(at left 100% bottom 70pt)" but got ""
+FAIL test unit (inline): pt - ellipse(at right 80pt center) assert_equals: expected "ellipse(at right 80pt top 50%)" but got ""
+FAIL test unit (inline): pt - ellipse(at right 80pt bottom) assert_equals: expected "ellipse(at right 80pt top 100%)" but got ""
+FAIL test unit (inline): pt - ellipse(at right 80pt top) assert_equals: expected "ellipse(at right 80pt top 0%)" but got ""
 PASS test unit (inline): pt - ellipse(at left 50% top 50pt) 
 PASS test unit (inline): pt - ellipse(at left 50% bottom 70pt) 
 PASS test unit (inline): pt - ellipse(at left 50pt top 50%) 
@@ -241,30 +241,30 @@ PASS test unit (inline): pc - ellipse(at right 80pc)
 PASS test unit (inline): pc - ellipse(at 70pc bottom) 
 PASS test unit (inline): pc - ellipse(at center 60pc) 
 PASS test unit (inline): pc - ellipse(at 60pc center) 
-PASS test unit (inline): pc - ellipse(at center top 50pc) 
-PASS test unit (inline): pc - ellipse(at center left 50pc) 
-PASS test unit (inline): pc - ellipse(at center right 70pc) 
-PASS test unit (inline): pc - ellipse(at center bottom 70pc) 
-PASS test unit (inline): pc - ellipse(at left top 50pc) 
-PASS test unit (inline): pc - ellipse(at left bottom 70pc) 
-PASS test unit (inline): pc - ellipse(at top left 50pc) 
-PASS test unit (inline): pc - ellipse(at top right 70pc) 
-PASS test unit (inline): pc - ellipse(at bottom left 50pc) 
-PASS test unit (inline): pc - ellipse(at bottom right 70pc) 
-PASS test unit (inline): pc - ellipse(at right bottom 70pc) 
-PASS test unit (inline): pc - ellipse(at right top 50pc) 
-PASS test unit (inline): pc - ellipse(at left 50pc center) 
-PASS test unit (inline): pc - ellipse(at left 50pc top) 
-PASS test unit (inline): pc - ellipse(at left 50pc bottom) 
-PASS test unit (inline): pc - ellipse(at top 50pc center) 
-PASS test unit (inline): pc - ellipse(at top 50pc left) 
-PASS test unit (inline): pc - ellipse(at top 50pc right) 
-PASS test unit (inline): pc - ellipse(at bottom 70pc center) 
-PASS test unit (inline): pc - ellipse(at bottom 70pc left) 
-PASS test unit (inline): pc - ellipse(at bottom 70pc right) 
-PASS test unit (inline): pc - ellipse(at right 80pc center) 
-PASS test unit (inline): pc - ellipse(at right 80pc bottom) 
-PASS test unit (inline): pc - ellipse(at right 80pc top) 
+FAIL test unit (inline): pc - ellipse(at center top 50pc) assert_equals: expected "ellipse(at 50% 50pc)" but got ""
+FAIL test unit (inline): pc - ellipse(at center left 50pc) assert_equals: expected "ellipse(at 50pc 50%)" but got ""
+FAIL test unit (inline): pc - ellipse(at center right 70pc) assert_equals: expected "ellipse(at right 70pc top 50%)" but got ""
+FAIL test unit (inline): pc - ellipse(at center bottom 70pc) assert_equals: expected "ellipse(at left 50% bottom 70pc)" but got ""
+FAIL test unit (inline): pc - ellipse(at left top 50pc) assert_equals: expected "ellipse(at 0% 50pc)" but got ""
+FAIL test unit (inline): pc - ellipse(at left bottom 70pc) assert_equals: expected "ellipse(at left 0% bottom 70pc)" but got ""
+FAIL test unit (inline): pc - ellipse(at top left 50pc) assert_equals: expected "ellipse(at 50pc 0%)" but got ""
+FAIL test unit (inline): pc - ellipse(at top right 70pc) assert_equals: expected "ellipse(at right 70pc top 0%)" but got ""
+FAIL test unit (inline): pc - ellipse(at bottom left 50pc) assert_equals: expected "ellipse(at 50pc 100%)" but got ""
+FAIL test unit (inline): pc - ellipse(at bottom right 70pc) assert_equals: expected "ellipse(at right 70pc top 100%)" but got ""
+FAIL test unit (inline): pc - ellipse(at right bottom 70pc) assert_equals: expected "ellipse(at left 100% bottom 70pc)" but got ""
+FAIL test unit (inline): pc - ellipse(at right top 50pc) assert_equals: expected "ellipse(at 100% 50pc)" but got ""
+FAIL test unit (inline): pc - ellipse(at left 50pc center) assert_equals: expected "ellipse(at 50pc 50%)" but got ""
+FAIL test unit (inline): pc - ellipse(at left 50pc top) assert_equals: expected "ellipse(at 50pc 0%)" but got ""
+FAIL test unit (inline): pc - ellipse(at left 50pc bottom) assert_equals: expected "ellipse(at 50pc 100%)" but got ""
+FAIL test unit (inline): pc - ellipse(at top 50pc center) assert_equals: expected "ellipse(at 50% 50pc)" but got ""
+FAIL test unit (inline): pc - ellipse(at top 50pc left) assert_equals: expected "ellipse(at 0% 50pc)" but got ""
+FAIL test unit (inline): pc - ellipse(at top 50pc right) assert_equals: expected "ellipse(at 100% 50pc)" but got ""
+FAIL test unit (inline): pc - ellipse(at bottom 70pc center) assert_equals: expected "ellipse(at left 50% bottom 70pc)" but got ""
+FAIL test unit (inline): pc - ellipse(at bottom 70pc left) assert_equals: expected "ellipse(at left 0% bottom 70pc)" but got ""
+FAIL test unit (inline): pc - ellipse(at bottom 70pc right) assert_equals: expected "ellipse(at left 100% bottom 70pc)" but got ""
+FAIL test unit (inline): pc - ellipse(at right 80pc center) assert_equals: expected "ellipse(at right 80pc top 50%)" but got ""
+FAIL test unit (inline): pc - ellipse(at right 80pc bottom) assert_equals: expected "ellipse(at right 80pc top 100%)" but got ""
+FAIL test unit (inline): pc - ellipse(at right 80pc top) assert_equals: expected "ellipse(at right 80pc top 0%)" but got ""
 PASS test unit (inline): pc - ellipse(at left 50% top 50pc) 
 PASS test unit (inline): pc - ellipse(at left 50% bottom 70pc) 
 PASS test unit (inline): pc - ellipse(at left 50pc top 50%) 
@@ -299,30 +299,30 @@ PASS test unit (inline): em - ellipse(at right 80em)
 PASS test unit (inline): em - ellipse(at 70em bottom) 
 PASS test unit (inline): em - ellipse(at center 60em) 
 PASS test unit (inline): em - ellipse(at 60em center) 
-PASS test unit (inline): em - ellipse(at center top 50em) 
-PASS test unit (inline): em - ellipse(at center left 50em) 
-PASS test unit (inline): em - ellipse(at center right 70em) 
-PASS test unit (inline): em - ellipse(at center bottom 70em) 
-PASS test unit (inline): em - ellipse(at left top 50em) 
-PASS test unit (inline): em - ellipse(at left bottom 70em) 
-PASS test unit (inline): em - ellipse(at top left 50em) 
-PASS test unit (inline): em - ellipse(at top right 70em) 
-PASS test unit (inline): em - ellipse(at bottom left 50em) 
-PASS test unit (inline): em - ellipse(at bottom right 70em) 
-PASS test unit (inline): em - ellipse(at right bottom 70em) 
-PASS test unit (inline): em - ellipse(at right top 50em) 
-PASS test unit (inline): em - ellipse(at left 50em center) 
-PASS test unit (inline): em - ellipse(at left 50em top) 
-PASS test unit (inline): em - ellipse(at left 50em bottom) 
-PASS test unit (inline): em - ellipse(at top 50em center) 
-PASS test unit (inline): em - ellipse(at top 50em left) 
-PASS test unit (inline): em - ellipse(at top 50em right) 
-PASS test unit (inline): em - ellipse(at bottom 70em center) 
-PASS test unit (inline): em - ellipse(at bottom 70em left) 
-PASS test unit (inline): em - ellipse(at bottom 70em right) 
-PASS test unit (inline): em - ellipse(at right 80em center) 
-PASS test unit (inline): em - ellipse(at right 80em bottom) 
-PASS test unit (inline): em - ellipse(at right 80em top) 
+FAIL test unit (inline): em - ellipse(at center top 50em) assert_equals: expected "ellipse(at 50% 50em)" but got ""
+FAIL test unit (inline): em - ellipse(at center left 50em) assert_equals: expected "ellipse(at 50em 50%)" but got ""
+FAIL test unit (inline): em - ellipse(at center right 70em) assert_equals: expected "ellipse(at right 70em top 50%)" but got ""
+FAIL test unit (inline): em - ellipse(at center bottom 70em) assert_equals: expected "ellipse(at left 50% bottom 70em)" but got ""
+FAIL test unit (inline): em - ellipse(at left top 50em) assert_equals: expected "ellipse(at 0% 50em)" but got ""
+FAIL test unit (inline): em - ellipse(at left bottom 70em) assert_equals: expected "ellipse(at left 0% bottom 70em)" but got ""
+FAIL test unit (inline): em - ellipse(at top left 50em) assert_equals: expected "ellipse(at 50em 0%)" but got ""
+FAIL test unit (inline): em - ellipse(at top right 70em) assert_equals: expected "ellipse(at right 70em top 0%)" but got ""
+FAIL test unit (inline): em - ellipse(at bottom left 50em) assert_equals: expected "ellipse(at 50em 100%)" but got ""
+FAIL test unit (inline): em - ellipse(at bottom right 70em) assert_equals: expected "ellipse(at right 70em top 100%)" but got ""
+FAIL test unit (inline): em - ellipse(at right bottom 70em) assert_equals: expected "ellipse(at left 100% bottom 70em)" but got ""
+FAIL test unit (inline): em - ellipse(at right top 50em) assert_equals: expected "ellipse(at 100% 50em)" but got ""
+FAIL test unit (inline): em - ellipse(at left 50em center) assert_equals: expected "ellipse(at 50em 50%)" but got ""
+FAIL test unit (inline): em - ellipse(at left 50em top) assert_equals: expected "ellipse(at 50em 0%)" but got ""
+FAIL test unit (inline): em - ellipse(at left 50em bottom) assert_equals: expected "ellipse(at 50em 100%)" but got ""
+FAIL test unit (inline): em - ellipse(at top 50em center) assert_equals: expected "ellipse(at 50% 50em)" but got ""
+FAIL test unit (inline): em - ellipse(at top 50em left) assert_equals: expected "ellipse(at 0% 50em)" but got ""
+FAIL test unit (inline): em - ellipse(at top 50em right) assert_equals: expected "ellipse(at 100% 50em)" but got ""
+FAIL test unit (inline): em - ellipse(at bottom 70em center) assert_equals: expected "ellipse(at left 50% bottom 70em)" but got ""
+FAIL test unit (inline): em - ellipse(at bottom 70em left) assert_equals: expected "ellipse(at left 0% bottom 70em)" but got ""
+FAIL test unit (inline): em - ellipse(at bottom 70em right) assert_equals: expected "ellipse(at left 100% bottom 70em)" but got ""
+FAIL test unit (inline): em - ellipse(at right 80em center) assert_equals: expected "ellipse(at right 80em top 50%)" but got ""
+FAIL test unit (inline): em - ellipse(at right 80em bottom) assert_equals: expected "ellipse(at right 80em top 100%)" but got ""
+FAIL test unit (inline): em - ellipse(at right 80em top) assert_equals: expected "ellipse(at right 80em top 0%)" but got ""
 PASS test unit (inline): em - ellipse(at left 50% top 50em) 
 PASS test unit (inline): em - ellipse(at left 50% bottom 70em) 
 PASS test unit (inline): em - ellipse(at left 50em top 50%) 
@@ -357,30 +357,30 @@ PASS test unit (inline): ex - ellipse(at right 80ex)
 PASS test unit (inline): ex - ellipse(at 70ex bottom) 
 PASS test unit (inline): ex - ellipse(at center 60ex) 
 PASS test unit (inline): ex - ellipse(at 60ex center) 
-PASS test unit (inline): ex - ellipse(at center top 50ex) 
-PASS test unit (inline): ex - ellipse(at center left 50ex) 
-PASS test unit (inline): ex - ellipse(at center right 70ex) 
-PASS test unit (inline): ex - ellipse(at center bottom 70ex) 
-PASS test unit (inline): ex - ellipse(at left top 50ex) 
-PASS test unit (inline): ex - ellipse(at left bottom 70ex) 
-PASS test unit (inline): ex - ellipse(at top left 50ex) 
-PASS test unit (inline): ex - ellipse(at top right 70ex) 
-PASS test unit (inline): ex - ellipse(at bottom left 50ex) 
-PASS test unit (inline): ex - ellipse(at bottom right 70ex) 
-PASS test unit (inline): ex - ellipse(at right bottom 70ex) 
-PASS test unit (inline): ex - ellipse(at right top 50ex) 
-PASS test unit (inline): ex - ellipse(at left 50ex center) 
-PASS test unit (inline): ex - ellipse(at left 50ex top) 
-PASS test unit (inline): ex - ellipse(at left 50ex bottom) 
-PASS test unit (inline): ex - ellipse(at top 50ex center) 
-PASS test unit (inline): ex - ellipse(at top 50ex left) 
-PASS test unit (inline): ex - ellipse(at top 50ex right) 
-PASS test unit (inline): ex - ellipse(at bottom 70ex center) 
-PASS test unit (inline): ex - ellipse(at bottom 70ex left) 
-PASS test unit (inline): ex - ellipse(at bottom 70ex right) 
-PASS test unit (inline): ex - ellipse(at right 80ex center) 
-PASS test unit (inline): ex - ellipse(at right 80ex bottom) 
-PASS test unit (inline): ex - ellipse(at right 80ex top) 
+FAIL test unit (inline): ex - ellipse(at center top 50ex) assert_equals: expected "ellipse(at 50% 50ex)" but got ""
+FAIL test unit (inline): ex - ellipse(at center left 50ex) assert_equals: expected "ellipse(at 50ex 50%)" but got ""
+FAIL test unit (inline): ex - ellipse(at center right 70ex) assert_equals: expected "ellipse(at right 70ex top 50%)" but got ""
+FAIL test unit (inline): ex - ellipse(at center bottom 70ex) assert_equals: expected "ellipse(at left 50% bottom 70ex)" but got ""
+FAIL test unit (inline): ex - ellipse(at left top 50ex) assert_equals: expected "ellipse(at 0% 50ex)" but got ""
+FAIL test unit (inline): ex - ellipse(at left bottom 70ex) assert_equals: expected "ellipse(at left 0% bottom 70ex)" but got ""
+FAIL test unit (inline): ex - ellipse(at top left 50ex) assert_equals: expected "ellipse(at 50ex 0%)" but got ""
+FAIL test unit (inline): ex - ellipse(at top right 70ex) assert_equals: expected "ellipse(at right 70ex top 0%)" but got ""
+FAIL test unit (inline): ex - ellipse(at bottom left 50ex) assert_equals: expected "ellipse(at 50ex 100%)" but got ""
+FAIL test unit (inline): ex - ellipse(at bottom right 70ex) assert_equals: expected "ellipse(at right 70ex top 100%)" but got ""
+FAIL test unit (inline): ex - ellipse(at right bottom 70ex) assert_equals: expected "ellipse(at left 100% bottom 70ex)" but got ""
+FAIL test unit (inline): ex - ellipse(at right top 50ex) assert_equals: expected "ellipse(at 100% 50ex)" but got ""
+FAIL test unit (inline): ex - ellipse(at left 50ex center) assert_equals: expected "ellipse(at 50ex 50%)" but got ""
+FAIL test unit (inline): ex - ellipse(at left 50ex top) assert_equals: expected "ellipse(at 50ex 0%)" but got ""
+FAIL test unit (inline): ex - ellipse(at left 50ex bottom) assert_equals: expected "ellipse(at 50ex 100%)" but got ""
+FAIL test unit (inline): ex - ellipse(at top 50ex center) assert_equals: expected "ellipse(at 50% 50ex)" but got ""
+FAIL test unit (inline): ex - ellipse(at top 50ex left) assert_equals: expected "ellipse(at 0% 50ex)" but got ""
+FAIL test unit (inline): ex - ellipse(at top 50ex right) assert_equals: expected "ellipse(at 100% 50ex)" but got ""
+FAIL test unit (inline): ex - ellipse(at bottom 70ex center) assert_equals: expected "ellipse(at left 50% bottom 70ex)" but got ""
+FAIL test unit (inline): ex - ellipse(at bottom 70ex left) assert_equals: expected "ellipse(at left 0% bottom 70ex)" but got ""
+FAIL test unit (inline): ex - ellipse(at bottom 70ex right) assert_equals: expected "ellipse(at left 100% bottom 70ex)" but got ""
+FAIL test unit (inline): ex - ellipse(at right 80ex center) assert_equals: expected "ellipse(at right 80ex top 50%)" but got ""
+FAIL test unit (inline): ex - ellipse(at right 80ex bottom) assert_equals: expected "ellipse(at right 80ex top 100%)" but got ""
+FAIL test unit (inline): ex - ellipse(at right 80ex top) assert_equals: expected "ellipse(at right 80ex top 0%)" but got ""
 PASS test unit (inline): ex - ellipse(at left 50% top 50ex) 
 PASS test unit (inline): ex - ellipse(at left 50% bottom 70ex) 
 PASS test unit (inline): ex - ellipse(at left 50ex top 50%) 
@@ -415,30 +415,30 @@ PASS test unit (inline): ch - ellipse(at right 80ch)
 PASS test unit (inline): ch - ellipse(at 70ch bottom) 
 PASS test unit (inline): ch - ellipse(at center 60ch) 
 PASS test unit (inline): ch - ellipse(at 60ch center) 
-PASS test unit (inline): ch - ellipse(at center top 50ch) 
-PASS test unit (inline): ch - ellipse(at center left 50ch) 
-PASS test unit (inline): ch - ellipse(at center right 70ch) 
-PASS test unit (inline): ch - ellipse(at center bottom 70ch) 
-PASS test unit (inline): ch - ellipse(at left top 50ch) 
-PASS test unit (inline): ch - ellipse(at left bottom 70ch) 
-PASS test unit (inline): ch - ellipse(at top left 50ch) 
-PASS test unit (inline): ch - ellipse(at top right 70ch) 
-PASS test unit (inline): ch - ellipse(at bottom left 50ch) 
-PASS test unit (inline): ch - ellipse(at bottom right 70ch) 
-PASS test unit (inline): ch - ellipse(at right bottom 70ch) 
-PASS test unit (inline): ch - ellipse(at right top 50ch) 
-PASS test unit (inline): ch - ellipse(at left 50ch center) 
-PASS test unit (inline): ch - ellipse(at left 50ch top) 
-PASS test unit (inline): ch - ellipse(at left 50ch bottom) 
-PASS test unit (inline): ch - ellipse(at top 50ch center) 
-PASS test unit (inline): ch - ellipse(at top 50ch left) 
-PASS test unit (inline): ch - ellipse(at top 50ch right) 
-PASS test unit (inline): ch - ellipse(at bottom 70ch center) 
-PASS test unit (inline): ch - ellipse(at bottom 70ch left) 
-PASS test unit (inline): ch - ellipse(at bottom 70ch right) 
-PASS test unit (inline): ch - ellipse(at right 80ch center) 
-PASS test unit (inline): ch - ellipse(at right 80ch bottom) 
-PASS test unit (inline): ch - ellipse(at right 80ch top) 
+FAIL test unit (inline): ch - ellipse(at center top 50ch) assert_equals: expected "ellipse(at 50% 50ch)" but got ""
+FAIL test unit (inline): ch - ellipse(at center left 50ch) assert_equals: expected "ellipse(at 50ch 50%)" but got ""
+FAIL test unit (inline): ch - ellipse(at center right 70ch) assert_equals: expected "ellipse(at right 70ch top 50%)" but got ""
+FAIL test unit (inline): ch - ellipse(at center bottom 70ch) assert_equals: expected "ellipse(at left 50% bottom 70ch)" but got ""
+FAIL test unit (inline): ch - ellipse(at left top 50ch) assert_equals: expected "ellipse(at 0% 50ch)" but got ""
+FAIL test unit (inline): ch - ellipse(at left bottom 70ch) assert_equals: expected "ellipse(at left 0% bottom 70ch)" but got ""
+FAIL test unit (inline): ch - ellipse(at top left 50ch) assert_equals: expected "ellipse(at 50ch 0%)" but got ""
+FAIL test unit (inline): ch - ellipse(at top right 70ch) assert_equals: expected "ellipse(at right 70ch top 0%)" but got ""
+FAIL test unit (inline): ch - ellipse(at bottom left 50ch) assert_equals: expected "ellipse(at 50ch 100%)" but got ""
+FAIL test unit (inline): ch - ellipse(at bottom right 70ch) assert_equals: expected "ellipse(at right 70ch top 100%)" but got ""
+FAIL test unit (inline): ch - ellipse(at right bottom 70ch) assert_equals: expected "ellipse(at left 100% bottom 70ch)" but got ""
+FAIL test unit (inline): ch - ellipse(at right top 50ch) assert_equals: expected "ellipse(at 100% 50ch)" but got ""
+FAIL test unit (inline): ch - ellipse(at left 50ch center) assert_equals: expected "ellipse(at 50ch 50%)" but got ""
+FAIL test unit (inline): ch - ellipse(at left 50ch top) assert_equals: expected "ellipse(at 50ch 0%)" but got ""
+FAIL test unit (inline): ch - ellipse(at left 50ch bottom) assert_equals: expected "ellipse(at 50ch 100%)" but got ""
+FAIL test unit (inline): ch - ellipse(at top 50ch center) assert_equals: expected "ellipse(at 50% 50ch)" but got ""
+FAIL test unit (inline): ch - ellipse(at top 50ch left) assert_equals: expected "ellipse(at 0% 50ch)" but got ""
+FAIL test unit (inline): ch - ellipse(at top 50ch right) assert_equals: expected "ellipse(at 100% 50ch)" but got ""
+FAIL test unit (inline): ch - ellipse(at bottom 70ch center) assert_equals: expected "ellipse(at left 50% bottom 70ch)" but got ""
+FAIL test unit (inline): ch - ellipse(at bottom 70ch left) assert_equals: expected "ellipse(at left 0% bottom 70ch)" but got ""
+FAIL test unit (inline): ch - ellipse(at bottom 70ch right) assert_equals: expected "ellipse(at left 100% bottom 70ch)" but got ""
+FAIL test unit (inline): ch - ellipse(at right 80ch center) assert_equals: expected "ellipse(at right 80ch top 50%)" but got ""
+FAIL test unit (inline): ch - ellipse(at right 80ch bottom) assert_equals: expected "ellipse(at right 80ch top 100%)" but got ""
+FAIL test unit (inline): ch - ellipse(at right 80ch top) assert_equals: expected "ellipse(at right 80ch top 0%)" but got ""
 PASS test unit (inline): ch - ellipse(at left 50% top 50ch) 
 PASS test unit (inline): ch - ellipse(at left 50% bottom 70ch) 
 PASS test unit (inline): ch - ellipse(at left 50ch top 50%) 
@@ -473,30 +473,30 @@ PASS test unit (inline): rem - ellipse(at right 80rem)
 PASS test unit (inline): rem - ellipse(at 70rem bottom) 
 PASS test unit (inline): rem - ellipse(at center 60rem) 
 PASS test unit (inline): rem - ellipse(at 60rem center) 
-PASS test unit (inline): rem - ellipse(at center top 50rem) 
-PASS test unit (inline): rem - ellipse(at center left 50rem) 
-PASS test unit (inline): rem - ellipse(at center right 70rem) 
-PASS test unit (inline): rem - ellipse(at center bottom 70rem) 
-PASS test unit (inline): rem - ellipse(at left top 50rem) 
-PASS test unit (inline): rem - ellipse(at left bottom 70rem) 
-PASS test unit (inline): rem - ellipse(at top left 50rem) 
-PASS test unit (inline): rem - ellipse(at top right 70rem) 
-PASS test unit (inline): rem - ellipse(at bottom left 50rem) 
-PASS test unit (inline): rem - ellipse(at bottom right 70rem) 
-PASS test unit (inline): rem - ellipse(at right bottom 70rem) 
-PASS test unit (inline): rem - ellipse(at right top 50rem) 
-PASS test unit (inline): rem - ellipse(at left 50rem center) 
-PASS test unit (inline): rem - ellipse(at left 50rem top) 
-PASS test unit (inline): rem - ellipse(at left 50rem bottom) 
-PASS test unit (inline): rem - ellipse(at top 50rem center) 
-PASS test unit (inline): rem - ellipse(at top 50rem left) 
-PASS test unit (inline): rem - ellipse(at top 50rem right) 
-PASS test unit (inline): rem - ellipse(at bottom 70rem center) 
-PASS test unit (inline): rem - ellipse(at bottom 70rem left) 
-PASS test unit (inline): rem - ellipse(at bottom 70rem right) 
-PASS test unit (inline): rem - ellipse(at right 80rem center) 
-PASS test unit (inline): rem - ellipse(at right 80rem bottom) 
-PASS test unit (inline): rem - ellipse(at right 80rem top) 
+FAIL test unit (inline): rem - ellipse(at center top 50rem) assert_equals: expected "ellipse(at 50% 50rem)" but got ""
+FAIL test unit (inline): rem - ellipse(at center left 50rem) assert_equals: expected "ellipse(at 50rem 50%)" but got ""
+FAIL test unit (inline): rem - ellipse(at center right 70rem) assert_equals: expected "ellipse(at right 70rem top 50%)" but got ""
+FAIL test unit (inline): rem - ellipse(at center bottom 70rem) assert_equals: expected "ellipse(at left 50% bottom 70rem)" but got ""
+FAIL test unit (inline): rem - ellipse(at left top 50rem) assert_equals: expected "ellipse(at 0% 50rem)" but got ""
+FAIL test unit (inline): rem - ellipse(at left bottom 70rem) assert_equals: expected "ellipse(at left 0% bottom 70rem)" but got ""
+FAIL test unit (inline): rem - ellipse(at top left 50rem) assert_equals: expected "ellipse(at 50rem 0%)" but got ""
+FAIL test unit (inline): rem - ellipse(at top right 70rem) assert_equals: expected "ellipse(at right 70rem top 0%)" but got ""
+FAIL test unit (inline): rem - ellipse(at bottom left 50rem) assert_equals: expected "ellipse(at 50rem 100%)" but got ""
+FAIL test unit (inline): rem - ellipse(at bottom right 70rem) assert_equals: expected "ellipse(at right 70rem top 100%)" but got ""
+FAIL test unit (inline): rem - ellipse(at right bottom 70rem) assert_equals: expected "ellipse(at left 100% bottom 70rem)" but got ""
+FAIL test unit (inline): rem - ellipse(at right top 50rem) assert_equals: expected "ellipse(at 100% 50rem)" but got ""
+FAIL test unit (inline): rem - ellipse(at left 50rem center) assert_equals: expected "ellipse(at 50rem 50%)" but got ""
+FAIL test unit (inline): rem - ellipse(at left 50rem top) assert_equals: expected "ellipse(at 50rem 0%)" but got ""
+FAIL test unit (inline): rem - ellipse(at left 50rem bottom) assert_equals: expected "ellipse(at 50rem 100%)" but got ""
+FAIL test unit (inline): rem - ellipse(at top 50rem center) assert_equals: expected "ellipse(at 50% 50rem)" but got ""
+FAIL test unit (inline): rem - ellipse(at top 50rem left) assert_equals: expected "ellipse(at 0% 50rem)" but got ""
+FAIL test unit (inline): rem - ellipse(at top 50rem right) assert_equals: expected "ellipse(at 100% 50rem)" but got ""
+FAIL test unit (inline): rem - ellipse(at bottom 70rem center) assert_equals: expected "ellipse(at left 50% bottom 70rem)" but got ""
+FAIL test unit (inline): rem - ellipse(at bottom 70rem left) assert_equals: expected "ellipse(at left 0% bottom 70rem)" but got ""
+FAIL test unit (inline): rem - ellipse(at bottom 70rem right) assert_equals: expected "ellipse(at left 100% bottom 70rem)" but got ""
+FAIL test unit (inline): rem - ellipse(at right 80rem center) assert_equals: expected "ellipse(at right 80rem top 50%)" but got ""
+FAIL test unit (inline): rem - ellipse(at right 80rem bottom) assert_equals: expected "ellipse(at right 80rem top 100%)" but got ""
+FAIL test unit (inline): rem - ellipse(at right 80rem top) assert_equals: expected "ellipse(at right 80rem top 0%)" but got ""
 PASS test unit (inline): rem - ellipse(at left 50% top 50rem) 
 PASS test unit (inline): rem - ellipse(at left 50% bottom 70rem) 
 PASS test unit (inline): rem - ellipse(at left 50rem top 50%) 
@@ -531,30 +531,30 @@ PASS test unit (inline): vw - ellipse(at right 80vw)
 PASS test unit (inline): vw - ellipse(at 70vw bottom) 
 PASS test unit (inline): vw - ellipse(at center 60vw) 
 PASS test unit (inline): vw - ellipse(at 60vw center) 
-PASS test unit (inline): vw - ellipse(at center top 50vw) 
-PASS test unit (inline): vw - ellipse(at center left 50vw) 
-PASS test unit (inline): vw - ellipse(at center right 70vw) 
-PASS test unit (inline): vw - ellipse(at center bottom 70vw) 
-PASS test unit (inline): vw - ellipse(at left top 50vw) 
-PASS test unit (inline): vw - ellipse(at left bottom 70vw) 
-PASS test unit (inline): vw - ellipse(at top left 50vw) 
-PASS test unit (inline): vw - ellipse(at top right 70vw) 
-PASS test unit (inline): vw - ellipse(at bottom left 50vw) 
-PASS test unit (inline): vw - ellipse(at bottom right 70vw) 
-PASS test unit (inline): vw - ellipse(at right bottom 70vw) 
-PASS test unit (inline): vw - ellipse(at right top 50vw) 
-PASS test unit (inline): vw - ellipse(at left 50vw center) 
-PASS test unit (inline): vw - ellipse(at left 50vw top) 
-PASS test unit (inline): vw - ellipse(at left 50vw bottom) 
-PASS test unit (inline): vw - ellipse(at top 50vw center) 
-PASS test unit (inline): vw - ellipse(at top 50vw left) 
-PASS test unit (inline): vw - ellipse(at top 50vw right) 
-PASS test unit (inline): vw - ellipse(at bottom 70vw center) 
-PASS test unit (inline): vw - ellipse(at bottom 70vw left) 
-PASS test unit (inline): vw - ellipse(at bottom 70vw right) 
-PASS test unit (inline): vw - ellipse(at right 80vw center) 
-PASS test unit (inline): vw - ellipse(at right 80vw bottom) 
-PASS test unit (inline): vw - ellipse(at right 80vw top) 
+FAIL test unit (inline): vw - ellipse(at center top 50vw) assert_equals: expected "ellipse(at 50% 50vw)" but got ""
+FAIL test unit (inline): vw - ellipse(at center left 50vw) assert_equals: expected "ellipse(at 50vw 50%)" but got ""
+FAIL test unit (inline): vw - ellipse(at center right 70vw) assert_equals: expected "ellipse(at right 70vw top 50%)" but got ""
+FAIL test unit (inline): vw - ellipse(at center bottom 70vw) assert_equals: expected "ellipse(at left 50% bottom 70vw)" but got ""
+FAIL test unit (inline): vw - ellipse(at left top 50vw) assert_equals: expected "ellipse(at 0% 50vw)" but got ""
+FAIL test unit (inline): vw - ellipse(at left bottom 70vw) assert_equals: expected "ellipse(at left 0% bottom 70vw)" but got ""
+FAIL test unit (inline): vw - ellipse(at top left 50vw) assert_equals: expected "ellipse(at 50vw 0%)" but got ""
+FAIL test unit (inline): vw - ellipse(at top right 70vw) assert_equals: expected "ellipse(at right 70vw top 0%)" but got ""
+FAIL test unit (inline): vw - ellipse(at bottom left 50vw) assert_equals: expected "ellipse(at 50vw 100%)" but got ""
+FAIL test unit (inline): vw - ellipse(at bottom right 70vw) assert_equals: expected "ellipse(at right 70vw top 100%)" but got ""
+FAIL test unit (inline): vw - ellipse(at right bottom 70vw) assert_equals: expected "ellipse(at left 100% bottom 70vw)" but got ""
+FAIL test unit (inline): vw - ellipse(at right top 50vw) assert_equals: expected "ellipse(at 100% 50vw)" but got ""
+FAIL test unit (inline): vw - ellipse(at left 50vw center) assert_equals: expected "ellipse(at 50vw 50%)" but got ""
+FAIL test unit (inline): vw - ellipse(at left 50vw top) assert_equals: expected "ellipse(at 50vw 0%)" but got ""
+FAIL test unit (inline): vw - ellipse(at left 50vw bottom) assert_equals: expected "ellipse(at 50vw 100%)" but got ""
+FAIL test unit (inline): vw - ellipse(at top 50vw center) assert_equals: expected "ellipse(at 50% 50vw)" but got ""
+FAIL test unit (inline): vw - ellipse(at top 50vw left) assert_equals: expected "ellipse(at 0% 50vw)" but got ""
+FAIL test unit (inline): vw - ellipse(at top 50vw right) assert_equals: expected "ellipse(at 100% 50vw)" but got ""
+FAIL test unit (inline): vw - ellipse(at bottom 70vw center) assert_equals: expected "ellipse(at left 50% bottom 70vw)" but got ""
+FAIL test unit (inline): vw - ellipse(at bottom 70vw left) assert_equals: expected "ellipse(at left 0% bottom 70vw)" but got ""
+FAIL test unit (inline): vw - ellipse(at bottom 70vw right) assert_equals: expected "ellipse(at left 100% bottom 70vw)" but got ""
+FAIL test unit (inline): vw - ellipse(at right 80vw center) assert_equals: expected "ellipse(at right 80vw top 50%)" but got ""
+FAIL test unit (inline): vw - ellipse(at right 80vw bottom) assert_equals: expected "ellipse(at right 80vw top 100%)" but got ""
+FAIL test unit (inline): vw - ellipse(at right 80vw top) assert_equals: expected "ellipse(at right 80vw top 0%)" but got ""
 PASS test unit (inline): vw - ellipse(at left 50% top 50vw) 
 PASS test unit (inline): vw - ellipse(at left 50% bottom 70vw) 
 PASS test unit (inline): vw - ellipse(at left 50vw top 50%) 
@@ -589,30 +589,30 @@ PASS test unit (inline): vh - ellipse(at right 80vh)
 PASS test unit (inline): vh - ellipse(at 70vh bottom) 
 PASS test unit (inline): vh - ellipse(at center 60vh) 
 PASS test unit (inline): vh - ellipse(at 60vh center) 
-PASS test unit (inline): vh - ellipse(at center top 50vh) 
-PASS test unit (inline): vh - ellipse(at center left 50vh) 
-PASS test unit (inline): vh - ellipse(at center right 70vh) 
-PASS test unit (inline): vh - ellipse(at center bottom 70vh) 
-PASS test unit (inline): vh - ellipse(at left top 50vh) 
-PASS test unit (inline): vh - ellipse(at left bottom 70vh) 
-PASS test unit (inline): vh - ellipse(at top left 50vh) 
-PASS test unit (inline): vh - ellipse(at top right 70vh) 
-PASS test unit (inline): vh - ellipse(at bottom left 50vh) 
-PASS test unit (inline): vh - ellipse(at bottom right 70vh) 
-PASS test unit (inline): vh - ellipse(at right bottom 70vh) 
-PASS test unit (inline): vh - ellipse(at right top 50vh) 
-PASS test unit (inline): vh - ellipse(at left 50vh center) 
-PASS test unit (inline): vh - ellipse(at left 50vh top) 
-PASS test unit (inline): vh - ellipse(at left 50vh bottom) 
-PASS test unit (inline): vh - ellipse(at top 50vh center) 
-PASS test unit (inline): vh - ellipse(at top 50vh left) 
-PASS test unit (inline): vh - ellipse(at top 50vh right) 
-PASS test unit (inline): vh - ellipse(at bottom 70vh center) 
-PASS test unit (inline): vh - ellipse(at bottom 70vh left) 
-PASS test unit (inline): vh - ellipse(at bottom 70vh right) 
-PASS test unit (inline): vh - ellipse(at right 80vh center) 
-PASS test unit (inline): vh - ellipse(at right 80vh bottom) 
-PASS test unit (inline): vh - ellipse(at right 80vh top) 
+FAIL test unit (inline): vh - ellipse(at center top 50vh) assert_equals: expected "ellipse(at 50% 50vh)" but got ""
+FAIL test unit (inline): vh - ellipse(at center left 50vh) assert_equals: expected "ellipse(at 50vh 50%)" but got ""
+FAIL test unit (inline): vh - ellipse(at center right 70vh) assert_equals: expected "ellipse(at right 70vh top 50%)" but got ""
+FAIL test unit (inline): vh - ellipse(at center bottom 70vh) assert_equals: expected "ellipse(at left 50% bottom 70vh)" but got ""
+FAIL test unit (inline): vh - ellipse(at left top 50vh) assert_equals: expected "ellipse(at 0% 50vh)" but got ""
+FAIL test unit (inline): vh - ellipse(at left bottom 70vh) assert_equals: expected "ellipse(at left 0% bottom 70vh)" but got ""
+FAIL test unit (inline): vh - ellipse(at top left 50vh) assert_equals: expected "ellipse(at 50vh 0%)" but got ""
+FAIL test unit (inline): vh - ellipse(at top right 70vh) assert_equals: expected "ellipse(at right 70vh top 0%)" but got ""
+FAIL test unit (inline): vh - ellipse(at bottom left 50vh) assert_equals: expected "ellipse(at 50vh 100%)" but got ""
+FAIL test unit (inline): vh - ellipse(at bottom right 70vh) assert_equals: expected "ellipse(at right 70vh top 100%)" but got ""
+FAIL test unit (inline): vh - ellipse(at right bottom 70vh) assert_equals: expected "ellipse(at left 100% bottom 70vh)" but got ""
+FAIL test unit (inline): vh - ellipse(at right top 50vh) assert_equals: expected "ellipse(at 100% 50vh)" but got ""
+FAIL test unit (inline): vh - ellipse(at left 50vh center) assert_equals: expected "ellipse(at 50vh 50%)" but got ""
+FAIL test unit (inline): vh - ellipse(at left 50vh top) assert_equals: expected "ellipse(at 50vh 0%)" but got ""
+FAIL test unit (inline): vh - ellipse(at left 50vh bottom) assert_equals: expected "ellipse(at 50vh 100%)" but got ""
+FAIL test unit (inline): vh - ellipse(at top 50vh center) assert_equals: expected "ellipse(at 50% 50vh)" but got ""
+FAIL test unit (inline): vh - ellipse(at top 50vh left) assert_equals: expected "ellipse(at 0% 50vh)" but got ""
+FAIL test unit (inline): vh - ellipse(at top 50vh right) assert_equals: expected "ellipse(at 100% 50vh)" but got ""
+FAIL test unit (inline): vh - ellipse(at bottom 70vh center) assert_equals: expected "ellipse(at left 50% bottom 70vh)" but got ""
+FAIL test unit (inline): vh - ellipse(at bottom 70vh left) assert_equals: expected "ellipse(at left 0% bottom 70vh)" but got ""
+FAIL test unit (inline): vh - ellipse(at bottom 70vh right) assert_equals: expected "ellipse(at left 100% bottom 70vh)" but got ""
+FAIL test unit (inline): vh - ellipse(at right 80vh center) assert_equals: expected "ellipse(at right 80vh top 50%)" but got ""
+FAIL test unit (inline): vh - ellipse(at right 80vh bottom) assert_equals: expected "ellipse(at right 80vh top 100%)" but got ""
+FAIL test unit (inline): vh - ellipse(at right 80vh top) assert_equals: expected "ellipse(at right 80vh top 0%)" but got ""
 PASS test unit (inline): vh - ellipse(at left 50% top 50vh) 
 PASS test unit (inline): vh - ellipse(at left 50% bottom 70vh) 
 PASS test unit (inline): vh - ellipse(at left 50vh top 50%) 
@@ -647,30 +647,30 @@ PASS test unit (inline): vmin - ellipse(at right 80vmin)
 PASS test unit (inline): vmin - ellipse(at 70vmin bottom) 
 PASS test unit (inline): vmin - ellipse(at center 60vmin) 
 PASS test unit (inline): vmin - ellipse(at 60vmin center) 
-PASS test unit (inline): vmin - ellipse(at center top 50vmin) 
-PASS test unit (inline): vmin - ellipse(at center left 50vmin) 
-PASS test unit (inline): vmin - ellipse(at center right 70vmin) 
-PASS test unit (inline): vmin - ellipse(at center bottom 70vmin) 
-PASS test unit (inline): vmin - ellipse(at left top 50vmin) 
-PASS test unit (inline): vmin - ellipse(at left bottom 70vmin) 
-PASS test unit (inline): vmin - ellipse(at top left 50vmin) 
-PASS test unit (inline): vmin - ellipse(at top right 70vmin) 
-PASS test unit (inline): vmin - ellipse(at bottom left 50vmin) 
-PASS test unit (inline): vmin - ellipse(at bottom right 70vmin) 
-PASS test unit (inline): vmin - ellipse(at right bottom 70vmin) 
-PASS test unit (inline): vmin - ellipse(at right top 50vmin) 
-PASS test unit (inline): vmin - ellipse(at left 50vmin center) 
-PASS test unit (inline): vmin - ellipse(at left 50vmin top) 
-PASS test unit (inline): vmin - ellipse(at left 50vmin bottom) 
-PASS test unit (inline): vmin - ellipse(at top 50vmin center) 
-PASS test unit (inline): vmin - ellipse(at top 50vmin left) 
-PASS test unit (inline): vmin - ellipse(at top 50vmin right) 
-PASS test unit (inline): vmin - ellipse(at bottom 70vmin center) 
-PASS test unit (inline): vmin - ellipse(at bottom 70vmin left) 
-PASS test unit (inline): vmin - ellipse(at bottom 70vmin right) 
-PASS test unit (inline): vmin - ellipse(at right 80vmin center) 
-PASS test unit (inline): vmin - ellipse(at right 80vmin bottom) 
-PASS test unit (inline): vmin - ellipse(at right 80vmin top) 
+FAIL test unit (inline): vmin - ellipse(at center top 50vmin) assert_equals: expected "ellipse(at 50% 50vmin)" but got ""
+FAIL test unit (inline): vmin - ellipse(at center left 50vmin) assert_equals: expected "ellipse(at 50vmin 50%)" but got ""
+FAIL test unit (inline): vmin - ellipse(at center right 70vmin) assert_equals: expected "ellipse(at right 70vmin top 50%)" but got ""
+FAIL test unit (inline): vmin - ellipse(at center bottom 70vmin) assert_equals: expected "ellipse(at left 50% bottom 70vmin)" but got ""
+FAIL test unit (inline): vmin - ellipse(at left top 50vmin) assert_equals: expected "ellipse(at 0% 50vmin)" but got ""
+FAIL test unit (inline): vmin - ellipse(at left bottom 70vmin) assert_equals: expected "ellipse(at left 0% bottom 70vmin)" but got ""
+FAIL test unit (inline): vmin - ellipse(at top left 50vmin) assert_equals: expected "ellipse(at 50vmin 0%)" but got ""
+FAIL test unit (inline): vmin - ellipse(at top right 70vmin) assert_equals: expected "ellipse(at right 70vmin top 0%)" but got ""
+FAIL test unit (inline): vmin - ellipse(at bottom left 50vmin) assert_equals: expected "ellipse(at 50vmin 100%)" but got ""
+FAIL test unit (inline): vmin - ellipse(at bottom right 70vmin) assert_equals: expected "ellipse(at right 70vmin top 100%)" but got ""
+FAIL test unit (inline): vmin - ellipse(at right bottom 70vmin) assert_equals: expected "ellipse(at left 100% bottom 70vmin)" but got ""
+FAIL test unit (inline): vmin - ellipse(at right top 50vmin) assert_equals: expected "ellipse(at 100% 50vmin)" but got ""
+FAIL test unit (inline): vmin - ellipse(at left 50vmin center) assert_equals: expected "ellipse(at 50vmin 50%)" but got ""
+FAIL test unit (inline): vmin - ellipse(at left 50vmin top) assert_equals: expected "ellipse(at 50vmin 0%)" but got ""
+FAIL test unit (inline): vmin - ellipse(at left 50vmin bottom) assert_equals: expected "ellipse(at 50vmin 100%)" but got ""
+FAIL test unit (inline): vmin - ellipse(at top 50vmin center) assert_equals: expected "ellipse(at 50% 50vmin)" but got ""
+FAIL test unit (inline): vmin - ellipse(at top 50vmin left) assert_equals: expected "ellipse(at 0% 50vmin)" but got ""
+FAIL test unit (inline): vmin - ellipse(at top 50vmin right) assert_equals: expected "ellipse(at 100% 50vmin)" but got ""
+FAIL test unit (inline): vmin - ellipse(at bottom 70vmin center) assert_equals: expected "ellipse(at left 50% bottom 70vmin)" but got ""
+FAIL test unit (inline): vmin - ellipse(at bottom 70vmin left) assert_equals: expected "ellipse(at left 0% bottom 70vmin)" but got ""
+FAIL test unit (inline): vmin - ellipse(at bottom 70vmin right) assert_equals: expected "ellipse(at left 100% bottom 70vmin)" but got ""
+FAIL test unit (inline): vmin - ellipse(at right 80vmin center) assert_equals: expected "ellipse(at right 80vmin top 50%)" but got ""
+FAIL test unit (inline): vmin - ellipse(at right 80vmin bottom) assert_equals: expected "ellipse(at right 80vmin top 100%)" but got ""
+FAIL test unit (inline): vmin - ellipse(at right 80vmin top) assert_equals: expected "ellipse(at right 80vmin top 0%)" but got ""
 PASS test unit (inline): vmin - ellipse(at left 50% top 50vmin) 
 PASS test unit (inline): vmin - ellipse(at left 50% bottom 70vmin) 
 PASS test unit (inline): vmin - ellipse(at left 50vmin top 50%) 
@@ -705,30 +705,30 @@ PASS test unit (inline): vmax - ellipse(at right 80vmax)
 PASS test unit (inline): vmax - ellipse(at 70vmax bottom) 
 PASS test unit (inline): vmax - ellipse(at center 60vmax) 
 PASS test unit (inline): vmax - ellipse(at 60vmax center) 
-PASS test unit (inline): vmax - ellipse(at center top 50vmax) 
-PASS test unit (inline): vmax - ellipse(at center left 50vmax) 
-PASS test unit (inline): vmax - ellipse(at center right 70vmax) 
-PASS test unit (inline): vmax - ellipse(at center bottom 70vmax) 
-PASS test unit (inline): vmax - ellipse(at left top 50vmax) 
-PASS test unit (inline): vmax - ellipse(at left bottom 70vmax) 
-PASS test unit (inline): vmax - ellipse(at top left 50vmax) 
-PASS test unit (inline): vmax - ellipse(at top right 70vmax) 
-PASS test unit (inline): vmax - ellipse(at bottom left 50vmax) 
-PASS test unit (inline): vmax - ellipse(at bottom right 70vmax) 
-PASS test unit (inline): vmax - ellipse(at right bottom 70vmax) 
-PASS test unit (inline): vmax - ellipse(at right top 50vmax) 
-PASS test unit (inline): vmax - ellipse(at left 50vmax center) 
-PASS test unit (inline): vmax - ellipse(at left 50vmax top) 
-PASS test unit (inline): vmax - ellipse(at left 50vmax bottom) 
-PASS test unit (inline): vmax - ellipse(at top 50vmax center) 
-PASS test unit (inline): vmax - ellipse(at top 50vmax left) 
-PASS test unit (inline): vmax - ellipse(at top 50vmax right) 
-PASS test unit (inline): vmax - ellipse(at bottom 70vmax center) 
-PASS test unit (inline): vmax - ellipse(at bottom 70vmax left) 
-PASS test unit (inline): vmax - ellipse(at bottom 70vmax right) 
-PASS test unit (inline): vmax - ellipse(at right 80vmax center) 
-PASS test unit (inline): vmax - ellipse(at right 80vmax bottom) 
-PASS test unit (inline): vmax - ellipse(at right 80vmax top) 
+FAIL test unit (inline): vmax - ellipse(at center top 50vmax) assert_equals: expected "ellipse(at 50% 50vmax)" but got ""
+FAIL test unit (inline): vmax - ellipse(at center left 50vmax) assert_equals: expected "ellipse(at 50vmax 50%)" but got ""
+FAIL test unit (inline): vmax - ellipse(at center right 70vmax) assert_equals: expected "ellipse(at right 70vmax top 50%)" but got ""
+FAIL test unit (inline): vmax - ellipse(at center bottom 70vmax) assert_equals: expected "ellipse(at left 50% bottom 70vmax)" but got ""
+FAIL test unit (inline): vmax - ellipse(at left top 50vmax) assert_equals: expected "ellipse(at 0% 50vmax)" but got ""
+FAIL test unit (inline): vmax - ellipse(at left bottom 70vmax) assert_equals: expected "ellipse(at left 0% bottom 70vmax)" but got ""
+FAIL test unit (inline): vmax - ellipse(at top left 50vmax) assert_equals: expected "ellipse(at 50vmax 0%)" but got ""
+FAIL test unit (inline): vmax - ellipse(at top right 70vmax) assert_equals: expected "ellipse(at right 70vmax top 0%)" but got ""
+FAIL test unit (inline): vmax - ellipse(at bottom left 50vmax) assert_equals: expected "ellipse(at 50vmax 100%)" but got ""
+FAIL test unit (inline): vmax - ellipse(at bottom right 70vmax) assert_equals: expected "ellipse(at right 70vmax top 100%)" but got ""
+FAIL test unit (inline): vmax - ellipse(at right bottom 70vmax) assert_equals: expected "ellipse(at left 100% bottom 70vmax)" but got ""
+FAIL test unit (inline): vmax - ellipse(at right top 50vmax) assert_equals: expected "ellipse(at 100% 50vmax)" but got ""
+FAIL test unit (inline): vmax - ellipse(at left 50vmax center) assert_equals: expected "ellipse(at 50vmax 50%)" but got ""
+FAIL test unit (inline): vmax - ellipse(at left 50vmax top) assert_equals: expected "ellipse(at 50vmax 0%)" but got ""
+FAIL test unit (inline): vmax - ellipse(at left 50vmax bottom) assert_equals: expected "ellipse(at 50vmax 100%)" but got ""
+FAIL test unit (inline): vmax - ellipse(at top 50vmax center) assert_equals: expected "ellipse(at 50% 50vmax)" but got ""
+FAIL test unit (inline): vmax - ellipse(at top 50vmax left) assert_equals: expected "ellipse(at 0% 50vmax)" but got ""
+FAIL test unit (inline): vmax - ellipse(at top 50vmax right) assert_equals: expected "ellipse(at 100% 50vmax)" but got ""
+FAIL test unit (inline): vmax - ellipse(at bottom 70vmax center) assert_equals: expected "ellipse(at left 50% bottom 70vmax)" but got ""
+FAIL test unit (inline): vmax - ellipse(at bottom 70vmax left) assert_equals: expected "ellipse(at left 0% bottom 70vmax)" but got ""
+FAIL test unit (inline): vmax - ellipse(at bottom 70vmax right) assert_equals: expected "ellipse(at left 100% bottom 70vmax)" but got ""
+FAIL test unit (inline): vmax - ellipse(at right 80vmax center) assert_equals: expected "ellipse(at right 80vmax top 50%)" but got ""
+FAIL test unit (inline): vmax - ellipse(at right 80vmax bottom) assert_equals: expected "ellipse(at right 80vmax top 100%)" but got ""
+FAIL test unit (inline): vmax - ellipse(at right 80vmax top) assert_equals: expected "ellipse(at right 80vmax top 0%)" but got ""
 PASS test unit (inline): vmax - ellipse(at left 50% top 50vmax) 
 PASS test unit (inline): vmax - ellipse(at left 50% bottom 70vmax) 
 PASS test unit (inline): vmax - ellipse(at left 50vmax top 50%) 
@@ -763,30 +763,30 @@ PASS test unit (computed): cm - ellipse(at right 80cm)
 PASS test unit (computed): cm - ellipse(at 70cm bottom) 
 PASS test unit (computed): cm - ellipse(at center 60cm) 
 PASS test unit (computed): cm - ellipse(at 60cm center) 
-PASS test unit (computed): cm - ellipse(at center top 50cm) 
-PASS test unit (computed): cm - ellipse(at center left 50cm) 
-PASS test unit (computed): cm - ellipse(at center right 70cm) 
-PASS test unit (computed): cm - ellipse(at center bottom 70cm) 
-PASS test unit (computed): cm - ellipse(at left top 50cm) 
-PASS test unit (computed): cm - ellipse(at left bottom 70cm) 
-PASS test unit (computed): cm - ellipse(at top left 50cm) 
-PASS test unit (computed): cm - ellipse(at top right 70cm) 
-PASS test unit (computed): cm - ellipse(at bottom left 50cm) 
-PASS test unit (computed): cm - ellipse(at bottom right 70cm) 
-PASS test unit (computed): cm - ellipse(at right bottom 70cm) 
-PASS test unit (computed): cm - ellipse(at right top 50cm) 
-PASS test unit (computed): cm - ellipse(at left 50cm center) 
-PASS test unit (computed): cm - ellipse(at left 50cm top) 
-PASS test unit (computed): cm - ellipse(at left 50cm bottom) 
-PASS test unit (computed): cm - ellipse(at top 50cm center) 
-PASS test unit (computed): cm - ellipse(at top 50cm left) 
-PASS test unit (computed): cm - ellipse(at top 50cm right) 
-PASS test unit (computed): cm - ellipse(at bottom 70cm center) 
-PASS test unit (computed): cm - ellipse(at bottom 70cm left) 
-PASS test unit (computed): cm - ellipse(at bottom 70cm right) 
-PASS test unit (computed): cm - ellipse(at right 80cm center) 
-PASS test unit (computed): cm - ellipse(at right 80cm bottom) 
-PASS test unit (computed): cm - ellipse(at right 80cm top) 
+FAIL test unit (computed): cm - ellipse(at center top 50cm) assert_equals: expected "ellipse(at 50% 1889.764px)" but got "none"
+FAIL test unit (computed): cm - ellipse(at center left 50cm) assert_equals: expected "ellipse(at 1889.764px 50%)" but got "none"
+FAIL test unit (computed): cm - ellipse(at center right 70cm) assert_equals: expected "ellipse(at right 2645.669px top 50%)" but got "none"
+FAIL test unit (computed): cm - ellipse(at center bottom 70cm) assert_equals: expected "ellipse(at left 50% bottom 2645.669px)" but got "none"
+FAIL test unit (computed): cm - ellipse(at left top 50cm) assert_equals: expected "ellipse(at 0% 1889.764px)" but got "none"
+FAIL test unit (computed): cm - ellipse(at left bottom 70cm) assert_equals: expected "ellipse(at left 0% bottom 2645.669px)" but got "none"
+FAIL test unit (computed): cm - ellipse(at top left 50cm) assert_equals: expected "ellipse(at 1889.764px 0%)" but got "none"
+FAIL test unit (computed): cm - ellipse(at top right 70cm) assert_equals: expected "ellipse(at right 2645.669px top 0%)" but got "none"
+FAIL test unit (computed): cm - ellipse(at bottom left 50cm) assert_equals: expected "ellipse(at 1889.764px 100%)" but got "none"
+FAIL test unit (computed): cm - ellipse(at bottom right 70cm) assert_equals: expected "ellipse(at right 2645.669px top 100%)" but got "none"
+FAIL test unit (computed): cm - ellipse(at right bottom 70cm) assert_equals: expected "ellipse(at left 100% bottom 2645.669px)" but got "none"
+FAIL test unit (computed): cm - ellipse(at right top 50cm) assert_equals: expected "ellipse(at 100% 1889.764px)" but got "none"
+FAIL test unit (computed): cm - ellipse(at left 50cm center) assert_equals: expected "ellipse(at 1889.764px 50%)" but got "none"
+FAIL test unit (computed): cm - ellipse(at left 50cm top) assert_equals: expected "ellipse(at 1889.764px 0%)" but got "none"
+FAIL test unit (computed): cm - ellipse(at left 50cm bottom) assert_equals: expected "ellipse(at 1889.764px 100%)" but got "none"
+FAIL test unit (computed): cm - ellipse(at top 50cm center) assert_equals: expected "ellipse(at 50% 1889.764px)" but got "none"
+FAIL test unit (computed): cm - ellipse(at top 50cm left) assert_equals: expected "ellipse(at 0% 1889.764px)" but got "none"
+FAIL test unit (computed): cm - ellipse(at top 50cm right) assert_equals: expected "ellipse(at 100% 1889.764px)" but got "none"
+FAIL test unit (computed): cm - ellipse(at bottom 70cm center) assert_equals: expected "ellipse(at left 50% bottom 2645.669px)" but got "none"
+FAIL test unit (computed): cm - ellipse(at bottom 70cm left) assert_equals: expected "ellipse(at left 0% bottom 2645.669px)" but got "none"
+FAIL test unit (computed): cm - ellipse(at bottom 70cm right) assert_equals: expected "ellipse(at left 100% bottom 2645.669px)" but got "none"
+FAIL test unit (computed): cm - ellipse(at right 80cm center) assert_equals: expected "ellipse(at right 3023.622px top 50%)" but got "none"
+FAIL test unit (computed): cm - ellipse(at right 80cm bottom) assert_equals: expected "ellipse(at right 3023.622px top 100%)" but got "none"
+FAIL test unit (computed): cm - ellipse(at right 80cm top) assert_equals: expected "ellipse(at right 3023.622px top 0%)" but got "none"
 PASS test unit (computed): cm - ellipse(at left 50% top 50cm) 
 PASS test unit (computed): cm - ellipse(at left 50% bottom 70cm) 
 PASS test unit (computed): cm - ellipse(at left 50cm top 50%) 
@@ -821,30 +821,30 @@ PASS test unit (computed): mm - ellipse(at right 80mm)
 PASS test unit (computed): mm - ellipse(at 70mm bottom) 
 PASS test unit (computed): mm - ellipse(at center 60mm) 
 PASS test unit (computed): mm - ellipse(at 60mm center) 
-PASS test unit (computed): mm - ellipse(at center top 50mm) 
-PASS test unit (computed): mm - ellipse(at center left 50mm) 
-PASS test unit (computed): mm - ellipse(at center right 70mm) 
-PASS test unit (computed): mm - ellipse(at center bottom 70mm) 
-PASS test unit (computed): mm - ellipse(at left top 50mm) 
-PASS test unit (computed): mm - ellipse(at left bottom 70mm) 
-PASS test unit (computed): mm - ellipse(at top left 50mm) 
-PASS test unit (computed): mm - ellipse(at top right 70mm) 
-PASS test unit (computed): mm - ellipse(at bottom left 50mm) 
-PASS test unit (computed): mm - ellipse(at bottom right 70mm) 
-PASS test unit (computed): mm - ellipse(at right bottom 70mm) 
-PASS test unit (computed): mm - ellipse(at right top 50mm) 
-PASS test unit (computed): mm - ellipse(at left 50mm center) 
-PASS test unit (computed): mm - ellipse(at left 50mm top) 
-PASS test unit (computed): mm - ellipse(at left 50mm bottom) 
-PASS test unit (computed): mm - ellipse(at top 50mm center) 
-PASS test unit (computed): mm - ellipse(at top 50mm left) 
-PASS test unit (computed): mm - ellipse(at top 50mm right) 
-PASS test unit (computed): mm - ellipse(at bottom 70mm center) 
-PASS test unit (computed): mm - ellipse(at bottom 70mm left) 
-PASS test unit (computed): mm - ellipse(at bottom 70mm right) 
-PASS test unit (computed): mm - ellipse(at right 80mm center) 
-PASS test unit (computed): mm - ellipse(at right 80mm bottom) 
-PASS test unit (computed): mm - ellipse(at right 80mm top) 
+FAIL test unit (computed): mm - ellipse(at center top 50mm) assert_equals: expected "ellipse(at 50% 188.976px)" but got "none"
+FAIL test unit (computed): mm - ellipse(at center left 50mm) assert_equals: expected "ellipse(at 188.976px 50%)" but got "none"
+FAIL test unit (computed): mm - ellipse(at center right 70mm) assert_equals: expected "ellipse(at right 264.567px top 50%)" but got "none"
+FAIL test unit (computed): mm - ellipse(at center bottom 70mm) assert_equals: expected "ellipse(at left 50% bottom 264.567px)" but got "none"
+FAIL test unit (computed): mm - ellipse(at left top 50mm) assert_equals: expected "ellipse(at 0% 188.976px)" but got "none"
+FAIL test unit (computed): mm - ellipse(at left bottom 70mm) assert_equals: expected "ellipse(at left 0% bottom 264.567px)" but got "none"
+FAIL test unit (computed): mm - ellipse(at top left 50mm) assert_equals: expected "ellipse(at 188.976px 0%)" but got "none"
+FAIL test unit (computed): mm - ellipse(at top right 70mm) assert_equals: expected "ellipse(at right 264.567px top 0%)" but got "none"
+FAIL test unit (computed): mm - ellipse(at bottom left 50mm) assert_equals: expected "ellipse(at 188.976px 100%)" but got "none"
+FAIL test unit (computed): mm - ellipse(at bottom right 70mm) assert_equals: expected "ellipse(at right 264.567px top 100%)" but got "none"
+FAIL test unit (computed): mm - ellipse(at right bottom 70mm) assert_equals: expected "ellipse(at left 100% bottom 264.567px)" but got "none"
+FAIL test unit (computed): mm - ellipse(at right top 50mm) assert_equals: expected "ellipse(at 100% 188.976px)" but got "none"
+FAIL test unit (computed): mm - ellipse(at left 50mm center) assert_equals: expected "ellipse(at 188.976px 50%)" but got "none"
+FAIL test unit (computed): mm - ellipse(at left 50mm top) assert_equals: expected "ellipse(at 188.976px 0%)" but got "none"
+FAIL test unit (computed): mm - ellipse(at left 50mm bottom) assert_equals: expected "ellipse(at 188.976px 100%)" but got "none"
+FAIL test unit (computed): mm - ellipse(at top 50mm center) assert_equals: expected "ellipse(at 50% 188.976px)" but got "none"
+FAIL test unit (computed): mm - ellipse(at top 50mm left) assert_equals: expected "ellipse(at 0% 188.976px)" but got "none"
+FAIL test unit (computed): mm - ellipse(at top 50mm right) assert_equals: expected "ellipse(at 100% 188.976px)" but got "none"
+FAIL test unit (computed): mm - ellipse(at bottom 70mm center) assert_equals: expected "ellipse(at left 50% bottom 264.567px)" but got "none"
+FAIL test unit (computed): mm - ellipse(at bottom 70mm left) assert_equals: expected "ellipse(at left 0% bottom 264.567px)" but got "none"
+FAIL test unit (computed): mm - ellipse(at bottom 70mm right) assert_equals: expected "ellipse(at left 100% bottom 264.567px)" but got "none"
+FAIL test unit (computed): mm - ellipse(at right 80mm center) assert_equals: expected "ellipse(at right 302.362px top 50%)" but got "none"
+FAIL test unit (computed): mm - ellipse(at right 80mm bottom) assert_equals: expected "ellipse(at right 302.362px top 100%)" but got "none"
+FAIL test unit (computed): mm - ellipse(at right 80mm top) assert_equals: expected "ellipse(at right 302.362px top 0%)" but got "none"
 PASS test unit (computed): mm - ellipse(at left 50% top 50mm) 
 PASS test unit (computed): mm - ellipse(at left 50% bottom 70mm) 
 PASS test unit (computed): mm - ellipse(at left 50mm top 50%) 
@@ -879,30 +879,30 @@ PASS test unit (computed): in - ellipse(at right 80in)
 PASS test unit (computed): in - ellipse(at 70in bottom) 
 PASS test unit (computed): in - ellipse(at center 60in) 
 PASS test unit (computed): in - ellipse(at 60in center) 
-PASS test unit (computed): in - ellipse(at center top 50in) 
-PASS test unit (computed): in - ellipse(at center left 50in) 
-PASS test unit (computed): in - ellipse(at center right 70in) 
-PASS test unit (computed): in - ellipse(at center bottom 70in) 
-PASS test unit (computed): in - ellipse(at left top 50in) 
-PASS test unit (computed): in - ellipse(at left bottom 70in) 
-PASS test unit (computed): in - ellipse(at top left 50in) 
-PASS test unit (computed): in - ellipse(at top right 70in) 
-PASS test unit (computed): in - ellipse(at bottom left 50in) 
-PASS test unit (computed): in - ellipse(at bottom right 70in) 
-PASS test unit (computed): in - ellipse(at right bottom 70in) 
-PASS test unit (computed): in - ellipse(at right top 50in) 
-PASS test unit (computed): in - ellipse(at left 50in center) 
-PASS test unit (computed): in - ellipse(at left 50in top) 
-PASS test unit (computed): in - ellipse(at left 50in bottom) 
-PASS test unit (computed): in - ellipse(at top 50in center) 
-PASS test unit (computed): in - ellipse(at top 50in left) 
-PASS test unit (computed): in - ellipse(at top 50in right) 
-PASS test unit (computed): in - ellipse(at bottom 70in center) 
-PASS test unit (computed): in - ellipse(at bottom 70in left) 
-PASS test unit (computed): in - ellipse(at bottom 70in right) 
-PASS test unit (computed): in - ellipse(at right 80in center) 
-PASS test unit (computed): in - ellipse(at right 80in bottom) 
-PASS test unit (computed): in - ellipse(at right 80in top) 
+FAIL test unit (computed): in - ellipse(at center top 50in) assert_equals: expected "ellipse(at 50% 4800px)" but got "none"
+FAIL test unit (computed): in - ellipse(at center left 50in) assert_equals: expected "ellipse(at 4800px 50%)" but got "none"
+FAIL test unit (computed): in - ellipse(at center right 70in) assert_equals: expected "ellipse(at right 6720px top 50%)" but got "none"
+FAIL test unit (computed): in - ellipse(at center bottom 70in) assert_equals: expected "ellipse(at left 50% bottom 6720px)" but got "none"
+FAIL test unit (computed): in - ellipse(at left top 50in) assert_equals: expected "ellipse(at 0% 4800px)" but got "none"
+FAIL test unit (computed): in - ellipse(at left bottom 70in) assert_equals: expected "ellipse(at left 0% bottom 6720px)" but got "none"
+FAIL test unit (computed): in - ellipse(at top left 50in) assert_equals: expected "ellipse(at 4800px 0%)" but got "none"
+FAIL test unit (computed): in - ellipse(at top right 70in) assert_equals: expected "ellipse(at right 6720px top 0%)" but got "none"
+FAIL test unit (computed): in - ellipse(at bottom left 50in) assert_equals: expected "ellipse(at 4800px 100%)" but got "none"
+FAIL test unit (computed): in - ellipse(at bottom right 70in) assert_equals: expected "ellipse(at right 6720px top 100%)" but got "none"
+FAIL test unit (computed): in - ellipse(at right bottom 70in) assert_equals: expected "ellipse(at left 100% bottom 6720px)" but got "none"
+FAIL test unit (computed): in - ellipse(at right top 50in) assert_equals: expected "ellipse(at 100% 4800px)" but got "none"
+FAIL test unit (computed): in - ellipse(at left 50in center) assert_equals: expected "ellipse(at 4800px 50%)" but got "none"
+FAIL test unit (computed): in - ellipse(at left 50in top) assert_equals: expected "ellipse(at 4800px 0%)" but got "none"
+FAIL test unit (computed): in - ellipse(at left 50in bottom) assert_equals: expected "ellipse(at 4800px 100%)" but got "none"
+FAIL test unit (computed): in - ellipse(at top 50in center) assert_equals: expected "ellipse(at 50% 4800px)" but got "none"
+FAIL test unit (computed): in - ellipse(at top 50in left) assert_equals: expected "ellipse(at 0% 4800px)" but got "none"
+FAIL test unit (computed): in - ellipse(at top 50in right) assert_equals: expected "ellipse(at 100% 4800px)" but got "none"
+FAIL test unit (computed): in - ellipse(at bottom 70in center) assert_equals: expected "ellipse(at left 50% bottom 6720px)" but got "none"
+FAIL test unit (computed): in - ellipse(at bottom 70in left) assert_equals: expected "ellipse(at left 0% bottom 6720px)" but got "none"
+FAIL test unit (computed): in - ellipse(at bottom 70in right) assert_equals: expected "ellipse(at left 100% bottom 6720px)" but got "none"
+FAIL test unit (computed): in - ellipse(at right 80in center) assert_equals: expected "ellipse(at right 7680px top 50%)" but got "none"
+FAIL test unit (computed): in - ellipse(at right 80in bottom) assert_equals: expected "ellipse(at right 7680px top 100%)" but got "none"
+FAIL test unit (computed): in - ellipse(at right 80in top) assert_equals: expected "ellipse(at right 7680px top 0%)" but got "none"
 PASS test unit (computed): in - ellipse(at left 50% top 50in) 
 PASS test unit (computed): in - ellipse(at left 50% bottom 70in) 
 PASS test unit (computed): in - ellipse(at left 50in top 50%) 
@@ -937,30 +937,30 @@ PASS test unit (computed): pt - ellipse(at right 80pt)
 PASS test unit (computed): pt - ellipse(at 70pt bottom) 
 PASS test unit (computed): pt - ellipse(at center 60pt) 
 PASS test unit (computed): pt - ellipse(at 60pt center) 
-PASS test unit (computed): pt - ellipse(at center top 50pt) 
-PASS test unit (computed): pt - ellipse(at center left 50pt) 
-PASS test unit (computed): pt - ellipse(at center right 70pt) 
-PASS test unit (computed): pt - ellipse(at center bottom 70pt) 
-PASS test unit (computed): pt - ellipse(at left top 50pt) 
-PASS test unit (computed): pt - ellipse(at left bottom 70pt) 
-PASS test unit (computed): pt - ellipse(at top left 50pt) 
-PASS test unit (computed): pt - ellipse(at top right 70pt) 
-PASS test unit (computed): pt - ellipse(at bottom left 50pt) 
-PASS test unit (computed): pt - ellipse(at bottom right 70pt) 
-PASS test unit (computed): pt - ellipse(at right bottom 70pt) 
-PASS test unit (computed): pt - ellipse(at right top 50pt) 
-PASS test unit (computed): pt - ellipse(at left 50pt center) 
-PASS test unit (computed): pt - ellipse(at left 50pt top) 
-PASS test unit (computed): pt - ellipse(at left 50pt bottom) 
-PASS test unit (computed): pt - ellipse(at top 50pt center) 
-PASS test unit (computed): pt - ellipse(at top 50pt left) 
-PASS test unit (computed): pt - ellipse(at top 50pt right) 
-PASS test unit (computed): pt - ellipse(at bottom 70pt center) 
-PASS test unit (computed): pt - ellipse(at bottom 70pt left) 
-PASS test unit (computed): pt - ellipse(at bottom 70pt right) 
-PASS test unit (computed): pt - ellipse(at right 80pt center) 
-PASS test unit (computed): pt - ellipse(at right 80pt bottom) 
-PASS test unit (computed): pt - ellipse(at right 80pt top) 
+FAIL test unit (computed): pt - ellipse(at center top 50pt) assert_equals: expected "ellipse(at 50% 66.667px)" but got "none"
+FAIL test unit (computed): pt - ellipse(at center left 50pt) assert_equals: expected "ellipse(at 66.667px 50%)" but got "none"
+FAIL test unit (computed): pt - ellipse(at center right 70pt) assert_equals: expected "ellipse(at right 93.333px top 50%)" but got "none"
+FAIL test unit (computed): pt - ellipse(at center bottom 70pt) assert_equals: expected "ellipse(at left 50% bottom 93.333px)" but got "none"
+FAIL test unit (computed): pt - ellipse(at left top 50pt) assert_equals: expected "ellipse(at 0% 66.667px)" but got "none"
+FAIL test unit (computed): pt - ellipse(at left bottom 70pt) assert_equals: expected "ellipse(at left 0% bottom 93.333px)" but got "none"
+FAIL test unit (computed): pt - ellipse(at top left 50pt) assert_equals: expected "ellipse(at 66.667px 0%)" but got "none"
+FAIL test unit (computed): pt - ellipse(at top right 70pt) assert_equals: expected "ellipse(at right 93.333px top 0%)" but got "none"
+FAIL test unit (computed): pt - ellipse(at bottom left 50pt) assert_equals: expected "ellipse(at 66.667px 100%)" but got "none"
+FAIL test unit (computed): pt - ellipse(at bottom right 70pt) assert_equals: expected "ellipse(at right 93.333px top 100%)" but got "none"
+FAIL test unit (computed): pt - ellipse(at right bottom 70pt) assert_equals: expected "ellipse(at left 100% bottom 93.333px)" but got "none"
+FAIL test unit (computed): pt - ellipse(at right top 50pt) assert_equals: expected "ellipse(at 100% 66.667px)" but got "none"
+FAIL test unit (computed): pt - ellipse(at left 50pt center) assert_equals: expected "ellipse(at 66.667px 50%)" but got "none"
+FAIL test unit (computed): pt - ellipse(at left 50pt top) assert_equals: expected "ellipse(at 66.667px 0%)" but got "none"
+FAIL test unit (computed): pt - ellipse(at left 50pt bottom) assert_equals: expected "ellipse(at 66.667px 100%)" but got "none"
+FAIL test unit (computed): pt - ellipse(at top 50pt center) assert_equals: expected "ellipse(at 50% 66.667px)" but got "none"
+FAIL test unit (computed): pt - ellipse(at top 50pt left) assert_equals: expected "ellipse(at 0% 66.667px)" but got "none"
+FAIL test unit (computed): pt - ellipse(at top 50pt right) assert_equals: expected "ellipse(at 100% 66.667px)" but got "none"
+FAIL test unit (computed): pt - ellipse(at bottom 70pt center) assert_equals: expected "ellipse(at left 50% bottom 93.333px)" but got "none"
+FAIL test unit (computed): pt - ellipse(at bottom 70pt left) assert_equals: expected "ellipse(at left 0% bottom 93.333px)" but got "none"
+FAIL test unit (computed): pt - ellipse(at bottom 70pt right) assert_equals: expected "ellipse(at left 100% bottom 93.333px)" but got "none"
+FAIL test unit (computed): pt - ellipse(at right 80pt center) assert_equals: expected "ellipse(at right 106.667px top 50%)" but got "none"
+FAIL test unit (computed): pt - ellipse(at right 80pt bottom) assert_equals: expected "ellipse(at right 106.667px top 100%)" but got "none"
+FAIL test unit (computed): pt - ellipse(at right 80pt top) assert_equals: expected "ellipse(at right 106.667px top 0%)" but got "none"
 PASS test unit (computed): pt - ellipse(at left 50% top 50pt) 
 PASS test unit (computed): pt - ellipse(at left 50% bottom 70pt) 
 PASS test unit (computed): pt - ellipse(at left 50pt top 50%) 
@@ -995,30 +995,30 @@ PASS test unit (computed): pc - ellipse(at right 80pc)
 PASS test unit (computed): pc - ellipse(at 70pc bottom) 
 PASS test unit (computed): pc - ellipse(at center 60pc) 
 PASS test unit (computed): pc - ellipse(at 60pc center) 
-PASS test unit (computed): pc - ellipse(at center top 50pc) 
-PASS test unit (computed): pc - ellipse(at center left 50pc) 
-PASS test unit (computed): pc - ellipse(at center right 70pc) 
-PASS test unit (computed): pc - ellipse(at center bottom 70pc) 
-PASS test unit (computed): pc - ellipse(at left top 50pc) 
-PASS test unit (computed): pc - ellipse(at left bottom 70pc) 
-PASS test unit (computed): pc - ellipse(at top left 50pc) 
-PASS test unit (computed): pc - ellipse(at top right 70pc) 
-PASS test unit (computed): pc - ellipse(at bottom left 50pc) 
-PASS test unit (computed): pc - ellipse(at bottom right 70pc) 
-PASS test unit (computed): pc - ellipse(at right bottom 70pc) 
-PASS test unit (computed): pc - ellipse(at right top 50pc) 
-PASS test unit (computed): pc - ellipse(at left 50pc center) 
-PASS test unit (computed): pc - ellipse(at left 50pc top) 
-PASS test unit (computed): pc - ellipse(at left 50pc bottom) 
-PASS test unit (computed): pc - ellipse(at top 50pc center) 
-PASS test unit (computed): pc - ellipse(at top 50pc left) 
-PASS test unit (computed): pc - ellipse(at top 50pc right) 
-PASS test unit (computed): pc - ellipse(at bottom 70pc center) 
-PASS test unit (computed): pc - ellipse(at bottom 70pc left) 
-PASS test unit (computed): pc - ellipse(at bottom 70pc right) 
-PASS test unit (computed): pc - ellipse(at right 80pc center) 
-PASS test unit (computed): pc - ellipse(at right 80pc bottom) 
-PASS test unit (computed): pc - ellipse(at right 80pc top) 
+FAIL test unit (computed): pc - ellipse(at center top 50pc) assert_equals: expected "ellipse(at 50% 800px)" but got "none"
+FAIL test unit (computed): pc - ellipse(at center left 50pc) assert_equals: expected "ellipse(at 800px 50%)" but got "none"
+FAIL test unit (computed): pc - ellipse(at center right 70pc) assert_equals: expected "ellipse(at right 1120px top 50%)" but got "none"
+FAIL test unit (computed): pc - ellipse(at center bottom 70pc) assert_equals: expected "ellipse(at left 50% bottom 1120px)" but got "none"
+FAIL test unit (computed): pc - ellipse(at left top 50pc) assert_equals: expected "ellipse(at 0% 800px)" but got "none"
+FAIL test unit (computed): pc - ellipse(at left bottom 70pc) assert_equals: expected "ellipse(at left 0% bottom 1120px)" but got "none"
+FAIL test unit (computed): pc - ellipse(at top left 50pc) assert_equals: expected "ellipse(at 800px 0%)" but got "none"
+FAIL test unit (computed): pc - ellipse(at top right 70pc) assert_equals: expected "ellipse(at right 1120px top 0%)" but got "none"
+FAIL test unit (computed): pc - ellipse(at bottom left 50pc) assert_equals: expected "ellipse(at 800px 100%)" but got "none"
+FAIL test unit (computed): pc - ellipse(at bottom right 70pc) assert_equals: expected "ellipse(at right 1120px top 100%)" but got "none"
+FAIL test unit (computed): pc - ellipse(at right bottom 70pc) assert_equals: expected "ellipse(at left 100% bottom 1120px)" but got "none"
+FAIL test unit (computed): pc - ellipse(at right top 50pc) assert_equals: expected "ellipse(at 100% 800px)" but got "none"
+FAIL test unit (computed): pc - ellipse(at left 50pc center) assert_equals: expected "ellipse(at 800px 50%)" but got "none"
+FAIL test unit (computed): pc - ellipse(at left 50pc top) assert_equals: expected "ellipse(at 800px 0%)" but got "none"
+FAIL test unit (computed): pc - ellipse(at left 50pc bottom) assert_equals: expected "ellipse(at 800px 100%)" but got "none"
+FAIL test unit (computed): pc - ellipse(at top 50pc center) assert_equals: expected "ellipse(at 50% 800px)" but got "none"
+FAIL test unit (computed): pc - ellipse(at top 50pc left) assert_equals: expected "ellipse(at 0% 800px)" but got "none"
+FAIL test unit (computed): pc - ellipse(at top 50pc right) assert_equals: expected "ellipse(at 100% 800px)" but got "none"
+FAIL test unit (computed): pc - ellipse(at bottom 70pc center) assert_equals: expected "ellipse(at left 50% bottom 1120px)" but got "none"
+FAIL test unit (computed): pc - ellipse(at bottom 70pc left) assert_equals: expected "ellipse(at left 0% bottom 1120px)" but got "none"
+FAIL test unit (computed): pc - ellipse(at bottom 70pc right) assert_equals: expected "ellipse(at left 100% bottom 1120px)" but got "none"
+FAIL test unit (computed): pc - ellipse(at right 80pc center) assert_equals: expected "ellipse(at right 1280px top 50%)" but got "none"
+FAIL test unit (computed): pc - ellipse(at right 80pc bottom) assert_equals: expected "ellipse(at right 1280px top 100%)" but got "none"
+FAIL test unit (computed): pc - ellipse(at right 80pc top) assert_equals: expected "ellipse(at right 1280px top 0%)" but got "none"
 PASS test unit (computed): pc - ellipse(at left 50% top 50pc) 
 PASS test unit (computed): pc - ellipse(at left 50% bottom 70pc) 
 PASS test unit (computed): pc - ellipse(at left 50pc top 50%) 
@@ -1053,30 +1053,30 @@ PASS test unit (computed): em - ellipse(at right 80em)
 PASS test unit (computed): em - ellipse(at 70em bottom) 
 PASS test unit (computed): em - ellipse(at center 60em) 
 PASS test unit (computed): em - ellipse(at 60em center) 
-PASS test unit (computed): em - ellipse(at center top 50em) 
-PASS test unit (computed): em - ellipse(at center left 50em) 
-PASS test unit (computed): em - ellipse(at center right 70em) 
-PASS test unit (computed): em - ellipse(at center bottom 70em) 
-PASS test unit (computed): em - ellipse(at left top 50em) 
-PASS test unit (computed): em - ellipse(at left bottom 70em) 
-PASS test unit (computed): em - ellipse(at top left 50em) 
-PASS test unit (computed): em - ellipse(at top right 70em) 
-PASS test unit (computed): em - ellipse(at bottom left 50em) 
-PASS test unit (computed): em - ellipse(at bottom right 70em) 
-PASS test unit (computed): em - ellipse(at right bottom 70em) 
-PASS test unit (computed): em - ellipse(at right top 50em) 
-PASS test unit (computed): em - ellipse(at left 50em center) 
-PASS test unit (computed): em - ellipse(at left 50em top) 
-PASS test unit (computed): em - ellipse(at left 50em bottom) 
-PASS test unit (computed): em - ellipse(at top 50em center) 
-PASS test unit (computed): em - ellipse(at top 50em left) 
-PASS test unit (computed): em - ellipse(at top 50em right) 
-PASS test unit (computed): em - ellipse(at bottom 70em center) 
-PASS test unit (computed): em - ellipse(at bottom 70em left) 
-PASS test unit (computed): em - ellipse(at bottom 70em right) 
-PASS test unit (computed): em - ellipse(at right 80em center) 
-PASS test unit (computed): em - ellipse(at right 80em bottom) 
-PASS test unit (computed): em - ellipse(at right 80em top) 
+FAIL test unit (computed): em - ellipse(at center top 50em) assert_equals: expected "ellipse(at 50% 800px)" but got "none"
+FAIL test unit (computed): em - ellipse(at center left 50em) assert_equals: expected "ellipse(at 800px 50%)" but got "none"
+FAIL test unit (computed): em - ellipse(at center right 70em) assert_equals: expected "ellipse(at right 1120px top 50%)" but got "none"
+FAIL test unit (computed): em - ellipse(at center bottom 70em) assert_equals: expected "ellipse(at left 50% bottom 1120px)" but got "none"
+FAIL test unit (computed): em - ellipse(at left top 50em) assert_equals: expected "ellipse(at 0% 800px)" but got "none"
+FAIL test unit (computed): em - ellipse(at left bottom 70em) assert_equals: expected "ellipse(at left 0% bottom 1120px)" but got "none"
+FAIL test unit (computed): em - ellipse(at top left 50em) assert_equals: expected "ellipse(at 800px 0%)" but got "none"
+FAIL test unit (computed): em - ellipse(at top right 70em) assert_equals: expected "ellipse(at right 1120px top 0%)" but got "none"
+FAIL test unit (computed): em - ellipse(at bottom left 50em) assert_equals: expected "ellipse(at 800px 100%)" but got "none"
+FAIL test unit (computed): em - ellipse(at bottom right 70em) assert_equals: expected "ellipse(at right 1120px top 100%)" but got "none"
+FAIL test unit (computed): em - ellipse(at right bottom 70em) assert_equals: expected "ellipse(at left 100% bottom 1120px)" but got "none"
+FAIL test unit (computed): em - ellipse(at right top 50em) assert_equals: expected "ellipse(at 100% 800px)" but got "none"
+FAIL test unit (computed): em - ellipse(at left 50em center) assert_equals: expected "ellipse(at 800px 50%)" but got "none"
+FAIL test unit (computed): em - ellipse(at left 50em top) assert_equals: expected "ellipse(at 800px 0%)" but got "none"
+FAIL test unit (computed): em - ellipse(at left 50em bottom) assert_equals: expected "ellipse(at 800px 100%)" but got "none"
+FAIL test unit (computed): em - ellipse(at top 50em center) assert_equals: expected "ellipse(at 50% 800px)" but got "none"
+FAIL test unit (computed): em - ellipse(at top 50em left) assert_equals: expected "ellipse(at 0% 800px)" but got "none"
+FAIL test unit (computed): em - ellipse(at top 50em right) assert_equals: expected "ellipse(at 100% 800px)" but got "none"
+FAIL test unit (computed): em - ellipse(at bottom 70em center) assert_equals: expected "ellipse(at left 50% bottom 1120px)" but got "none"
+FAIL test unit (computed): em - ellipse(at bottom 70em left) assert_equals: expected "ellipse(at left 0% bottom 1120px)" but got "none"
+FAIL test unit (computed): em - ellipse(at bottom 70em right) assert_equals: expected "ellipse(at left 100% bottom 1120px)" but got "none"
+FAIL test unit (computed): em - ellipse(at right 80em center) assert_equals: expected "ellipse(at right 1280px top 50%)" but got "none"
+FAIL test unit (computed): em - ellipse(at right 80em bottom) assert_equals: expected "ellipse(at right 1280px top 100%)" but got "none"
+FAIL test unit (computed): em - ellipse(at right 80em top) assert_equals: expected "ellipse(at right 1280px top 0%)" but got "none"
 PASS test unit (computed): em - ellipse(at left 50% top 50em) 
 PASS test unit (computed): em - ellipse(at left 50% bottom 70em) 
 PASS test unit (computed): em - ellipse(at left 50em top 50%) 
@@ -1111,30 +1111,30 @@ PASS test unit (computed): ex - ellipse(at right 80ex)
 PASS test unit (computed): ex - ellipse(at 70ex bottom) 
 PASS test unit (computed): ex - ellipse(at center 60ex) 
 PASS test unit (computed): ex - ellipse(at 60ex center) 
-PASS test unit (computed): ex - ellipse(at center top 50ex) 
-PASS test unit (computed): ex - ellipse(at center left 50ex) 
-PASS test unit (computed): ex - ellipse(at center right 70ex) 
-PASS test unit (computed): ex - ellipse(at center bottom 70ex) 
-PASS test unit (computed): ex - ellipse(at left top 50ex) 
-PASS test unit (computed): ex - ellipse(at left bottom 70ex) 
-PASS test unit (computed): ex - ellipse(at top left 50ex) 
-PASS test unit (computed): ex - ellipse(at top right 70ex) 
-PASS test unit (computed): ex - ellipse(at bottom left 50ex) 
-PASS test unit (computed): ex - ellipse(at bottom right 70ex) 
-PASS test unit (computed): ex - ellipse(at right bottom 70ex) 
-PASS test unit (computed): ex - ellipse(at right top 50ex) 
-PASS test unit (computed): ex - ellipse(at left 50ex center) 
-PASS test unit (computed): ex - ellipse(at left 50ex top) 
-PASS test unit (computed): ex - ellipse(at left 50ex bottom) 
-PASS test unit (computed): ex - ellipse(at top 50ex center) 
-PASS test unit (computed): ex - ellipse(at top 50ex left) 
-PASS test unit (computed): ex - ellipse(at top 50ex right) 
-PASS test unit (computed): ex - ellipse(at bottom 70ex center) 
-PASS test unit (computed): ex - ellipse(at bottom 70ex left) 
-PASS test unit (computed): ex - ellipse(at bottom 70ex right) 
-PASS test unit (computed): ex - ellipse(at right 80ex center) 
-PASS test unit (computed): ex - ellipse(at right 80ex bottom) 
-PASS test unit (computed): ex - ellipse(at right 80ex top) 
+FAIL test unit (computed): ex - ellipse(at center top 50ex) assert_equals: expected "ellipse(at 50% 358.984px)" but got "none"
+FAIL test unit (computed): ex - ellipse(at center left 50ex) assert_equals: expected "ellipse(at 358.984px 50%)" but got "none"
+FAIL test unit (computed): ex - ellipse(at center right 70ex) assert_equals: expected "ellipse(at right 502.578px top 50%)" but got "none"
+FAIL test unit (computed): ex - ellipse(at center bottom 70ex) assert_equals: expected "ellipse(at left 50% bottom 502.578px)" but got "none"
+FAIL test unit (computed): ex - ellipse(at left top 50ex) assert_equals: expected "ellipse(at 0% 358.984px)" but got "none"
+FAIL test unit (computed): ex - ellipse(at left bottom 70ex) assert_equals: expected "ellipse(at left 0% bottom 502.578px)" but got "none"
+FAIL test unit (computed): ex - ellipse(at top left 50ex) assert_equals: expected "ellipse(at 358.984px 0%)" but got "none"
+FAIL test unit (computed): ex - ellipse(at top right 70ex) assert_equals: expected "ellipse(at right 502.578px top 0%)" but got "none"
+FAIL test unit (computed): ex - ellipse(at bottom left 50ex) assert_equals: expected "ellipse(at 358.984px 100%)" but got "none"
+FAIL test unit (computed): ex - ellipse(at bottom right 70ex) assert_equals: expected "ellipse(at right 502.578px top 100%)" but got "none"
+FAIL test unit (computed): ex - ellipse(at right bottom 70ex) assert_equals: expected "ellipse(at left 100% bottom 502.578px)" but got "none"
+FAIL test unit (computed): ex - ellipse(at right top 50ex) assert_equals: expected "ellipse(at 100% 358.984px)" but got "none"
+FAIL test unit (computed): ex - ellipse(at left 50ex center) assert_equals: expected "ellipse(at 358.984px 50%)" but got "none"
+FAIL test unit (computed): ex - ellipse(at left 50ex top) assert_equals: expected "ellipse(at 358.984px 0%)" but got "none"
+FAIL test unit (computed): ex - ellipse(at left 50ex bottom) assert_equals: expected "ellipse(at 358.984px 100%)" but got "none"
+FAIL test unit (computed): ex - ellipse(at top 50ex center) assert_equals: expected "ellipse(at 50% 358.984px)" but got "none"
+FAIL test unit (computed): ex - ellipse(at top 50ex left) assert_equals: expected "ellipse(at 0% 358.984px)" but got "none"
+FAIL test unit (computed): ex - ellipse(at top 50ex right) assert_equals: expected "ellipse(at 100% 358.984px)" but got "none"
+FAIL test unit (computed): ex - ellipse(at bottom 70ex center) assert_equals: expected "ellipse(at left 50% bottom 502.578px)" but got "none"
+FAIL test unit (computed): ex - ellipse(at bottom 70ex left) assert_equals: expected "ellipse(at left 0% bottom 502.578px)" but got "none"
+FAIL test unit (computed): ex - ellipse(at bottom 70ex right) assert_equals: expected "ellipse(at left 100% bottom 502.578px)" but got "none"
+FAIL test unit (computed): ex - ellipse(at right 80ex center) assert_equals: expected "ellipse(at right 574.375px top 50%)" but got "none"
+FAIL test unit (computed): ex - ellipse(at right 80ex bottom) assert_equals: expected "ellipse(at right 574.375px top 100%)" but got "none"
+FAIL test unit (computed): ex - ellipse(at right 80ex top) assert_equals: expected "ellipse(at right 574.375px top 0%)" but got "none"
 PASS test unit (computed): ex - ellipse(at left 50% top 50ex) 
 PASS test unit (computed): ex - ellipse(at left 50% bottom 70ex) 
 PASS test unit (computed): ex - ellipse(at left 50ex top 50%) 
@@ -1169,30 +1169,30 @@ PASS test unit (computed): ch - ellipse(at right 80ch)
 PASS test unit (computed): ch - ellipse(at 70ch bottom) 
 PASS test unit (computed): ch - ellipse(at center 60ch) 
 PASS test unit (computed): ch - ellipse(at 60ch center) 
-PASS test unit (computed): ch - ellipse(at center top 50ch) 
-PASS test unit (computed): ch - ellipse(at center left 50ch) 
-PASS test unit (computed): ch - ellipse(at center right 70ch) 
-PASS test unit (computed): ch - ellipse(at center bottom 70ch) 
-PASS test unit (computed): ch - ellipse(at left top 50ch) 
-PASS test unit (computed): ch - ellipse(at left bottom 70ch) 
-PASS test unit (computed): ch - ellipse(at top left 50ch) 
-PASS test unit (computed): ch - ellipse(at top right 70ch) 
-PASS test unit (computed): ch - ellipse(at bottom left 50ch) 
-PASS test unit (computed): ch - ellipse(at bottom right 70ch) 
-PASS test unit (computed): ch - ellipse(at right bottom 70ch) 
-PASS test unit (computed): ch - ellipse(at right top 50ch) 
-PASS test unit (computed): ch - ellipse(at left 50ch center) 
-PASS test unit (computed): ch - ellipse(at left 50ch top) 
-PASS test unit (computed): ch - ellipse(at left 50ch bottom) 
-PASS test unit (computed): ch - ellipse(at top 50ch center) 
-PASS test unit (computed): ch - ellipse(at top 50ch left) 
-PASS test unit (computed): ch - ellipse(at top 50ch right) 
-PASS test unit (computed): ch - ellipse(at bottom 70ch center) 
-PASS test unit (computed): ch - ellipse(at bottom 70ch left) 
-PASS test unit (computed): ch - ellipse(at bottom 70ch right) 
-PASS test unit (computed): ch - ellipse(at right 80ch center) 
-PASS test unit (computed): ch - ellipse(at right 80ch bottom) 
-PASS test unit (computed): ch - ellipse(at right 80ch top) 
+FAIL test unit (computed): ch - ellipse(at center top 50ch) assert_equals: expected "ellipse(at 50% 400px)" but got "none"
+FAIL test unit (computed): ch - ellipse(at center left 50ch) assert_equals: expected "ellipse(at 400px 50%)" but got "none"
+FAIL test unit (computed): ch - ellipse(at center right 70ch) assert_equals: expected "ellipse(at right 560px top 50%)" but got "none"
+FAIL test unit (computed): ch - ellipse(at center bottom 70ch) assert_equals: expected "ellipse(at left 50% bottom 560px)" but got "none"
+FAIL test unit (computed): ch - ellipse(at left top 50ch) assert_equals: expected "ellipse(at 0% 400px)" but got "none"
+FAIL test unit (computed): ch - ellipse(at left bottom 70ch) assert_equals: expected "ellipse(at left 0% bottom 560px)" but got "none"
+FAIL test unit (computed): ch - ellipse(at top left 50ch) assert_equals: expected "ellipse(at 400px 0%)" but got "none"
+FAIL test unit (computed): ch - ellipse(at top right 70ch) assert_equals: expected "ellipse(at right 560px top 0%)" but got "none"
+FAIL test unit (computed): ch - ellipse(at bottom left 50ch) assert_equals: expected "ellipse(at 400px 100%)" but got "none"
+FAIL test unit (computed): ch - ellipse(at bottom right 70ch) assert_equals: expected "ellipse(at right 560px top 100%)" but got "none"
+FAIL test unit (computed): ch - ellipse(at right bottom 70ch) assert_equals: expected "ellipse(at left 100% bottom 560px)" but got "none"
+FAIL test unit (computed): ch - ellipse(at right top 50ch) assert_equals: expected "ellipse(at 100% 400px)" but got "none"
+FAIL test unit (computed): ch - ellipse(at left 50ch center) assert_equals: expected "ellipse(at 400px 50%)" but got "none"
+FAIL test unit (computed): ch - ellipse(at left 50ch top) assert_equals: expected "ellipse(at 400px 0%)" but got "none"
+FAIL test unit (computed): ch - ellipse(at left 50ch bottom) assert_equals: expected "ellipse(at 400px 100%)" but got "none"
+FAIL test unit (computed): ch - ellipse(at top 50ch center) assert_equals: expected "ellipse(at 50% 400px)" but got "none"
+FAIL test unit (computed): ch - ellipse(at top 50ch left) assert_equals: expected "ellipse(at 0% 400px)" but got "none"
+FAIL test unit (computed): ch - ellipse(at top 50ch right) assert_equals: expected "ellipse(at 100% 400px)" but got "none"
+FAIL test unit (computed): ch - ellipse(at bottom 70ch center) assert_equals: expected "ellipse(at left 50% bottom 560px)" but got "none"
+FAIL test unit (computed): ch - ellipse(at bottom 70ch left) assert_equals: expected "ellipse(at left 0% bottom 560px)" but got "none"
+FAIL test unit (computed): ch - ellipse(at bottom 70ch right) assert_equals: expected "ellipse(at left 100% bottom 560px)" but got "none"
+FAIL test unit (computed): ch - ellipse(at right 80ch center) assert_equals: expected "ellipse(at right 640px top 50%)" but got "none"
+FAIL test unit (computed): ch - ellipse(at right 80ch bottom) assert_equals: expected "ellipse(at right 640px top 100%)" but got "none"
+FAIL test unit (computed): ch - ellipse(at right 80ch top) assert_equals: expected "ellipse(at right 640px top 0%)" but got "none"
 PASS test unit (computed): ch - ellipse(at left 50% top 50ch) 
 PASS test unit (computed): ch - ellipse(at left 50% bottom 70ch) 
 PASS test unit (computed): ch - ellipse(at left 50ch top 50%) 
@@ -1227,30 +1227,30 @@ PASS test unit (computed): rem - ellipse(at right 80rem)
 PASS test unit (computed): rem - ellipse(at 70rem bottom) 
 PASS test unit (computed): rem - ellipse(at center 60rem) 
 PASS test unit (computed): rem - ellipse(at 60rem center) 
-PASS test unit (computed): rem - ellipse(at center top 50rem) 
-PASS test unit (computed): rem - ellipse(at center left 50rem) 
-PASS test unit (computed): rem - ellipse(at center right 70rem) 
-PASS test unit (computed): rem - ellipse(at center bottom 70rem) 
-PASS test unit (computed): rem - ellipse(at left top 50rem) 
-PASS test unit (computed): rem - ellipse(at left bottom 70rem) 
-PASS test unit (computed): rem - ellipse(at top left 50rem) 
-PASS test unit (computed): rem - ellipse(at top right 70rem) 
-PASS test unit (computed): rem - ellipse(at bottom left 50rem) 
-PASS test unit (computed): rem - ellipse(at bottom right 70rem) 
-PASS test unit (computed): rem - ellipse(at right bottom 70rem) 
-PASS test unit (computed): rem - ellipse(at right top 50rem) 
-PASS test unit (computed): rem - ellipse(at left 50rem center) 
-PASS test unit (computed): rem - ellipse(at left 50rem top) 
-PASS test unit (computed): rem - ellipse(at left 50rem bottom) 
-PASS test unit (computed): rem - ellipse(at top 50rem center) 
-PASS test unit (computed): rem - ellipse(at top 50rem left) 
-PASS test unit (computed): rem - ellipse(at top 50rem right) 
-PASS test unit (computed): rem - ellipse(at bottom 70rem center) 
-PASS test unit (computed): rem - ellipse(at bottom 70rem left) 
-PASS test unit (computed): rem - ellipse(at bottom 70rem right) 
-PASS test unit (computed): rem - ellipse(at right 80rem center) 
-PASS test unit (computed): rem - ellipse(at right 80rem bottom) 
-PASS test unit (computed): rem - ellipse(at right 80rem top) 
+FAIL test unit (computed): rem - ellipse(at center top 50rem) assert_equals: expected "ellipse(at 50% 800px)" but got "none"
+FAIL test unit (computed): rem - ellipse(at center left 50rem) assert_equals: expected "ellipse(at 800px 50%)" but got "none"
+FAIL test unit (computed): rem - ellipse(at center right 70rem) assert_equals: expected "ellipse(at right 1120px top 50%)" but got "none"
+FAIL test unit (computed): rem - ellipse(at center bottom 70rem) assert_equals: expected "ellipse(at left 50% bottom 1120px)" but got "none"
+FAIL test unit (computed): rem - ellipse(at left top 50rem) assert_equals: expected "ellipse(at 0% 800px)" but got "none"
+FAIL test unit (computed): rem - ellipse(at left bottom 70rem) assert_equals: expected "ellipse(at left 0% bottom 1120px)" but got "none"
+FAIL test unit (computed): rem - ellipse(at top left 50rem) assert_equals: expected "ellipse(at 800px 0%)" but got "none"
+FAIL test unit (computed): rem - ellipse(at top right 70rem) assert_equals: expected "ellipse(at right 1120px top 0%)" but got "none"
+FAIL test unit (computed): rem - ellipse(at bottom left 50rem) assert_equals: expected "ellipse(at 800px 100%)" but got "none"
+FAIL test unit (computed): rem - ellipse(at bottom right 70rem) assert_equals: expected "ellipse(at right 1120px top 100%)" but got "none"
+FAIL test unit (computed): rem - ellipse(at right bottom 70rem) assert_equals: expected "ellipse(at left 100% bottom 1120px)" but got "none"
+FAIL test unit (computed): rem - ellipse(at right top 50rem) assert_equals: expected "ellipse(at 100% 800px)" but got "none"
+FAIL test unit (computed): rem - ellipse(at left 50rem center) assert_equals: expected "ellipse(at 800px 50%)" but got "none"
+FAIL test unit (computed): rem - ellipse(at left 50rem top) assert_equals: expected "ellipse(at 800px 0%)" but got "none"
+FAIL test unit (computed): rem - ellipse(at left 50rem bottom) assert_equals: expected "ellipse(at 800px 100%)" but got "none"
+FAIL test unit (computed): rem - ellipse(at top 50rem center) assert_equals: expected "ellipse(at 50% 800px)" but got "none"
+FAIL test unit (computed): rem - ellipse(at top 50rem left) assert_equals: expected "ellipse(at 0% 800px)" but got "none"
+FAIL test unit (computed): rem - ellipse(at top 50rem right) assert_equals: expected "ellipse(at 100% 800px)" but got "none"
+FAIL test unit (computed): rem - ellipse(at bottom 70rem center) assert_equals: expected "ellipse(at left 50% bottom 1120px)" but got "none"
+FAIL test unit (computed): rem - ellipse(at bottom 70rem left) assert_equals: expected "ellipse(at left 0% bottom 1120px)" but got "none"
+FAIL test unit (computed): rem - ellipse(at bottom 70rem right) assert_equals: expected "ellipse(at left 100% bottom 1120px)" but got "none"
+FAIL test unit (computed): rem - ellipse(at right 80rem center) assert_equals: expected "ellipse(at right 1280px top 50%)" but got "none"
+FAIL test unit (computed): rem - ellipse(at right 80rem bottom) assert_equals: expected "ellipse(at right 1280px top 100%)" but got "none"
+FAIL test unit (computed): rem - ellipse(at right 80rem top) assert_equals: expected "ellipse(at right 1280px top 0%)" but got "none"
 PASS test unit (computed): rem - ellipse(at left 50% top 50rem) 
 PASS test unit (computed): rem - ellipse(at left 50% bottom 70rem) 
 PASS test unit (computed): rem - ellipse(at left 50rem top 50%) 
@@ -1285,30 +1285,30 @@ PASS test unit (computed): vw - ellipse(at right 80vw)
 PASS test unit (computed): vw - ellipse(at 70vw bottom) 
 PASS test unit (computed): vw - ellipse(at center 60vw) 
 PASS test unit (computed): vw - ellipse(at 60vw center) 
-PASS test unit (computed): vw - ellipse(at center top 50vw) 
-PASS test unit (computed): vw - ellipse(at center left 50vw) 
-PASS test unit (computed): vw - ellipse(at center right 70vw) 
-PASS test unit (computed): vw - ellipse(at center bottom 70vw) 
-PASS test unit (computed): vw - ellipse(at left top 50vw) 
-PASS test unit (computed): vw - ellipse(at left bottom 70vw) 
-PASS test unit (computed): vw - ellipse(at top left 50vw) 
-PASS test unit (computed): vw - ellipse(at top right 70vw) 
-PASS test unit (computed): vw - ellipse(at bottom left 50vw) 
-PASS test unit (computed): vw - ellipse(at bottom right 70vw) 
-PASS test unit (computed): vw - ellipse(at right bottom 70vw) 
-PASS test unit (computed): vw - ellipse(at right top 50vw) 
-PASS test unit (computed): vw - ellipse(at left 50vw center) 
-PASS test unit (computed): vw - ellipse(at left 50vw top) 
-PASS test unit (computed): vw - ellipse(at left 50vw bottom) 
-PASS test unit (computed): vw - ellipse(at top 50vw center) 
-PASS test unit (computed): vw - ellipse(at top 50vw left) 
-PASS test unit (computed): vw - ellipse(at top 50vw right) 
-PASS test unit (computed): vw - ellipse(at bottom 70vw center) 
-PASS test unit (computed): vw - ellipse(at bottom 70vw left) 
-PASS test unit (computed): vw - ellipse(at bottom 70vw right) 
-PASS test unit (computed): vw - ellipse(at right 80vw center) 
-PASS test unit (computed): vw - ellipse(at right 80vw bottom) 
-PASS test unit (computed): vw - ellipse(at right 80vw top) 
+FAIL test unit (computed): vw - ellipse(at center top 50vw) assert_equals: expected "ellipse(at 50% 400px)" but got "none"
+FAIL test unit (computed): vw - ellipse(at center left 50vw) assert_equals: expected "ellipse(at 400px 50%)" but got "none"
+FAIL test unit (computed): vw - ellipse(at center right 70vw) assert_equals: expected "ellipse(at right 560px top 50%)" but got "none"
+FAIL test unit (computed): vw - ellipse(at center bottom 70vw) assert_equals: expected "ellipse(at left 50% bottom 560px)" but got "none"
+FAIL test unit (computed): vw - ellipse(at left top 50vw) assert_equals: expected "ellipse(at 0% 400px)" but got "none"
+FAIL test unit (computed): vw - ellipse(at left bottom 70vw) assert_equals: expected "ellipse(at left 0% bottom 560px)" but got "none"
+FAIL test unit (computed): vw - ellipse(at top left 50vw) assert_equals: expected "ellipse(at 400px 0%)" but got "none"
+FAIL test unit (computed): vw - ellipse(at top right 70vw) assert_equals: expected "ellipse(at right 560px top 0%)" but got "none"
+FAIL test unit (computed): vw - ellipse(at bottom left 50vw) assert_equals: expected "ellipse(at 400px 100%)" but got "none"
+FAIL test unit (computed): vw - ellipse(at bottom right 70vw) assert_equals: expected "ellipse(at right 560px top 100%)" but got "none"
+FAIL test unit (computed): vw - ellipse(at right bottom 70vw) assert_equals: expected "ellipse(at left 100% bottom 560px)" but got "none"
+FAIL test unit (computed): vw - ellipse(at right top 50vw) assert_equals: expected "ellipse(at 100% 400px)" but got "none"
+FAIL test unit (computed): vw - ellipse(at left 50vw center) assert_equals: expected "ellipse(at 400px 50%)" but got "none"
+FAIL test unit (computed): vw - ellipse(at left 50vw top) assert_equals: expected "ellipse(at 400px 0%)" but got "none"
+FAIL test unit (computed): vw - ellipse(at left 50vw bottom) assert_equals: expected "ellipse(at 400px 100%)" but got "none"
+FAIL test unit (computed): vw - ellipse(at top 50vw center) assert_equals: expected "ellipse(at 50% 400px)" but got "none"
+FAIL test unit (computed): vw - ellipse(at top 50vw left) assert_equals: expected "ellipse(at 0% 400px)" but got "none"
+FAIL test unit (computed): vw - ellipse(at top 50vw right) assert_equals: expected "ellipse(at 100% 400px)" but got "none"
+FAIL test unit (computed): vw - ellipse(at bottom 70vw center) assert_equals: expected "ellipse(at left 50% bottom 560px)" but got "none"
+FAIL test unit (computed): vw - ellipse(at bottom 70vw left) assert_equals: expected "ellipse(at left 0% bottom 560px)" but got "none"
+FAIL test unit (computed): vw - ellipse(at bottom 70vw right) assert_equals: expected "ellipse(at left 100% bottom 560px)" but got "none"
+FAIL test unit (computed): vw - ellipse(at right 80vw center) assert_equals: expected "ellipse(at right 640px top 50%)" but got "none"
+FAIL test unit (computed): vw - ellipse(at right 80vw bottom) assert_equals: expected "ellipse(at right 640px top 100%)" but got "none"
+FAIL test unit (computed): vw - ellipse(at right 80vw top) assert_equals: expected "ellipse(at right 640px top 0%)" but got "none"
 PASS test unit (computed): vw - ellipse(at left 50% top 50vw) 
 PASS test unit (computed): vw - ellipse(at left 50% bottom 70vw) 
 PASS test unit (computed): vw - ellipse(at left 50vw top 50%) 
@@ -1343,30 +1343,30 @@ PASS test unit (computed): vh - ellipse(at right 80vh)
 PASS test unit (computed): vh - ellipse(at 70vh bottom) 
 PASS test unit (computed): vh - ellipse(at center 60vh) 
 PASS test unit (computed): vh - ellipse(at 60vh center) 
-PASS test unit (computed): vh - ellipse(at center top 50vh) 
-PASS test unit (computed): vh - ellipse(at center left 50vh) 
-PASS test unit (computed): vh - ellipse(at center right 70vh) 
-PASS test unit (computed): vh - ellipse(at center bottom 70vh) 
-PASS test unit (computed): vh - ellipse(at left top 50vh) 
-PASS test unit (computed): vh - ellipse(at left bottom 70vh) 
-PASS test unit (computed): vh - ellipse(at top left 50vh) 
-PASS test unit (computed): vh - ellipse(at top right 70vh) 
-PASS test unit (computed): vh - ellipse(at bottom left 50vh) 
-PASS test unit (computed): vh - ellipse(at bottom right 70vh) 
-PASS test unit (computed): vh - ellipse(at right bottom 70vh) 
-PASS test unit (computed): vh - ellipse(at right top 50vh) 
-PASS test unit (computed): vh - ellipse(at left 50vh center) 
-PASS test unit (computed): vh - ellipse(at left 50vh top) 
-PASS test unit (computed): vh - ellipse(at left 50vh bottom) 
-PASS test unit (computed): vh - ellipse(at top 50vh center) 
-PASS test unit (computed): vh - ellipse(at top 50vh left) 
-PASS test unit (computed): vh - ellipse(at top 50vh right) 
-PASS test unit (computed): vh - ellipse(at bottom 70vh center) 
-PASS test unit (computed): vh - ellipse(at bottom 70vh left) 
-PASS test unit (computed): vh - ellipse(at bottom 70vh right) 
-PASS test unit (computed): vh - ellipse(at right 80vh center) 
-PASS test unit (computed): vh - ellipse(at right 80vh bottom) 
-PASS test unit (computed): vh - ellipse(at right 80vh top) 
+FAIL test unit (computed): vh - ellipse(at center top 50vh) assert_equals: expected "ellipse(at 50% 300px)" but got "none"
+FAIL test unit (computed): vh - ellipse(at center left 50vh) assert_equals: expected "ellipse(at 300px 50%)" but got "none"
+FAIL test unit (computed): vh - ellipse(at center right 70vh) assert_equals: expected "ellipse(at right 420px top 50%)" but got "none"
+FAIL test unit (computed): vh - ellipse(at center bottom 70vh) assert_equals: expected "ellipse(at left 50% bottom 420px)" but got "none"
+FAIL test unit (computed): vh - ellipse(at left top 50vh) assert_equals: expected "ellipse(at 0% 300px)" but got "none"
+FAIL test unit (computed): vh - ellipse(at left bottom 70vh) assert_equals: expected "ellipse(at left 0% bottom 420px)" but got "none"
+FAIL test unit (computed): vh - ellipse(at top left 50vh) assert_equals: expected "ellipse(at 300px 0%)" but got "none"
+FAIL test unit (computed): vh - ellipse(at top right 70vh) assert_equals: expected "ellipse(at right 420px top 0%)" but got "none"
+FAIL test unit (computed): vh - ellipse(at bottom left 50vh) assert_equals: expected "ellipse(at 300px 100%)" but got "none"
+FAIL test unit (computed): vh - ellipse(at bottom right 70vh) assert_equals: expected "ellipse(at right 420px top 100%)" but got "none"
+FAIL test unit (computed): vh - ellipse(at right bottom 70vh) assert_equals: expected "ellipse(at left 100% bottom 420px)" but got "none"
+FAIL test unit (computed): vh - ellipse(at right top 50vh) assert_equals: expected "ellipse(at 100% 300px)" but got "none"
+FAIL test unit (computed): vh - ellipse(at left 50vh center) assert_equals: expected "ellipse(at 300px 50%)" but got "none"
+FAIL test unit (computed): vh - ellipse(at left 50vh top) assert_equals: expected "ellipse(at 300px 0%)" but got "none"
+FAIL test unit (computed): vh - ellipse(at left 50vh bottom) assert_equals: expected "ellipse(at 300px 100%)" but got "none"
+FAIL test unit (computed): vh - ellipse(at top 50vh center) assert_equals: expected "ellipse(at 50% 300px)" but got "none"
+FAIL test unit (computed): vh - ellipse(at top 50vh left) assert_equals: expected "ellipse(at 0% 300px)" but got "none"
+FAIL test unit (computed): vh - ellipse(at top 50vh right) assert_equals: expected "ellipse(at 100% 300px)" but got "none"
+FAIL test unit (computed): vh - ellipse(at bottom 70vh center) assert_equals: expected "ellipse(at left 50% bottom 420px)" but got "none"
+FAIL test unit (computed): vh - ellipse(at bottom 70vh left) assert_equals: expected "ellipse(at left 0% bottom 420px)" but got "none"
+FAIL test unit (computed): vh - ellipse(at bottom 70vh right) assert_equals: expected "ellipse(at left 100% bottom 420px)" but got "none"
+FAIL test unit (computed): vh - ellipse(at right 80vh center) assert_equals: expected "ellipse(at right 480px top 50%)" but got "none"
+FAIL test unit (computed): vh - ellipse(at right 80vh bottom) assert_equals: expected "ellipse(at right 480px top 100%)" but got "none"
+FAIL test unit (computed): vh - ellipse(at right 80vh top) assert_equals: expected "ellipse(at right 480px top 0%)" but got "none"
 PASS test unit (computed): vh - ellipse(at left 50% top 50vh) 
 PASS test unit (computed): vh - ellipse(at left 50% bottom 70vh) 
 PASS test unit (computed): vh - ellipse(at left 50vh top 50%) 
@@ -1401,30 +1401,30 @@ PASS test unit (computed): vmin - ellipse(at right 80vmin)
 PASS test unit (computed): vmin - ellipse(at 70vmin bottom) 
 PASS test unit (computed): vmin - ellipse(at center 60vmin) 
 PASS test unit (computed): vmin - ellipse(at 60vmin center) 
-PASS test unit (computed): vmin - ellipse(at center top 50vmin) 
-PASS test unit (computed): vmin - ellipse(at center left 50vmin) 
-PASS test unit (computed): vmin - ellipse(at center right 70vmin) 
-PASS test unit (computed): vmin - ellipse(at center bottom 70vmin) 
-PASS test unit (computed): vmin - ellipse(at left top 50vmin) 
-PASS test unit (computed): vmin - ellipse(at left bottom 70vmin) 
-PASS test unit (computed): vmin - ellipse(at top left 50vmin) 
-PASS test unit (computed): vmin - ellipse(at top right 70vmin) 
-PASS test unit (computed): vmin - ellipse(at bottom left 50vmin) 
-PASS test unit (computed): vmin - ellipse(at bottom right 70vmin) 
-PASS test unit (computed): vmin - ellipse(at right bottom 70vmin) 
-PASS test unit (computed): vmin - ellipse(at right top 50vmin) 
-PASS test unit (computed): vmin - ellipse(at left 50vmin center) 
-PASS test unit (computed): vmin - ellipse(at left 50vmin top) 
-PASS test unit (computed): vmin - ellipse(at left 50vmin bottom) 
-PASS test unit (computed): vmin - ellipse(at top 50vmin center) 
-PASS test unit (computed): vmin - ellipse(at top 50vmin left) 
-PASS test unit (computed): vmin - ellipse(at top 50vmin right) 
-PASS test unit (computed): vmin - ellipse(at bottom 70vmin center) 
-PASS test unit (computed): vmin - ellipse(at bottom 70vmin left) 
-PASS test unit (computed): vmin - ellipse(at bottom 70vmin right) 
-PASS test unit (computed): vmin - ellipse(at right 80vmin center) 
-PASS test unit (computed): vmin - ellipse(at right 80vmin bottom) 
-PASS test unit (computed): vmin - ellipse(at right 80vmin top) 
+FAIL test unit (computed): vmin - ellipse(at center top 50vmin) assert_equals: expected "ellipse(at 50% 300px)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at center left 50vmin) assert_equals: expected "ellipse(at 300px 50%)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at center right 70vmin) assert_equals: expected "ellipse(at right 420px top 50%)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at center bottom 70vmin) assert_equals: expected "ellipse(at left 50% bottom 420px)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at left top 50vmin) assert_equals: expected "ellipse(at 0% 300px)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at left bottom 70vmin) assert_equals: expected "ellipse(at left 0% bottom 420px)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at top left 50vmin) assert_equals: expected "ellipse(at 300px 0%)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at top right 70vmin) assert_equals: expected "ellipse(at right 420px top 0%)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at bottom left 50vmin) assert_equals: expected "ellipse(at 300px 100%)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at bottom right 70vmin) assert_equals: expected "ellipse(at right 420px top 100%)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at right bottom 70vmin) assert_equals: expected "ellipse(at left 100% bottom 420px)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at right top 50vmin) assert_equals: expected "ellipse(at 100% 300px)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at left 50vmin center) assert_equals: expected "ellipse(at 300px 50%)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at left 50vmin top) assert_equals: expected "ellipse(at 300px 0%)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at left 50vmin bottom) assert_equals: expected "ellipse(at 300px 100%)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at top 50vmin center) assert_equals: expected "ellipse(at 50% 300px)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at top 50vmin left) assert_equals: expected "ellipse(at 0% 300px)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at top 50vmin right) assert_equals: expected "ellipse(at 100% 300px)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at bottom 70vmin center) assert_equals: expected "ellipse(at left 50% bottom 420px)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at bottom 70vmin left) assert_equals: expected "ellipse(at left 0% bottom 420px)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at bottom 70vmin right) assert_equals: expected "ellipse(at left 100% bottom 420px)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at right 80vmin center) assert_equals: expected "ellipse(at right 480px top 50%)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at right 80vmin bottom) assert_equals: expected "ellipse(at right 480px top 100%)" but got "none"
+FAIL test unit (computed): vmin - ellipse(at right 80vmin top) assert_equals: expected "ellipse(at right 480px top 0%)" but got "none"
 PASS test unit (computed): vmin - ellipse(at left 50% top 50vmin) 
 PASS test unit (computed): vmin - ellipse(at left 50% bottom 70vmin) 
 PASS test unit (computed): vmin - ellipse(at left 50vmin top 50%) 
@@ -1459,30 +1459,30 @@ PASS test unit (computed): vmax - ellipse(at right 80vmax)
 PASS test unit (computed): vmax - ellipse(at 70vmax bottom) 
 PASS test unit (computed): vmax - ellipse(at center 60vmax) 
 PASS test unit (computed): vmax - ellipse(at 60vmax center) 
-PASS test unit (computed): vmax - ellipse(at center top 50vmax) 
-PASS test unit (computed): vmax - ellipse(at center left 50vmax) 
-PASS test unit (computed): vmax - ellipse(at center right 70vmax) 
-PASS test unit (computed): vmax - ellipse(at center bottom 70vmax) 
-PASS test unit (computed): vmax - ellipse(at left top 50vmax) 
-PASS test unit (computed): vmax - ellipse(at left bottom 70vmax) 
-PASS test unit (computed): vmax - ellipse(at top left 50vmax) 
-PASS test unit (computed): vmax - ellipse(at top right 70vmax) 
-PASS test unit (computed): vmax - ellipse(at bottom left 50vmax) 
-PASS test unit (computed): vmax - ellipse(at bottom right 70vmax) 
-PASS test unit (computed): vmax - ellipse(at right bottom 70vmax) 
-PASS test unit (computed): vmax - ellipse(at right top 50vmax) 
-PASS test unit (computed): vmax - ellipse(at left 50vmax center) 
-PASS test unit (computed): vmax - ellipse(at left 50vmax top) 
-PASS test unit (computed): vmax - ellipse(at left 50vmax bottom) 
-PASS test unit (computed): vmax - ellipse(at top 50vmax center) 
-PASS test unit (computed): vmax - ellipse(at top 50vmax left) 
-PASS test unit (computed): vmax - ellipse(at top 50vmax right) 
-PASS test unit (computed): vmax - ellipse(at bottom 70vmax center) 
-PASS test unit (computed): vmax - ellipse(at bottom 70vmax left) 
-PASS test unit (computed): vmax - ellipse(at bottom 70vmax right) 
-PASS test unit (computed): vmax - ellipse(at right 80vmax center) 
-PASS test unit (computed): vmax - ellipse(at right 80vmax bottom) 
-PASS test unit (computed): vmax - ellipse(at right 80vmax top) 
+FAIL test unit (computed): vmax - ellipse(at center top 50vmax) assert_equals: expected "ellipse(at 50% 400px)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at center left 50vmax) assert_equals: expected "ellipse(at 400px 50%)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at center right 70vmax) assert_equals: expected "ellipse(at right 560px top 50%)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at center bottom 70vmax) assert_equals: expected "ellipse(at left 50% bottom 560px)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at left top 50vmax) assert_equals: expected "ellipse(at 0% 400px)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at left bottom 70vmax) assert_equals: expected "ellipse(at left 0% bottom 560px)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at top left 50vmax) assert_equals: expected "ellipse(at 400px 0%)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at top right 70vmax) assert_equals: expected "ellipse(at right 560px top 0%)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at bottom left 50vmax) assert_equals: expected "ellipse(at 400px 100%)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at bottom right 70vmax) assert_equals: expected "ellipse(at right 560px top 100%)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at right bottom 70vmax) assert_equals: expected "ellipse(at left 100% bottom 560px)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at right top 50vmax) assert_equals: expected "ellipse(at 100% 400px)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at left 50vmax center) assert_equals: expected "ellipse(at 400px 50%)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at left 50vmax top) assert_equals: expected "ellipse(at 400px 0%)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at left 50vmax bottom) assert_equals: expected "ellipse(at 400px 100%)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at top 50vmax center) assert_equals: expected "ellipse(at 50% 400px)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at top 50vmax left) assert_equals: expected "ellipse(at 0% 400px)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at top 50vmax right) assert_equals: expected "ellipse(at 100% 400px)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at bottom 70vmax center) assert_equals: expected "ellipse(at left 50% bottom 560px)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at bottom 70vmax left) assert_equals: expected "ellipse(at left 0% bottom 560px)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at bottom 70vmax right) assert_equals: expected "ellipse(at left 100% bottom 560px)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at right 80vmax center) assert_equals: expected "ellipse(at right 640px top 50%)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at right 80vmax bottom) assert_equals: expected "ellipse(at right 640px top 100%)" but got "none"
+FAIL test unit (computed): vmax - ellipse(at right 80vmax top) assert_equals: expected "ellipse(at right 640px top 0%)" but got "none"
 PASS test unit (computed): vmax - ellipse(at left 50% top 50vmax) 
 PASS test unit (computed): vmax - ellipse(at left 50% bottom 70vmax) 
 PASS test unit (computed): vmax - ellipse(at left 50vmax top 50%) 
index bdef794..d81877c 100644 (file)
@@ -15,7 +15,6 @@ PASS test("object-position: right 10px bottom 15px;") is "right 10px bottom 15px
 PASS testComputedStyle("object-position: bottom 20%;") is "50% 50%"
 PASS testComputedStyle("object-position: right 20%;") is "100% 20%"
 PASS testComputedStyle("object-position: right") is "100% 50%"
-PASS testComputedStyle("object-position: center bottom 20%;") is "50% 80%"
 PASS testComputedStyle("object-position: right bottom") is "100% 100%"
 PASS testComputedStyle("object-position: left 10px top 15px;") is "10px 15px"
 PASS testComputedStyle("object-position: right 10px bottom 15px;") is "calc(100% - 10px) calc(100% - 15px)"
index 5323694..d34c543 100644 (file)
@@ -44,7 +44,6 @@
             shouldBeEqualToString('testComputedStyle("object-position: bottom 20%;")', '50% 50%');
             shouldBeEqualToString('testComputedStyle("object-position: right 20%;")', '100% 20%');
             shouldBeEqualToString('testComputedStyle("object-position: right")', '100% 50%');
-            shouldBeEqualToString('testComputedStyle("object-position: center bottom 20%;")', '50% 80%');
             shouldBeEqualToString('testComputedStyle("object-position: right bottom")', '100% 100%');
 
             shouldBeEqualToString('testComputedStyle("object-position: left 10px top 15px;")', '10px 15px');
index b4a05d8..1a60a8b 100644 (file)
@@ -91,8 +91,6 @@ PASS getCSSText("-webkit-shape-outside", "circle(at top left)") is "circle(at 0%
 PASS getComputedStyleValue("-webkit-shape-outside", "circle(at top left)") is "circle(at 0% 0%)"
 PASS getCSSText("-webkit-shape-outside", "circle(at right bottom)") is "circle(at 100% 100%)"
 PASS getComputedStyleValue("-webkit-shape-outside", "circle(at right bottom)") is "circle(at 100% 100%)"
-PASS getCSSText("-webkit-shape-outside", "circle(10px at left top 10px)") is "circle(10px at 0% 10px)"
-PASS getComputedStyleValue("-webkit-shape-outside", "circle(10px at left top 10px)") is "circle(10px at 0% 10px)"
 PASS getCSSText("-webkit-shape-outside", "circle(10px at top 10px left 10px)") is "circle(10px at 10px 10px)"
 PASS getComputedStyleValue("-webkit-shape-outside", "circle(10px at top 10px left 10px)") is "circle(10px at 10px 10px)"
 PASS getCSSText("-webkit-shape-outside", "circle(10px at right 10% bottom 10%)") is "circle(10px at 90% 90%)"
@@ -115,8 +113,6 @@ PASS getCSSText("-webkit-shape-outside", "ellipse(at top left)") is "ellipse(at
 PASS getComputedStyleValue("-webkit-shape-outside", "ellipse(at top left)") is "ellipse(at 0% 0%)"
 PASS getCSSText("-webkit-shape-outside", "ellipse(at right bottom)") is "ellipse(at 100% 100%)"
 PASS getComputedStyleValue("-webkit-shape-outside", "ellipse(at right bottom)") is "ellipse(at 100% 100%)"
-PASS getCSSText("-webkit-shape-outside", "ellipse(10px 20px at left top 10px)") is "ellipse(10px 20px at 0% 10px)"
-PASS getComputedStyleValue("-webkit-shape-outside", "ellipse(10px 20px at left top 10px)") is "ellipse(10px 20px at 0% 10px)"
 PASS getCSSText("-webkit-shape-outside", "ellipse(10px 20px at top 10px left 10px)") is "ellipse(10px 20px at 10px 10px)"
 PASS getComputedStyleValue("-webkit-shape-outside", "ellipse(10px 20px at top 10px left 10px)") is "ellipse(10px 20px at 10px 10px)"
 PASS getCSSText("-webkit-shape-outside", "ellipse(10px 20px at right 10px bottom 10px)") is "ellipse(10px 20px at right 10px bottom 10px)"
index cd458c8..35c58b3 100644 (file)
@@ -52,7 +52,6 @@ var validShapeValues = [
     ["circle(at 10px 10px)", "circle(at 10px 10px)", "circle(at 10px 10px)"],
     ["circle(at top left)", "circle(at 0% 0%)", "circle(at 0% 0%)"],
     ["circle(at right bottom)", "circle(at 100% 100%)", "circle(at 100% 100%)"],
-    ["circle(10px at left top 10px)", "circle(10px at 0% 10px)", "circle(10px at 0% 10px)"],
     ["circle(10px at top 10px left 10px)", "circle(10px at 10px 10px)", "circle(10px at 10px 10px)"],
     ["circle(10px at right 10% bottom 10%)", "circle(10px at 90% 90%)"],
     ["circle(10px at right 0px bottom 0px)", "circle(10px at 100% 100%)"],
@@ -66,7 +65,6 @@ var validShapeValues = [
     ["ellipse(at 10px 10px)", "ellipse(at 10px 10px)", "ellipse(at 10px 10px)"],
     ["ellipse(at top left)", "ellipse(at 0% 0%)", "ellipse(at 0% 0%)"],
     ["ellipse(at right bottom)", "ellipse(at 100% 100%)", "ellipse(at 100% 100%)"],
-    ["ellipse(10px 20px at left top 10px)", "ellipse(10px 20px at 0% 10px)", "ellipse(10px 20px at 0% 10px)"],
     ["ellipse(10px 20px at top 10px left 10px)", "ellipse(10px 20px at 10px 10px)", "ellipse(10px 20px at 10px 10px)"],
     ["ellipse(10px 20px at right 10px bottom 10px)", "ellipse(10px 20px at right 10px bottom 10px)"],
     ["ellipse(10px 10px at right 10% bottom 10%)", "ellipse(10px 10px at 90% 90%)"],
index 4e757d0..6ace3df 100644 (file)
@@ -1,5 +1,19 @@
 2019-10-28  Simon Fraser  <simon.fraser@apple.com>
 
+        Properties that take <position> should not accept 3 values
+        https://bugs.webkit.org/show_bug.cgi?id=189142
+        <rdar://problem/44110851>
+
+        Reviewed by Antti Koivisto.
+        
+        New PASS results.
+
+        * web-platform-tests/css/css-images/parsing/gradient-position-invalid-expected.txt:
+        * web-platform-tests/css/css-images/parsing/object-position-invalid-expected.txt:
+        * web-platform-tests/css/css-shapes/parsing/shape-outside-invalid-position-expected.txt:
+
+2019-10-28  Simon Fraser  <simon.fraser@apple.com>
+
         Flaky Test: imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-005.html
         https://bugs.webkit.org/show_bug.cgi?id=203473
         https://bugs.webkit.org/show_bug.cgi?id=203474
index 83366b1..17471b5 100644 (file)
@@ -1,11 +1,11 @@
 
 PASS e.style['background-image'] = "radial-gradient(at top 0px, red, blue)" should not set the property value 
-FAIL e.style['background-image'] = "radial-gradient(at center left 1px, red, blue)" should not set the property value assert_equals: expected "" but got "radial-gradient(at left 1px center, red, blue)"
-FAIL e.style['background-image'] = "radial-gradient(at center top 2px, red, blue)" should not set the property value assert_equals: expected "" but got "radial-gradient(at center top 2px, red, blue)"
-FAIL e.style['background-image'] = "radial-gradient(at right 3% center, red, blue)" should not set the property value assert_equals: expected "" but got "radial-gradient(at right 3% center, red, blue)"
-FAIL e.style['background-image'] = "radial-gradient(at left 4px top, red, blue)" should not set the property value assert_equals: expected "" but got "radial-gradient(at left 4px top, red, blue)"
-FAIL e.style['background-image'] = "radial-gradient(at right top 5px, red, blue)" should not set the property value assert_equals: expected "" but got "radial-gradient(at right top 5px, red, blue)"
-FAIL e.style['background-image'] = "radial-gradient(at bottom 6% center, red, blue)" should not set the property value assert_equals: expected "" but got "radial-gradient(at center bottom 6%, red, blue)"
-FAIL e.style['background-image'] = "radial-gradient(at bottom 7% left, red, blue)" should not set the property value assert_equals: expected "" but got "radial-gradient(at left bottom 7%, red, blue)"
-FAIL e.style['background-image'] = "radial-gradient(at bottom right 8%, red, blue)" should not set the property value assert_equals: expected "" but got "radial-gradient(at right 8% bottom, red, blue)"
+PASS e.style['background-image'] = "radial-gradient(at center left 1px, red, blue)" should not set the property value 
+PASS e.style['background-image'] = "radial-gradient(at center top 2px, red, blue)" should not set the property value 
+PASS e.style['background-image'] = "radial-gradient(at right 3% center, red, blue)" should not set the property value 
+PASS e.style['background-image'] = "radial-gradient(at left 4px top, red, blue)" should not set the property value 
+PASS e.style['background-image'] = "radial-gradient(at right top 5px, red, blue)" should not set the property value 
+PASS e.style['background-image'] = "radial-gradient(at bottom 6% center, red, blue)" should not set the property value 
+PASS e.style['background-image'] = "radial-gradient(at bottom 7% left, red, blue)" should not set the property value 
+PASS e.style['background-image'] = "radial-gradient(at bottom right 8%, red, blue)" should not set the property value 
 
index 94c091d..a8b5dae 100644 (file)
@@ -4,12 +4,12 @@ PASS e.style['object-position'] = "1px 2px 3px" should not set the property valu
 PASS e.style['object-position'] = "left right" should not set the property value 
 PASS e.style['object-position'] = "bottom 10%" should not set the property value 
 PASS e.style['object-position'] = "bottom 10% top 20%" should not set the property value 
-FAIL e.style['object-position'] = "center left 1px" should not set the property value assert_equals: expected "" but got "left 1px center"
-FAIL e.style['object-position'] = "center top 2px" should not set the property value assert_equals: expected "" but got "center top 2px"
-FAIL e.style['object-position'] = "right 3% center" should not set the property value assert_equals: expected "" but got "right 3% center"
-FAIL e.style['object-position'] = "left 4px top" should not set the property value assert_equals: expected "" but got "left 4px top"
-FAIL e.style['object-position'] = "right top 5px" should not set the property value assert_equals: expected "" but got "right top 5px"
-FAIL e.style['object-position'] = "bottom 6% center" should not set the property value assert_equals: expected "" but got "center bottom 6%"
-FAIL e.style['object-position'] = "bottom 7% left" should not set the property value assert_equals: expected "" but got "left bottom 7%"
-FAIL e.style['object-position'] = "bottom right 8%" should not set the property value assert_equals: expected "" but got "right 8% bottom"
+PASS e.style['object-position'] = "center left 1px" should not set the property value 
+PASS e.style['object-position'] = "center top 2px" should not set the property value 
+PASS e.style['object-position'] = "right 3% center" should not set the property value 
+PASS e.style['object-position'] = "left 4px top" should not set the property value 
+PASS e.style['object-position'] = "right top 5px" should not set the property value 
+PASS e.style['object-position'] = "bottom 6% center" should not set the property value 
+PASS e.style['object-position'] = "bottom 7% left" should not set the property value 
+PASS e.style['object-position'] = "bottom right 8%" should not set the property value 
 
index 415444e..cd0f98a 100644 (file)
@@ -1,12 +1,12 @@
 
-FAIL e.style['shape-outside'] = "circle(at center left 1px)" should not set the property value assert_equals: expected "" but got "circle(at 1px 50%)"
-FAIL e.style['shape-outside'] = "circle(at center top 2px)" should not set the property value assert_equals: expected "" but got "circle(at 50% 2px)"
-FAIL e.style['shape-outside'] = "circle(at right 3% center)" should not set the property value assert_equals: expected "" but got "circle(at 97% 50%)"
-FAIL e.style['shape-outside'] = "circle(at left 4px top)" should not set the property value assert_equals: expected "" but got "circle(at 4px 0%)"
-FAIL e.style['shape-outside'] = "circle(at right 5px top)" should not set the property value assert_equals: expected "" but got "circle(at right 5px top 0%)"
-FAIL e.style['shape-outside'] = "ellipse(at right top 5px)" should not set the property value assert_equals: expected "" but got "ellipse(at 100% 5px)"
-FAIL e.style['shape-outside'] = "ellipse(at bottom 6% center)" should not set the property value assert_equals: expected "" but got "ellipse(at 50% 94%)"
-FAIL e.style['shape-outside'] = "ellipse(at bottom 7% left)" should not set the property value assert_equals: expected "" but got "ellipse(at 0% 93%)"
-FAIL e.style['shape-outside'] = "ellipse(at bottom right 8%)" should not set the property value assert_equals: expected "" but got "ellipse(at 92% 100%)"
-FAIL e.style['shape-outside'] = "ellipse(at right 10px top)" should not set the property value assert_equals: expected "" but got "ellipse(at right 10px top 0%)"
+PASS e.style['shape-outside'] = "circle(at center left 1px)" should not set the property value 
+PASS e.style['shape-outside'] = "circle(at center top 2px)" should not set the property value 
+PASS e.style['shape-outside'] = "circle(at right 3% center)" should not set the property value 
+PASS e.style['shape-outside'] = "circle(at left 4px top)" should not set the property value 
+PASS e.style['shape-outside'] = "circle(at right 5px top)" should not set the property value 
+PASS e.style['shape-outside'] = "ellipse(at right top 5px)" should not set the property value 
+PASS e.style['shape-outside'] = "ellipse(at bottom 6% center)" should not set the property value 
+PASS e.style['shape-outside'] = "ellipse(at bottom 7% left)" should not set the property value 
+PASS e.style['shape-outside'] = "ellipse(at bottom right 8%)" should not set the property value 
+PASS e.style['shape-outside'] = "ellipse(at right 10px top)" should not set the property value 
 
index 839f615..3b7554b 100644 (file)
@@ -1,3 +1,34 @@
+2019-10-28  Simon Fraser  <simon.fraser@apple.com>
+
+        Properties that take <position> should not accept 3 values
+        https://bugs.webkit.org/show_bug.cgi?id=189142
+
+        Reviewed by Antti Koivisto.
+        
+        The resolution in https://github.com/w3c/csswg-drafts/issues/2140 changed the syntax for <position>,
+        disallowing the 3-value syntax. This is used in object-position, gradients and shapes. background-position
+        continues to use the old syntax.
+        
+        Fix CSS parsing accordingly.
+
+        Tested by css-images WPT, by shapes tests, and object-position tests.
+
+        * css/parser/CSSPropertyParser.cpp:
+        (WebCore::CSSPropertyParser::consumePerspectiveOrigin):
+        (WebCore::consumeBasicShapeCircle):
+        (WebCore::consumeBasicShapeEllipse):
+        (WebCore::CSSPropertyParser::parseSingleValue):
+        (WebCore::consumeBackgroundPosition):
+        (WebCore::CSSPropertyParser::consumeBackgroundShorthand):
+        * css/parser/CSSPropertyParserHelpers.cpp:
+        (WebCore::CSSPropertyParserHelpers::backgroundPositionFromThreeValues):
+        (WebCore::CSSPropertyParserHelpers::positionFromFourValues):
+        (WebCore::CSSPropertyParserHelpers::consumePosition):
+        (WebCore::CSSPropertyParserHelpers::consumeRadialGradient):
+        (WebCore::CSSPropertyParserHelpers::consumeConicGradient):
+        (WebCore::CSSPropertyParserHelpers::positionFromThreeOrFourValues): Deleted.
+        * css/parser/CSSPropertyParserHelpers.h:
+
 2019-10-28  Alex Christensen  <achristensen@webkit.org>
 
         Remove unused NetworkProcessCreationParameters.urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest
index 53ee4a3..b8e96fd 100644 (file)
@@ -400,7 +400,7 @@ bool CSSPropertyParser::consumePerspectiveOrigin(bool important)
 {
     RefPtr<CSSPrimitiveValue> resultX;
     RefPtr<CSSPrimitiveValue> resultY;
-    if (consumePosition(m_range, m_context.mode, UnitlessQuirk::Forbid, resultX, resultY)) {
+    if (consumePosition(m_range, m_context.mode, UnitlessQuirk::Forbid, PositionSyntax::Position, resultX, resultY)) {
         addProperty(CSSPropertyPerspectiveOriginX, CSSPropertyPerspectiveOrigin, resultX.releaseNonNull(), important);
         addProperty(CSSPropertyPerspectiveOriginY, CSSPropertyPerspectiveOrigin, resultY.releaseNonNull(), important);
         return true;
@@ -2371,7 +2371,7 @@ static RefPtr<CSSBasicShapeCircle> consumeBasicShapeCircle(CSSParserTokenRange&
     if (consumeIdent<CSSValueAt>(args)) {
         RefPtr<CSSPrimitiveValue> centerX;
         RefPtr<CSSPrimitiveValue> centerY;
-        if (!consumePosition(args, context.mode, UnitlessQuirk::Forbid, centerX, centerY))
+        if (!consumePosition(args, context.mode, UnitlessQuirk::Forbid, PositionSyntax::Position, centerX, centerY))
             return nullptr;
         shape->setCenterX(centerX.releaseNonNull());
         shape->setCenterY(centerY.releaseNonNull());
@@ -2394,7 +2394,7 @@ static RefPtr<CSSBasicShapeEllipse> consumeBasicShapeEllipse(CSSParserTokenRange
     if (consumeIdent<CSSValueAt>(args)) {
         RefPtr<CSSPrimitiveValue> centerX;
         RefPtr<CSSPrimitiveValue> centerY;
-        if (!consumePosition(args, context.mode, UnitlessQuirk::Forbid, centerX, centerY))
+        if (!consumePosition(args, context.mode, UnitlessQuirk::Forbid, PositionSyntax::Position, centerX, centerY))
             return nullptr;
         shape->setCenterX(centerX.releaseNonNull());
         shape->setCenterY(centerY.releaseNonNull());
@@ -3929,7 +3929,7 @@ RefPtr<CSSValue> CSSPropertyParser::parseSingleValue(CSSPropertyID property, CSS
         return consumeTouchAction(m_range);
 #endif
     case CSSPropertyObjectPosition:
-        return consumePosition(m_range, m_context.mode, UnitlessQuirk::Forbid);
+        return consumePosition(m_range, m_context.mode, UnitlessQuirk::Forbid, PositionSyntax::Position);
     case CSSPropertyWebkitLineClamp:
         return consumeLineClamp(m_range);
     case CSSPropertyWebkitFontSizeDelta:
@@ -5089,7 +5089,7 @@ static bool consumeBackgroundPosition(CSSParserTokenRange& range, const CSSParse
     do {
         RefPtr<CSSPrimitiveValue> positionX;
         RefPtr<CSSPrimitiveValue> positionY;
-        if (!consumePosition(range, context.mode, unitless, positionX, positionY))
+        if (!consumePosition(range, context.mode, unitless, PositionSyntax::BackgroundPosition, positionX, positionY))
             return false;
         addBackgroundValue(resultX, positionX.releaseNonNull());
         addBackgroundValue(resultY, positionY.releaseNonNull());
@@ -5167,7 +5167,7 @@ bool CSSPropertyParser::consumeBackgroundShorthand(const StylePropertyShorthand&
                     CSSParserTokenRange rangeCopy = m_range;
                     RefPtr<CSSPrimitiveValue> primitiveValue;
                     RefPtr<CSSPrimitiveValue> primitiveValueY;
-                    if (!consumePosition(rangeCopy, m_context.mode, UnitlessQuirk::Forbid, primitiveValue, primitiveValueY))
+                    if (!consumePosition(rangeCopy, m_context.mode, UnitlessQuirk::Forbid, PositionSyntax::BackgroundPosition, primitiveValue, primitiveValueY))
                         continue;
                     value = primitiveValue;
                     valueY = primitiveValueY;
index 4f2ef02..fc713bb 100644 (file)
@@ -844,15 +844,25 @@ static Ref<CSSPrimitiveValue> createPrimitiveValuePair(Args&&... args)
 }
 }
 
-static bool positionFromThreeOrFourValues(CSSPrimitiveValue** values, RefPtr<CSSPrimitiveValue>& resultX, RefPtr<CSSPrimitiveValue>& resultY)
+// https://drafts.csswg.org/css-backgrounds-3/#propdef-background-position
+// background-position has special parsing rules, allowing a 3-value syntax:
+// <bg-position> =  [ left | center | right | top | bottom | <length-percentage> ]
+// |
+//   [ left | center | right | <length-percentage> ]
+//   [ top | center | bottom | <length-percentage> ]
+// |
+//   [ center | [ left | right ] <length-percentage>? ] &&
+//   [ center | [ top | bottom ] <length-percentage>? ]
+//
+static bool backgroundPositionFromThreeValues(const std::array<CSSPrimitiveValue*, 5>& values, RefPtr<CSSPrimitiveValue>& resultX, RefPtr<CSSPrimitiveValue>& resultY)
 {
     CSSPrimitiveValue* center = nullptr;
     for (int i = 0; values[i]; i++) {
         CSSPrimitiveValue* currentValue = values[i];
         if (!currentValue->isValueID())
             return false;
-        CSSValueID id = currentValue->valueID();
 
+        CSSValueID id = currentValue->valueID();
         if (id == CSSValueCenter) {
             if (center)
                 return false;
@@ -892,9 +902,52 @@ static bool positionFromThreeOrFourValues(CSSPrimitiveValue** values, RefPtr<CSS
     return true;
 }
 
+// https://drafts.csswg.org/css-values-4/#typedef-position
+// <position> = [
+//   [ left | center | right ] || [ top | center | bottom ]
+// |
+//   [ left | center | right | <length-percentage> ]
+//   [ top | center | bottom | <length-percentage> ]?
+// |
+//   [ [ left | right ] <length-percentage> ] &&
+//   [ [ top | bottom ] <length-percentage> ]
+//
+static bool positionFromFourValues(const std::array<CSSPrimitiveValue*, 5>& values, RefPtr<CSSPrimitiveValue>& resultX, RefPtr<CSSPrimitiveValue>& resultY)
+{
+    for (int i = 0; values[i]; i++) {
+        CSSPrimitiveValue* currentValue = values[i];
+        if (!currentValue->isValueID())
+            return false;
+
+        CSSValueID id = currentValue->valueID();
+        if (id == CSSValueCenter)
+            return false;
+
+        RefPtr<CSSPrimitiveValue> result;
+        if (values[i + 1] && !values[i + 1]->isValueID())
+            result = CSSPropertyParserHelpersInternal::createPrimitiveValuePair(currentValue, values[++i]);
+        else
+            result = currentValue;
+
+        if (id == CSSValueLeft || id == CSSValueRight) {
+            if (resultX)
+                return false;
+            resultX = result;
+        } else {
+            ASSERT(id == CSSValueTop || id == CSSValueBottom);
+            if (resultY)
+                return false;
+            resultY = result;
+        }
+    }
+
+    ASSERT(resultX && resultY);
+    return true;
+}
+
 // FIXME: This may consume from the range upon failure. The background
 // shorthand works around it, but we should just fix it here.
-bool consumePosition(CSSParserTokenRange& range, CSSParserMode cssParserMode, UnitlessQuirk unitless, RefPtr<CSSPrimitiveValue>& resultX, RefPtr<CSSPrimitiveValue>& resultY)
+bool consumePosition(CSSParserTokenRange& range, CSSParserMode cssParserMode, UnitlessQuirk unitless, PositionSyntax positionSyntax, RefPtr<CSSPrimitiveValue>& resultX, RefPtr<CSSPrimitiveValue>& resultY)
 {
     RefPtr<CSSPrimitiveValue> value1 = consumePositionComponent(range, cssParserMode, unitless);
     if (!value1)
@@ -911,20 +964,28 @@ bool consumePosition(CSSParserTokenRange& range, CSSParserMode cssParserMode, Un
         return positionFromTwoValues(*value1, *value2, resultX, resultY);
 
     RefPtr<CSSPrimitiveValue> value4 = consumePositionComponent(range, cssParserMode, unitless);
-    CSSPrimitiveValue* values[5];
+    
+    std::array<CSSPrimitiveValue*, 5> values;
     values[0] = value1.get();
     values[1] = value2.get();
     values[2] = value3.get();
     values[3] = value4.get();
     values[4] = nullptr;
-    return positionFromThreeOrFourValues(values, resultX, resultY);
+    
+    if (value4)
+        return positionFromFourValues(values, resultX, resultY);
+    
+    if (positionSyntax != PositionSyntax::BackgroundPosition)
+        return false;
+    
+    return backgroundPositionFromThreeValues(values, resultX, resultY);
 }
 
-RefPtr<CSSPrimitiveValue> consumePosition(CSSParserTokenRange& range, CSSParserMode cssParserMode, UnitlessQuirk unitless)
+RefPtr<CSSPrimitiveValue> consumePosition(CSSParserTokenRange& range, CSSParserMode cssParserMode, UnitlessQuirk unitless, PositionSyntax positionSyntax)
 {
     RefPtr<CSSPrimitiveValue> resultX;
     RefPtr<CSSPrimitiveValue> resultY;
-    if (consumePosition(range, cssParserMode, unitless, resultX, resultY))
+    if (consumePosition(range, cssParserMode, unitless, positionSyntax, resultX, resultY))
         return CSSPropertyParserHelpersInternal::createPrimitiveValuePair(resultX.releaseNonNull(), resultY.releaseNonNull());
     return nullptr;
 }
@@ -1219,7 +1280,7 @@ static RefPtr<CSSValue> consumeRadialGradient(CSSParserTokenRange& args, CSSPars
     RefPtr<CSSPrimitiveValue> centerY;
     if (args.peek().id() == CSSValueAt) {
         args.consumeIncludingWhitespace();
-        consumePosition(args, cssParserMode, UnitlessQuirk::Forbid, centerX, centerY);
+        consumePosition(args, cssParserMode, UnitlessQuirk::Forbid, PositionSyntax::Position, centerX, centerY);
         if (!(centerX && centerY))
             return nullptr;
         
@@ -1289,7 +1350,7 @@ static RefPtr<CSSValue> consumeConicGradient(CSSParserTokenRange& args, CSSParse
         if (consumeIdent<CSSValueAt>(args)) {
             RefPtr<CSSPrimitiveValue> centerX;
             RefPtr<CSSPrimitiveValue> centerY;
-            consumePosition(args, context.mode, UnitlessQuirk::Forbid, centerX, centerY);
+            consumePosition(args, context.mode, UnitlessQuirk::Forbid, PositionSyntax::Position, centerX, centerY);
             if (!(centerX && centerY))
                 return nullptr;
             
index e630027..76745a8 100644 (file)
@@ -81,8 +81,13 @@ RefPtr<CSSPrimitiveValue> consumeUrl(CSSParserTokenRange&);
 
 RefPtr<CSSPrimitiveValue> consumeColor(CSSParserTokenRange&, CSSParserMode, bool acceptQuirkyColors = false);
 
-RefPtr<CSSPrimitiveValue> consumePosition(CSSParserTokenRange&, CSSParserMode, UnitlessQuirk);
-bool consumePosition(CSSParserTokenRange&, CSSParserMode, UnitlessQuirk, RefPtr<CSSPrimitiveValue>& resultX, RefPtr<CSSPrimitiveValue>& resultY);
+enum class PositionSyntax {
+    Position, // <position>
+    BackgroundPosition // <bg-position>
+};
+
+RefPtr<CSSPrimitiveValue> consumePosition(CSSParserTokenRange&, CSSParserMode, UnitlessQuirk, PositionSyntax);
+bool consumePosition(CSSParserTokenRange&, CSSParserMode, UnitlessQuirk, PositionSyntax, RefPtr<CSSPrimitiveValue>& resultX, RefPtr<CSSPrimitiveValue>& resultY);
 bool consumeOneOrTwoValuedPosition(CSSParserTokenRange&, CSSParserMode, UnitlessQuirk, RefPtr<CSSPrimitiveValue>& resultX, RefPtr<CSSPrimitiveValue>& resultY);
 
 enum class ConsumeGeneratedImage {