From d9277c4567b18e21f0e4fcc2cd5aa2c505d252ce Mon Sep 17 00:00:00 2001 From: Kurt Kremitzki Date: Mon, 10 Jul 2017 05:00:23 -0500 Subject: [PATCH] Flesh out basic dressup feature tests --- .../PartDesign/PartDesignTests/TestChamfer.py | 16 ++++++------- .../PartDesign/PartDesignTests/TestDraft.py | 24 ++++++++++++------- .../PartDesign/PartDesignTests/TestFillet.py | 17 +++++++------ .../PartDesignTests/TestThickness.py | 20 +++++++++------- 4 files changed, 41 insertions(+), 36 deletions(-) diff --git a/src/Mod/PartDesign/PartDesignTests/TestChamfer.py b/src/Mod/PartDesign/PartDesignTests/TestChamfer.py index 84a1a66dcc..7d88140056 100644 --- a/src/Mod/PartDesign/PartDesignTests/TestChamfer.py +++ b/src/Mod/PartDesign/PartDesignTests/TestChamfer.py @@ -26,7 +26,7 @@ class TestChamfer(unittest.TestCase): def setUp(self): self.Doc = FreeCAD.newDocument("PartDesignTestChamfer") - def testChamfer(self): + def testChamferCubeToOctahedron(self): self.Body = self.Doc.addObject('PartDesign::Body','Body') self.Box = self.Doc.addObject('PartDesign::AdditiveBox','Box') self.Body.addObject(self.Box) @@ -34,15 +34,13 @@ class TestChamfer(unittest.TestCase): self.Box.Width=10.00 self.Box.Height=10.00 self.Doc.recompute() - self.Revolution = self.Doc.addObject("PartDesign::Revolution","Revolution") - self.Revolution.Profile = (self.Box, ["Face6"]) - self.Revolution.ReferenceAxis = (self.Doc.Y_Axis,[""]) - self.Revolution.Angle = 180.0 - self.Revolution.Reversed = 1 - self.Body.addObject(self.Revolution) + self.Chamfer = self.Doc.addObject("PartDesign::Chamfer","Chamfer") + self.Chamfer.Base = (self.Box, ['Face'+str(i+1) for i in range(6)]) + self.Chamfer.Size = 4.999999 + self.Body.addObject(self.Chamfer) self.Doc.recompute() - # depending on if refinement is done we expect 8 or 10 faces - self.assertIn(len(self.Revolution.Shape.Faces), (8, 10)) + self.MajorFaces = [face for face in self.Chamfer.Shape.Faces if face.Area > 1e-3] + self.assertEqual(len(self.MajorFaces), 8) def tearDown(self): #closing doc diff --git a/src/Mod/PartDesign/PartDesignTests/TestDraft.py b/src/Mod/PartDesign/PartDesignTests/TestDraft.py index 2f1209fd74..26f99e9b95 100644 --- a/src/Mod/PartDesign/PartDesignTests/TestDraft.py +++ b/src/Mod/PartDesign/PartDesignTests/TestDraft.py @@ -26,7 +26,7 @@ class TestDraft(unittest.TestCase): def setUp(self): self.Doc = FreeCAD.newDocument("PartDesignTestDraft") - def testDraft(self): + def testSimpleDraft(self): self.Body = self.Doc.addObject('PartDesign::Body','Body') self.Box = self.Doc.addObject('PartDesign::AdditiveBox','Box') self.Body.addObject(self.Box) @@ -34,15 +34,21 @@ class TestDraft(unittest.TestCase): self.Box.Width=10.00 self.Box.Height=10.00 self.Doc.recompute() - self.Revolution = self.Doc.addObject("PartDesign::Revolution","Revolution") - self.Revolution.Profile = (self.Box, ["Face6"]) - self.Revolution.ReferenceAxis = (self.Doc.Y_Axis,[""]) - self.Revolution.Angle = 180.0 - self.Revolution.Reversed = 1 - self.Body.addObject(self.Revolution) + self.Draft = self.Doc.addObject("PartDesign::Draft","Draft") + self.Draft.Base = (self.Box, ["Face1"]) + n1, n2 = self.Box.Shape.Faces[0].Surface.Axis, self.Box.Shape.Faces[1].Surface.Axis + if n1.dot(n2) == 0: + self.Draft.NeutralPlane = (self.Box, ["Face2"]) + else: + self.Draft.NeutralPlane = (self.Box, ["Face3"]) + self.Draft.PullDirection = None + self.Draft.Angle = 45.0 + self.Body.addObject(self.Draft) self.Doc.recompute() - # depending on if refinement is done we expect 8 or 10 faces - self.assertIn(len(self.Revolution.Shape.Faces), (8, 10)) + if round(self.Draft.Shape.Volume, 7) - 500 == 0: + self.Draft.Reversed = 1 + self.Doc.recompute() + self.assertAlmostEqual(self.Draft.Shape.Volume, 1500) def tearDown(self): #closing doc diff --git a/src/Mod/PartDesign/PartDesignTests/TestFillet.py b/src/Mod/PartDesign/PartDesignTests/TestFillet.py index 7b3a5c9a67..ea30010246 100644 --- a/src/Mod/PartDesign/PartDesignTests/TestFillet.py +++ b/src/Mod/PartDesign/PartDesignTests/TestFillet.py @@ -18,6 +18,8 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * # USA * #************************************************************************** +from __future__ import division +from math import pi import unittest import FreeCAD @@ -26,7 +28,7 @@ class TestFillet(unittest.TestCase): def setUp(self): self.Doc = FreeCAD.newDocument("PartDesignTestFillet") - def testRevolveFace(self): + def testFilletCubeToSphere(self): self.Body = self.Doc.addObject('PartDesign::Body','Body') self.Box = self.Doc.addObject('PartDesign::AdditiveBox','Box') self.Body.addObject(self.Box) @@ -34,15 +36,12 @@ class TestFillet(unittest.TestCase): self.Box.Width=10.00 self.Box.Height=10.00 self.Doc.recompute() - self.Revolution = self.Doc.addObject("PartDesign::Revolution","Revolution") - self.Revolution.Profile = (self.Box, ["Face6"]) - self.Revolution.ReferenceAxis = (self.Doc.Y_Axis,[""]) - self.Revolution.Angle = 180.0 - self.Revolution.Reversed = 1 - self.Body.addObject(self.Revolution) + self.Fillet = self.Doc.addObject("PartDesign::Fillet","Fillet") + self.Fillet.Base = (self.Box, ['Face'+str(i+1) for i in range(6)]) + self.Fillet.Radius = 4.999999 + self.Body.addObject(self.Fillet) self.Doc.recompute() - # depending on if refinement is done we expect 8 or 10 faces - self.assertIn(len(self.Revolution.Shape.Faces), (8, 10)) + self.assertAlmostEqual(self.Fillet.Shape.Volume, 4/3 * pi * 5**3, places=3) def tearDown(self): #closing doc diff --git a/src/Mod/PartDesign/PartDesignTests/TestThickness.py b/src/Mod/PartDesign/PartDesignTests/TestThickness.py index af6a4e5cde..d28e3213fb 100644 --- a/src/Mod/PartDesign/PartDesignTests/TestThickness.py +++ b/src/Mod/PartDesign/PartDesignTests/TestThickness.py @@ -26,7 +26,7 @@ class TestThickness(unittest.TestCase): def setUp(self): self.Doc = FreeCAD.newDocument("PartDesignTestThickness") - def testThickness(self): + def testReversedThickness(self): self.Body = self.Doc.addObject('PartDesign::Body','Body') self.Box = self.Doc.addObject('PartDesign::AdditiveBox','Box') self.Body.addObject(self.Box) @@ -34,15 +34,17 @@ class TestThickness(unittest.TestCase): self.Box.Width=10.00 self.Box.Height=10.00 self.Doc.recompute() - self.Revolution = self.Doc.addObject("PartDesign::Revolution","Revolution") - self.Revolution.Profile = (self.Box, ["Face6"]) - self.Revolution.ReferenceAxis = (self.Doc.Y_Axis,[""]) - self.Revolution.Angle = 180.0 - self.Revolution.Reversed = 1 - self.Body.addObject(self.Revolution) + self.Thickness = self.Doc.addObject("PartDesign::Thickness", "Thickness") + self.Thickness.Base = (self.Box, ["Face1"]) + self.Body.addObject(self.Thickness) self.Doc.recompute() - # depending on if refinement is done we expect 8 or 10 faces - self.assertIn(len(self.Revolution.Shape.Faces), (8, 10)) + self.Thickness.Value = 1.0 + self.Thickness.Reversed = 1 + self.Thickness.Mode = 0 + self.Thickness.Join = 0 + self.Thickness.Base = (self.Box, ["Face1"]) + self.Doc.recompute() + self.assertEqual(len(self.Thickness.Shape.Faces), 11) def tearDown(self): #closing doc