def METHOD_NAME(self):
    ''' Test DIDType '''
    self.success = True
    try:
        self._print_test(self._test_did(DID(), ''))
        self._print_test(self._test_did(DID('scope:name.did.str'), 'scope:name.did.str'))
        self._print_test(self._test_did(DID('user.implicit.scope.in.name'), 'user.implicit:user.implicit.scope.in.name'))
        self._print_test(self._test_did(DID('custom.scope', 'custom.name'), 'custom.scope:custom.name'))
        self._print_test(self._test_did(DID(['list.scope', 'list.name']), 'list.scope:list.name'))
        self._print_test(self._test_did(DID(('tuple.scope', 'tuple.name')), 'tuple.scope:tuple.name'))
        self._print_test(self._test_did(DID({'scope': 'dict.scope', 'name': 'dict.name'}), 'dict.scope:dict.name'))
        self._print_test(self._test_did(DID(scope='kw.scope'), 'kw.scope'))
        self._print_test(self._test_did(DID(name='kw.name'), 'kw.name'))
        self._print_test(self._test_did(DID(name='user.kw.implicit.scope'), 'user.kw:user.kw.implicit.scope'))
        self._print_test(self._test_did(DID(scope='kw.scope', name='kw.name'), 'kw.scope:kw.name'))
        self._print_test(self._test_did(DID(did={'scope': 'kw.did.scope', 'name': 'kw.did.name'}), 'kw.did.scope:kw.did.name'))
        self._print_test(self._test_did(DID(did=['kw.list.scope', 'kw.list.name']), 'kw.list.scope:kw.list.name'))
        self._print_test(self._test_did(DID(did=('kw.tuple.scope', 'kw.tuple.name')), 'kw.tuple.scope:kw.tuple.name'))
        self._print_test(self._test_did(DID('arg.scope', name='kwarg.name'), 'arg.scope:kwarg.name'))
        self._print_test(self._test_did(DID('arg.name', scope='kwarg.scope'), 'kwarg.scope:arg.name'))
        x = DID('scope.copy:name.test')
        y = DID(x)
        if x != y:
            print('Copy failed: {} != {}'.format(x, y))
            self.success = False
    except DIDError as err:
        print('Exception: {}'.format(err))
        self.success = False
    try:
        DID('non.implicit.single.string')
        print('Exception for invalid DID did not work!')
        self.success = False
    except DIDError:
        pass
    try:
        DID('invalid', 'user.implicit:user:invalid')
        print('Exception for invalid DID did not work!')
        self.success = False
    except DIDError:
        pass
    try:
        DID('user.implicit:user:invalid')
        print('Exception for invalid DID did not work!')
        self.success = False
    except DIDError:
        pass
    assert self.success