@@ -91,11 +91,15 @@ def testValue(self, test):
9191 test .assertEqual (repr (self .vector_text_3entries ),
9292 repr (["v1" , "v2" , "v3" ]))
9393
94+ def create_scene (rootName = "root" ):
95+ root = Sofa .Core .Node (rootName )
96+ root .addObject ("RequiredPlugin" , name = "SofaBaseMechanics" )
97+ return root
9498
9599class Test (unittest .TestCase ):
96100
97101 def test_getattr (self ):
98- root = Sofa . Core . Node ("root" )
102+ root = create_scene ("root" )
99103 c = root .addObject ("MechanicalObject" , name = "c" )
100104 self .assertEqual (str (type (c .position )), "<class 'Sofa.Core.DataContainer'>" )
101105 c .addData ("d1" , type = "string" , value = "coucou" )
@@ -108,27 +112,27 @@ def test_getattr(self):
108112 self .assertEqual (str (type (c .bbox )), "<class 'Sofa.Types.BoundingBox'>" )
109113
110114 def test_typeName (self ):
111- root = Sofa . Core . Node ("rootNode" )
115+ root = create_scene ("rootNode" )
112116 c = root .addObject ("MechanicalObject" , name = "t" , position = [
113117 [0 , 0 , 0 ], [1 , 1 , 1 ], [2 , 2 , 2 ]])
114118 self .assertEqual (c .position .typeName (), "vector<Vec3d>" )
115119 self .assertEqual (c .showColor .typeName (), "RGBAColor" )
116120
117121 # @unittest.skip # no reason needed
118122 def test_ValidDataAccess (self ):
119- root = Sofa . Core . Node ("rootNode" )
123+ root = create_scene ("rootNode" )
120124 c = root .addObject ("MechanicalObject" , name = "t" , position = [
121125 [0 , 0 , 0 ], [1 , 1 , 1 ], [2 , 2 , 2 ]])
122126 self .assertTrue (c .position is not None )
123127
124128 # @unittest.skip # no reason needed
125129 def test_InvalidDataAccess (self ):
126- root = Sofa . Core . Node ("rootNode" )
130+ root = create_scene ("rootNode" )
127131 self .assertRaises (AttributeError , getattr , root , "invalidData" )
128132
129133 # @unittest.skip # no reason needed
130134 def test_DataAsArray2D (self ):
131- root = Sofa . Core . Node ("rootNode" )
135+ root = create_scene ("rootNode" )
132136 v = [[0 , 0 , 0 ], [1 , 1 , 1 ], [2 , 2 , 2 ]]
133137 c = root .addObject ("MechanicalObject" , name = "t" , position = v )
134138 self .assertEqual (len (c .position .value ), 3 )
@@ -139,7 +143,7 @@ def test_DataAsArray2D(self):
139143 # @unittest.skip # no reason needed
140144 def test_DataArray2DSetFromList (self ):
141145 v = [[0 , 0 , 0 ], [1 , 1 , 1 ], [2 , 2 , 2 ], [3 , 3 , 3 ]]
142- root = Sofa . Core . Node ("rootNode" )
146+ root = create_scene ("rootNode" )
143147 c = root .addObject ("MechanicalObject" , name = "t" , position = v )
144148 c .position = [[1 , 1 , 1 ], [2 , 2 , 2 ], [3 , 3 , 3 ], [4 , 4 , 4 ]]
145149 numpy .testing .assert_array_equal (c .position .array (), [[1.0 , 1.0 , 1.0 ], [
@@ -148,7 +152,7 @@ def test_DataArray2DSetFromList(self):
148152 # @unittest.skip # no reason needed
149153 def test_DataArray2DResizeFromArray (self ):
150154 v = [[0 , 0 , 0 ], [1 , 1 , 1 ], [2 , 2 , 2 ], [3 , 3 , 3 ]]
151- root = Sofa . Core . Node ("rootNode" )
155+ root = create_scene ("rootNode" )
152156 c = root .addObject ("MechanicalObject" , name = "t" , position = v )
153157 zeros = numpy .zeros ((100 , 3 ), dtype = numpy .float64 )
154158 c .position .value = zeros
@@ -157,7 +161,7 @@ def test_DataArray2DResizeFromArray(self):
157161 # @unittest.skip # no reason needed
158162 def test_DataArray2DInvalidResizeFromArray (self ):
159163 v = [[0 , 0 , 0 ], [1 , 1 , 1 ], [2 , 2 , 2 ], [3 , 3 , 3 ]]
160- root = Sofa . Core . Node ("rootNode" )
164+ root = create_scene ("rootNode" )
161165 c = root .addObject ("MechanicalObject" , name = "t" , position = v )
162166 zeros = numpy .zeros ((4 , 100 ), dtype = numpy .float64 )
163167
@@ -168,7 +172,7 @@ def d():
168172 # @unittest.skip # no reason needed
169173 def test_DataArray2DSetFromArray (self ):
170174 v = [[0 , 0 , 0 ], [1 , 1 , 1 ], [2 , 2 , 2 ], [3 , 3 , 3 ], [4 , 4 , 4 ]]
171- root = Sofa . Core . Node ("rootNode" )
175+ root = create_scene ("rootNode" )
172176 c = root .addObject ("MechanicalObject" , name = "t" , position = v )
173177
174178 zeros = numpy .zeros ((500 , 3 ), dtype = numpy .float64 )
@@ -185,15 +189,15 @@ def test_DataArray2DSetFromArray(self):
185189
186190 @unittest .skip # no reason needed
187191 def test_DataArray2DElementWiseOperation (self ):
188- root = Sofa . Core . Node ("rootNode" )
192+ root = create_scene ("rootNode" )
189193 m = [[1 , 0 , 0 ], [0 , 1 , 0 ], [0 , 0 , 1 ]]
190194 v = [[0 , 0 , 0 ], [1 , 1 , 1 ], [2 , 2 , 2 ], [3 , 3 , 3 ]]
191195 c = root .addObject ("MechanicalObject" , name = "t" , position = v )
192196 c .position .value *= c .position .value
193197
194198 def test_UnknowAttribute (self ):
195199 """ Access a non-existing attribute of a data field so this should trigger AttributeError"""
196- root = Sofa . Core . Node ("root" ) # < Create a new node
200+ root = create_scene ("root" ) # < Create a new node
197201 # < Create a new object
198202 c = root .addObject ("MechanicalObject" , name = "t" )
199203 p = c .position .value # < Retrive its position
@@ -205,7 +209,7 @@ def test_UnknowAttribute(self):
205209 # @unittest.skip # no reason needed
206210
207211 def test_DataArray2DOperation (self ):
208- root = Sofa . Core . Node ("rootNode" )
212+ root = create_scene ("rootNode" )
209213 v = numpy .array ([[0 , 0 , 0 ], [1 , 1 , 1 ], [2 , 2 , 2 ], [3 , 3 , 3 ]])
210214 c = root .addObject ("MechanicalObject" , name = "t" , position = v .tolist ())
211215 c2 = c .position .value * 2.0
@@ -219,7 +223,7 @@ def test_DataArray2DOperation(self):
219223
220224 # @unittest.skip # no reason needed
221225 def test_DataAsArray1D (self ):
222- root = Sofa . Core . Node ("rootNode" )
226+ root = create_scene ("rootNode" )
223227 v = [[0 , 0 , 0 ], [1 , 1 , 1 ], [2 , 2 , 2 ]]
224228 c = root .addObject ("MechanicalObject" , name = "t" ,
225229 position = v , showColor = [0.42 , 0.1 , 0.9 , 1.0 ])
@@ -228,7 +232,7 @@ def test_DataAsArray1D(self):
228232
229233 # @unittest.skip # no reason needed
230234 def test_DataWrapper1D (self ):
231- root = Sofa . Core . Node ("rootNode" )
235+ root = create_scene ("rootNode" )
232236 v = [[0 , 0 , 0 ], [1 , 1 , 1 ], [2 , 2 , 2 ]]
233237 root .addObject ("MechanicalObject" , name = "obj" , position = v )
234238
@@ -245,7 +249,7 @@ def t(c):
245249 self .assertRaises (ValueError , (lambda c : t (c )), color )
246250
247251 def test_DataAsContainerNumpyArray_ (self ):
248- root = Sofa . Core . Node ("rootNode" )
252+ root = create_scene ("rootNode" )
249253 v = numpy .array ([[0 , 0 , 0 ], [1 , 1 , 1 ], [2 , 2 , 2 ], [3 , 3 , 3 ]])
250254 c = root .addObject ("MechanicalObject" , name = "t" , position = v .tolist ())
251255 Sofa .Simulation .init (root )
@@ -258,7 +262,7 @@ def test_DataAsContainerNumpyArray_(self):
258262 numpy .testing .assert_array_equal (c .position .array (), v )
259263
260264 def test_DataAsContainerNumpyArrayRepeat (self ):
261- root = Sofa . Core . Node ("rootNode" )
265+ root = create_scene ("rootNode" )
262266 v = numpy .array ([[0 , 0 , 0 ], [1 , 1 , 1 ], [2 , 2 , 2 ], [3 , 3 , 3 ]])
263267 c = root .addObject ("MechanicalObject" , name = "t" , position = v .tolist ())
264268
@@ -289,13 +293,13 @@ def t(c):
289293 numpy .testing .assert_array_equal (wa , v * 4.0 )
290294
291295 def test_DataString (self ):
292- n = Sofa . Core . Node ("rootNode" )
296+ n = create_scene ("rootNode" )
293297 self .assertTrue (isinstance (n .name , Sofa .Core .DataString ))
294298 self .assertEqual (n .name .value , "rootNode" )
295299 self .assertEqual (len (n .name ), 8 )
296300
297301 def test_DataAsContainerNumpyArray (self ):
298- n = Sofa . Core . Node ("rootNode" )
302+ n = create_scene ("rootNode" )
299303 c = n .addObject (NpArrayTestController (name = "c" ))
300304
301305 c .testLen (self )
@@ -305,37 +309,37 @@ def test_DataAsContainerNumpyArray(self):
305309 c .testValue (self )
306310
307311 def test_name (self ):
308- root = Sofa . Core . Node ("root" )
312+ root = create_scene ("root" )
309313 root .addData (name = "aField" , value = 1.0 , help = "help message" ,group = "theDataGroup" , type = "float" )
310314 data = root .getData ("aField" )
311315 self .assertEqual (data .getName (),"aField" )
312316 data .setName ("aNewField" )
313317 self .assertEqual (data .getName (),"aNewField" )
314318
315319 def test_getValueString (self ):
316- root = Sofa . Core . Node ("root" )
320+ root = create_scene ("root" )
317321 c = root .addObject ("MechanicalObject" , name = "t" , position = [[0 ,1 ,0 ]])
318322 self .assertEqual (c .position .getValueString (),"0 1 0" )
319323
320324 def test_getValueTypeString (self ):
321- root = Sofa . Core . Node ("root" )
325+ root = create_scene ("root" )
322326 c = root .addObject ("MechanicalObject" , name = "t" , position = [[0 ,1 ,0 ]])
323327 self .assertEqual (c .position .getValueTypeString (),"vector<Vec3d>" )
324328
325329 def test_isRequired (self ):
326- root = Sofa . Core . Node ("root" )
330+ root = create_scene ("root" )
327331 self .assertFalse (root .name .isRequired ())
328332
329333 def test_Persistent (self ):
330- root = Sofa . Core . Node ("root" )
334+ root = create_scene ("root" )
331335 root .addData (name = "aField" , value = 1.0 , help = "help message" ,group = "theDataGroup" , type = "float" )
332336 data = root .getData ("aField" )
333337 self .assertTrue (data .isPersistent ())
334338 data .setPersistent (False )
335339 self .assertFalse (data .isPersistent ())
336340
337341 def test_Parent (self ):
338- root = Sofa . Core . Node ("root" )
342+ root = create_scene ("root" )
339343 root .addData (name = "aField" , value = 1.0 , help = "help message" ,group = "theDataGroup" , type = "float" )
340344 root .addData (name = "aFieldParent" , value = 1.0 , help = "help message" ,group = "theDataGroup" , type = "float" )
341345 data = root .getData ("aField" )
@@ -346,7 +350,7 @@ def test_Parent(self):
346350 self .assertEqual (data .getParent ().getName (),"aFieldParent" )
347351
348352 def test_getLinkPath (self ):
349- root = Sofa . Core . Node ("root" )
353+ root = create_scene ("root" )
350354 root .addData (name = "aField" , value = 1.0 , help = "help message" ,group = "theDataGroup" , type = "float" )
351355 root .addData (name = "aFieldParent" , value = 1.0 , help = "help message" ,group = "theDataGroup" , type = "float" )
352356 data = root .getData ("aField" )
@@ -356,7 +360,7 @@ def test_getLinkPath(self):
356360 self .assertEqual (dataParent .getLinkPath (),"@/.aFieldParent" )
357361
358362 def test_read (self ):
359- root = Sofa . Core . Node ("root" )
363+ root = create_scene ("root" )
360364 root .addData (name = "aField" , value = 1.0 , help = "help message" ,group = "theDataGroup" , type = "float" )
361365 data = root .getData ("aField" )
362366 self .assertEqual (data .value ,1.0 )
@@ -365,7 +369,7 @@ def test_read(self):
365369 self .assertFalse (data .read ("test" ))
366370
367371 def test_Dirty (self ):
368- root = Sofa . Core . Node ("root" )
372+ root = create_scene ("root" )
369373 root .addData (name = "aField" , value = 1.0 , help = "help message" ,group = "theDataGroup" , type = "float" )
370374 root .addData (name = "aFieldParent" , value = 1.0 , help = "help message" ,group = "theDataGroup" , type = "float" )
371375 data = root .getData ("aField" )
@@ -378,15 +382,15 @@ def test_Dirty(self):
378382 self .assertFalse (data .isDirty ())
379383
380384 def test_readOnly (self ):
381- root = Sofa . Core . Node ("root" )
385+ root = create_scene ("root" )
382386 root .addData (name = "aField" , value = 1.0 , help = "help message" ,group = "theDataGroup" , type = "float" )
383387 data = root .getData ("aField" )
384388 self .assertFalse (data .isReadOnly ())
385389 data .setReadOnly (True )
386390 self .assertTrue (data .isReadOnly ())
387391
388392 def test_DownCast (self ):
389- root = Sofa . Core . Node ('root' )
393+ root = create_scene ('root' )
390394 self .assertEqual (type (root .name ), Sofa .Core .DataString )
391395 self .assertEqual (type (root .gravity ), Sofa .Core .DataContainer )
392396 self .assertEqual (type (root .dt ), Sofa .Core .Data )
0 commit comments