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

			@Override
			public void modifyLatest(ProgramDB program) {
				try {
					Namespace ns;
					GhidraClass gc;
					SymbolTable symtab = program.getSymbolTable();
					FunctionManager funcMgr = program.getFunctionManager();
					ns = symtab.createNameSpace(program.getGlobalNamespace(), "Blue",
						SourceType.USER_DEFINED);
					assertNotNull(ns);
					symtab.createLabel(addr(program, "0x1001000"), "BlueSymbolLatest", ns,
						SourceType.USER_DEFINED);
					gc = symtab.createClass(program.getGlobalNamespace(), "Red",
						SourceType.USER_DEFINED);
					assertNotNull(gc);
					Function redFunction = funcMgr.getFunctionAt(addr(program, "0x1002a91"));
//					redFunction.setName("RedSymbolLatest");
					redFunction.getSymbol().setNamespace(gc);
				}
				catch (Exception e) {
					Assert.fail(e.getMessage());
				}
			}

			@Override
			public void modifyPrivate(ProgramDB program) {
				try {
					Namespace ns;
					GhidraClass gc;
					SymbolTable symtab = program.getSymbolTable();
					FunctionManager funcMgr = program.getFunctionManager();
					gc = symtab.createClass(program.getGlobalNamespace(), "Blue",
						SourceType.USER_DEFINED);
					assertNotNull(gc);
					Function blueFunction = funcMgr.getFunctionAt(addr(program, "0x1006420"));
//					blueFunction.setName("BlueSymbolMy");
					blueFunction.getSymbol().setNamespace(gc);
					assertEquals(gc, blueFunction.getSymbol().getParentNamespace());
					ns = symtab.createNameSpace(program.getGlobalNamespace(), "Red",
						SourceType.USER_DEFINED);
					assertNotNull(ns);
					symtab.createLabel(addr(program, "0x1001000"), "RedSymbolMy", ns,
						SourceType.USER_DEFINED);
				}
				catch (Exception e) {
					Assert.fail(e.getMessage());
				}
			}
		});

		executeMerge(ASK_USER);
//		chooseRadioButton(RENAME_CHECKED_OUT_BUTTON_NAME); // blue class
//		chooseRadioButton(RENAME_CHECKED_OUT_BUTTON_NAME); // red namespace
		waitForReadTextDialog("Symbol Merge Information", "The following symbols were renamed",
			4000);
		waitForMergeCompletion();

		Namespace globalNS = resultProgram.getGlobalNamespace();

		Symbol blue = getUniqueSymbol(resultProgram, "Blue", globalNS);
		assertEquals(SymbolType.NAMESPACE, blue.getSymbolType());
		Namespace blueNs = (Namespace) blue.getObject();
		Symbol blueConflict = getUniqueSymbol(resultProgram, "Blue_conflict1", globalNS);
		assertEquals(SymbolType.CLASS, blueConflict.getSymbolType());
		GhidraClass blueGc = (GhidraClass) blueConflict.getObject();
		Symbol blueSymLatest = getUniqueSymbol(resultProgram, "BlueSymbolLatest", blueNs);
		assertNotNull(blueSymLatest);
		Function blueFunction = resultProgram.getFunctionManager().getFunctionAt(addr("0x1006420"));
		assertNotNull(blueFunction);
		Symbol blueSymMy = blueFunction.getSymbol();
		assertNotNull(blueSymMy);
		assertEquals(blueGc, blueSymMy.getParentNamespace());

		Symbol red = getUniqueSymbol(resultProgram, "Red", globalNS);
		assertEquals(SymbolType.CLASS, red.getSymbolType());
		GhidraClass redGc = (GhidraClass) red.getObject();
		Symbol redConflict = getUniqueSymbol(resultProgram, "Red_conflict1", globalNS);
		assertEquals(SymbolType.NAMESPACE, redConflict.getSymbolType());
		Namespace redNs = (Namespace) redConflict.getObject();
		Function redFunction = resultProgram.getFunctionManager().getFunctionAt(addr("0x1002a91"));
		assertNotNull(redFunction);
		Symbol redSymLatest = redFunction.getSymbol();
		assertNotNull(redSymLatest);
		assertEquals(redGc, redSymLatest.getParentNamespace());
		Symbol redSymMy = getUniqueSymbol(resultProgram, "RedSymbolMy", redNs);
		assertNotNull(redSymMy);
	}
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