Change in default behaviour wrapping C++ bool for Python.
Only a Python True or False will now work for C++ bool parameters. This fixes overloading bool with other types.
This commit is contained in:
parent
7f45cbd178
commit
504c2030bb
11 changed files with 251 additions and 11 deletions
55
Examples/test-suite/python/overload_bool_runme.py
Normal file
55
Examples/test-suite/python/overload_bool_runme.py
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
import overload_bool
|
||||
|
||||
# Overloading bool, int, string
|
||||
if overload_bool.overloaded(True) != "bool":
|
||||
raise RuntimeError("wrong!")
|
||||
if overload_bool.overloaded(False) != "bool":
|
||||
raise RuntimeError("wrong!")
|
||||
|
||||
if overload_bool.overloaded(0) != "int":
|
||||
raise RuntimeError("wrong!")
|
||||
if overload_bool.overloaded(1) != "int":
|
||||
raise RuntimeError("wrong!")
|
||||
if overload_bool.overloaded(2) != "int":
|
||||
raise RuntimeError("wrong!")
|
||||
|
||||
if overload_bool.overloaded("1234") != "string":
|
||||
raise RuntimeError("wrong!")
|
||||
|
||||
# Test bool masquerading as int
|
||||
if overload_bool.intfunction(True) != "int":
|
||||
raise RuntimeError("wrong!")
|
||||
if overload_bool.intfunction(False) != "int":
|
||||
raise RuntimeError("wrong!")
|
||||
|
||||
# Test int masquerading as bool
|
||||
# Not possible
|
||||
|
||||
|
||||
#############################################
|
||||
|
||||
# Overloading bool, int, string
|
||||
if overload_bool.overloaded_ref(True) != "bool":
|
||||
raise RuntimeError("wrong!")
|
||||
if overload_bool.overloaded_ref(False) != "bool":
|
||||
raise RuntimeError("wrong!")
|
||||
|
||||
if overload_bool.overloaded_ref(0) != "int":
|
||||
raise RuntimeError("wrong!")
|
||||
if overload_bool.overloaded_ref(1) != "int":
|
||||
raise RuntimeError("wrong!")
|
||||
if overload_bool.overloaded_ref(2) != "int":
|
||||
raise RuntimeError("wrong!")
|
||||
|
||||
if overload_bool.overloaded_ref("1234") != "string":
|
||||
raise RuntimeError("wrong!")
|
||||
|
||||
# Test bool masquerading as int
|
||||
if overload_bool.intfunction_ref(True) != "int":
|
||||
raise RuntimeError("wrong!")
|
||||
if overload_bool.intfunction_ref(False) != "int":
|
||||
raise RuntimeError("wrong!")
|
||||
|
||||
# Test int masquerading as bool
|
||||
# Not possible
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue