@tldraw/editor
Version:
tldraw infinite canvas SDK (editor).
47 lines (42 loc) • 820 B
text/typescript
import { Mat } from './Mat'
describe('Mat', () => {
it('Creates a matrix', () => {
const mat3 = new Mat(1.0, 0.0, 0.0, 1.0, 0.0, 0.0)
expect(mat3).toMatchObject(Mat.Identity())
})
it('Multiplies a matrix', () => {
const m1 = new Mat(1, 2, 3, 4, 5, 6)
const m2 = new Mat(1, 2, 3, 4, 5, 6)
expect(m1.multiply(m2)).toMatchObject({
a: 7,
b: 10,
c: 15,
d: 22,
e: 28,
f: 40,
})
})
it('Composes matrices', () => {
const m1 = new Mat(1, 2, 3, 4, 5, 6)
const m2 = new Mat(1, 2, 3, 4, 5, 6)
expect(Mat.Compose(m1, m2)).toMatchObject({
a: 7,
b: 10,
c: 15,
d: 22,
e: 28,
f: 40,
})
})
it('Inverts a matrix', () => {
const m1 = new Mat(1, 2, 3, 4, 5, 6)
expect(m1.invert()).toMatchObject({
a: -2,
b: 1,
c: 1.5,
d: -0.5,
e: 1,
f: -2,
})
})
})