From c7c07f28c639e82a6d2c58f4aaef5b42cddcc83c Mon Sep 17 00:00:00 2001 From: tomate44 Date: Wed, 1 May 2024 17:47:36 +0200 Subject: [PATCH] add unit test for edge split method --- src/Mod/Part/parttests/BRep_tests.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/Mod/Part/parttests/BRep_tests.py b/src/Mod/Part/parttests/BRep_tests.py index 20dcd9046919..eb22622cf209 100644 --- a/src/Mod/Part/parttests/BRep_tests.py +++ b/src/Mod/Part/parttests/BRep_tests.py @@ -10,7 +10,7 @@ def testProject(self): This is a unit test for PR #13507 """ num = 18 - alt = [0,1] * num + alt = [0, 1] * num pts = [App.Vector(i, alt[i], 0) for i in range(num)] bsc = Part.BSplineCurve() @@ -24,3 +24,26 @@ def testProject(self): self.assertFalse(proj.isNull()) self.assertEqual(len(proj.Edges), 1) + def testEdgeSplitFace(self): + coords2d = [(0.5, -0.5), (1.0, -0.5), (1.0, 0.5), (0.5, 0.5)] + pts2d = [App.Base.Vector2d(u, v) for u, v in coords2d] + pts2d.append(pts2d[0]) + + sphere = Part.Sphere() + edges = [] + for i in range(1, len(pts2d)): + ls = Part.Geom2d.Line2dSegment(pts2d[i - 1], pts2d[i]) + edges.append(ls.toShape(sphere)) + + split = edges[0].split(0.25) + new_edges = split.Edges + edges[1:] + wire = Part.Wire(new_edges) + face = Part.Face(wire, "Part::FaceMakerSimple") + self.assertTrue(face.isValid()) + + def testEdgeSplitReplace(self): + cyl = Part.makeCylinder(2, 5) + e1 = cyl.Edge3 + split = e1.split([1.0, 2.0]) + newcyl = cyl.replaceShape([(e1, split), (cyl.Vertex2, split.Vertex1)]) + self.assertTrue(newcyl.isValid())