aboutsummaryrefslogtreecommitdiff
path: root/Examples/test-suite/python/cpp11_director_using_constructor_runme.py
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/python/cpp11_director_using_constructor_runme.py')
-rw-r--r--Examples/test-suite/python/cpp11_director_using_constructor_runme.py145
1 files changed, 145 insertions, 0 deletions
diff --git a/Examples/test-suite/python/cpp11_director_using_constructor_runme.py b/Examples/test-suite/python/cpp11_director_using_constructor_runme.py
new file mode 100644
index 000000000..84238a281
--- /dev/null
+++ b/Examples/test-suite/python/cpp11_director_using_constructor_runme.py
@@ -0,0 +1,145 @@
+from cpp11_director_using_constructor import *
+
+
+# Public base constructors
+a = PublicDerived1(0, "hi").meth()
+a = PublicDerived2().meth()
+a = PublicDerived2(0, "hi").meth()
+a = PublicDerived3().meth()
+a = PublicDerived3(0, "hi").meth()
+a = PublicDerived4().meth()
+a = PublicDerived5().meth()
+
+# Protected base constructors
+# Cannot test most of these as the constructors are protected
+ProtectedDerived5()
+
+# Mix of public and overloaded constructors
+MixedDerived1a(0, "hi").meth()
+MixedDerived1a().meth()
+MixedDerived1b(0, "hi").meth()
+MixedDerived1b().meth()
+
+MixedDerived2a(0, "hi").meth()
+MixedDerived2a().meth()
+MixedDerived2b(0, "hi").meth()
+MixedDerived2b().meth()
+
+MixedDerived2c(0, "hi").meth()
+MixedDerived2c().meth()
+MixedDerived2c(0).meth()
+
+MixedDerived2d(0, "hi").meth()
+MixedDerived2d().meth()
+MixedDerived2d(0).meth()
+
+MixedDerived3a(0, "hi").meth()
+MixedDerived3a().meth()
+MixedDerived3b(0, "hi").meth()
+MixedDerived3b().meth()
+
+MixedDerived3c(0, "hi").meth()
+MixedDerived3c().meth()
+MixedDerived3c(0).meth()
+
+MixedDerived3d(0, "hi").meth()
+MixedDerived3d().meth()
+MixedDerived3d(0).meth()
+
+MixedDerived4a(0, "hi").meth()
+MixedDerived4a().meth()
+MixedDerived4b(0, "hi").meth()
+MixedDerived4b().meth()
+
+MixedDerived4c().meth()
+MixedDerived4c(0).meth()
+
+MixedDerived4d().meth()
+MixedDerived4d(0).meth()
+
+MixedDerived4e().meth()
+
+MixedDerived4f().meth()
+
+# Mix of protected base constructors and overloading
+ProotDerived1a().meth()
+
+ProotDerived1b(0, "hi").meth()
+ProotDerived1b().meth()
+
+ProotDerived1c(0, "hi").meth()
+ProotDerived1c().meth()
+
+ProotDerived1d(0).meth()
+ProotDerived1d().meth()
+
+ProotDerived1e(0).meth()
+ProotDerived1e().meth()
+
+ProotDerived2a(0, "hi").meth()
+
+ProotDerived2b(0, "hi").meth()
+
+ProotDerived2c(0, "hi").meth()
+ProotDerived2c().meth()
+
+ProotDerived2d(0, "hi").meth()
+ProotDerived2d().meth()
+
+ProotDerived2e(0, "hi").meth()
+ProotDerived2e().meth()
+
+ProotDerived2f(0, "hi").meth()
+ProotDerived2f().meth()
+ProotDerived2f(0).meth()
+
+# Deeper inheritance chain
+db3 = DeepBase3(11)
+db3 = DeepBase3(11, 22)
+db3 = DeepBase3(11, 22, 33)
+dbp3 = DeepProtectedBase3(11, 22, 33)
+
+# Missing base
+HiddenDerived1()
+
+# Templates and public base constructors (derive from non-template)
+TemplatePublicDerived1Int(0, "hi").meth()
+TemplatePublicDerived2Int().meth()
+TemplatePublicDerived2Int(0, "hi").meth()
+TemplatePublicDerived3Int().meth()
+TemplatePublicDerived3Int(0, "hi").meth()
+TemplatePublicDerived4Int().meth()
+TemplatePublicDerived5Int().meth()
+
+# Templates and public base constructors (derive from template)
+TemplPublicDerived1Int(0, "hi").meth()
+TemplPublicDerived2Int().meth()
+TemplPublicDerived2Int(0, "hi").meth()
+TemplPublicDerived3Int().meth()
+TemplPublicDerived3Int(0, "hi").meth()
+TemplPublicDerived4Int().meth()
+TemplPublicDerived5Int().meth()
+TemplPublicDerived6Int(0, "hi").meth()
+TemplPublicDerived6Int().meth()
+
+# Templated constructors (public)
+tcb = TemplateConstructor1Base(0, "hi")
+tcb = TemplateConstructor1Base("hi", "hi")
+tcb = TemplateConstructor1Base(11.1, "hi")
+tcb.normal_method()
+tcb.template_method(0, "hi")
+tcb.template_method("hey", "ho")
+
+tcd1 = TemplateConstructor1Derived(0, "hi")
+tcd1 = TemplateConstructor1Derived("hi", "hi")
+tcd1 = TemplateConstructor1Derived(11.1, "hi")
+# Not the best test as these are also in the base class, (should use introspection to check)
+tcd1.normal_method()
+tcd1.template_method(0, "hi")
+tcd1.template_method("hey", "ho")
+
+# Templated constructors (protected)
+tcd2 = TemplateConstructor2Derived()
+tcd2.normal_method()
+tcd2.template_method(0, "hi")
+tcd2.template_method("hey", "ho")