issues.py 1.57 KB
Newer Older
1
2
3
4
5
#!/usr/bin/env python
from __future__ import print_function
import sys
sys.path.append('.')

6
from example.issues import print_cchar, print_char
7
from example.issues import DispatchIssue, dispatch_issue_go
Wenzel Jakob's avatar
Wenzel Jakob committed
8
from example.issues import Placeholder, return_vec_of_reference_wrapper
9
from example.issues import iterator_passthrough
10
from example.issues import ElementList, ElementA, print_element
11
from example.issues import expect_float, expect_int
12
from example.issues import A, call_f
Wenzel Jakob's avatar
Wenzel Jakob committed
13
import gc
14
15

print_cchar("const char *")
16
print_char('c')
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34


class PyClass1(DispatchIssue):
    def dispatch(self):
        print("Yay..")


class PyClass2(DispatchIssue):
    def dispatch(self):
        try:
            super(PyClass2, self).dispatch()
        except Exception as e:
            print("Failed as expected: " + str(e))
        p = PyClass1()
        dispatch_issue_go(p)

b = PyClass2()
dispatch_issue_go(b)
35

36
print(return_vec_of_reference_wrapper(Placeholder(4)))
37
38

print(list(iterator_passthrough(iter([3, 5, 7, 9, 11, 13, 15]))))
Wenzel Jakob's avatar
Wenzel Jakob committed
39
40
41
42
43
44
45
46

el = ElementList()
for i in range(10):
    el.add(ElementA(i))
gc.collect()
for i, v in enumerate(el.get()):
    print("%i==%i, " % (i, v.value()), end='')
print()
47
48
49
50
51

try:
    print_element(None)
except Exception as e:
    print("Failed as expected: " + str(e))
52
53
54
55
56
57
58

try:
    print(expect_int(5.2))
except Exception as e:
    print("Failed as expected: " + str(e))

print(expect_float(12))
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74

class B(A):
    def __init__(self):
        super(B, self).__init__()

    def f(self):
        print("In python f()")

print("C++ version")
a = A()
call_f(a)

print("Python version")
b = B()
call_f(b)