|
3 | 3 |
|
4 | 4 | import { Vector2, Vector3 } from '@minecraft/server';
|
5 | 5 | import { describe, expect, it } from 'vitest';
|
6 |
| -import { Vector2Utils, Vector3Utils } from './coreHelpers'; |
| 6 | +import { Vector2Utils, VECTOR3_LEFT, VECTOR3_UP, Vector3Utils } from './coreHelpers'; |
7 | 7 |
|
8 | 8 | describe('Vector3 operations', () => {
|
9 | 9 | const v1: Vector3 = { x: 1, y: 2, z: 3 };
|
@@ -189,4 +189,32 @@ describe('Vector3 operations', () => {
|
189 | 189 | expect(result.y).toBeCloseTo(-0.7071, 3);
|
190 | 190 | expect(result.z).toBeCloseTo(0);
|
191 | 191 | });
|
| 192 | + |
| 193 | + it('calculates two vectors multiplied together', () => { |
| 194 | + const result: Vector3 = Vector3Utils.multiply(v1, v2); |
| 195 | + expect(result).toEqual({ x: 4, y: 10, z: 18 }); |
| 196 | + }); |
| 197 | + |
| 198 | + describe('Vector3 rotation functions', () => { |
| 199 | + it(`calculates a vector rotated along the x axis`, () => { |
| 200 | + const result = Vector3Utils.rotateX(VECTOR3_UP, Math.PI / 2); |
| 201 | + expect(result.x).toBeCloseTo(0); |
| 202 | + expect(result.y).toBeCloseTo(0); |
| 203 | + expect(result.z).toBeCloseTo(1); |
| 204 | + }); |
| 205 | + |
| 206 | + it(`calculates a vector rotated along the y axis`, () => { |
| 207 | + const result = Vector3Utils.rotateY(VECTOR3_LEFT, Math.PI / 2); |
| 208 | + expect(result.x).toBeCloseTo(0); |
| 209 | + expect(result.y).toBeCloseTo(0); |
| 210 | + expect(result.z).toBeCloseTo(1); |
| 211 | + }); |
| 212 | + |
| 213 | + it(`calculates a vector rotated along the z axis`, () => { |
| 214 | + const result = Vector3Utils.rotateZ(VECTOR3_UP, Math.PI / 2); |
| 215 | + expect(result.x).toBeCloseTo(-1); |
| 216 | + expect(result.y).toBeCloseTo(0); |
| 217 | + expect(result.z).toBeCloseTo(0); |
| 218 | + }); |
| 219 | + }); |
192 | 220 | });
|
0 commit comments