blob: b74dc25fdbc44407124444df4854751861756784 [file]
from swig_test_utils import swig_assert, swig_check
from cpp11_python_abstractbase import *
import collections.abc
# This is expected to fail with -builtin option
# Builtin types can't inherit from pure-python abstract bases
if is_python_builtin():
exit(0)
def check_issubclass(derived, base):
swig_assert(issubclass(derived, base), "{} is not a subclass of {}".format(derived, base))
check_issubclass(UnorderedMapii, collections.abc.MutableMapping)
check_issubclass(UnorderedMultimapii, collections.abc.MutableMapping)
check_issubclass(UnorderedIntSet, collections.abc.MutableSet)
check_issubclass(UnorderedIntMultiset, collections.abc.MutableSet)
# MutableSet declares add and discard abstract, so a container without them cannot be instantiated
unorderedmapii = UnorderedMapii()
unorderedmultimapii = UnorderedMultimapii()
unorderedintset = UnorderedIntSet()
unorderedintmultiset = UnorderedIntMultiset()
unorderedintset.add(1)
unorderedintset.add(2)
swig_check(sorted(unorderedintset), [1, 2])
unorderedintset.discard(1)
swig_check(sorted(unorderedintset), [2])