<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="../fast/js/resources/js-test-style.css"/>
<script src="../fast/js/resources/js-test-pre.js"></script>
</head>
<body>
<div id="description"></div>
<div id="console"></div>

<script>

description("This test exercises the CSSMatrix 3D interface");

debug("");
debug("CSSMatrix constructors");

var m = null;
m = new WebKitCSSMatrix();
if (m)
  testPassed("default constructor");
else
  testFailed("default constructor");

var m2 = new WebKitCSSMatrix(m);
if (m2)
  testPassed("object constructor");
else
  testFailed("object constructor");

m = new WebKitCSSMatrix("matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)");
if (m)
  testPassed("string constructor");
else
  testFailed("string constructor");

debug("");
debug("Test toString");
var m = new WebKitCSSMatrix("matrix3d(1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)");
var s = m.toString();
var a = s.split('(');
shouldBe('a[0]', '"matrix3d"');
var a2 = a[1].split(',');
shouldBe('parseFloat(a2[0])', '1');
shouldBe('parseFloat(a2[1])', '0');
shouldBe('parseFloat(a2[2])', '0');
shouldBe('parseFloat(a2[3])', '1');
shouldBe('parseFloat(a2[4])', '0');
shouldBe('parseFloat(a2[5])', '1');
shouldBe('parseFloat(a2[6])', '0');
shouldBe('parseFloat(a2[7])', '0');
shouldBe('parseFloat(a2[8])', '0');
shouldBe('parseFloat(a2[9])', '0');
shouldBe('parseFloat(a2[10])', '1');
shouldBe('parseFloat(a2[11])', '0');
shouldBe('parseFloat(a2[12])', '0');
shouldBe('parseFloat(a2[13])', '0');
shouldBe('parseFloat(a2[14])', '0');
var a3 = a2[15].split(")");
shouldBe('parseFloat(a3[0])', '1');
shouldBe('a3[1]', '""');

debug("");
debug("Test bad input to string constructor");
shouldThrow('new WebKitCSSMatrix("banana")');

debug("");
debug("Test attributes on default matrix");
m = new WebKitCSSMatrix();
shouldBe('m.m11', '1');
shouldBe('m.m12', '0');
shouldBe('m.m13', '0');
shouldBe('m.m14', '0');
shouldBe('m.m21', '0');
shouldBe('m.m22', '1');
shouldBe('m.m23', '0');
shouldBe('m.m24', '0');
shouldBe('m.m31', '0');
shouldBe('m.m32', '0');
shouldBe('m.m33', '1');
shouldBe('m.m34', '0');
shouldBe('m.m41', '0');
shouldBe('m.m42', '0');
shouldBe('m.m43', '0');
shouldBe('m.m44', '1');

debug("");
debug("Test attributes on custom matrix");
m = new WebKitCSSMatrix("matrix3d(11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44)");
shouldBe('m.m11', '11');
shouldBe('m.m12', '12');
shouldBe('m.m13', '13');
shouldBe('m.m14', '14');
shouldBe('m.m21', '21');
shouldBe('m.m22', '22');
shouldBe('m.m23', '23');
shouldBe('m.m24', '24');
shouldBe('m.m31', '31');
shouldBe('m.m32', '32');
shouldBe('m.m33', '33');
shouldBe('m.m34', '34');
shouldBe('m.m41', '41');
shouldBe('m.m42', '42');
shouldBe('m.m43', '43');
shouldBe('m.m44', '44');

debug("");
debug("Test setMatrixValue - set to matrix()");
m = new WebKitCSSMatrix();
m.setMatrixValue("matrix3d(11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44)");
shouldBe('m.m11', '11');
shouldBe('m.m12', '12');
shouldBe('m.m13', '13');
shouldBe('m.m14', '14');
shouldBe('m.m21', '21');
shouldBe('m.m22', '22');
shouldBe('m.m23', '23');
shouldBe('m.m24', '24');
shouldBe('m.m31', '31');
shouldBe('m.m32', '32');
shouldBe('m.m33', '33');
shouldBe('m.m34', '34');
shouldBe('m.m41', '41');
shouldBe('m.m42', '42');
shouldBe('m.m43', '43');
shouldBe('m.m44', '44');

debug("");
debug("Test setMatrixValue - set to translate(10px, 20px, 30px) scale(2, 3, 4)");
m = new WebKitCSSMatrix();
m.setMatrixValue("translate3d(10px, 20px, 30px) scale3d(2, 3, 4)");
shouldBe('m.m11', '2');
shouldBe('m.m12', '0');
shouldBe('m.m13', '0');
shouldBe('m.m14', '0');
shouldBe('m.m21', '0');
shouldBe('m.m22', '3');
shouldBe('m.m23', '0');
shouldBe('m.m24', '0');
shouldBe('m.m31', '0');
shouldBe('m.m32', '0');
shouldBe('m.m33', '4');
shouldBe('m.m34', '0');
shouldBe('m.m41', '10');
shouldBe('m.m42', '20');
shouldBe('m.m43', '30');
shouldBe('m.m44', '1');

debug("");
debug("Test throwing exception from setMatrixValue");
shouldThrow('m.setMatrixValue("banana")');
shouldThrow('m.setMatrixValue("translate3d(10em, 20%, 40)")');
shouldThrow('m.setMatrixValue("translate3d(10px, 20px, 30px) scale3d()")');

debug("");
debug("Test multiply");
m =  new WebKitCSSMatrix("matrix3d( 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16)");
m2 = new WebKitCSSMatrix("matrix3d(17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)");
var m3 = m.multiply(m2);
shouldBe('parseFloat(m3.m11)', '250');
shouldBe('parseFloat(m3.m12)', '260');
shouldBe('parseFloat(m3.m13)', '270');
shouldBe('parseFloat(m3.m14)', '280');
shouldBe('parseFloat(m3.m21)', '618');
shouldBe('parseFloat(m3.m22)', '644');
shouldBe('parseFloat(m3.m23)', '670');
shouldBe('parseFloat(m3.m24)', '696');
shouldBe('parseFloat(m3.m31)', '986');
shouldBe('parseFloat(m3.m32)', '1028');
shouldBe('parseFloat(m3.m33)', '1070');
shouldBe('parseFloat(m3.m34)', '1112');
shouldBe('parseFloat(m3.m41)', '1354');
shouldBe('parseFloat(m3.m42)', '1412');
shouldBe('parseFloat(m3.m43)', '1470');
shouldBe('parseFloat(m3.m44)', '1528');

debug("");
debug("Test immutability of multiply");
shouldBe('parseFloat(m.m11)', '1');
shouldBe('parseFloat(m.m12)', '2');
shouldBe('parseFloat(m.m13)', '3');
shouldBe('parseFloat(m.m14)', '4');
shouldBe('parseFloat(m.m21)', '5');
shouldBe('parseFloat(m.m22)', '6');
shouldBe('parseFloat(m.m23)', '7');
shouldBe('parseFloat(m.m24)', '8');
shouldBe('parseFloat(m.m31)', '9');
shouldBe('parseFloat(m.m32)', '10');
shouldBe('parseFloat(m.m33)', '11');
shouldBe('parseFloat(m.m34)', '12');
shouldBe('parseFloat(m.m41)', '13');
shouldBe('parseFloat(m.m42)', '14');
shouldBe('parseFloat(m.m43)', '15');
shouldBe('parseFloat(m.m44)', '16');

debug("");
debug("Test inverse");
m = new WebKitCSSMatrix("matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 10, 20, 30, 1)");
m2 = m.inverse();

shouldBe('parseFloat(m2.m11)', '0.5');
shouldBe('parseFloat(m2.m12)', '0');
shouldBe('parseFloat(m2.m13)', '0');
shouldBe('parseFloat(m2.m14)', '0');
shouldBe('parseFloat(m2.m21)', '0');
shouldBe('parseFloat(m2.m22)', '0.5');
shouldBe('parseFloat(m2.m23)', '0');
shouldBe('parseFloat(m2.m24)', '0');
shouldBe('parseFloat(m2.m31)', '0');
shouldBe('parseFloat(m2.m32)', '0');
shouldBe('parseFloat(m2.m33)', '0.5');
shouldBe('parseFloat(m2.m34)', '0');
shouldBe('parseFloat(m2.m41)', '-5');
shouldBe('parseFloat(m2.m42)', '-10');
shouldBe('parseFloat(m2.m43)', '-15');
shouldBe('parseFloat(m2.m44)', '1');

debug("");
debug("Test immutability of inverse");
shouldBe('parseFloat(m.m11)', '2');
shouldBe('parseFloat(m.m12)', '0');
shouldBe('parseFloat(m.m13)', '0');
shouldBe('parseFloat(m.m14)', '0');
shouldBe('parseFloat(m.m21)', '0');
shouldBe('parseFloat(m.m22)', '2');
shouldBe('parseFloat(m.m23)', '0');
shouldBe('parseFloat(m.m24)', '0');
shouldBe('parseFloat(m.m31)', '0');
shouldBe('parseFloat(m.m32)', '0');
shouldBe('parseFloat(m.m33)', '2');
shouldBe('parseFloat(m.m34)', '0');
shouldBe('parseFloat(m.m41)', '10');
shouldBe('parseFloat(m.m42)', '20');
shouldBe('parseFloat(m.m43)', '30');
shouldBe('parseFloat(m.m44)', '1');

debug("");
debug("Test throwing exception from inverse");
m = new WebKitCSSMatrix("matrix3d(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"); // not invertible
shouldThrow('m.inverse()');

debug("");
debug("Test translate");
m = new WebKitCSSMatrix();
var m2 = m.translate(10, 20, 30);
shouldBe('m2.m11', '1');
shouldBe('m2.m12', '0');
shouldBe('m2.m13', '0');
shouldBe('m2.m14', '0');
shouldBe('m2.m21', '0');
shouldBe('m2.m22', '1');
shouldBe('m2.m23', '0');
shouldBe('m2.m24', '0');
shouldBe('m2.m31', '0');
shouldBe('m2.m32', '0');
shouldBe('m2.m33', '1');
shouldBe('m2.m34', '0');
shouldBe('m2.m41', '10');
shouldBe('m2.m42', '20');
shouldBe('m2.m43', '30');
shouldBe('m2.m44', '1');

debug("");
debug("Test immutability of translate");
shouldBe('m.m11', '1');
shouldBe('m.m12', '0');
shouldBe('m.m13', '0');
shouldBe('m.m14', '0');
shouldBe('m.m21', '0');
shouldBe('m.m22', '1');
shouldBe('m.m23', '0');
shouldBe('m.m24', '0');
shouldBe('m.m31', '0');
shouldBe('m.m32', '0');
shouldBe('m.m33', '1');
shouldBe('m.m34', '0');
shouldBe('m.m41', '0');
shouldBe('m.m42', '0');
shouldBe('m.m43', '0');
shouldBe('m.m44', '1');

debug("");
debug("Test scale");
m = new WebKitCSSMatrix();
m2 = m.scale(10, 20, 30);
shouldBe('m2.m11', '10');
shouldBe('m2.m12', '0');
shouldBe('m2.m13', '0');
shouldBe('m2.m14', '0');
shouldBe('m2.m21', '0');
shouldBe('m2.m22', '20');
shouldBe('m2.m23', '0');
shouldBe('m2.m24', '0');
shouldBe('m2.m31', '0');
shouldBe('m2.m32', '0');
shouldBe('m2.m33', '30');
shouldBe('m2.m34', '0');
shouldBe('m2.m41', '0');
shouldBe('m2.m42', '0');
shouldBe('m2.m43', '0');
shouldBe('m2.m44', '1');

debug("");
debug("Test immutability of scale");
shouldBe('m.m11', '1');
shouldBe('m.m12', '0');
shouldBe('m.m13', '0');
shouldBe('m.m14', '0');
shouldBe('m.m21', '0');
shouldBe('m.m22', '1');
shouldBe('m.m23', '0');
shouldBe('m.m24', '0');
shouldBe('m.m31', '0');
shouldBe('m.m32', '0');
shouldBe('m.m33', '1');
shouldBe('m.m34', '0');
shouldBe('m.m41', '0');
shouldBe('m.m42', '0');
shouldBe('m.m43', '0');
shouldBe('m.m44', '1');

debug("");
debug("Test rotate");
m = new WebKitCSSMatrix();
m2 = m.rotate(10, 20, 30);
shouldBe('parseFloat(m2.m11.toPrecision(6))', '0.813798');
shouldBe('parseFloat(m2.m12.toPrecision(6))', '0.469846');
shouldBe('parseFloat(m2.m13.toPrecision(6))', '-0.34202');
shouldBe('parseFloat(m2.m14.toPrecision(6))', '0');
shouldBe('parseFloat(m2.m21.toPrecision(6))', '-0.44097');
shouldBe('parseFloat(m2.m22.toPrecision(6))', '0.882564');
shouldBe('parseFloat(m2.m23.toPrecision(6))', '0.163176');
shouldBe('parseFloat(m2.m24.toPrecision(6))', '0');
shouldBe('parseFloat(m2.m31.toPrecision(6))', '0.378522');
shouldBe('parseFloat(m2.m32.toPrecision(6))', '0.0180283');
shouldBe('parseFloat(m2.m33.toPrecision(6))', '0.925417');
shouldBe('parseFloat(m2.m34.toPrecision(6))', '0');
shouldBe('parseFloat(m2.m41.toPrecision(6))', '0');
shouldBe('parseFloat(m2.m42.toPrecision(6))', '0');
shouldBe('parseFloat(m2.m43.toPrecision(6))', '0');
shouldBe('parseFloat(m2.m44.toPrecision(6))', '1');

debug("");
debug("Test immutability of rotate");
shouldBe('m.m11', '1');
shouldBe('m.m12', '0');
shouldBe('m.m13', '0');
shouldBe('m.m14', '0');
shouldBe('m.m21', '0');
shouldBe('m.m22', '1');
shouldBe('m.m23', '0');
shouldBe('m.m24', '0');
shouldBe('m.m31', '0');
shouldBe('m.m32', '0');
shouldBe('m.m33', '1');
shouldBe('m.m34', '0');
shouldBe('m.m41', '0');
shouldBe('m.m42', '0');
shouldBe('m.m43', '0');
shouldBe('m.m44', '1');

debug("");
debug("Test rotateAxisAngle");
m = new WebKitCSSMatrix();
m2 = m.rotateAxisAngle(0.707, 0.707, 0.707, 45);
shouldBe('parseFloat(m2.m11.toPrecision(6))', '0.804738');
shouldBe('parseFloat(m2.m12.toPrecision(6))', '0.505879');
shouldBe('parseFloat(m2.m13.toPrecision(6))', '-0.310617');
shouldBe('parseFloat(m2.m14.toPrecision(6))', '0');
shouldBe('parseFloat(m2.m21.toPrecision(6))', '-0.310617');
shouldBe('parseFloat(m2.m22.toPrecision(6))', '0.804738');
shouldBe('parseFloat(m2.m23.toPrecision(6))', '0.505879');
shouldBe('parseFloat(m2.m24.toPrecision(6))', '0');
shouldBe('parseFloat(m2.m31.toPrecision(6))', '0.505879');
shouldBe('parseFloat(m2.m32.toPrecision(6))', '-0.310617');
shouldBe('parseFloat(m2.m33.toPrecision(6))', '0.804738');
shouldBe('parseFloat(m2.m34.toPrecision(6))', '0');
shouldBe('parseFloat(m2.m41.toPrecision(6))', '0');
shouldBe('parseFloat(m2.m42.toPrecision(6))', '0');
shouldBe('parseFloat(m2.m43.toPrecision(6))', '0');
shouldBe('parseFloat(m2.m44.toPrecision(6))', '1');

debug("");
debug("Test immutability of rotateAxisAngle");
shouldBe('m.m11', '1');
shouldBe('m.m12', '0');
shouldBe('m.m13', '0');
shouldBe('m.m14', '0');
shouldBe('m.m21', '0');
shouldBe('m.m22', '1');
shouldBe('m.m23', '0');
shouldBe('m.m24', '0');
shouldBe('m.m31', '0');
shouldBe('m.m32', '0');
shouldBe('m.m33', '1');
shouldBe('m.m34', '0');
shouldBe('m.m41', '0');
shouldBe('m.m42', '0');
shouldBe('m.m43', '0');
shouldBe('m.m44', '1');

debug("");
successfullyParsed = true;

</script>
<script src="../fast/js/resources/js-test-post.js"></script>

<script>
</script>

</body>
</html>
