From 66804ae9935b1e2ccbc2bf0f8b8bb123792bc628 Mon Sep 17 00:00:00 2001 From: Markus Lampert Date: Sat, 10 Aug 2019 10:41:27 -0700 Subject: [PATCH] Unit test helix based on a clone --- src/Mod/Path/PathTests/TestPathHelix.py | 28 ++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/src/Mod/Path/PathTests/TestPathHelix.py b/src/Mod/Path/PathTests/TestPathHelix.py index c953dd7a13..de6c5527a7 100644 --- a/src/Mod/Path/PathTests/TestPathHelix.py +++ b/src/Mod/Path/PathTests/TestPathHelix.py @@ -22,6 +22,7 @@ # * * # *************************************************************************** +import Draft import FreeCAD import PathScripts.PathHelix as PathHelix import PathScripts.PathJob as PathJob @@ -56,7 +57,7 @@ class TestPathHelix(PathTestUtils.PathTestBase): model = base[0] for sub in base[1]: pos = proxy.holePosition(op, model, sub) - self.assertRoughly(pos.Length / 10, proxy.holeDiameter(op, model, sub)) + self.assertRoughly(round(pos.Length / 10, 0), proxy.holeDiameter(op, model, sub)) def test02(self): '''Verify Helix generates proper holes for rotated model''' @@ -74,7 +75,7 @@ class TestPathHelix(PathTestUtils.PathTestBase): for sub in base[1]: pos = proxy.holePosition(op, model, sub) #PathLog.track(deg, pos, pos.Length) - self.assertRoughly(pos.Length / 10, proxy.holeDiameter(op, model, sub)) + self.assertRoughly(round(pos.Length / 10, 0), proxy.holeDiameter(op, model, sub)) def test03(self): @@ -97,5 +98,26 @@ class TestPathHelix(PathTestUtils.PathTestBase): for sub in base[1]: pos = proxy.holePosition(op, model, sub) #PathLog.track(deg, pos, pos.Length) - self.assertRoughly(pos.Length / 10, proxy.holeDiameter(op, model, sub)) + self.assertRoughly(round(pos.Length / 10, 0), proxy.holeDiameter(op, model, sub)) + def test04(self): + '''Verify Helix generates proper holes for rotated clone base model''' + for deg in range(5, 360, 5): + self.tearDown() + self.doc = FreeCAD.open(FreeCAD.getHomePath() + 'Mod/Path/PathTests/test_holes00.fcstd') + self.clone = Draft.clone(self.doc.Body) + self.clone.Placement.Rotation = FreeCAD.Rotation(deg, 0, 0) + + self.job = PathJob.Create('Job', [self.clone]) + self.job.ToolController[0].Tool.Diameter = 0.5 + + op = PathHelix.Create('Helix') + proxy = op.Proxy + model = self.job.Model.Group[0] + + for base in op.Base: + model = base[0] + for sub in base[1]: + pos = proxy.holePosition(op, model, sub) + #PathLog.track(deg, pos, pos.Length) + self.assertRoughly(round(pos.Length / 10, 0), proxy.holeDiameter(op, model, sub))