@Test
	public void testApplyDataDifference6() throws Exception {

		// 0x01003b02: same struct, different category

		Structure struct_a1 = new StructureDataType("struct_a", 0);
		struct_a1.add(new ByteDataType());
		struct_a1.add(new DWordDataType());
		programBuilder1.applyDataType("0x01003b02", struct_a1, 1);

		Structure struct_sub1_a1 = new StructureDataType(new CategoryPath("/sub1"), "struct_a", 0);
		struct_sub1_a1.add(new ByteDataType());
		struct_sub1_a1.add(new DWordDataType());
		programBuilder2.applyDataType("0x1003b02", struct_sub1_a1, 1);

		programMerge = new ProgramMergeManager(p1, p2);
		assertEquals(new AddressSet(addr(0x01003b02), addr(0x01003b06)),
			programMerge.getFilteredDifferences());
		mergeCodeUnitDifference(0x01003b02, 0x01003b06);
		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