UNPKG

@logicflow/core

Version:

LogicFlow, help you quickly create flowcharts

42 lines (40 loc) 1.39 kB
import { Matrix } from '../../src/util/matrix' describe('util/matrix', () => { test('construct', () => { const m = new Matrix([1, 2, 3], [4, 5, 6], [7, 8, 9]) expect(m[0]).toEqual([1, 2, 3]) expect(m[1]).toEqual([4, 5, 6]) expect(m[2]).toEqual([7, 8, 9]) }) test('cross', () => { const m = new Matrix([1, 2, 3], [4, 5, 6], [7, 8, 9]) const n = new Matrix([9, 8, 7], [6, 5, 4], [3, 2, 1]) expect(m.cross(n)).toEqual( new Matrix([30, 24, 18], [84, 69, 54], [138, 114, 90]), ) }) test('transpose', () => { const m = new Matrix([1, 2, 3], [4, 5, 6], [7, 8, 9]) expect(m.transpose()).toEqual(new Matrix([1, 4, 7], [2, 5, 8], [3, 6, 9])) }) test('translate', () => { const m = new Matrix([1, 0, 0], [0, 1, 0], [0, 0, 1]) expect(m.translate(2, 3)).toEqual( new Matrix([1, 0, 0], [0, 1, 0], [2, 3, 1]), ) }) test('rotate', () => { const m = new Matrix([1, 0, 0], [0, 1, 0], [0, 0, 1]) expect(m.rotate(Math.PI / 2)).toEqual( new Matrix([0, 1, 0], [-1, 0, 0], [0, 0, 1]), ) }) test('scale', () => { const m = new Matrix([1, 0, 0], [0, 1, 0], [0, 0, 1]) expect(m.scale(2, 3)).toEqual(new Matrix([2, 0, 0], [0, 3, 0], [0, 0, 1])) }) test('toString', () => { const m = new Matrix([1, 0, 0], [0, 1, 0], [1, 1, 1]) expect(m.toString()).toEqual('matrix(1 0 0 1 1 1)') }) })