part: bspline: tests

This commit is contained in:
looooo 2017-02-18 09:54:11 +01:00 committed by wmayer
parent 978978f7dd
commit 2b35bb3ae3

View File

@ -20,6 +20,7 @@
#**************************************************************************
import FreeCAD, os, sys, unittest, Part
import copy
App = FreeCAD
#---------------------------------------------------------------------------
@ -28,15 +29,63 @@ App = FreeCAD
class PartTestCases(unittest.TestCase):
def setUp(self):
self.Doc = FreeCAD.newDocument("PartTest")
def setUp(self):
self.Doc = FreeCAD.newDocument("PartTest")
def testBoxCase(self):
self.Box = App.ActiveDocument.addObject("Part::Box","Box")
self.Doc.recompute()
self.failUnless(len(self.Box.Shape.Faces)==6)
def tearDown(self):
#closing doc
FreeCAD.closeDocument("PartTest")
#print ("omit clos document for debuging")
def testBoxCase(self):
self.Box = App.ActiveDocument.addObject("Part::Box","Box")
self.Doc.recompute()
self.failUnless(len(self.Box.Shape.Faces)==6)
def tearDown(self):
#closing doc
FreeCAD.closeDocument("PartTest")
#print ("omit clos document for debuging")
class PartTestBSplineCurve(unittest.TestCase):
def setUp(self):
self.Doc = FreeCAD.newDocument("PartTest")
poles = [[0, 0, 0], [1, 1, 0], [2, 0, 0]]
self.spline = Part.BSplineCurve()
self.spline.buildFromPoles(poles)
poles = [[0, 0, 0], [1, 1, 0], [2, 0, 0], [1, -1, 0]]
self.nurbs = Part.BSplineCurve()
self.nurbs.buildFromPolesMultsKnots(poles, (3, 1, 3),(0, 0.5, 1), False, 2)
def testProperties(self):
self.assertEqual(self.spline.Continuity, 'CN')
self.assertEqual(self.spline.Degree, 2)
self.assertEqual(self.spline.EndPoint, App.Vector(2, 0, 0))
self.assertEqual(self.spline.FirstParameter, 0.0)
self.assertEqual(self.spline.FirstUKnotIndex, 1)
self.assertEqual(self.spline.KnotSequence, [0.0, 0.0, 0.0, 1.0, 1.0, 1.0])
self.assertEqual(self.spline.LastParameter, 1.0)
self.assertEqual(self.spline.LastUKnotIndex, 2)
max_degree = self.spline.MaxDegree
self.assertEqual(self.spline.NbKnots, 2)
self.assertEqual(self.spline.NbPoles, 3)
self.assertEqual(self.spline.StartPoint, App.Vector(0.0, 0.0, 0.0))
def testGetters(self):
'''only check if the function doesn't crash'''
self.spline.getKnot(1)
self.spline.getKnots()
self.spline.getMultiplicities()
self.spline.getMultiplicity(1)
self.spline.getPole(1)
self.spline.getPoles()
self.spline.getPolesAndWeights()
self.spline.getResolution(0.5)
self.spline.getWeight(1)
self.spline.getWeights()
def testSetters(self):
spline = copy.deepcopy(self.spline)
spline.setKnot(1, 0.1)
spline.setPeriodic()
spline.setNotPeriodic()
# spline.setKnots()
# spline.setOrigin(2) # not working?
self.spline.setPole(1, App.Vector([1, 0, 0])) # first parameter 0 gives occ error