|
Packit Service |
99d393 |
# mode: run
|
|
Packit Service |
99d393 |
# tag: cpp, werror
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
from cython.operator cimport dereference as deref
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
cdef extern from "cpp_templates_helper.h":
|
|
Packit Service |
99d393 |
cdef cppclass Wrap[T]:
|
|
Packit Service |
99d393 |
Wrap(T)
|
|
Packit Service |
99d393 |
void set(T)
|
|
Packit Service |
99d393 |
T get()
|
|
Packit Service |
99d393 |
bint operator==(Wrap[T])
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
cdef cppclass Pair[T1,T2]:
|
|
Packit Service |
99d393 |
Pair(T1,T2)
|
|
Packit Service |
99d393 |
T1 first()
|
|
Packit Service |
99d393 |
T2 second()
|
|
Packit Service |
99d393 |
bint operator==(Pair[T1,T2])
|
|
Packit Service |
99d393 |
bint operator!=(Pair[T1,T2])
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
def test_wrap_pair(int i, double x):
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
>>> test_wrap_pair(1, 1.5)
|
|
Packit Service |
99d393 |
(1, 1.5, True)
|
|
Packit Service |
99d393 |
>>> test_wrap_pair(2, 2.25)
|
|
Packit Service |
99d393 |
(2, 2.25, True)
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
try:
|
|
Packit Service |
99d393 |
wrap = new Wrap[Pair[int, double]](Pair[int, double](i, x))
|
|
Packit Service |
99d393 |
return wrap.get().first(), wrap.get().second(), deref(wrap) == deref(wrap)
|
|
Packit Service |
99d393 |
finally:
|
|
Packit Service |
99d393 |
del wrap
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
def test_wrap_pair_pair(int i, int j, double x):
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
>>> test_wrap_pair_pair(1, 3, 1.5)
|
|
Packit Service |
99d393 |
(1, 3, 1.5, True)
|
|
Packit Service |
99d393 |
>>> test_wrap_pair_pair(2, 5, 2.25)
|
|
Packit Service |
99d393 |
(2, 5, 2.25, True)
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
try:
|
|
Packit Service |
99d393 |
wrap = new Wrap[Pair[int, Pair[int, double]]](
|
|
Packit Service |
99d393 |
Pair[int, Pair[int, double]](i,Pair[int, double](j, x)))
|
|
Packit Service |
99d393 |
return (wrap.get().first(),
|
|
Packit Service |
99d393 |
wrap.get().second().first(),
|
|
Packit Service |
99d393 |
wrap.get().second().second(),
|
|
Packit Service |
99d393 |
deref(wrap) == deref(wrap))
|
|
Packit Service |
99d393 |
finally:
|
|
Packit Service |
99d393 |
del wrap
|