@Test
	public void testAddNamespaceAndSymbolNoConflict() throws Exception {
		mtf.initialize("NotepadMergeListingTest", new ProgramModifierListener() {

			@Override
			public void modifyLatest(ProgramDB program) {
				try {
					SymbolTable symtab = program.getSymbolTable();
					Namespace ns;
					ns = symtab.createNameSpace(program.getGlobalNamespace(), "NewLatestNamespace",
						SourceType.USER_DEFINED);
					symtab.createLabel(addr(program, "0x1001004"), "popcorn", ns,
						SourceType.USER_DEFINED);
					ns = symtab.createNameSpace(program.getGlobalNamespace(), "NewSameNamespace",
						SourceType.USER_DEFINED);
				}
				catch (Exception e) {
					Assert.fail(e.getMessage());
				}
			}

			@Override
			public void modifyPrivate(ProgramDB program) {
				try {
					SymbolTable symtab = program.getSymbolTable();
					Namespace ns;
					ns = symtab.createNameSpace(program.getGlobalNamespace(), "NewMyNamespace",
						SourceType.USER_DEFINED);
					symtab.createLabel(addr(program, "0x1001008"), "peanuts", ns,
						SourceType.USER_DEFINED);
					ns = symtab.createNameSpace(program.getGlobalNamespace(), "NewSameNamespace",
						SourceType.USER_DEFINED);
					symtab.createLabel(addr(program, "0x1006420"), "CrackerJacks", ns,
						SourceType.USER_DEFINED);
				}
				catch (Exception e) {
					Assert.fail(e.getMessage());
				}
			}
		});

		resultProgram = mtf.getResultProgram();
		resultAddressFactory = resultProgram.getAddressFactory();

		executeMerge(ASK_USER);
		waitForMergeCompletion();

		SymbolTable symtab = resultProgram.getSymbolTable();
		Symbol latest = getUniqueSymbol(resultProgram, "NewLatestNamespace");
		Symbol my = getUniqueSymbol(resultProgram, "NewMyNamespace");
		Symbol same = getUniqueSymbol(resultProgram, "NewSameNamespace");
		assertEquals(SymbolType.NAMESPACE, latest.getSymbolType());
		assertEquals(SymbolType.NAMESPACE, my.getSymbolType());
		assertEquals(SymbolType.NAMESPACE, same.getSymbolType());
		Namespace latestNs = (Namespace) latest.getObject();
		Namespace myNs = (Namespace) my.getObject();
		Namespace sameNs = (Namespace) same.getObject();
		Symbol popcorn = symtab.getSymbol("popcorn", addr("0x1001004"), latestNs);
		Symbol peanuts = symtab.getSymbol("peanuts", addr("0x1001008"), myNs);
		Symbol crackerjacks = symtab.getSymbol("CrackerJacks", addr("0x1006420"), sameNs);
		assertNotNull(popcorn);
		assertNotNull(peanuts);
		assertNotNull(crackerjacks);
		assertEquals(latestNs, popcorn.getParentNamespace());
		assertEquals(myNs, peanuts.getParentNamespace());
		assertEquals(sameNs, crackerjacks.getParentNamespace());
	}
Test the merge of the versioned program's symbols in the listing.
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/listing/SymbolMergeManagerNamespace1Test.java