X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=test%2Ftest_conformity.py;fp=test%2Ftest_conformity.py;h=6c5e7b08cc10d01d079305286d35e675ba3a4703;hb=f190cc9ae627a8bd91983609a5b008fbdabad5d1;hp=0000000000000000000000000000000000000000;hpb=89b8ea7bd712a14894636057019750c709de8970;p=modules%2Fgeom.git diff --git a/test/test_conformity.py b/test/test_conformity.py new file mode 100644 index 000000000..6c5e7b08c --- /dev/null +++ b/test/test_conformity.py @@ -0,0 +1,34 @@ +# Check shape applicability for Boolean Operations + +import salome +salome.salome_init_without_session() +import GEOM +from salome.geom import geomBuilder +geompy = geomBuilder.New() + +from inspect import getfile +from os.path import abspath, dirname, join + +data_dir = abspath(join(dirname(getfile(lambda: None)), 'data')) +shape = geompy.ImportBREP(join(data_dir, 'test_twisted_face.brep')) + +tol = geompy.Tolerance(shape) + +# perform all checks +check = geompy.CheckConformity(shape) +assert(not check.isValid()) +assert(len(check.smallEdges()) == 4) +assert(len(check.selfIntersected2D()) == 2) +assert(len(check.interferingSubshapes()) == 6) +for p in check.interferingSubshapes(): + assert(geomBuilder.EnumToLong(p.first.GetShapeType()) == geompy.ShapeType["VERTEX"] and + geomBuilder.EnumToLong(p.second.GetShapeType()) == geompy.ShapeType["VERTEX"]) +assert(len(check.distantShapes()) == 2) +for p in check.distantShapes(): + assert(geomBuilder.EnumToLong(p.first.GetShapeType()) == geompy.ShapeType["EDGE"] and + geomBuilder.EnumToLong(p.second.GetShapeType()) == geompy.ShapeType["FACE"]) +assert(len(check.distantShapes(tolerance = 300.0)) == 1) +assert(len(check.distantShapes(tolerance = 400.0)) == 0) + +newTol = check.updateTolerance() +assert(newTol < max(tol))