summaryrefslogtreecommitdiff
path: root/trunk/Examples/test-suite/python/virtual_poly_runme.py
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2010-06-02 20:53:17 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2010-06-02 20:53:17 +0000
commit2824b0cbb66e715490e1ef13250bd675d87b32d9 (patch)
treec3bc8d54c6d73f2b7ce08cac34172dbc9f5e5b95 /trunk/Examples/test-suite/python/virtual_poly_runme.py
parent289cfef4b4766ff266f3b1bdda8ca3a952e5a047 (diff)
downloadswig-2.0.0.tar.gz
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/tags/rel-2.0.0@12089 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Diffstat (limited to 'trunk/Examples/test-suite/python/virtual_poly_runme.py')
-rw-r--r--trunk/Examples/test-suite/python/virtual_poly_runme.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/trunk/Examples/test-suite/python/virtual_poly_runme.py b/trunk/Examples/test-suite/python/virtual_poly_runme.py
new file mode 100644
index 000000000..7e202f9cf
--- /dev/null
+++ b/trunk/Examples/test-suite/python/virtual_poly_runme.py
@@ -0,0 +1,38 @@
+import virtual_poly
+
+d = virtual_poly.NDouble(3.5)
+i = virtual_poly.NInt(2)
+
+#
+# the copy methods return the right polymorphic types
+#
+dc = d.copy()
+ic = i.copy()
+
+if d.get() != dc.get():
+ raise RuntimeError
+
+if i.get() != ic.get():
+ raise RuntimeError
+
+virtual_poly.incr(ic)
+
+if (i.get() + 1) != ic.get():
+ raise RuntimeError
+
+
+dr = d.ref_this()
+if d.get() != dr.get():
+ raise RuntimeError
+
+
+#
+# 'narrowing' also works
+#
+ddc = virtual_poly.NDouble_narrow(d.nnumber())
+if d.get() != ddc.get():
+ raise RuntimeError
+
+dic = virtual_poly.NInt_narrow(i.nnumber())
+if i.get() != dic.get():
+ raise RuntimeError