UNPKG

@logicflow/core

Version:

LogicFlow, help you quickly create flowcharts

51 lines (47 loc) 1.3 kB
import { Vector } from '../../src/util/vector' describe('util/vector', () => { test('construct', () => { const v = new Vector(1, 2) expect(v.x).toEqual(1) expect(v[0]).toEqual(1) expect(v.y).toEqual(2) expect(v[1]).toEqual(2) expect(v.z).toEqual(0) expect(v[2]).toEqual(0) }) test('add', () => { const v = new Vector(1, 2) const v1 = new Vector(3, 4) expect(v.add(v1)).toEqual(new Vector(4, 6)) }) test('subtract', () => { const v = new Vector(1, 2) const v1 = new Vector(3, 4) expect(v.subtract(v1)).toEqual(new Vector(-2, -2)) }) test('dot', () => { const v = new Vector(1, 2) const v1 = new Vector(3, 4) expect(v.dot(v1)).toEqual(11) }) test('cross', () => { const v = new Vector(1, 2) const v1 = new Vector(3, 4) expect(v.cross(v1)).toEqual(new Vector(0, 0, -2)) }) test('getLength', () => { const v = new Vector(1, 2) expect(v.getLength()).toEqual(Math.sqrt(5)) }) test('normalize', () => { const v = new Vector(1, 2) expect(v.normalize()).toEqual( new Vector(1 / Math.sqrt(5), 2 / Math.sqrt(5)), ) }) test('angle', () => { const v = new Vector(1, 1) const v1 = new Vector(0, 1) expect(v.angle(v1) - Math.PI / 4 < Number.EPSILON).toBeTruthy() }) })