| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <title>Geometry Interfaces: DOMMatrixReadOnly methods do not mutate the object</title> | |
| <link href="mailto:peter.hall@algomi.com" rel="author" title="Peter Hall"> | |
| <link rel="help" href="https://drafts.fxtf.org/geometry-1/#DOMMatrix"> | |
| <script src="support/dommatrix-test-util.js"></script> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| </head> | |
| <body> | |
| <p>Test DOMMatrixReadOnly methods do not mutate the object</p> | |
| <div id="log"></div> | |
| <script> | |
| function initialMatrix(){ | |
| return DOMMatrixReadOnly.fromMatrix( | |
| { | |
| m11:1, m12:-0.5, m13: 0.5, m14:0, | |
| m21:0.5, m22:2, m23: -0.5, m24:0, | |
| m31:0, m32:0, m33: 1, m34:0, | |
| m41:0, m42:0, m43: 0, m44:1, | |
| is2D: false | |
| } | |
| ); | |
| } | |
| test(function() { | |
| var matrix = initialMatrix(); | |
| matrix.translate(1,5,3); | |
| checkDOMMatrix(matrix, initialMatrix()); | |
| },"test translate() doesn't mutate"); | |
| test(function() { | |
| var matrix = initialMatrix(); | |
| matrix.scale(1,5,3,0,1,3); | |
| checkDOMMatrix(matrix, initialMatrix()); | |
| },"test scale() doesn't mutate"); | |
| test(function() { | |
| var matrix = initialMatrix(); | |
| matrix.scaleNonUniform(1,5); | |
| checkDOMMatrix(matrix, initialMatrix()); | |
| },"test scaleNonUniform() doesn't mutate"); | |
| test(function() { | |
| var matrix = initialMatrix(); | |
| matrix.scale3d(3,2,1,1); | |
| checkDOMMatrix(matrix, initialMatrix()); | |
| },"test scale3d() doesn't mutate"); | |
| test(function() { | |
| var matrix = initialMatrix(); | |
| matrix.rotate(Math.PI, Math.PI/2, Math.PI/6); | |
| checkDOMMatrix(matrix, initialMatrix()); | |
| },"test rotate() doesn't mutate"); | |
| test(function() { | |
| var matrix = initialMatrix(); | |
| matrix.rotateFromVector(10,-4); | |
| checkDOMMatrix(matrix, initialMatrix()); | |
| },"test rotateFromVector() doesn't mutate"); | |
| test(function() { | |
| var matrix = initialMatrix(); | |
| matrix.rotateAxisAngle(3,4,5, Math.PI/6); | |
| checkDOMMatrix(matrix, initialMatrix()); | |
| },"test rotateAxisAngle() doesn't mutate"); | |
| test(function() { | |
| var matrix = initialMatrix(); | |
| matrix.skewX(20); | |
| checkDOMMatrix(matrix, initialMatrix()); | |
| },"test skewX() doesn't mutate"); | |
| test(function() { | |
| var matrix = initialMatrix(); | |
| matrix.skewY(20); | |
| checkDOMMatrix(matrix, initialMatrix()); | |
| },"test skewY() doesn't mutate"); | |
| test(function() { | |
| var matrix = initialMatrix(); | |
| matrix.multiply({ m11:1, m12:2, m13: 0, m14:0, | |
| m21:-1, m22:2, m23: -1, m24:0, | |
| m31:0, m32:0, m33: 1, m34:0, | |
| m41:5, m42:0, m43: 2, m44:1, | |
| is2D: false, | |
| isIdentity:false }); | |
| checkDOMMatrix(matrix, initialMatrix()); | |
| },"test multiply() doesn't mutate"); | |
| test(function() { | |
| var matrix = initialMatrix(); | |
| matrix.flipX(); | |
| checkDOMMatrix(matrix, initialMatrix()); | |
| },"test flipX() doesn't mutate"); | |
| test(function() { | |
| var matrix = initialMatrix(); | |
| matrix.flipY(); | |
| checkDOMMatrix(matrix, initialMatrix()); | |
| },"test flipY() doesn't mutate"); | |
| test(function() { | |
| var matrix = initialMatrix(); | |
| matrix.inverse(); | |
| checkDOMMatrix(matrix, initialMatrix()); | |
| },"test inverse() doesn't mutate"); | |
| </script> | |
| </body> | |
| </html> |