Skip to content

Commit 007e8db

Browse files
guparanjnbrunet
authored andcommitted
[tests] FIX all tests using MechanicalObject
They need to load the plugin SofaBaseMechanics.
1 parent d9c96a5 commit 007e8db

File tree

9 files changed

+119
-82
lines changed

9 files changed

+119
-82
lines changed

bindings/Sofa/tests/Core/Base.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,14 @@
33
import Sofa
44
import unittest
55

6+
def create_scene(rootName="root"):
7+
root = Sofa.Core.Node(rootName)
8+
root.addObject("RequiredPlugin", name="SofaBaseMechanics")
9+
return root
610

711
class Test(unittest.TestCase):
812
def test_data_property(self):
9-
root = Sofa.Core.Node("rootNode")
13+
root = create_scene("rootNode")
1014
c = root.addObject("MechanicalObject", name="t", position=[
1115
[0, 0, 0], [1, 1, 1], [2, 2, 2]])
1216
self.assertTrue(hasattr(c, "__data__"))
@@ -17,7 +21,7 @@ def test_data_property(self):
1721
self.assertTrue(isinstance(c.__data__, Sofa.Core.DataDict))
1822

1923
def test_loggedMessagesBinding(self):
20-
node = Sofa.Core.Node("a_node")
24+
node = create_scene("a_node")
2125
self.assertEqual(node.getLoggedMessagesAsString(), "")
2226
Sofa.msg_info(node, "This is a new message")
2327
self.assertTrue("This is a new message" in node.getLoggedMessagesAsString())
@@ -26,7 +30,7 @@ def test_loggedMessagesBinding(self):
2630
self.assertEqual(node.countLoggedMessages(), 0)
2731

2832
def test_addNewData_with_type(self):
29-
node = Sofa.Core.Node("a_node")
33+
node = create_scene("a_node")
3034
obj = node.addObject("MechanicalObject", name="an_object", position=[
3135
[0, 0, 0], [1, 1, 1], [2, 2, 2]])
3236
# Check PSDEObjectFactory to see available types
@@ -42,13 +46,13 @@ def test_addNewData_with_type(self):
4246
self.assertEqual(obj.myData.value, 42)
4347

4448
def test_addKeywordProtected(self):
45-
node = Sofa.Core.Node("a_node")
49+
node = create_scene("a_node")
4650
self.assertRaises(ValueError, node.addObject, "MechanicalObject", name="children", position=[[0,0,0],[1,1,1],[2,2,2]])
4751
self.assertRaises(ValueError, node.addChild, "parents")
4852
self.assertRaises(ValueError, node.addData, name="links", type="int", value=42)
4953

5054
def test_addNewDataFromParent_linkPaths(self):
51-
root = Sofa.Core.Node('root')
55+
root = create_scene('root')
5256
c1 = root.addObject("MechanicalObject", name="c1")
5357
c1.addData("d", value="coucou", type="string")
5458

@@ -79,7 +83,7 @@ def test_addNewDataFromParent_linkPaths(self):
7983

8084

8185
def test_addNewDataFromParent(self):
82-
root = Sofa.Core.Node('root')
86+
root = create_scene('root')
8387
c1 = root.addObject("MechanicalObject", name="c1")
8488
c1.addData("d", value="coucou", type="string")
8589
c1.addData("d2", value="@c1.d")
@@ -97,7 +101,7 @@ def test_addNewDataFromParent(self):
97101

98102

99103
def test_addNewDataFromParent_brokenLink(self):
100-
root = Sofa.Core.Node('root')
104+
root = create_scene('root')
101105
c1 = root.addObject("MechanicalObject", name="c1")
102106

103107
ValueError_ToTest = ["@aBroken/path.value", "@aBroken/path", "@/aBroken/path", "@", "@.", "@/", "@./", "@../"]
@@ -111,11 +115,11 @@ def test_addNewDataFromParent_brokenLink(self):
111115
self.assertRaises(TypeError, c1.addData, name="d", value=val)
112116

113117
def test_getClassName(self):
114-
root = Sofa.Core.Node("root")
118+
root = create_scene("root")
115119
self.assertEqual(root.getClassName(), "DAGNode")
116120

117121
def test_getTemplateName(self):
118-
root = Sofa.Core.Node("root")
122+
root = create_scene("root")
119123
c = root.addObject("MechanicalObject", name="t")
120124
self.assertEqual(c.getTemplateName(),"Vec3d")
121125

bindings/Sofa/tests/Core/BaseData.py

Lines changed: 33 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -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

9599
class 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

Comments
 (0)