Salome HOME
updated copyright message
[modules/shaper.git] / src / SketchPlugin / Test / TestConstraintTangentBSpline.py
index 0937fe247799a1eca086fd13c4d383e2751783b1..4cdda7cbdf1a639507cd5b6fe79c89140a18878d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2019-2020  CEA/DEN, EDF R&D
+# Copyright (C) 2019-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -39,7 +39,7 @@ class TestTangentBSpline(unittest.TestCase):
     self.mySketch = model.addSketch(self.myDocument, model.defaultPlane("XOY"))
     self.myPoles = [GeomAPI_Pnt2d(-10, -30), GeomAPI_Pnt2d(20, -15), GeomAPI_Pnt2d(-10, 0), GeomAPI_Pnt2d(20, 15), GeomAPI_Pnt2d(-10, 30)]
     self.myWeights = [1, 3, 5, 3, 1]
-    self.mySpline = self.mySketch.addSpline(self.myPoles, self.myWeights)
+    self.mySpline = self.mySketch.addSpline(poles = self.myPoles, weights = self.myWeights)
     self.myControlPoles = self.mySpline.controlPoles(auxiliary = [0, 1, 2, 3, 4])
     self.myControlLines = self.mySpline.controlPolygon(auxiliary = [0, 1, 2, 3])
     model.do()
@@ -118,12 +118,12 @@ class TestTangentBSpline(unittest.TestCase):
     self.myDOF += 4
     model.do()
 
-    self.mySketch.setTangent(self.mySpline.result(), aLine.result())
-    self.myNbTangency += 1
-    self.myDOF -= 1
-    model.do()
+    aTangency = self.mySketch.setTangent(self.mySpline.result(), aLine.result())
+    model.end()
 
-    self.assertTangentFeatures(aLine, self.mySpline)
+    self.assertNotEqual(aTangency.feature().error(), "")
+    model.undo()
+    model.begin()
 
   def test_circle_tangent(self):
     """ Test 2. Set tangency between B-spline and a circle
@@ -133,12 +133,12 @@ class TestTangentBSpline(unittest.TestCase):
     self.myDOF += 3
     model.do()
 
-    self.mySketch.setTangent(self.mySpline.result(), aCircle.defaultResult())
-    self.myNbTangency += 1
-    self.myDOF -= 1
-    model.do()
+    aTangency = self.mySketch.setTangent(self.mySpline.result(), aCircle.defaultResult())
+    model.end()
 
-    self.assertTangentFeatures(aCircle, self.mySpline)
+    self.assertNotEqual(aTangency.feature().error(), "")
+    model.undo()
+    model.begin()
 
   def test_arc_tangent(self):
     """ Test 3. Set tangency between B-spline and an arc
@@ -148,12 +148,12 @@ class TestTangentBSpline(unittest.TestCase):
     self.myDOF += 5
     model.do()
 
-    self.mySketch.setTangent(self.mySpline.result(), anArc.defaultResult())
-    self.myNbTangency += 1
-    self.myDOF -= 1
-    model.do()
+    aTangency = self.mySketch.setTangent(self.mySpline.result(), anArc.defaultResult())
+    model.end()
 
-    self.assertTangentFeatures(anArc, self.mySpline)
+    self.assertNotEqual(aTangency.feature().error(), "")
+    model.undo()
+    model.begin()
 
   def test_ellipse_tangent(self):
     """ Test 4. Set tangency between B-spline and an ellipse
@@ -163,12 +163,12 @@ class TestTangentBSpline(unittest.TestCase):
     self.myDOF += 5
     model.do()
 
-    self.mySketch.setTangent(self.mySpline.result(), anEllipse.defaultResult())
-    self.myNbTangency += 1
-    self.myDOF -= 1
-    model.do()
+    aTangency = self.mySketch.setTangent(self.mySpline.result(), anEllipse.defaultResult())
+    model.end()
 
-    self.assertTangentFeatures(anEllipse, self.mySpline)
+    self.assertNotEqual(aTangency.feature().error(), "")
+    model.undo()
+    model.begin()
 
   def test_elliptic_arc_tangent(self):
     """ Test 5. Set tangency between B-spline and an elliptic arc
@@ -178,34 +178,33 @@ class TestTangentBSpline(unittest.TestCase):
     self.myDOF += 7
     model.do()
 
-    self.mySketch.setTangent(self.mySpline.result(), anEllipticArc.defaultResult())
-    self.myNbTangency += 1
-    self.myDOF -= 1
-    model.do()
+    aTangency = self.mySketch.setTangent(self.mySpline.result(), anEllipticArc.defaultResult())
+    model.end()
 
-    self.assertTangentFeatures(anEllipticArc, self.mySpline)
+    self.assertNotEqual(aTangency.feature().error(), "")
+    model.undo()
+    model.begin()
 
   def test_spline_tangent(self):
     """ Test 6. Set tangency between two B-spline curves
     """
-    aSpline = self.mySketch.addSpline([(50, -20), (40, 0), (50, 20)])
+    aSpline = self.mySketch.addSpline(poles = [(50, -20), (40, 0), (50, 20)])
     self.myNbBSplines += 1
     self.myDOF += aSpline.poles().size() * 2
     model.do()
 
-    self.mySketch.setTangent(self.mySpline.result(), aSpline.result())
-    self.myNbTangency += 1
-    self.myDOF -= 1
-    model.do()
+    aTangency = self.mySketch.setTangent(self.mySpline.result(), aSpline.result())
+    model.end()
 
-    #self.assertTangentFeatures(aSpline, self.mySpline)
-    self.myExpectedFailure = True
+    self.assertNotEqual(aTangency.feature().error(), "")
+    model.undo()
+    model.begin()
 
 
   def test_line_tangent_coincident_by_pole(self):
     """ Test 7. Set tangency between B-spline and a line coincident with B-spline start point
     """
-    aLine = self.mySketch.addLine(10, -10, 90, 40)
+    aLine = self.mySketch.addLine(-15, -25, 50, 40)
     self.myNbLines += 1
     self.myDOF += 4
     model.do()
@@ -215,13 +214,12 @@ class TestTangentBSpline(unittest.TestCase):
     self.myDOF -= 1
     model.do()
 
-    self.mySketch.setTangent(self.mySpline.result(), aLine.result())
-    self.myNbTangency += 1
-    self.myDOF -= 1
-    model.do()
+    aTangency = self.mySketch.setTangent(self.mySpline.result(), aLine.result())
+    model.end()
 
-    self.assertPointLineDistance(aLine.startPoint(), self.myControlLines[0])
-    self.assertPointLineDistance(aLine.endPoint(), self.myControlLines[0])
+    self.assertNotEqual(aTangency.feature().error(), "")
+    model.undo()
+    model.begin()
 
   def test_circle_tangent_coincident_by_pole(self):
     """ Test 8. Set tangency between B-spline and a circle coincident with B-spline end point
@@ -236,12 +234,12 @@ class TestTangentBSpline(unittest.TestCase):
     self.myDOF -= 1
     model.do()
 
-    self.mySketch.setTangent(self.mySpline.result(), aCircle.defaultResult())
-    self.myNbTangency += 1
-    self.myDOF -= 1
-    model.do()
+    aTangency = self.mySketch.setTangent(self.mySpline.result(), aCircle.defaultResult())
+    model.end()
 
-    self.assertTangentLineCircle(SketchAPI_Line(self.myControlLines[0]), aCircle)
+    self.assertNotEqual(aTangency.feature().error(), "")
+    model.undo()
+    model.begin()
 
   def test_arc_tangent_coincident_by_pole(self):
     """ Test 9. Set tangency between B-spline and an arc coincident with B-spline end point
@@ -256,12 +254,12 @@ class TestTangentBSpline(unittest.TestCase):
     self.myDOF -= 1
     model.do()
 
-    self.mySketch.setTangent(self.mySpline.result(), anArc.defaultResult())
-    self.myNbTangency += 1
-    self.myDOF -= 1
-    model.do()
+    aTangency = self.mySketch.setTangent(self.mySpline.result(), anArc.defaultResult())
+    model.end()
 
-    self.assertTangentLineCircle(SketchAPI_Line(self.myControlLines[-1]), anArc)
+    self.assertNotEqual(aTangency.feature().error(), "")
+    model.undo()
+    model.begin()
 
   def test_ellipse_tangent_coincident_by_pole(self):
     """ Test 10. Set tangency between B-spline and an ellipse coincident with B-spline start point
@@ -276,12 +274,12 @@ class TestTangentBSpline(unittest.TestCase):
     self.myDOF -= 1
     model.do()
 
-    self.mySketch.setTangent(self.mySpline.result(), anEllipse.defaultResult())
-    self.myNbTangency += 1
-    self.myDOF -= 1
-    model.do()
+    aTangency = self.mySketch.setTangent(self.mySpline.result(), anEllipse.defaultResult())
+    model.end()
 
-    self.assertTangentLineEllipse(SketchAPI_Line(self.myControlLines[0]), anEllipse)
+    self.assertNotEqual(aTangency.feature().error(), "")
+    model.undo()
+    model.begin()
 
   def test_elliptic_arc_tangent_coincident_by_pole(self):
     """ Test 11. Set tangency between B-spline and an elliptic arc coincident with B-spline start point
@@ -296,12 +294,12 @@ class TestTangentBSpline(unittest.TestCase):
     self.myDOF -= 1
     model.do()
 
-    self.mySketch.setTangent(self.mySpline.result(), anEllipticArc.defaultResult())
-    self.myNbTangency += 1
-    self.myDOF -= 1
-    model.do()
+    aTangency = self.mySketch.setTangent(self.mySpline.result(), anEllipticArc.defaultResult())
+    model.end()
 
-    self.assertTangentLineEllipse(SketchAPI_Line(self.myControlLines[0]), anEllipticArc)
+    self.assertNotEqual(aTangency.feature().error(), "")
+    model.undo()
+    model.begin()
 
 
   def test_line_tangent_coincident_by_boundaries(self):
@@ -367,7 +365,7 @@ class TestTangentBSpline(unittest.TestCase):
   def test_spline_tangent_coincident_by_boundaries(self):
     """ Test 15. Set tangency between two B-spline curves coincident with B-spline start point
     """
-    aSpline = self.mySketch.addSpline([(50, -20), (40, 0), (50, 20)])
+    aSpline = self.mySketch.addSpline(poles = [(50, -20), (40, 0), (50, 20)])
     self.myNbBSplines += 1
     self.myDOF += aSpline.poles().size() * 2
     model.do()
@@ -449,7 +447,7 @@ class TestTangentBSpline(unittest.TestCase):
   def test_spline_tangent_coincident_by_aux(self):
     """ Test 19. Set tangency between two B-spline curves coincident with B-spline start point
     """
-    aSpline = self.mySketch.addSpline([(50, -20), (40, 0), (50, 20)])
+    aSpline = self.mySketch.addSpline(poles = [(50, -20), (40, 0), (50, 20)])
     self.myNbBSplines += 1
     self.myDOF += aSpline.poles().size() * 2
     model.do()