forked from sofa-framework/SofaPython3
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBaseObject.py
More file actions
103 lines (86 loc) · 4.16 KB
/
BaseObject.py
File metadata and controls
103 lines (86 loc) · 4.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# coding: utf8
import unittest
import Sofa
def create_scene(rootName="root"):
root = Sofa.Core.Node(rootName)
root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer")
root.addObject("RequiredPlugin", pluginName="Sofa.Component.Topology.Container.Constant")
return root
class Test(unittest.TestCase):
def __init__(self, a):
unittest.TestCase.__init__(self, a)
def test_createObjectWithParam(self):
root = create_scene("rootNode")
c = root.addObject("MechanicalObject", name="t", position=[
[0, 0, 0], [1, 1, 1], [2, 2, 2]])
self.assertTrue(c is not None)
def test_createObjectWithInvalidParamName(self):
# This one should raise an error because of 'v' should rise a type error.
root = create_scene("rootNode")
self.assertRaises(TypeError, root.addObject, "MechanicalObject", name="tt", v=[
[0, 0, 0], [1, 1, 1], [2, 2, 2]])
def test_data_property(self):
root = create_scene("rootNode")
c = root.addObject("MechanicalObject", name="t", position=[
[0, 0, 0], [1, 1, 1], [2, 2, 2]])
self.assertTrue(hasattr(c, "__data__"))
self.assertGreater(len(c.__data__), 0)
self.assertTrue("name" in c.__data__)
self.assertTrue("position" in c.__data__)
self.assertFalse(hasattr(c.__data__, "invalidEntry"))
self.assertTrue(isinstance(c.__data__, Sofa.Core.DataDict))
def test_context(self):
root = create_scene("rootNode")
c = root.addObject("MechanicalObject", name="t", position=[
[0, 0, 0], [1, 1, 1], [2, 2, 2]])
self.assertTrue(c.getContext() is not None)
def test_slave_master(self):
root = create_scene("rootNode")
c_master = root.addObject("MechanicalObject", name="t_master", position=[
[0, 0, 0], [1, 1, 1], [2, 2, 2]])
c_slave = root.addObject("MechanicalObject", name="t_slave", position=[
[0, 0, 0], [1, 1, 1], [2, 2, 2]])
c_master.addSlave(c_slave)
self.assertEqual(c_master, c_slave.getMaster())
self.assertEqual(c_master.getSlaves()[0], c_slave)
self.assertEqual(c_slave.getSlaves(), [])
def test_getTarget(self):
root = create_scene("rootNode")
c = root.addObject("MechanicalObject", name="t")
self.assertEqual(c.getTarget(), 'Sofa.Component.StateContainer')
def test_getName(self):
root = create_scene("rootNode")
c = root.addObject("MechanicalObject", name="t")
self.assertEqual(c.getName(), "t")
def test_getCategories(self):
root = create_scene("rootNode")
mecha = root.addObject("MechanicalObject", name="t")
self.assertEqual(mecha.getCategories(), ["MechanicalState"])
topo = root.addObject("MeshTopology", name="topology")
self.assertEqual(topo.getCategories(), ["Topology"])
def test_getPathName(self):
root = create_scene("rootNode")
c = root.addObject("MechanicalObject", name="t")
self.assertEqual(c.getPathName(), "/t")
def test_getLinkPath(self):
root = create_scene("rootNode")
c = root.addObject("MechanicalObject", name="t")
self.assertEqual(c.getLinkPath(), "@/t")
self.assertEqual(c.getAsACreateObjectParameter(), "@/t")
def test_setSrc(self):
root = create_scene("rootNode")
c = root.addObject("Binding_BaseObject_MockComponent", name="t")
loader = root.addObject(
"Binding_BaseObject_MockComponent", name="loader")
loader.test = "setSrc"
c.setSrc("test", loader)
self.assertEqual(c.test.value, loader.test.value)
def test_mockComponent(self):
# Test several binded functions using the Binding_BaseObject_MockComponent
t = ["bwdInit", "cleanup", "computeBBox",
"storeResetState", "reset", "init", "reinit"]
root = create_scene("rootNode")
c = root.addObject("Binding_BaseObject_MockComponent", name="t")
for name in t:
getattr(c, name)()
self.assertEqual(c.test.value, name)