Bug 1943761 - Add class alignment to the mozsearch analysis file. r=asuth
[gecko.git] / dom / svg / test / matrixUtils.js
blobed9b8297b9c7b8df95b1769fede578ad0069295d
1 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
2 * vim: sw=2 ts=2 et lcs=trail\:.,tab\:>~ :
3 * This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 /*
8 * Utilities for testing SVG matrices
9 */
11 function createMatrix(a, b, c, d, e, f) {
12 var svg = document.getElementsByTagName("svg")[0];
13 var m = svg.createSVGMatrix();
14 m.a = a;
15 m.b = b;
16 m.c = c;
17 m.d = d;
18 m.e = e;
19 m.f = f;
20 return m;
23 // Lightweight dummy Matrix class for representing arrays that get passed in
24 function MatrixFromArray(a) {
25 this.a = a[0];
26 this.b = a[1];
27 this.c = a[2];
28 this.d = a[3];
29 this.e = a[4];
30 this.f = a[5];
33 function cmpMatrix(a, b, msg) {
34 if (a.constructor === Array) {
35 a = new MatrixFromArray(a);
37 if (b.constructor === Array) {
38 b = new MatrixFromArray(b);
41 ok(
42 a.a == b.a &&
43 a.b == b.b &&
44 a.c == b.c &&
45 a.d == b.d &&
46 a.e == b.e &&
47 a.f == b.f,
48 msg + " - got " + formatMatrix(a) + ", expected " + formatMatrix(b)
52 function roughCmpMatrix(a, b, msg) {
53 if (a.constructor === Array) {
54 a = new MatrixFromArray(a);
56 if (b.constructor === Array) {
57 b = new MatrixFromArray(b);
60 const tolerance = 1 / 65535;
61 ok(
62 Math.abs(b.a - a.a) < tolerance &&
63 Math.abs(b.b - a.b) < tolerance &&
64 Math.abs(b.c - a.c) < tolerance &&
65 Math.abs(b.d - a.d) < tolerance &&
66 Math.abs(b.e - a.e) < tolerance &&
67 Math.abs(b.f - a.f) < tolerance,
68 msg + " - got " + formatMatrix(a) + ", expected " + formatMatrix(b)
72 function formatMatrix(m) {
73 if (m.constructor != Array) {
74 return "(" + [m.a, m.b, m.c, m.d, m.e, m.f].join(", ") + ")";
77 return "(" + m.join(", ") + ")";