| import director_basic | |
| class PyFoo(director_basic.Foo): | |
| def ping(self): | |
| return "PyFoo::ping()" | |
| a = PyFoo() | |
| if a.ping() != "PyFoo::ping()": | |
| raise RuntimeError(a.ping()) | |
| if a.pong() != "Foo::pong();PyFoo::ping()": | |
| raise RuntimeError(a.pong()) | |
| b = director_basic.Foo() | |
| if b.ping() != "Foo::ping()": | |
| raise RuntimeError(b.ping()) | |
| if b.pong() != "Foo::pong();Foo::ping()": | |
| raise RuntimeError(b.pong()) | |
| a = director_basic.A1(1) | |
| if a.rg(2) != 2: | |
| raise RuntimeError | |
| class PyClass(director_basic.MyClass): | |
| def method(self, vptr): | |
| self.cmethod = 7 | |
| pass | |
| def vmethod(self, b): | |
| b.x = b.x + 31 | |
| return b | |
| b = director_basic.Bar(3) | |
| d = director_basic.MyClass() | |
| c = PyClass() | |
| cc = director_basic.MyClass.get_self(c) | |
| dd = director_basic.MyClass.get_self(d) | |
| bc = cc.cmethod(b) | |
| bd = dd.cmethod(b) | |
| cc.method(b) | |
| if c.cmethod != 7: | |
| raise RuntimeError | |
| if bc.x != 34: | |
| raise RuntimeError | |
| if bd.x != 16: | |
| raise RuntimeError | |
| class PyMulti(director_basic.Foo, director_basic.MyClass): | |
| def __init__(self): | |
| director_basic.Foo.__init__(self) | |
| director_basic.MyClass.__init__(self) | |
| pass | |
| def vmethod(self, b): | |
| b.x = b.x + 31 | |
| return b | |
| def ping(self): | |
| return "PyFoo::ping()" | |
| a = 0 | |
| for i in range(0, 100): | |
| pymult = PyMulti() | |
| pymult.pong() | |
| del pymult | |
| pymult = PyMulti() | |
| p1 = director_basic.Foo.get_self(pymult) | |
| p2 = director_basic.MyClass.get_self(pymult) | |
| p1.ping() | |
| p2.vmethod(bc) |