Skip to content

Commit 398cd75

Browse files
committed
Add array feature tests
I'm thinking of moving array into its own module. The "model" module is getting a bit full and it'll only grow bigger in the future.
1 parent 83d97d7 commit 398cd75

2 files changed

Lines changed: 277 additions & 0 deletions

File tree

src/bonsai/pytest.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[pytest]
22
markers =
33
aggregate
4+
array
45
attribute
56
boolean
67
boundary
Lines changed: 276 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,276 @@
1+
@array
2+
Feature: Array
3+
4+
Scenario: Add array
5+
Given an empty IFC project
6+
And I load the demo construction library
7+
And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType"
8+
And I add the construction type
9+
When the object "IfcColumn/Column" is selected
10+
And I look at the "Array" panel
11+
And I see "No Array Found"
12+
And I click "ADD"
13+
Then the object "IfcColumn/Column" exists
14+
And I see "Column"
15+
And I see "1 Items"
16+
And I don't see "No Array Found"
17+
And the object "IfcColumn/Column" is at "0,0,0"
18+
19+
Scenario: Enable editing array
20+
Given an empty IFC project
21+
And I load the demo construction library
22+
And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType"
23+
And I add the construction type
24+
And the object "IfcColumn/Column" is selected
25+
And I look at the "Array" panel
26+
And I click "ADD"
27+
When I click "GREASEPENCIL"
28+
Then I see "Count"
29+
And I see "Method"
30+
And I don't see "1 Items"
31+
32+
Scenario: Disable editing array
33+
Given an empty IFC project
34+
And I load the demo construction library
35+
And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType"
36+
And I add the construction type
37+
And the object "IfcColumn/Column" is selected
38+
And I look at the "Array" panel
39+
And I click "ADD"
40+
And I click "GREASEPENCIL"
41+
When I click "CANCEL"
42+
Then I see "1 Items"
43+
And I don't see "Count"
44+
45+
Scenario: Edit array
46+
Given an empty IFC project
47+
And I load the demo construction library
48+
And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType"
49+
And I add the construction type
50+
And the object "IfcColumn/Column" is selected
51+
And I look at the "Array" panel
52+
And I click "ADD"
53+
And I click "GREASEPENCIL"
54+
When I set the "Count" property to "2"
55+
And I click "CHECKMARK"
56+
Then the object "IfcColumn/Column.001" is in the collection "IfcBuildingStorey/My Storey"
57+
And the object "IfcColumn/Column" is at "0,0,0"
58+
And the object "IfcColumn/Column.001" is at "0,0,0"
59+
And the object "IfcColumn/Column" dimensions are "0.5,0.6,3"
60+
61+
Scenario: Edit array - offset method
62+
Given an empty IFC project
63+
And I load the demo construction library
64+
And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType"
65+
And I add the construction type
66+
And the object "IfcColumn/Column" is selected
67+
And I look at the "Array" panel
68+
And I click "ADD"
69+
And I click "GREASEPENCIL"
70+
When I set the "Count" property to "3"
71+
And I set the "Method" property to "Offset"
72+
And I set the "X" property to "1"
73+
And I click "CHECKMARK"
74+
Then the object "IfcColumn/Column.001" is in the collection "IfcBuildingStorey/My Storey"
75+
And the object "IfcColumn/Column.002" is in the collection "IfcBuildingStorey/My Storey"
76+
And the object "IfcColumn/Column" is at "0,0,0"
77+
And the object "IfcColumn/Column.001" is at "1,0,0"
78+
And the object "IfcColumn/Column.002" is at "2,0,0"
79+
And the object "IfcColumn/Column" dimensions are "0.5,0.6,3"
80+
And the object "IfcColumn/Column.001" dimensions are "0.5,0.6,3"
81+
And the object "IfcColumn/Column.002" dimensions are "0.5,0.6,3"
82+
83+
Scenario: Edit array - distribute method
84+
Given an empty IFC project
85+
And I load the demo construction library
86+
And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType"
87+
And I add the construction type
88+
And the object "IfcColumn/Column" is selected
89+
And I look at the "Array" panel
90+
And I click "ADD"
91+
And I click "GREASEPENCIL"
92+
When I set the "Count" property to "3"
93+
And I set the "Method" property to "Distribute"
94+
And I set the "X" property to "2"
95+
And I click "CHECKMARK"
96+
Then the object "IfcColumn/Column.001" is in the collection "IfcBuildingStorey/My Storey"
97+
And the object "IfcColumn/Column.002" is in the collection "IfcBuildingStorey/My Storey"
98+
And the object "IfcColumn/Column" is at "0,0,0"
99+
And the object "IfcColumn/Column.001" is at "1,0,0"
100+
And the object "IfcColumn/Column.002" is at "2,0,0"
101+
And the object "IfcColumn/Column" dimensions are "0.5,0.6,3"
102+
And the object "IfcColumn/Column.001" dimensions are "0.5,0.6,3"
103+
And the object "IfcColumn/Column.002" dimensions are "0.5,0.6,3"
104+
105+
Scenario: Edit array - local space
106+
Given an empty IFC project
107+
And I load the demo construction library
108+
And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType"
109+
And I add the construction type
110+
And the object "IfcColumn/Column" is rotated by "0,0,90" deg
111+
And the object "IfcColumn/Column" is selected
112+
And I look at the "Array" panel
113+
And I click "ADD"
114+
And I click "GREASEPENCIL"
115+
When I set the "Count" property to "2"
116+
And I set the "Method" property to "Offset"
117+
And I set the "Use Local Space" property to "TRUE"
118+
And I set the "X" property to "1"
119+
And I click "CHECKMARK"
120+
Then the object "IfcColumn/Column" is at "0,0,0"
121+
And the object "IfcColumn/Column.001" is at "0,1,0"
122+
123+
Scenario: Edit array - world space
124+
Given an empty IFC project
125+
And I load the demo construction library
126+
And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType"
127+
And I add the construction type
128+
And the object "IfcColumn/Column" is rotated by "0,0,90" deg
129+
And the object "IfcColumn/Column" is selected
130+
And I look at the "Array" panel
131+
And I click "ADD"
132+
And I click "GREASEPENCIL"
133+
When I set the "Count" property to "2"
134+
And I set the "Method" property to "Offset"
135+
And I set the "Use Local Space" property to "FALSE"
136+
And I set the "X" property to "1"
137+
And I click "CHECKMARK"
138+
Then the object "IfcColumn/Column" is at "0,0,0"
139+
And the object "IfcColumn/Column.001" is at "1,0,0"
140+
141+
Scenario: Edit array - decrease count
142+
Given an empty IFC project
143+
And I load the demo construction library
144+
And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType"
145+
And I add the construction type
146+
And the object "IfcColumn/Column" is selected
147+
And I look at the "Array" panel
148+
And I click "ADD"
149+
And I click "GREASEPENCIL"
150+
When I set the "Count" property to "3"
151+
And I click "CHECKMARK"
152+
And I click "GREASEPENCIL"
153+
When I set the "Count" property to "2"
154+
And I click "CHECKMARK"
155+
Then the object "IfcColumn/Column.001" exists
156+
And the object "IfcColumn/Column.002" does not exist
157+
158+
Scenario: Edit array - multiple arrays
159+
Given an empty IFC project
160+
And I load the demo construction library
161+
And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType"
162+
And I add the construction type
163+
And the object "IfcColumn/Column" is selected
164+
And I look at the "Array" panel
165+
And I click "ADD"
166+
And I click "GREASEPENCIL"
167+
When I set the "Count" property to "3"
168+
And I set the "Method" property to "Offset"
169+
And I set the "X" property to "1"
170+
And I click "CHECKMARK"
171+
And I see "3 Items"
172+
And I click "ADD"
173+
And I click the "GREASEPENCIL" after the text "1 Items (Offset)"
174+
And I set the "Count" property to "2"
175+
And I set the "Method" property to "Offset"
176+
And I set the "Y" property to "1"
177+
And I click the "CHECKMARK" after the text "Count"
178+
Then I see "3 Items"
179+
And I see "2 Items"
180+
Then the object "IfcColumn/Column.001" is in the collection "IfcBuildingStorey/My Storey"
181+
And the object "IfcColumn/Column.002" is in the collection "IfcBuildingStorey/My Storey"
182+
And the object "IfcColumn/Column.003" is in the collection "IfcBuildingStorey/My Storey"
183+
And the object "IfcColumn/Column.004" is in the collection "IfcBuildingStorey/My Storey"
184+
And the object "IfcColumn/Column.005" is in the collection "IfcBuildingStorey/My Storey"
185+
And the object "IfcColumn/Column" is at "0,0,0"
186+
And the object "IfcColumn/Column.001" is at "1,0,0"
187+
And the object "IfcColumn/Column.002" is at "2,0,0"
188+
And the object "IfcColumn/Column.003" is at "0,1,0"
189+
And the object "IfcColumn/Column.004" is at "1,1,0"
190+
And the object "IfcColumn/Column.005" is at "2,1,0"
191+
And the object "IfcColumn/Column" dimensions are "0.5,0.6,3"
192+
And the object "IfcColumn/Column.001" dimensions are "0.5,0.6,3"
193+
And the object "IfcColumn/Column.002" dimensions are "0.5,0.6,3"
194+
And the object "IfcColumn/Column.003" dimensions are "0.5,0.6,3"
195+
And the object "IfcColumn/Column.004" dimensions are "0.5,0.6,3"
196+
And the object "IfcColumn/Column.005" dimensions are "0.5,0.6,3"
197+
198+
Scenario: Remove array
199+
Given an empty IFC project
200+
And I load the demo construction library
201+
And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType"
202+
And I add the construction type
203+
And the object "IfcColumn/Column" is selected
204+
And I look at the "Array" panel
205+
And I click "ADD"
206+
And I click "GREASEPENCIL"
207+
And I set the "Count" property to "2"
208+
And I set the "Method" property to "Offset"
209+
And I set the "X" property to "1"
210+
And I click "CHECKMARK"
211+
When I click "X"
212+
Then the object "IfcColumn/Column" exists
213+
And the object "IfcColumn/Column.001" does not exist
214+
215+
Scenario: Regenerate array
216+
Given an empty IFC project
217+
And I load the demo construction library
218+
And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType"
219+
And I add the construction type
220+
And the object "IfcColumn/Column" is selected
221+
And I look at the "Array" panel
222+
And I click "ADD"
223+
And I click "GREASEPENCIL"
224+
And I set the "Count" property to "2"
225+
And I click "CHECKMARK"
226+
When I click "FILE_REFRESH"
227+
Then the object "IfcColumn/Column" exists
228+
And the object "IfcColumn/Column.001" exists
229+
230+
Scenario: Apply array
231+
Given an empty IFC project
232+
And I load the demo construction library
233+
And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType"
234+
And I add the construction type
235+
And the object "IfcColumn/Column" is selected
236+
And I look at the "Array" panel
237+
And I click "ADD"
238+
And I click "GREASEPENCIL"
239+
And I set the "Count" property to "2"
240+
And I click "CHECKMARK"
241+
When I click "CHECKMARK"
242+
Then the object "IfcColumn/Column" exists
243+
And the object "IfcColumn/Column.001" exists
244+
And I see "No Array Found"
245+
246+
Scenario: Select array parent
247+
Given an empty IFC project
248+
And I load the demo construction library
249+
And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType"
250+
And I add the construction type
251+
And the object "IfcColumn/Column" is selected
252+
And I look at the "Array" panel
253+
And I click "ADD"
254+
And I click "GREASEPENCIL"
255+
And I set the "Count" property to "2"
256+
And I click "CHECKMARK"
257+
When the object "IfcColumn/Column.001" is selected
258+
And I click "OBJECT_DATA"
259+
Then the object "IfcColumn/Column" is selected
260+
And the object "IfcColumn/Column.001" is not selected
261+
262+
Scenario: Select all array objects
263+
Given an empty IFC project
264+
And I load the demo construction library
265+
And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType"
266+
And I add the construction type
267+
And the object "IfcColumn/Column" is selected
268+
And I look at the "Array" panel
269+
And I click "ADD"
270+
And I click "GREASEPENCIL"
271+
And I set the "Count" property to "2"
272+
And I click "CHECKMARK"
273+
When the object "IfcColumn/Column.001" is selected
274+
And I click "RESTRICT_SELECT_OFF"
275+
Then the object "IfcColumn/Column" is selected
276+
And the object "IfcColumn/Column.001" is selected

0 commit comments

Comments
 (0)