Salome HOME
updated copyright message
[modules/shaper.git] / src / SketchPlugin / Test / TestRectangle.py
index aafdd9c1c8fef82f71c803856ca8e4609a08d94c..56cf14ff46b3f3860a26af55b5e3a073d2574897 100644 (file)
@@ -1,11 +1,32 @@
+# Copyright (C) 2014-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
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
 """
     TestRectangle.py
-    Unit test of SketchPlugin_Ractangle class
+    Unit test of SketchPlugin_Rectangle class
 
 """
 from GeomDataAPI import *
 from ModelAPI import *
 import math
+from salome.shaper import model
+
 #=========================================================================
 # Initialization of the test
 #=========================================================================
@@ -49,6 +70,7 @@ aSession.finishOperation()
 #=========================================================================
 aSession.startOperation()
 aRectangle = aSketchFeature.addFeature("SketchRectangle")
+aRectangle.string("RectangleType").setValue("RectangleTypeByCorners")
 aStartCorner = geomDataAPI_Point2D(aRectangle.attribute("RectStartPoint"))
 aEndCorner = geomDataAPI_Point2D(aRectangle.attribute("RectEndPoint"))
 aStartCorner.setValue(10., 10.)
@@ -66,25 +88,34 @@ for i in range (0, aNbSubs):
         assert (isHorizontal(aLastLine) or isVertical(aLastLine))
         aNbLines = aNbLines + 1
 assert (aNbLines == 4)
+assert (model.dof(aSketchFeature) == 5)
 #=========================================================================
 # Move one of lines
 #=========================================================================
 aSession.startOperation()
 aLineEnd = geomDataAPI_Point2D(aLastLine.attribute("EndPoint"))
-aLineEnd.setValue(50., 50.)
+aLineEnd.setValue(41., 30.)
 aSession.finishOperation()
 #=========================================================================
 # Check the lines of rectangle are parallel to the axes
 #=========================================================================
-#aNbSubs = aSketchFeature.numberOfSubs()
-#aNbLines = 0
-#for i in range (0, aNbSubs):
-#    aFeature = objectToFeature(aSketchFeature.subFeature(i))
-#    if aFeature.getKind() == "SketchLine":
-#        aLastLine = aFeature
-#        assert (isHorizontal(aLastLine) or isVertical(aLastLine))
-#        aNbLines = aNbLines + 1
-#assert (aNbLines == 4)
+aNbSubs = aSketchFeature.numberOfSubs()
+aNbLines = 0
+tolerance = 1.e-5
+valref = [28.47721, 1.3352780]
+for i in range (0, aNbSubs):
+    aFeature = objectToFeature(aSketchFeature.subFeature(i))
+    if aFeature.getKind() == "SketchLine":
+        aLastLine = aFeature
+        #print (aLastLine.lastResult().shape().edge().length())
+        #print (valref[i%2])
+        #print (abs(aLastLine.lastResult().shape().edge().length()-valref[i%2]))
+        assert(abs(aLastLine.lastResult().shape().edge().length()-valref[i%2]) <= tolerance)
+        aNbLines = aNbLines + 1
+assert (aNbLines == 4)
+assert (model.dof(aSketchFeature) == 5)
 #=========================================================================
 # End of test
 #=========================================================================
+
+assert(model.checkPythonDump())