You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
WebCAD/__test__/ALG/region.test.ts

35 lines
1.2 KiB

import { LoadCurvesFromFileData } from "../Utils/LoadEntity.util";
import { RegionParse } from "../../src/Geometry/RegionParse";
import { Polyline } from "../../src/DatabaseServices/Entity/Polyline";
import "../Utils/jest.util";
test('面域分析测试', () =>
{
let cus = LoadCurvesFromFileData(require("./curves.json"));
let reg = new RegionParse(cus);
expect(reg.RegionsOutline.length).toMatchSnapshot();
expect(reg.RegionsInternal.length).toMatchSnapshot();
for (let routes of [...reg.RegionsOutline, ...reg.RegionsInternal])
{
let pl = Polyline.Combine(routes.map(r => r.curve), 1e-3);
expect(pl.Length).toMatchNumberSnapshot();
}
});
test('因为顶点精度问题导致的角度精度问题', () =>
{
let cus = LoadCurvesFromFileData(require("./curves2.json"));
let reg = new RegionParse(cus);
expect(reg.RegionsOutline.length).toMatchSnapshot();
expect(reg.RegionsInternal.length).toMatchSnapshot();
for (let routes of [...reg.RegionsOutline, ...reg.RegionsInternal])
{
let pl = Polyline.Combine(routes.map(r => r.curve), 1e-3);
expect(pl.Length).toMatchNumberSnapshot();
}
});