Salome HOME
avoid code duplication, move common tests to tests.py
[modules/shaper.git] / src / FeaturesPlugin / Test / TestBooleanFuse_Fuzzy.py
1 # Copyright (C) 2014-2022  CEA/DEN, EDF R&D
2 #
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
7 #
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 # Lesser General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19
20 from salome.shaper import model
21 from GeomAPI import GeomAPI_Shape
22
23
24 model.begin()
25 partSet = model.moduleDocument()
26 Part_1 = model.addPart(partSet)
27 Part_1_doc = Part_1.document()
28 Param_fuzzy = model.addParameter(Part_1_doc, "fuzzy", '1e-07')
29
30 Point_2 = model.addPoint(Part_1_doc, 10, 0, 0)
31 Point_3 = model.addPoint(Part_1_doc, 20, 10.0001, 10.0001)
32
33 ### Create Box
34 Box_1 = model.addBox(Part_1_doc, 10, 10, 10)
35
36 ### Create Box
37 Box_2 = model.addBox(Part_1_doc, model.selection("VERTEX", "Point_1"), model.selection("VERTEX", "Point_2"))
38
39 ### Create Fuse
40 Fuse_1 = model.addFuse(Part_1_doc, [model.selection("SOLID", "Box_1_1"), model.selection("SOLID", "Box_2_1")], fuzzyParam = "fuzzy", keepSubResults = True)
41 model.do()
42
43 model.testNbResults(Fuse_1, 1)
44 model.testNbSubResults(Fuse_1, [0])
45 model.testNbUniqueSubShapes(Fuse_1, GeomAPI_Shape.SOLID, [1])
46 model.testNbUniqueSubShapes(Fuse_1, GeomAPI_Shape.FACE, [11])
47 model.testNbUniqueSubShapes(Fuse_1, GeomAPI_Shape.EDGE, [24])
48 model.testNbUniqueSubShapes(Fuse_1, GeomAPI_Shape.VERTEX, [15])
49 model.testResultsVolumes(Fuse_1, [2000.02000010])
50
51 ### Set a higher fuzzy value
52 Param_fuzzy.setValue(1.e-4)
53 model.do()
54
55 model.end()
56
57 model.testNbResults(Fuse_1, 1)
58 model.testNbSubResults(Fuse_1, [0])
59 model.testNbUniqueSubShapes(Fuse_1, GeomAPI_Shape.SOLID, [1])
60 model.testNbUniqueSubShapes(Fuse_1, GeomAPI_Shape.FACE, [10])
61 model.testNbUniqueSubShapes(Fuse_1, GeomAPI_Shape.EDGE, [20])
62 model.testNbUniqueSubShapes(Fuse_1, GeomAPI_Shape.VERTEX, [12])
63 model.testResultsVolumes(Fuse_1, [2000.02166677])