private void processWith32Function(String mangled, String expectDemangled,
			String expectedFunction, String expectedConvention, int expectedNumBytes)
			throws DemangledException {
		MicrosoftDemangler demangler = new MicrosoftDemangler();

		MicrosoftMangledContext context =
			demangler.createMangledContext(mangled, null, program32, functionAddress32);
		// We do not need to do this here: options.setErrorOnRemainingChars(false);

		// Testing Demangled hierarchy
		DemangledFunction demangledFunction = (DemangledFunction) demangler.demangle(context);
		assertEquals(expectedFunction,
			demangledFunction == null ? null : demangledFunction.toString());

		// Testing MDMang hierarchy
		MDObjectC objc = (MDObjectC) demangler.getMdItem();
		String convention = objc.getCallingConvention();
		int numParameterBytes = objc.getNumParameterBytes();
		assertEquals(expectedConvention, convention);
		assertEquals(expectedNumBytes, numParameterBytes);
		assertEquals(expectDemangled, objc.toString());
	}
This class performs extra demangler testing for special cases that do not fit
the testing pattern found in MDMangBaseTest and {@link MicrosoftDemanglerTest}
Ghidra/Features/MicrosoftDemangler/src/test/java/ghidra/app/util/demangler/microsoft/MicrosoftDemanglerExtraTest.java