@Test
	public void testApplyDataDifference15() throws Exception {

		p1.withTransaction("Apply p1 Data", () -> {

			Data d1 = DataUtilities.createData(p1, addr(p1, 0x1008014), StringDataType.dataType, -1,
				ClearDataMode.CLEAR_ALL_UNDEFINED_CONFLICT_DATA);
			CharsetSettingsDefinition.CHARSET.setChoice(d1, 2);

			d1 = DataUtilities.createData(p1, addr(p1, 0x1008028), StringDataType.dataType, -1,
				ClearDataMode.CLEAR_ALL_UNDEFINED_CONFLICT_DATA);
			CharsetSettingsDefinition.CHARSET.setChoice(d1, 2);

		});

		p2.withTransaction("Apply p2 Data", () -> {

			Data d2 = DataUtilities.createData(p2, addr(p2, 0x1008014), ByteDataType.dataType, -1,
				ClearDataMode.CLEAR_ALL_UNDEFINED_CONFLICT_DATA);
			FormatSettingsDefinition.DEF.setChoice(d2, FormatSettingsDefinition.DECIMAL);

			d2 = DataUtilities.createData(p2, addr(p2, 0x1008028), StringDataType.dataType, -1,
				ClearDataMode.CLEAR_ALL_UNDEFINED_CONFLICT_DATA);
			CharsetSettingsDefinition.CHARSET.setChoice(d2, 3);

		});

		// NOTE: unknown settings will be dropped during merge

		programMerge = new ProgramMergeManager(p1, p2);

		AddressSet addrSet = new AddressSet();
		addrSet.addRange(addr(p1, 0x1008014), addr(p1, 0x1008015));
		addrSet.add(addr(p1, 0x1008028));

		assertEquals(addrSet, programMerge.getFilteredDifferences());

		mergeCodeUnitDifference(addrSet);

		assertEquals(new AddressSet(), programMerge.getFilteredDifferences());
	}
Test that programMerge can apply a conflicting data type difference in
Program1 and Program2.
Ghidra/Features/Base/src/test.slow/java/ghidra/program/util/ProgramMerge3Test.java