This test exercises the SVGMatrix interface

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


SVGMatrix constructors
PASS default constructor

Test attributes on default matrix
PASS m.a is 1
PASS m.b is 0
PASS m.c is 0
PASS m.d is 1
PASS m.e is 0
PASS m.f is 0

Test attributes on translate() and accumulation
PASS m2.a is 1
PASS m2.b is 0
PASS m2.c is 0
PASS m2.d is 1
PASS m2.e is 100
PASS m2.f is 50

Test immutability of translate()
PASS parseFloat(m.a) is 1
PASS parseFloat(m.b) is 0
PASS parseFloat(m.c) is 0
PASS parseFloat(m.d) is 1
PASS parseFloat(m.e) is 0
PASS parseFloat(m.f) is 0

Test attributes on scale()
PASS m3.a is 5
PASS m3.b is 0
PASS m3.c is 0
PASS m3.d is 5
PASS m3.e is 100
PASS m3.f is 50

Test immutability of scale()
PASS parseFloat(m2.a) is 1
PASS parseFloat(m2.b) is 0
PASS parseFloat(m2.c) is 0
PASS parseFloat(m2.d) is 1
PASS parseFloat(m2.e) is 100
PASS parseFloat(m2.f) is 50

Test attributes on scaleNonUniform()
PASS m4.a is 10
PASS m4.b is 0
PASS m4.c is 0
PASS m4.d is 5
PASS m4.e is 100
PASS m4.f is 50

Test immutability of scaleNonUniform()
PASS parseFloat(m3.a) is 5
PASS parseFloat(m3.b) is 0
PASS parseFloat(m3.c) is 0
PASS parseFloat(m3.d) is 5
PASS parseFloat(m3.e) is 100
PASS parseFloat(m3.f) is 50

Test rotate()
PASS parseFloat(m2.a.toPrecision(6)) is 0.984808
PASS parseFloat(m2.b.toPrecision(6)) is 0.173648
PASS parseFloat(m2.c.toPrecision(6)) is -0.173648
PASS parseFloat(m2.d.toPrecision(6)) is 0.984808
PASS m.e is 0
PASS m.f is 0

Test immutability of rotate()
PASS parseFloat(m.a) is 1
PASS parseFloat(m.b) is 0
PASS parseFloat(m.c) is 0
PASS parseFloat(m.d) is 1
PASS parseFloat(m.e) is 0
PASS parseFloat(m.f) is 0

Test flipX()
PASS m4.a is -5
PASS Math.abs(m4.b) is 0
PASS m4.c is 0
PASS m4.d is 5
PASS m4.e is 100
PASS m4.f is 50

Test immutability of flipX()
PASS parseFloat(m3.a) is 5
PASS parseFloat(m3.b) is 0
PASS parseFloat(m3.c) is 0
PASS parseFloat(m3.d) is 5
PASS parseFloat(m3.e) is 100
PASS parseFloat(m3.f) is 50

Test flipY()
PASS m4.a is 5
PASS m4.b is 0
PASS Math.abs(m4.c) is 0
PASS m4.d is -5
PASS m4.e is 100
PASS m4.f is 50

Test immutability of flipY()
PASS parseFloat(m3.a) is 5
PASS parseFloat(m3.b) is 0
PASS parseFloat(m3.c) is 0
PASS parseFloat(m3.d) is 5
PASS parseFloat(m3.e) is 100
PASS parseFloat(m3.f) is 50

Test skewX()
PASS m2.a is 1
PASS m2.b is 0
PASS parseFloat(m2.c.toPrecision(6)) is 0.577350
PASS m2.d is 1
PASS m2.e is 0
PASS m2.f is 0

Test immutability of skewX()
PASS parseFloat(m.a) is 1
PASS parseFloat(m.b) is 0
PASS parseFloat(m.c) is 0
PASS parseFloat(m.d) is 1
PASS parseFloat(m.e) is 0
PASS parseFloat(m.f) is 0

Test skewY()
PASS m2.a is 1
PASS parseFloat(m2.b.toPrecision(6)) is 0.577350
PASS m2.c is 0
PASS m2.d is 1
PASS m2.e is 0
PASS m2.f is 0

Test immutability of skewY()
PASS parseFloat(m.a) is 1
PASS parseFloat(m.b) is 0
PASS parseFloat(m.c) is 0
PASS parseFloat(m.d) is 1
PASS parseFloat(m.e) is 0
PASS parseFloat(m.f) is 0

Test multiply
PASS parseFloat(m3.a) is 31
PASS parseFloat(m3.b) is 46
PASS parseFloat(m3.c) is 39
PASS parseFloat(m3.d) is 58
PASS parseFloat(m3.e) is 52
PASS parseFloat(m3.f) is 76

Test that multiply works in the right direction
PASS m.a is 2
PASS m.b is 0
PASS m.c is 0
PASS m.d is 1
PASS m.e is 100
PASS m.f is 0

Test immutability of multiply
PASS tx.a is 1
PASS tx.b is 0
PASS tx.c is 0
PASS tx.d is 1
PASS tx.e is 100
PASS tx.f is 0
PASS sx.a is 2
PASS sx.b is 0
PASS sx.c is 0
PASS sx.d is 1
PASS sx.e is 0
PASS sx.f is 0

Test multiply with missing argument
PASS m is null

Test inverse
PASS parseFloat(m2.a) is 0.5
PASS parseFloat(m2.b) is 0
PASS parseFloat(m2.c) is 0
PASS parseFloat(m2.d) is 0.5
PASS parseFloat(m2.e) is -5
PASS parseFloat(m2.f) is -10

Test immutability of inverse
PASS parseFloat(m.a) is 2
PASS parseFloat(m.b) is 0
PASS parseFloat(m.c) is 0
PASS parseFloat(m.d) is 2
PASS parseFloat(m.e) is 10
PASS parseFloat(m.f) is 20

Test throwing exception from inverse
PASS m.inverse() threw exception Error: SVG_MATRIX_NOT_INVERTABLE: DOM SVG Exception 2.

PASS successfullyParsed is true

TEST COMPLETE

