Salome HOME
[bos #39942] EDF 25230 - New problem with XYZtoUV
[modules/geom.git] / test / test_conformity.py
1 # Check shape applicability for Boolean Operations
2
3 import salome
4 salome.salome_init_without_session()
5 import GEOM
6 from salome.geom import geomBuilder
7 geompy = geomBuilder.New()
8
9 from inspect import getfile
10 from os.path import abspath, dirname, join
11
12 data_dir = abspath(join(dirname(getfile(lambda: None)), 'data'))
13 shape = geompy.ImportBREP(join(data_dir, 'test_twisted_face.brep'))
14
15 tol = geompy.Tolerance(shape)
16
17 # perform all checks
18 check = geompy.CheckConformity(shape)
19 assert(not check.isValid())
20 assert(len(check.smallEdges()) == 4)
21 assert(len(check.selfIntersected2D()) == 2)
22 assert(len(check.interferingSubshapes()) == 6)
23 for p in check.interferingSubshapes():
24     assert(geomBuilder.EnumToLong(p.first.GetShapeType()) == geompy.ShapeType["VERTEX"] and
25            geomBuilder.EnumToLong(p.second.GetShapeType()) == geompy.ShapeType["VERTEX"])
26 assert(len(check.distantShapes()) == 2)
27 for p in check.distantShapes():
28     assert(geomBuilder.EnumToLong(p.first.GetShapeType()) == geompy.ShapeType["EDGE"] and
29            geomBuilder.EnumToLong(p.second.GetShapeType()) == geompy.ShapeType["FACE"])
30 assert(len(check.distantShapes(tolerance = 300.0)) == 1)
31 assert(len(check.distantShapes(tolerance = 400.0)) == 0)
32
33 newTol = check.updateTolerance()
34 assert(newTol < max(tol))