3 import dynamic_graph
as dg
4 from custom_entity
import CustomEntity
7 """Python argument types in 8 dynamic_graph.wrap.plug(%s, %s) 9 did not match C++ signature: 11 "dynamicgraph::SignalBase<int>* signalOut, " 12 "dynamicgraph::SignalBase<int>* signalIn)" 19 test the type checking in signal plugs 21 first = CustomEntity(
"first_entity")
22 second = CustomEntity(
"second_entity")
24 dg.plug(first.signal(
"out_double"), second.signal(
"in_double"))
27 with self.assertRaises(TypeError)
as cm_in:
28 dg.plug(first.signal(
"out_double"), second)
30 str(cm_in.exception), ERR % (
"SignalTimeDependentDouble",
"CustomEntity")
34 with self.assertRaises(TypeError)
as cm_out:
35 dg.plug(first, second.signal(
"in_double"))
37 str(cm_out.exception), ERR % (
"CustomEntity",
"SignalPtrDouble")
42 test that exceptions from dynamic graph are correctly raised 44 ent = CustomEntity(
"test_dg_exc")
46 with self.assertRaises(RuntimeError)
as cm:
50 "In SignalPtr: SIN ptr not set. " 51 "(in signal <CustomEntity(test_dg_exc)::input(double)::in_double>)",
55 ent_2 = CustomEntity(
"another_entity")
56 dg.plug(ent_2.signal(
"out_double"), ent.signal(
"in_double"))
60 if __name__ ==
"__main__":
def test_type_check(self)