blob: dff25a4bbd53dc470796049eba73ec0e3a9eae60 [file] [edit]
<script src="../../resources/js-test.js"></script>
<body>
<script>
description("DOMMatrix.invers() should not return NaN for small but normal values.");
const matrix = new DOMMatrix([9.780006597705043e-07, 3.532646825298159e-07, -2.528174268419108e-07, 1.326003454762908e-06, 42.05985792398261, -76.82054904789567]);
const svgMatrix = document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGMatrix();
svgMatrix.a = matrix.a;
svgMatrix.b = matrix.b;
svgMatrix.c = matrix.c;
svgMatrix.d = matrix.d;
svgMatrix.e = matrix.e;
svgMatrix.f = matrix.f;
const matrixInverse = matrix.inverse();
const svgMatrixInverse = svgMatrix.inverse();
shouldNotBe("matrixInverse.a", "NaN");
shouldNotBe("matrixInverse.b", "NaN");
shouldNotBe("matrixInverse.c", "NaN");
shouldNotBe("matrixInverse.d", "NaN");
shouldNotBe("matrixInverse.e", "NaN");
shouldNotBe("matrixInverse.f", "NaN");
shouldBeTrue("Math.abs(matrixInverse.a - svgMatrixInverse.a) < 0.0000001");
shouldBeTrue("Math.abs(matrixInverse.b - svgMatrixInverse.b) < 0.0000001");
shouldBeTrue("Math.abs(matrixInverse.c - svgMatrixInverse.c) < 0.0000001");
shouldBeTrue("Math.abs(matrixInverse.d - svgMatrixInverse.d) < 0.0000001");
shouldBeTrue("Math.abs(matrixInverse.e - svgMatrixInverse.e) < 0.0000001");
shouldBeTrue("Math.abs(matrixInverse.f - svgMatrixInverse.f) < 0.0000001");
</script>
</body>