import { Arc } from '../../src/DatabaseServices/Arc'; import { Vector3, Vector2 } from 'three'; import { app } from '../../src/ApplicationServices/Application'; import { Command } from '../../src/Editor/CommandMachine'; import { PromptStatus } from '../../src/Editor/PromptResult'; import { RenderType } from '../../src/GraphicsSystem/Enum'; test("三点共线", () => { let pt1 = new Vector3(0, 0, 0); let pt2 = new Vector3(0, 1, 0); let pt3 = new Vector3(0, 2, 0); let arc = new Arc(); arc.FromThreePoint(pt1, pt2, pt3); console.log(arc.Center); console.log(arc.StartAngle); console.log(arc.EndAngle); console.log(arc.Radius); expect(arc.Center.toArray()).toMatchObject([0, 0, 0]); }) test("三点圆心", () => { let arc = new Arc(); arc.FromThreePoint( new Vector3(0, 0, 0), new Vector3(5, 5, 0), new Vector3(10, 0, 0) ) console.log(arc.StartAngle); console.log(arc.EndAngle); expect(arc.Center.toArray()).toMatchObject([5, 0, 0]); expect(arc.StartAngle).toMatchSnapshot(); expect(arc.EndAngle).toMatchSnapshot(); }) test("三点同一位置", () => { let arc = new Arc(); arc.FromThreePoint( new Vector3(5, 5, 0), new Vector3(5, 5, 0), new Vector3(5, 5, 0) ) console.log(arc.StartAngle); console.log(arc.EndAngle); expect(arc.Center.toArray()).toMatchObject([0, 0, 0]); expect(arc.StartAngle).toMatchSnapshot(); expect(arc.EndAngle).toMatchSnapshot(); })