issues.py 1.74 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
13
from example.issues import StrIssue
Wenzel Jakob's avatar
Wenzel Jakob committed
14
import gc
15
16

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


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)
36

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

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

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()
48
49
50
51
52

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

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

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

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)

76
77
78
79
80
print(StrIssue(3))
try:
    print(StrIssue("no", "such", "constructor"))
except TypeError as e:
    print("Failed as expected: " + str(e))