blob: 68c09e7ab251bbfb96a4a2c6b6efbf992767212d [file]
import cpp11_rvalue_reference_array as rra
from swig_test_utils import swig_check, swig_assert_raises
# An rvalue reference to an array is passed as a reference to an array, which cannot be None.
swig_check(rra.sum_of(rra.others_address()), 100)
swig_check(rra.first_of(rra.others_unsized_address()), 10)
swig_check(rra.items_sum(rra.items_address()), 3)
with swig_assert_raises(TypeError):
rra.sum_of(None)
with swig_assert_raises(TypeError):
rra.first_of(None)
# An rvalue reference to an array of char is a string.
swig_check(rra.length_of("abc"), 3)
swig_check(rra.length_of_writable("xy"), 2)
with swig_assert_raises(TypeError):
rra.length_of(None)
# Setting a variable that is an rvalue reference to an array copies into the array it refers to.
swig_check(rra.numbers_sum(), 10)
rra.cvar.numbers_rref = rra.cvar.others
swig_check(rra.numbers_sum(), 100)
swig_check(rra.cvar.letters_rref, "abc")
rra.cvar.letters_rref = "xy"
swig_check(rra.letters_are(), "xy")
member = rra.RvalueRefArrayMember()
swig_check(member.sum(), 10)
member.member_rref = rra.others_address()
swig_check(member.sum(), 100)
swig_check(member.text_rref, "hi")
member.text_rref = "bye"
swig_check(member.text_is(), "bye")