protected void checkOnArray(Set<DockingActionIf> actions, DataType interiorDt, int arraySize) {

		if (actions == null) {
			actions = getDataPluginActions();
		}

		Data d = getContextData();
		assertNotNull("Expected Array", d);
		assertTrue("Expected Array", d.isArray());
		DataType dt = d.getDataType();
		assertTrue("Expected Array", Array.class.isInstance(dt));

		String caseName = "On Array at: " + getCurrentLocation();

		if (arraySize >= 0) {
			String dtName = "undefined";
			int interiorDtLen = 1;
			if (interiorDt != null && !(interiorDt instanceof DefaultDataType)) {
				dtName = interiorDt.getName();
				interiorDtLen = interiorDt.getLength();
			}
			dtName += "[" + arraySize + "]";
			assertEquals(dtName, dt.getName());
			assertEquals(caseName, arraySize * interiorDtLen, dt.getLength());

			Data d0 = d.getComponent(0);
			if (interiorDt == null) {
				assertTrue("Undefined data expected inside array", !d0.isDefined());
			}
			else {
				assertTrue("Array contains incorrect data type elements",
					interiorDt.getClass().equals(d0.getDataType().getClass()));
			}
		}

		ProgramSelection sel = getCurrentSelection();

		boolean hasSelection = sel != null && !sel.isEmpty();

		boolean hasSettings = (d.getBaseDataType().getSettingsDefinitions().length != 0);

		Data pdata = d.getParent();

		checkAction(actions, CREATE_STRUCTURE, hasSelection, caseName);
		checkAction(actions, EDIT_DATA_TYPE,
			pdata != null && (pdata.isStructure() || pdata.isUnion()), caseName);
		checkAction(actions, CREATE_ARRAY, true, caseName);
		checkAction(actions, DEFAULT_SETTINGS,
			hasSettings && (!hasSelection || isSelectionJustSingleDataInstance(sel, d)), caseName);
		checkAction(actions, DATA_SETTINGS, hasSettings, caseName);
		checkAction(actions, CYCLE_FLOAT_DOUBLE_LONGDOUBLE, true, caseName);
		checkAction(actions, CYCLE_BYTE_WORD_DWORD_QWORD, true, caseName);
		checkAction(actions, CYCLE_CHAR_STRING_UNICODE, true, caseName);
		checkAction(actions, DEFINE_BYTE, true, caseName);
		checkAction(actions, DEFINE_WORD, true, caseName);
		checkAction(actions, DEFINE_DWORD, true, caseName);
		checkAction(actions, DEFINE_QWORD, true, caseName);
		checkAction(actions, DEFINE_FLOAT, true, caseName);
		checkAction(actions, DEFINE_DOUBLE, true, caseName);
		checkAction(actions, DEFINE_TERM_CSTRING, true, caseName);
		checkAction(actions, DEFINE_POINTER, true, caseName);

	}
Test MNEMONIC data setting
@param testDefaultSetting if true test default setting, else test instance setting for data2
@param insideStruct data are inside two structure instances
@param commonStruct data structures are the same type
@param data1 data at some location with same type as data2
@param data2 data at current location
@throws Exception
Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/data/AbstractDataActionTest.java