protected void chooseCodeUnit(String minAddress, String maxAddress, final int option,
			final boolean useForAll) throws Exception {
		waitForPrompting();
		ListingMergePanel comp = getMergePanel();
		ConflictInfoPanel infoComp = findComponent(comp, ConflictInfoPanel.class);
		assertNotNull(infoComp);

		assertEquals("Byte / Code Unit", infoComp.getConflictType());
		assertEquals(addr(minAddress), infoComp.getAddress());
		AddressRange addressRange = infoComp.getAddressRange();
		assertEquals(addr(minAddress), addressRange.getMinAddress());
		assertEquals(addr(maxAddress), addressRange.getMaxAddress());

		if (option == CANCELED) {
			pressButtonByText(mergeTool.getToolFrame(), "Cancel", false);
			return;
		}

		if (option == KEEP_LATEST) {
			pressButtonByName(comp, "ChoiceComponentRow0Col1");
		}
		else if (option == KEEP_MY) {
			pressButtonByName(comp, "ChoiceComponentRow0Col2");
		}
		else if (option == KEEP_ORIGINAL) {
			pressButtonByName(comp, "ChoiceComponentRow0Col3");
		}

		waitForSwing();
		setUseForAll(useForAll, VariousChoicesPanel.class);
		waitForApply(true);

		Window windowAncestor = SwingUtilities.getWindowAncestor(getMergePanel());
		pressButtonByText(windowAncestor, "Apply");
		waitForApply(false);
	}
Makes a user choice as indicated by option. This is equivalent to the user
clicking a mouse on a radio button indicating which program version to choose.
It can also be used to press the Cancel button on the merge.
@param option indicates the button to choose.
<br>One of:
<ul>
<li>KEEP_LATEST</li>
<li>KEEP_MY</li>
<li>KEEP_ORIGINAL</li>
<li>CANCELED</li>
</ul>
@param useForAll true indicates the Use For All check box should also get selected.
@throws Exception if panel not available as expected
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/listing/AbstractListingMergeManagerTest.java