def METHOD_NAME(e: Element):
    pp: TestPath = []
    if e.parent:
        pp = e.parent.tags.get('path') or []  # type: ignore
    if e.name == "test-suite":
        # <test-suite>s form a nested tree structure so capture those in path
        pp = pp + [{'type': e.attrs['type'], 'name': e.attrs['name']}]
    if e.name == "test-case":
        # work around a bug in NUnitXML.Logger.
        # see nunit-reporter-bug-with-nested-type.xml test case
        methodname = e.attrs['methodname']
        bra = methodname.find("(")
        idx = methodname.rfind(".", 0, bra)
        if idx >= 0:
            # when things are going well, method name cannot contain '.' since it's not a valid character in a symbol.
            # but when NUnitXML.Logger messes up, it ends up putting the class name and the method name, like
            # <test-case name="TheTest" fullname="Launchable.NUnit.Test.Outer+Inner.TheTest"
            #   methodname="Outer+Inner.TheTest" classname="Test"
            pp = pp[0:-1] + [
                # NUnitXML.Logger mistreats the last portion of the namespace as a test fixture when
                # it really should be test suite. So we patch that up too. This is going beyond what's minimally required
                # to make subset work, because type information won't impact how the test path is printed, but
                # when NUnitXML.Logger eventually fixes this bug, we don't want that to produce different test paths.
                {'type': 'TestSuite', 'name': pp[-1]['name']},
                # Here, we need to insert the missing TestFixture=Outer+Inner.
                # I chose TestFixture because that's what nunit console runner (which we believe is handling it correctly)
                # chooses as its type.
                {'type': 'TestFixture', 'name': methodname[0:idx]}
            ]
        pp = pp + [{'type': 'TestCase', 'name': e.attrs['name']}]
    if len(pp) > 0:
        def split_filepath(path: str) -> List[str]:
            # Supports Linux and Windows
            if '/' in path:
                return path.split('/')
            else:
                return path.split('\\')
        # "Assembly" type contains full path at a customer's environment
        # remove file path prefix in Assembly
        e.tags['path'] = [
            {**path, 'name': split_filepath(path['name'])[-1]}
            if path['type'] == 'Assembly'
            else path
            for path in pp
        ]