private void setupAddNameDiffOnSubOperand() throws Exception {
		// 0x1002d20   LEA EAX,[0x0 + ECX*0x4]
		//
		// LATEST   0x0=NADA  0x4=FOUR
		// MY       0x0=ZERO  0x4=QUAD
		mtf.initialize("NotepadMergeListingTest_X86", new OriginalProgramModifierListener() {

			@Override
			public void modifyOriginal(ProgramDB program) {
				try {
					Listing listing = program.getListing();
					Address startAddr = addr(program, "0x1002d20");
					program.getMemory().setBytes(startAddr, new byte[] { (byte) 0x8d, (byte) 0x04,
						(byte) 0x8d, (byte) 0x0, (byte) 0x0, (byte) 0x0, (byte) 0x0 }); //LEA EAX,[0x0 + ECX*0x4]
					createInstruction(program, startAddr);
					Instruction instruction = listing.getInstructionAt(startAddr);
					Assert.assertTrue(instruction != null);
					Assert.assertEquals(2, instruction.getNumOperands());
				}
				catch (MemoryAccessException e) {
					Assert.fail(e.getMessage());
				}
			}

			@Override
			public void modifyLatest(ProgramDB program) {
				EquateTable equateTab = program.getEquateTable();
				Address addr = addr(program, "0x1002d20");
				try {
					equateTab.createEquate("NADA", 0).addReference(addr, 1);
					equateTab.createEquate("FOUR", 4).addReference(addr, 1);
				}
				catch (DuplicateNameException | InvalidInputException e) {
					Assert.fail(e.getMessage());
				}
			}

			@Override
			public void modifyPrivate(ProgramDB program) {
				EquateTable equateTab = program.getEquateTable();
				Address addr = addr(program, "0x1002d20");
				try {
					equateTab.createEquate("ZERO", 0).addReference(addr, 1);
					equateTab.createEquate("QUAD", 4).addReference(addr, 1);
				}
				catch (DuplicateNameException | InvalidInputException e) {
					Assert.fail(e.getMessage());
				}
			}
		});
	}
@param program
@param address
@param opIndex
@param value
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/listing/EquateMergeManager1Test.java