mirror of https://gitee.com/cf-fz/WebCAD.git
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.
103 lines
4.1 KiB
103 lines
4.1 KiB
import { Factory } from "../../src/DatabaseServices/CADFactory";
|
|
import { CADFiler } from "../../src/DatabaseServices/CADFiler";
|
|
import { Curve } from "../../src/DatabaseServices/Entity/Curve";
|
|
import { Polyline } from "../../src/DatabaseServices/Entity/Polyline";
|
|
Factory(Polyline);
|
|
function loadFile(data)
|
|
{
|
|
let file = new CADFiler();
|
|
file.Data = data;
|
|
let cus: Curve[] = [];
|
|
let count = file.Read();
|
|
for (let i = 0; i < count; i++)
|
|
{
|
|
cus.push(file.ReadObject(undefined) as Curve);
|
|
}
|
|
return cus;
|
|
}
|
|
test('补充bug测试#IKWGF', () =>
|
|
{
|
|
//https://gitee.com/BearCAD/WebThreeJs/issues/IKWGF
|
|
let data =
|
|
[1, "Polyline", 1, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.073087818696886, -6.460623229461753, 0, 1], 2, 13, [2.913294797687863, 5.657009425680781], -0.10216571300036134, [3.0668619767188887, 5.578034682080925], 0, [4.6094463694365295, 5.578034682080925], -2.632498680881094, [4.609446369436524, 3.627167630057804], 0, [2.4566473988439355, 3.627167630057804], 0, [2.4566473988439355, 3.627167630057804], 0, [2.4566473988439355, 4.990312071734102], -0.11795690250598688, [2.37813156168231, 5.1728323699421965], 0, [1.8884393063583844, 5.1728323699421965], 0, [1.8884393063583844, 5.1728323699421965], 0, [1.8884393063583844, 6.15606936416185], 0, [2.913294797687864, 6.15606936416185], 0, [2.913294797687864, 5.657009425680784], 0, false]
|
|
|
|
let pl = loadFile(data)[0];
|
|
|
|
//situation 1
|
|
let cus = pl.GetOffsetCurves(0.3743);
|
|
expect(cus.length).toBe(3);
|
|
expect(cus[0].Length).toMatchSnapshot();
|
|
expect(cus[1].Length).toMatchSnapshot();
|
|
expect(cus[2].Length).toMatchSnapshot();
|
|
|
|
//situation 2
|
|
cus = pl.GetOffsetCurves(0.3602);
|
|
expect(cus.length).toBe(1);
|
|
expect(cus[0].Length).toMatchSnapshot();
|
|
|
|
//situation 3
|
|
cus = pl.GetOffsetCurves(0.4269);
|
|
expect(cus.length).toBe(2);
|
|
expect(cus[0].Length).toMatchSnapshot();
|
|
expect(cus[1].Length).toMatchSnapshot();
|
|
|
|
//situation 4
|
|
cus = pl.GetOffsetCurves(0.2286);
|
|
expect(cus.length).toBe(1);
|
|
expect(cus[0].Length).toMatchSnapshot();
|
|
|
|
//situation 5
|
|
cus = pl.GetOffsetCurves(0.2309);
|
|
expect(cus.length).toBe(2);
|
|
expect(cus[0].Length).toMatchSnapshot();
|
|
expect(cus[1].Length).toMatchSnapshot();
|
|
|
|
//situation 6
|
|
cus = pl.GetOffsetCurves(0.3792);
|
|
expect(cus.length).toBe(3);
|
|
expect(cus[0].Length).toMatchSnapshot();
|
|
expect(cus[1].Length).toMatchSnapshot();
|
|
expect(cus[2].Length).toMatchSnapshot();
|
|
|
|
});
|
|
|
|
test("偏移真交点判断错误", () =>
|
|
{
|
|
let data =
|
|
[1, "Polyline", 5, 2, 102, false, 1, 7, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 1671.5225704902539, 783.1395680459682, 0, 1], 0, 0, 2, 3, [-75, -2.842170943040401e-14], 0.9999999999999997, [75, 0], -0.9999999999999997, [225, -5.684341886080802e-14], 0.9999999999999923, true]
|
|
|
|
let pl = loadFile(data)[0];
|
|
|
|
//situation 1
|
|
let cus = pl.GetOffsetCurves(75);
|
|
expect(cus.length).toBe(1);
|
|
|
|
})
|
|
|
|
test("补圆弧错误01", () =>
|
|
{
|
|
let data =
|
|
[1, "Polyline", 5, 2, 102, false, 1, 7, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -248.36561743341508, -235.59093395827813, 0, 1], 0, 0, 2, 4, [150, 74.99999999999999], -0.9999999999999997, [300, 74.99999999999903], 0.5398412275759912, [90.31248359508209, 212.61322750888567], 0, [137.41283997485402, 33.411090345222135], 0.14801304447405583, true]
|
|
|
|
let pl = loadFile(data)[0];
|
|
|
|
let cus = pl.GetOffsetCurves(180);
|
|
expect(cus.length).toBe(1);
|
|
|
|
})
|
|
test("补圆弧错误02", () =>
|
|
{
|
|
let data =
|
|
[1, "Polyline", 5, 2, 101, false, 1, 7, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 222.42531269162828, 290.34989003720335, 0, 1], 0, 0, 2, 5, [30.164179214139466, -146.93577608035883], 0, [-2.966375216967549, -20.884369768256875], -0.3337793930899486, [-74.99999999999987, -74.99999999999926], -0.4142135623730949, [-149.99999999999986, 6.821210263296962e-13], 0.4142135623730963, [-2.842170943040401e-14, -149.99999999999986], 0.050662063831163964, true]
|
|
|
|
let pl = loadFile(data)[0];
|
|
|
|
let cus = pl.GetOffsetCurves(120);
|
|
expect(cus.length).toBe(1);
|
|
|
|
cus = pl.GetOffsetCurves(145);
|
|
expect(cus.length).toBe(1);
|
|
|
|
})
|
|
|