@logicflow/core
Version:
LogicFlow, help you quickly create flowcharts
51 lines (47 loc) • 1.3 kB
text/typescript
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()
})
})