@Test
	public void testAddLatestOverlapOK() throws Exception {
		// 0100194b		FUN_0100194b	body:100194b-1001977
		// 01001978		no FUN_01001978	body:1001978-1001ae2
		// 01001ae3		FUN_01001ae3	body:1001ae3-100219b

		// 01002950		FUN_01002950	body:1002950-100299d
		// 0100299e		no FUN_0100299e	body:100299e-1002a90
		// 01002a91		FUN_01002a91	body:1002a91-1002b43

		mtf.initialize("NotepadMergeListingTest", new ProgramModifierListener() {

			@Override
			public void modifyLatest(ProgramDB program) {
				removeFunction(program, "0x1001ae3");
				AddressSet body1001979 =
					new AddressSet(addr(program, "0x1001979"), addr(program, "0x1001b00"));
				createFunction(program, "0x1001979", "FUN_01001979", body1001979);

				removeFunction(program, "0x1002a91");
				AddressSet body10029a1 =
					new AddressSet(addr(program, "0x10029a1"), addr(program, "0x1002a99"));
				createFunction(program, "0x10029a1", "FUN_010029a1", body10029a1);
			}

			@Override
			public void modifyPrivate(ProgramDB program) {
				// Empty
			}
		});

		executeMerge(ASK_USER);
		waitForMergeCompletion();

		AddressSet body1001979 = new AddressSet(addr("0x1001979"), addr("0x1001b00"));
		checkFunction(resultProgram, "0x1001979", "FUN_01001979", body1001979);
		noFunction(resultProgram, "0x1001ae3");

		AddressSet body10029a1 = new AddressSet(addr("0x10029a1"), addr("0x1002a99"));
		checkFunction(resultProgram, "0x10029a1", "FUN_010029a1", body10029a1);
		noFunction(resultProgram, "0x1002a91");
	}
Test the merge of the versioned program's listing.
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/listing/FunctionMergeManagerTest.java