@mborecki/geo2d
Advanced tools
| { | ||
| "name": "@mb-puzzle/vec2", | ||
| "version": "0.5.0", | ||
| "version": "0.6.0", | ||
| "private": true, | ||
@@ -5,0 +5,0 @@ "description": "", |
@@ -1,5 +0,14 @@ | ||
| import { describe, expect, it } from "vitest"; | ||
| import { describe, expect, it, test } from "vitest"; | ||
| import { Vec2 } from "./vec2" | ||
| describe('Vec2', () => { | ||
| describe('contructor', () => { | ||
| test('x,y', () => { | ||
| const v = new Vec2(1, 2); | ||
| expect(v.x).toBe(1); | ||
| expect(v.y).toBe(2); | ||
| }) | ||
| }); | ||
| describe('getters', () => { | ||
@@ -55,2 +64,30 @@ it('[0]', () => { | ||
| }) | ||
| describe('set()', () => { | ||
| it('number', () => { | ||
| const v = Vec2.from(0); | ||
| v.set(3); | ||
| expect(v.x).toBe(3); | ||
| expect(v.y).toBe(3); | ||
| }) | ||
| it('array', () => { | ||
| const v = Vec2.from([1, 2]); | ||
| v.set([1, 2]); | ||
| expect(v.x).toBe(1); | ||
| expect(v.y).toBe(2); | ||
| }) | ||
| it('object', () => { | ||
| const v = Vec2.from({ x: 1, y: 2 }); | ||
| v.set({ x: 1, y: 2 }); | ||
| expect(v.x).toBe(1); | ||
| expect(v.y).toBe(2); | ||
| }) | ||
| it('object+', () => { | ||
| const obj = { x: 1, y: 2, id: 'foobar' } | ||
| const v = Vec2.from(obj); | ||
| v.set(obj); | ||
| expect(v.x).toBe(1); | ||
| expect(v.y).toBe(2); | ||
| }) | ||
| }) | ||
| }) |
@@ -1,2 +0,2 @@ | ||
| export interface Vec2ParsableObject {x: number, y: number} | ||
| export interface Vec2ParsableObject { x: number, y: number } | ||
@@ -7,4 +7,4 @@ export type Vec2Source = number | number[] | Required<Vec2ParsableObject>; | ||
| x: number; | ||
| y: number; | ||
| x: number = 0; | ||
| y: number = 0; | ||
@@ -57,2 +57,17 @@ get 0(): number { | ||
| set(source: Vec2Source) { | ||
| if (typeof source === 'number') { | ||
| this.x = source; | ||
| this.y = source; | ||
| } else if (Array.isArray(source)) { | ||
| this.x = source[0] ?? 0; | ||
| this.y = source[1] ?? 0; | ||
| } else if (typeof source === 'object' && typeof source.x === 'number' && typeof source.y === 'number') { | ||
| this.x = source.x; | ||
| this.y = source.y; | ||
| } | ||
| return this; | ||
| } | ||
| add(v: Vec2): Vec2 { | ||
@@ -59,0 +74,0 @@ return new Vec2(this.x + v.x, this.y + v.y); |
+1
-1
| { | ||
| "name": "@mborecki/geo2d", | ||
| "version": "0.1.1", | ||
| "version": "0.2.0", | ||
| "description": "", | ||
@@ -5,0 +5,0 @@ "main": "index.ts", |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
10565
13.75%330
16.61%0
-100%