@Test
	public void testDeleteLatestAddMy_KeepLatest() throws Exception {

		mtf.initialize(notepad, new OriginalProgramModifierListener() {

			@Override
			public void modifyLatest(ProgramDB program) throws Exception {
				deleteTag(program, TAG_NAME_A);
			}

			@Override
			public void modifyPrivate(ProgramDB program) throws Exception {
				addTagToFunction(TAG_NAME_A, program, "100299e");
			}

			@Override
			public void modifyOriginal(ProgramDB program) throws Exception {
				FunctionTagManager tagManager = getTagManager(program);
				tagManager.createFunctionTag(TAG_NAME_A, "");
			}
		});

		executeMerge(ASK_USER);
		chooseListingFunctionTagButton(LATEST_BUTTON, addr("100299e"), false);
		waitForMergeCompletion();

		// Get the result program and check that:
		// 1. The tag remains deleted
		// 2. The tag is no longer associated with the function
		assertTrue(!isTagInProgram(TAG_NAME_A, mtf.getResultProgram()));
		assertTrue(!isTagInFunction(TAG_NAME_A, mtf.getResultProgram(), "100299e"));
	}
Tests that we handle the conflict case where a tag name has been deleted in Latest
but added to a function in My; keep Latest;

This is arguably the most complicated type of test case as it involves two 
mergers: {@link FunctionTagMerger} and {@link FunctionTagListingMerger}. First the
delete is handled (and approved) by the former, then the tag recognized by the
latter as a conflict, but ignored since its been told to keep the LATEST version (where
the delete happened).

@throws Exception
Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/function/tags/FunctionTagMergeTest.java