products/Sources/formale Sprachen/C/Firefox/dom/svg/test/test_transformParsing.html
<!
doctype html >
<
html >
<!--
https : / / bugzilla . mozilla . org / show_bug . cgi ? id = 946529
-->
<
head >
<
meta charset=
"utf-8" >
<
title >Test transform parsing</
title >
<
script src=
"/tests/SimpleTest/SimpleTest.js" ></
script >
<
link rel=
"stylesheet" type=
"text/css" href=
"/tests/SimpleTest/test.css" />
</
head >
<
body >
<a target=
"_blank" href=
"https://bugzilla.mozilla.org/show_bug.cgi?id=946529 " >Mozill
a Bug 946529 </a>
<p id="display" ></p>
<div id="content" style ="display: none" >
<svg width="100%" height="1" id="svg" >
<g id="g" />
</svg>
</div >
<pre id="test" >
<script class="testbody" type="text/javascript" >
// Test cases
checkParseOk("" , [ ]);
checkParseOk("matrix(-.7235 .6903 .6903 .7235 -2050 1.14e4)" ,
[ { type: "matrix" , a: -0 .7235 , b: 0 .6903 , c: 0 .6903 ,
d: 0 .7235 , e: -2050 , f: 11400 } ]);
checkParseOk("matrix(0e0 1e0 1e1 1e-1 1E+2 -.1e1)" ,
[ { type: "matrix" , a: 0 , b: 1 , c: 10 ,
d: 0 .1 , e: 100 , f: -1 } ]);
checkParseOk("matrix(-0e-0 1e+0 0e-5 1e-10 12.3e+4 .12e2)" ,
[ { type: "matrix" , a: 0 , b: 1 , c: 0 ,
d: 0 .0000000001 , e: 123000 , f: 12 } ]);
// Fail cases
checkParseFail("matrix(1e+ 0 0 0 0 0)" );
checkParseFail("matrix(e2 0 0 0 0 0)" );
checkParseFail("matrix(1 e2 0 0 0 0 0)" );
checkParseFail("matrix(1e 2 0 0 0 0 0)" );
checkParseFail("matrix(1e+-2 0 0 0 0 0)" );
checkParseFail("matrix(1e 0 0 0 0 0)" );
checkParseFail("matrix(1e1.1 0 0 0 0 0)" );
checkParseFail("scale(2) matrix(1e1.1 0 0 0 0 0)" );
function checkParseOk(spec, expected) {
var g = document.getElementById("g" );
// Clear previous value
g.removeAttribute("transform" );
g.setAttribute("transform" , spec);
// Check length
var transformList = g.transform.baseVal;
is(transformList.numberOfItems, expected.length, spec + " - length" );
if (transformList.numberOfItems != expected.length)
return;
// Check each item
for (var i = 0 ; i < transformList.numberOfItems; i++) {
checkTransform(transformList.getItem(i), expected[i], spec, i);
}
}
function checkTransform(transform, expected, spec, index) {
var typeMapping = {
"unknown" : SVGTransform.SVG_TRANSFORM_UNKNOWN,
"matrix" : SVGTransform.SVG_TRANSFORM_MATRIX,
"translate" : SVGTransform.SVG_TRANSFORM_TRANSLATE,
"scale" : SVGTransform.SVG_TRANSFORM_SCALE,
"rotate" : SVGTransform.SVG_TRANSFORM_ROTATE,
"skewx" : SVGTransform.SVG_TRANSFORM_SKEWX,
"skewy" : SVGTransform.SVG_TRANSFORM_SKEWY,
};
var name = "Item " + index + " of '" + spec + "'" ;
// Compare type
if (typeof expected.type != "undefined" ) {
is(transform.type, typeMapping[expected.type], name + " - transform type" );
}
// Compare angle
if (typeof expected.angle != "undefined" ) {
is(transform.angle, expected.angle, name + " - angle" );
}
// Compare matrix values (roughly)
["a" , "b" , "c" , "d" , "e" , "f" ].forEach(function(item) {
var actual = transform.matrix[item];
var msg = name + " - matrix:" + item;
const tolerance = 1 / 65535 ;
ok(Math.abs(actual - expected[item]) < tolerance,
msg + " - got " + actual + ", expected " + expected[item]);
});
}
function checkParseFail(spec) {
checkParseOk(spec, []);
}
</script >
</pre >
</body >
</html >
Messung V0.5 in Prozent C=96 H=100 G=97
¤ Dauer der Verarbeitung: 0.2 Sekunden
¤
*© Formatika GbR, Deutschland