+# 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
#=========================================================================
#=========================================================================
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.)
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
+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
- assert (isHorizontal(aLastLine) or isVertical(aLastLine))
+ #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())