<!DOCTYPE html>
<html>
    <head>
        <title>Shape Outside Shape Number Values</title>
        <link rel="author" title="Adobe" href="http://html.adobe.com/">
        <link rel="author" title="Bear Travis" href="mailto:betravis@adobe.com">
        <link rel="reviewer" title="Alan Stearns" href="mailto:stearns@adobe.com"> <!-- 2014-03-04 -->
        <link rel="help" href="http://www.w3.org/TR/css-shapes-1/#typedef-basic-shape">
        <link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
        <link rel="help" href="http://www.w3.org/TR/cssom-1/#serializing-css-values">
        <meta name="assert" content="The basic shape can contain all valid number formats">
        <meta name="flags" content="ahem dom">
        <script src="/resources/testharness.js"></script>
        <script src="/resources/testharnessreport.js"></script>
        <script src="support/parsing-utils.js"></script>
    </head>
    <body>
        <div id="log"></div>
        <script type="text/javascript">
            // number forms: d, +d, -d, .d, +.d, -.d, d.d, +d.d, -d.d
            var shape_number_values_tests = [
                {
                  "name": "Positive number variations",
                  "actual": "polygon(nonzero, 1px +2px, .3px +.4px, 5.5px +6.6px)",
                  "expected_inline": "polygon(1px 2px, 0.3px 0.4px, 5.5px 6.6px)",
                  "expected_computed": "polygon(1px 2px, 0.3px 0.4px, 5.5px 6.6px)"
                },
                {
                  "name": "Negative number variations",
                  "actual": "polygon(nonzero, -1px -.2px, -1.1px 0px)",
                  "expected_inline": "polygon(-1px -0.2px, -1.1px 0px)",
                  "expected_computed": "polygon(-1px -0.2px, -1.1px 0px)"
                }
            ];
            generate_tests( ParsingUtils.testInlineStyle,
                            ParsingUtils.buildTestCases(shape_number_values_tests, "inline") );
            generate_tests( ParsingUtils.testComputedStyle,
                            ParsingUtils.buildTestCases(shape_number_values_tests, "computed") );
        </script>
    </body>
</html>
