Salome HOME
Merge branch 'master' into cgt/devCEA
[modules/shaper.git] / test.API / SHAPER / Transformations / TestRotation.py
1 """
2 Test case for Rotation feature. 
3 Written on High API.
4 """
5 from salome.shaper import model
6
7 model.begin()
8 partSet = model.moduleDocument()
9 Part_1 = model.addPart(partSet)
10 Part_1_doc = Part_1.document()
11
12 # Create Boxes
13 Box_1 = model.addBox(Part_1_doc, 10, 10, 10)
14 Box_2 = model.addBox(Part_1_doc, 10, 10, 10)
15 Box_3 = model.addBox(Part_1_doc, 10, 10, 10)
16 Box_4 = model.addBox(Part_1_doc, 10, 10, 10)
17 Box_5 = model.addBox(Part_1_doc, 10, 10, 10)
18 Box_6 = model.addBox(Part_1_doc, 10, 10, 10)
19 Box_7 = model.addBox(Part_1_doc, 10, 10, 10)
20 Box_8 = model.addBox(Part_1_doc, 10, 10, 10)
21 Box_9 = model.addBox(Part_1_doc, 10, 10, 10)
22 Box_10 = model.addBox(Part_1_doc, 10, 10, 10)
23 Box_11 = model.addBox(Part_1_doc, 10, 10, 10)
24 Box_12 = model.addBox(Part_1_doc, 10, 10, 10)
25 Box_13 = model.addBox(Part_1_doc, 10, 10, 10)
26 Box_14 = model.addBox(Part_1_doc, 10, 10, 10)
27 Box_15 = model.addBox(Part_1_doc, 10, 10, 10)
28
29 # Create Points
30 Point_1 = model.addPoint(Part_1_doc, 20, 0, 0)
31 Point_2 = model.addPoint(Part_1_doc, 20, 20, 0)
32 Point_3 = model.addPoint(Part_1_doc, -10, 0, 0)
33
34 # Create Parts
35 Part_2 = model.addPart(partSet)
36 Part_2_doc = Part_2.document()
37 Box_16 = model.addBox(Part_2_doc, 10, 10, 10)
38 Cylinder_1 = model.addCylinder(Part_2_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 5, 10)
39
40 Part_3 = model.addPart(partSet)
41 Part_3_doc = Part_3.document()
42 Box_17 = model.addBox(Part_3_doc, 10, 10, 10)
43 Cylinder_1 = model.addCylinder(Part_3_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 5, 10)
44 Point_4 = model.addPoint(partSet, -10, 0, 0)
45 Point_5 = model.addPoint(partSet, 20, 20, 0)
46
47 model.do()
48
49 # Create Rotations
50 Rotation_1 = model.addRotation(Part_1_doc, [model.selection("SOLID", "Box_1_1")], model.selection("EDGE", "PartSet/OZ"), 45)
51 Rotation_2 = model.addRotation(Part_1_doc, [model.selection("SOLID", "Box_2_1")], model.selection("EDGE", "PartSet/OZ"), 0)
52 Rotation_3 = model.addRotation(Part_1_doc, [model.selection("SOLID", "Box_3_1")], model.selection("EDGE", "PartSet/OZ"), 360)
53 Rotation_4 = model.addRotation(Part_1_doc, [model.selection("SOLID", "Box_4_1")], model.selection("EDGE", "PartSet/OZ"), -360)
54 Rotation_5 = model.addRotation(Part_1_doc, [model.selection("SOLID", "Box_5_1")], model.selection("EDGE", "PartSet/OZ"), 450)
55 Rotation_6 = model.addRotation(Part_1_doc, [model.selection("SOLID", "Box_6_1")], model.selection("EDGE", "PartSet/OZ"), -450)
56 Rotation_7 = model.addRotation(Part_1_doc, [model.selection("SOLID", "Box_7_1")], model.selection("EDGE", "InvalidName"), 180)
57
58 Rotation_9 = model.addRotation(Part_1_doc, [model.selection("SOLID", "Box_8_1")], model.selection("VERTEX", "PartSet/Origin"), model.selection("VERTEX", "Point_1"), model.selection("VERTEX", "Point_2"))
59 Rotation_10 = model.addRotation(Part_1_doc, [model.selection("SOLID", "Box_9_1")], model.selection("VERTEX", "Point_3"), model.selection("VERTEX", "Point_1"), model.selection("VERTEX", "Point_2"))
60 Rotation_11 = model.addRotation(Part_1_doc, [model.selection("SOLID", "Box_10_1")], model.selection("VERTEX", "Point_3"), model.selection("VERTEX", "Point_1"), model.selection("VERTEX", "Point_1"))
61 Rotation_12 = model.addRotation(Part_1_doc, [model.selection("SOLID", "Box_11_1")], model.selection("VERTEX", "Point_3"), model.selection("VERTEX", "Point_3"), model.selection("VERTEX", "Point_1"))
62 Rotation_13 = model.addRotation(Part_1_doc, [model.selection("SOLID", "Box_12_1")], model.selection("VERTEX", "Point_3"), model.selection("VERTEX", "Point_1"), model.selection("VERTEX", "Point_3"))
63 Rotation_14 = model.addRotation(Part_1_doc, [model.selection("SOLID", "Box_13_1")], model.selection("VERTEX", "PartSet/Origin"), model.selection("VERTEX", "Point_1"), model.selection("VERTEX", "InvalidName"))
64 Rotation_15 = model.addRotation(Part_1_doc, [model.selection("SOLID", "Box_14_1")], model.selection("VERTEX", "InvalidName"), model.selection("VERTEX", "Point_3"), model.selection("VERTEX", "Point_2"))
65 Rotation_16 = model.addRotation(Part_1_doc, [model.selection("SOLID", "Box_15_1")], model.selection("VERTEX", "PartSet/Origin"), model.selection("VERTEX", "InvalidName"), model.selection("VERTEX", "Point_1"))
66
67 Rotation_18 = model.addRotation(partSet, [model.selection("COMPOUND", "Part_2/")], model.selection("EDGE", "OY"), 90)
68 Rotation_19 = model.addRotation(partSet, [model.selection("COMPOUND", "Part_3/")], model.selection("VERTEX", "Origin"), model.selection("VERTEX", "Point_2"), model.selection("VERTEX", "Point_3"))
69
70 model.do()
71 model.end()
72
73 # Checks
74 from GeomAPI import GeomAPI_Shape
75
76 model.testNbResults(Rotation_1, 1)
77 model.testNbSubResults(Rotation_1, [0])
78 model.testNbSubShapes(Rotation_1, GeomAPI_Shape.SOLID, [1])
79 model.testNbSubShapes(Rotation_1, GeomAPI_Shape.FACE, [6])
80 model.testHaveNamingFaces(Rotation_1, model, Part_1_doc)
81
82 model.testNbResults(Rotation_2, 1)
83 model.testNbSubResults(Rotation_2, [0])
84 model.testNbSubShapes(Rotation_2, GeomAPI_Shape.SOLID, [1])
85 model.testNbSubShapes(Rotation_2, GeomAPI_Shape.FACE, [6])
86 model.testHaveNamingFaces(Rotation_2, model, Part_1_doc)
87
88 model.testNbResults(Rotation_3, 1)
89 model.testNbSubResults(Rotation_3, [0])
90 model.testNbSubShapes(Rotation_3, GeomAPI_Shape.SOLID, [1])
91 model.testNbSubShapes(Rotation_3, GeomAPI_Shape.FACE, [6])
92 model.testHaveNamingFaces(Rotation_3, model, Part_1_doc)
93
94 model.testNbResults(Rotation_4, 1)
95 model.testNbSubResults(Rotation_4, [0])
96 model.testNbSubShapes(Rotation_4, GeomAPI_Shape.SOLID, [1])
97 model.testNbSubShapes(Rotation_4, GeomAPI_Shape.FACE, [6])
98 model.testHaveNamingFaces(Rotation_4, model, Part_1_doc)
99
100 model.testNbResults(Rotation_9, 1)
101 model.testNbSubResults(Rotation_9, [0])
102 model.testNbSubShapes(Rotation_9, GeomAPI_Shape.SOLID, [1])
103 model.testNbSubShapes(Rotation_9, GeomAPI_Shape.FACE, [6])
104 model.testHaveNamingFaces(Rotation_9, model, Part_1_doc)
105
106 model.testNbResults(Rotation_10, 1)
107 model.testNbSubResults(Rotation_10, [0])
108 model.testNbSubShapes(Rotation_10, GeomAPI_Shape.SOLID, [1])
109 model.testNbSubShapes(Rotation_10, GeomAPI_Shape.FACE, [6])
110 model.testHaveNamingFaces(Rotation_10, model, Part_1_doc)
111
112 model.testNbResults(Rotation_18, 1)
113 model.testNbSubResults(Rotation_18, [0])
114
115 model.testNbResults(Rotation_19, 1)
116 model.testNbSubResults(Rotation_19, [0])
117
118
119 model.testNbResults(Rotation_5, 0)
120 assert(Rotation_5.feature().error() == 'Rotation builder :: angle greater than 360 degrees.')
121
122 model.testNbResults(Rotation_6, 0)
123 assert(Rotation_6.feature().error() == 'Rotation builder :: angle smaller than -360 degrees.')
124
125 model.testNbResults(Rotation_7, 0)
126 assert(Rotation_7.feature().error() == 'Attribute "axis_object" is not initialized.')
127
128 model.testNbResults(Rotation_11, 0)
129 assert(Rotation_11.feature().error() == "The feature uses equal shapes.")
130
131 model.testNbResults(Rotation_12, 0)
132 assert(Rotation_12.feature().error() == "The feature uses equal shapes.")
133
134 model.testNbResults(Rotation_13, 0)
135 assert(Rotation_13.feature().error() == "The feature uses equal shapes.")
136
137 model.testNbResults(Rotation_14, 0)
138 assert(Rotation_14.feature().error() == 'Attribute "end_point" is not initialized.')
139
140 model.testNbResults(Rotation_15, 0)
141 assert(Rotation_15.feature().error() == 'Attribute "center_point" is not initialized.')
142
143 model.testNbResults(Rotation_16, 0)
144 assert(Rotation_16.feature().error() == 'Attribute "start_point" is not initialized.')
145
146
147
148
149 #Rotation_8 = model.addRotation(Part_1_doc, [model.selection("SOLID", "InvalidName")], model.selection("EDGE", "PartSet/OZ"), 180)
150 #Rotation_17 = model.addRotation(Part_1_doc, [model.selection("SOLID", "InvalidName")], model.selection("VERTEX", "PartSet/Origin"), model.selection("VERTEX", "Point_3"), model.selection("VERTEX", "Point_2"))
151
152 #model.testNbResults(Rotation_8, 0)
153 #assert(Rotation_8.feature().error() == 'Attribute "main_object" is not initialized.')
154
155 #model.testNbResults(Rotation_17, 0)
156 #assert(Rotation_17.feature().error() == 'Attribute "main_object" is not initialized.')