private boolean ghidraTestStringCompare(StringBuilder outputInfoArg, String truthString,
			String ghidraString) {
		int ti = 0;
		int gi = 0;
		boolean pass = true;
		while (pass) {
			if (ti < truthString.length()) {
				if (gi < ghidraString.length()) {
					if (truthString.charAt(ti) == ghidraString.charAt(gi)) {
						ti++;
						gi++;
					}
					else if ((truthString.charAt(ti) == ' ') && (ghidraString.charAt(gi) == '_')) {
						ti++;
						gi++;
//						int ti_1 = ti + 1;
//						int tc = 0;
//						//skip any more spaces.
//						while ((ti_1 < truthString.length()) &&
//							((truthString.charAt(ti_1) == ' '))) {
//							ti_1++;
//						}
//						//count any underscores.
//						while ((ti_1 < truthString.length()) &&
//							((truthString.charAt(ti_1) == '_'))) {
//							tc++;
//							ti_1++;
//						}
//						//count any underscores.
//						int gi_1 = gi;
//						int gc = 0;
//						while ((gi_1 < ghidraString.length()) &&
//							((ghidraString.charAt(gi_1) == '_'))) {
//							gc++;
//							gi_1++;
//						}
//						if (tc <= gc) {
//							ti = ti_1;
//							gi = gi_1;
//						}
//						else {
//							pass = false;
//							break;
//						}
//ONE ATTEMPT
//						if (((ti + 1) < truthString.length()) &&
//							(truthString.charAt(ti + 1) != '_')) {
//							ti++;
//							gi++;
//						}
//						else {
//							ti++;
//						}
					}
					else if ((truthString.charAt(ti) == ':') && (ghidraString.charAt(gi) == ' ')) {
						ti++;
					}
					else if ((truthString.charAt(ti) == ' ') && (ghidraString.charAt(gi) != ' ')) {
						ti++;
					}
					else if ((truthString.charAt(ti) != ' ') && (ghidraString.charAt(gi) == ' ')) {
						gi++;
					}
					else {
						pass = false;
						outputInfoArg.append("truth[" + ti + "]: " + truthString.charAt(ti) +
							" ghidra[" + gi + "]: " + ghidraString.charAt(gi) + "\n");
					}
				}
				else {
					while (ti < truthString.length()) {
						if (truthString.charAt(ti) != ' ') {
							pass = false;
							outputInfoArg.append("early truth termination\n");
							break;
						}
						ti++;
					}
					break;
				}
			}
			else if (gi < ghidraString.length()) {
				while (gi < ghidraString.length()) {
					if (ghidraString.charAt(gi) != ' ') {
						pass = false;
						outputInfoArg.append("early testoutput termination\n");
						break;
					}
					gi++;
				}
				break;
			}
			else {
				break; //both out of characters, but pass = true;
			}
		}
		return pass;
	}
This class is a derivation of MDBaseTestConfiguration (see javadoc there).  This
 class must choose the appropriate truth from MDMangBaseTest (new truths might
 need to be added there) and override the appropriate helper methods of
 MDBaseTestConfiguration.  This specific test configuration is for the purpose
 of driving the tests of MDMangGhidraTest.
Ghidra/Features/MicrosoftDmang/src/test/java/mdemangler/MDGhidraTestConfiguration.java