<!doctype html> 
<title>Whitespace in <angle> attribute values</title>
<script src=../../resources/testharness.js></script>
<script src=../../resources/testharnessreport.js></script>
<script src=resources/whitespace-helper.js></script>
<svg id="testcontainer">
	<defs>
		<marker/>
	</defs>
</svg>
<div id=log></div>
<script>

// test length values
var EPSILON = Math.pow(2, -24); // float epsilon
var whitespace = [ "", " ", "   ", "\r\n\t ", "\f" ];

testInvalidType("<angle>",
         document.querySelector("marker"),
         "orient",
         0, // expected default value
         whitespace,
         [ Number.NaN, Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY, "fnord", "E", "e", "e+", "E-" ], // invalid
         [ "", "deg", "rad", "grad" ], // valid units
         function(elm, value) { assert_approx_equals(elm.orientAngle.baseVal.valueInSpecifiedUnits, parseFloat(value), EPSILON); },
         function(elm, expected) { assert_approx_equals(elm.orientAngle.baseVal.value, expected, EPSILON); } );


</script>
