From 0a58763d808c89656a25bcc7c03086b6adf48955 Mon Sep 17 00:00:00 2001 From: ChenX Date: Thu, 28 Jun 2018 16:16:10 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8C=96=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../__snapshots__/offset.test.ts.snap | 419 +++++------------- __test__/Polyline/offset.test.ts | 21 +- 2 files changed, 119 insertions(+), 321 deletions(-) diff --git a/__test__/Polyline/__snapshots__/offset.test.ts.snap b/__test__/Polyline/__snapshots__/offset.test.ts.snap index ca008b41b..3d4483410 100644 --- a/__test__/Polyline/__snapshots__/offset.test.ts.snap +++ b/__test__/Polyline/__snapshots__/offset.test.ts.snap @@ -1,203 +1,20 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`IKKGK圆与直线补圆弧 1`] = ` -Array [ - 1, - Array [ - "Polyline", - 1, - 1, - -1, - false, - 7, - -1, - Array [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - ], - 2, - 3, - Array [ - -48.29834401092122, - 16.98022733982478, - ], - 5.524425164721828, - Array [ - -45.03828401586735, - 17.21365558545229, - ], - 0, - Array [ - -29.952830639706992, - 28.841209282017353, - ], - 0, - false, - ], -] -`; - -exports[`IKKGK圆与直线补圆弧 2`] = ` -Array [ - 1, - Array [ - "Polyline", - 1, - 1, - -1, - false, - 7, - -1, - Array [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - ], - 2, - 3, - Array [ - -29.952830639706992, - 28.841209282017353, - ], - 0, - Array [ - -45.03828401586746, - 17.213655585452294, - ], - -5.524425164722017, - Array [ - -48.29834401092122, - 16.98022733982478, - ], - 0, - false, - ], -] -`; - -exports[`IKKGK圆与直线补圆弧 3`] = ` -Array [ - 1, - Array [ - "Polyline", - 1, - 1, - -1, - false, - 7, - -1, - Array [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - ], - 2, - 3, - Array [ - -28.166325866517482, - 26.523418698930218, - ], - 0, - Array [ - -40.232543460173595, - 17.223029145747052, - ], - -2.8074677582773755, - Array [ - -49.51728832490683, - 19.64066475707001, - ], - 0, - false, - ], -] -`; - -exports[`中间区域需要圆裁剪 1`] = ` -Array [ - 1, - Array [ - "Polyline", - 1, - 1, - -1, - false, - 7, - -1, - Array [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - ], - 2, - 2, - Array [ - -1364.5959311860515, - -641.2520614332396, - ], - 0, - Array [ - -1341.320532010086, - -649.5529137785365, - ], - 0, - false, - ], -] -`; +exports[`IKKGK圆与直线补圆弧 1`] = `1`; + +exports[`IKKGK圆与直线补圆弧 2`] = `44.998097679646904`; + +exports[`IKKGK圆与直线补圆弧 3`] = `1`; + +exports[`IKKGK圆与直线补圆弧 4`] = `44.998097679647046`; + +exports[`IKKGK圆与直线补圆弧 5`] = `1`; + +exports[`IKKGK圆与直线补圆弧 6`] = `52.52605376818708`; + +exports[`中间区域需要圆裁剪 1`] = `1`; + +exports[`中间区域需要圆裁剪 2`] = `24.711300177428036`; exports[`圆求交错误导致的线丢失 1`] = `4148.643109243218`; @@ -215,117 +32,13 @@ exports[`圆求交错误导致的线丢失 7`] = `3783.7370117939813`; exports[`圆求交错误导致的线丢失 8`] = `4971.999047743294`; -exports[`拱门偏移 1`] = ` -Array [ - 1, - Array [ - "Polyline", - 1, - 1, - -1, - false, - 7, - -1, - Array [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - ], - 2, - 4, - Array [ - 0.4, - 0, - ], - 0, - Array [ - 0.4, - 2, - ], - -0.9999999999999999, - Array [ - 0.6, - 2, - ], - 0, - Array [ - 0.6, - -4.898587196589413e-17, - ], - 0, - false, - ], -] -`; - -exports[`拱门偏移 2`] = ` -Array [ - 1, - Array [ - "Polyline", - 1, - 1, - -1, - false, - 7, - -1, - Array [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - ], - 2, - 4, - Array [ - -0.4, - 0, - ], - 0, - Array [ - -0.4, - 2, - ], - -0.9999999999999999, - Array [ - 1.4, - 2, - ], - 0, - Array [ - 1.4, - 4.898587196589413e-17, - ], - 0, - false, - ], -] -`; +exports[`拱门偏移 1`] = `1`; + +exports[`拱门偏移 2`] = `4.314156035548454`; + +exports[`拱门偏移 3`] = `1`; + +exports[`拱门偏移 4`] = `6.827404319936081`; exports[`简单图形因为点在线内算法错误导致的丢失 1`] = `8.675026988029915`; @@ -335,6 +48,94 @@ exports[`简单图形因为点在线内算法错误导致的丢失 3`] = `6.8025 exports[`简单图形因为点在线内算法错误导致的丢失 4`] = `6.045525633131274`; +exports[`补圆弧测试 补圆弧测试1 1`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 2`] = `202.39234999237357`; + +exports[`补圆弧测试 补圆弧测试1 3`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 4`] = `202.97100463130596`; + +exports[`补圆弧测试 补圆弧测试1 5`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 6`] = `203.6334701054305`; + +exports[`补圆弧测试 补圆弧测试1 7`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 8`] = `204.40220678622498`; + +exports[`补圆弧测试 补圆弧测试1 9`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 10`] = `205.30911616294793`; + +exports[`补圆弧测试 补圆弧测试1 11`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 12`] = `206.4013429179738`; + +exports[`补圆弧测试 补圆弧测试1 13`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 14`] = `207.75214121305123`; + +exports[`补圆弧测试 补圆弧测试1 15`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 16`] = `209.48307101962268`; + +exports[`补圆弧测试 补圆弧测试1 17`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 18`] = `211.81505991717293`; + +exports[`补圆弧测试 补圆弧测试1 19`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 20`] = `215.20865129706962`; + +exports[`补圆弧测试 补圆弧测试1 21`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 22`] = `220.89085248936073`; + +exports[`补圆弧测试 补圆弧测试1 23`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 24`] = `243.05075247271324`; + +exports[`补圆弧测试 补圆弧测试1 25`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 26`] = `236.6991306483004`; + +exports[`补圆弧测试 补圆弧测试1 27`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 28`] = `236.69932095661932`; + +exports[`补圆弧测试 补圆弧测试1 29`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 30`] = `205.62990409788847`; + +exports[`补圆弧测试 补圆弧测试1 31`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 32`] = `198.55214618601138`; + +exports[`补圆弧测试 补圆弧测试1 33`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 34`] = `195.91344487061264`; + +exports[`补圆弧测试 补圆弧测试1 35`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 36`] = `194.55183899140644`; + +exports[`补圆弧测试 补圆弧测试1 37`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 38`] = `193.73991606924534`; + +exports[`补圆弧测试 补圆弧测试1 39`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 40`] = `193.2116315246781`; + +exports[`补圆弧测试 补圆弧测试1 41`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 42`] = `192.84670578048616`; + +exports[`补圆弧测试 补圆弧测试1 43`] = `1`; + +exports[`补圆弧测试 补圆弧测试1 44`] = `192.58324938493251`; + exports[`闭合多段线判断精度和重复交点参数导致偏移丢失 1`] = `54789.14760701891`; exports[`闭合多段线判断精度和重复交点参数导致偏移丢失 2`] = `54907.17933624483`; diff --git a/__test__/Polyline/offset.test.ts b/__test__/Polyline/offset.test.ts index c70064234..1b37e8f54 100644 --- a/__test__/Polyline/offset.test.ts +++ b/__test__/Polyline/offset.test.ts @@ -1,8 +1,7 @@ import { Factory } from "../../src/DatabaseServices/CADFactory"; import { CADFile } from "../../src/DatabaseServices/CADFile"; -import { Polyline } from "../../src/DatabaseServices/Polyline"; import { Curve } from "../../src/DatabaseServices/Curve"; -import { Entity } from "../../src/DatabaseServices/Entity"; +import { Polyline } from "../../src/DatabaseServices/Polyline"; Factory(Polyline); function loadFile(data) @@ -18,15 +17,13 @@ function loadFile(data) return cus; } -function EntityToMatchSnapshot(ens: Entity[]) +function EntityToMatchSnapshot(ens: Curve[]) { - let f = new CADFile(); - f.Write(ens.length); - - for (let e of ens) - f.WriteObject(e); - - expect(f.Data).toMatchSnapshot(); + expect(ens.length).toMatchSnapshot(); + for (let c of ens) + { + expect(c.Length).toMatchSnapshot(); + } } test('IKKGK圆与直线补圆弧', () => @@ -465,10 +462,10 @@ describe("补圆弧测试", () => // 向上- // 向下+ expect(cus[0].GetOffsetCurves(17.45).length).toBe(2); - for (let i = -55; i <= 55; i++) + for (let i = -55; i <= 55; i += 5) { if (i === 0) continue; - expect(cus[0].GetOffsetCurves(i).length).toBe(1); + EntityToMatchSnapshot(cus[0].GetOffsetCurves(i)); } }) test("补圆弧测试2", () =>