code: def test_dict_merge(self):
      merge = _testcapi.dict_merge
      for cls1 in dict, DictSubclass:
          for cls2 in dict, DictSubclass, UserDict:
              dct = cls1({"a": 1, "b": 2})
              merge(dct, cls2({"b": 3, "c": 4}), 0)
              self.assertEqual(dct, {"a": 1, "b": 2, "c": 4})
              dct = cls1({"a": 1, "b": 2})
              merge(dct, cls2({"b": 3, "c": 4}), 1)
              self.assertEqual(dct, {"a": 1, "b": 3, "c": 4})
  
      self.assertRaises(AttributeError, merge, {}, [], 0)
      self.assertRaises(AttributeError, merge, {}, 42, 0)
      self.assertRaises(SystemError, merge, UserDict(), {}, 0)
      self.assertRaises(SystemError, merge, 42, {}, 0)
      self.assertRaises(SystemError, merge, {}, NULL, 0)
      self.assertRaises(SystemError, merge, NULL, {}, 0)
  
imports: import unittest
  from collections import OrderedDict, UserDict
  from types import MappingProxyType
  from test import support
  import _testcapi
label_desc: Use image node_id 24 for calling the CAPITest obj's underlying member method code with example usage: obj.test_dict_merge() without return types