@Test
	public void testStringStartAlignAt4() throws Exception {

		Program testProgram = buildProgram("msvidctl.dll", false);

		Listing listing = testProgram.getListing();
		AddressSpace space = testProgram.getLanguage().getAddressFactory().getDefaultAddressSpace();

		String[] existingStrings = new String[] { "ReleaseBoundObjectsW`\\t", "currentImage(#",
			"ContentBecomingStale,3", "EnumMediaTypesWW0*" };
		int[] offsets = new int[] { 0x5a2b07a8, 0x5a2b5278, 0x5a2b6270, 0x5a2cc2fc };

		String[] stringsAlignedAt2 = new String[] { "mciSendCommandW", "Component Type,",
			"Set the sink filter (CLSID)WWW\\t", "MS Video Control Interface;" };
		int[] offsetsAlignedAt2 = new int[] { 0x5a29b0c2, 0x5a2b7722, 0x5a2b891a, 0x5a2b90b2 };

		Address[] existingAddresses = new Address[offsets.length];
		Address[] alignAt2Addresses = new Address[offsetsAlignedAt2.length];

		for (int i = 0; i < offsets.length; i++) {
			existingAddresses[i] = addr(space, offsets[i]);
		}

		for (int i = 0; i < alignAt2Addresses.length; i++) {
			alignAt2Addresses[i] = addr(space, offsetsAlignedAt2[i]);
		}

		Data dataHere;

		// Verify these strings do not exist prior to running the Strings Analyzer
		for (Address currAddress : existingAddresses) {
			dataHere = listing.getDefinedDataAt(currAddress);
			assertNull(dataHere);
		}

		for (Address currAddress : alignAt2Addresses) {
			dataHere = listing.getDefinedDataAt(currAddress);
			assertNull(dataHere);
		}

		AutoAnalysisManager manager = AutoAnalysisManager.getAnalysisManager(testProgram);

		StringsAnalyzer analyzer = new StringsAnalyzer();
		analyzer.setStringStartAlignment(4);
		analyzer.setStringEndAlignment(1);
		analyzer.added(testProgram, null, monitor, manager.getMessageLog());

		String stringHere;

		for (int i = 0; i < existingStrings.length; i++) {
			// Verify string is actually there
			dataHere = listing.getDefinedDataAt(existingAddresses[i]);
			assertNotNull(dataHere);
			stringHere = dataHere.getDefaultValueRepresentation();

			assertEquals("\"" + existingStrings[i] + "\"", stringHere);
		}

		// Verify "aligned at 2" strings still not there
		for (Address currAddress : alignAt2Addresses) {
			dataHere = listing.getDefinedDataAt(currAddress);
			assertNull(dataHere);
		}

		// Verify the Align_2 strings are created when start alignment is changed to 2
		analyzer.setStringStartAlignment(2);
		analyzer.added(testProgram, null, monitor, manager.getMessageLog());

		for (int i = 0; i < stringsAlignedAt2.length; i++) {
			// Verify string is actually there
			dataHere = listing.getDefinedDataAt(alignAt2Addresses[i]);
			assertNotNull(dataHere);
			stringHere = dataHere.getDefaultValueRepresentation();

			assertEquals("\"" + stringsAlignedAt2[i] + "\"", stringHere);
		}

	}
Test that adjusting the string alignment value to "4" works. The strings tested here
should be created when the alignment is set to 4.

Also test that strings that would be created at Align_2 (but not at Align_4) are not created.

@throws Exception
Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/string/StringsAnalyzerTest.java