@Test
	public void testRestoreDefaults() {
		ToolOptions options = tool.getOptions("Search");

		//
		// Record the state of the original option
		//
		Map<String, Object> initialValues = new HashMap<>();
		List<String> optionNames = options.getOptionNames();
		for (String name : optionNames) {
			Object value = options.getObject(name, null);
			initialValues.put(name, value);
		}

		//
		// Change some values
		//
		String optionName = " Highlight Color";
		Color highlightColor = options.getColor(optionName, null);
		assertNotNull("Existing option has been removed--update test", highlightColor);
		options.setColor(optionName, Palette.RED);

		optionName = "Highlight Search Results";
		boolean highlightResults = options.getBoolean(optionName, true);
		options.setBoolean(optionName, !highlightResults);

		optionName = "Search Limit";
		int searchLimit = options.getInt(optionName, 0);
		options.setInt(optionName, searchLimit + 100);

		//
		// Restore to default
		//
		options.restoreDefaultValues();

		//
		// Validate the current options against the saved options
		//
		Map<String, Object> latestValues = new HashMap<>();
		optionNames = options.getOptionNames();
		for (String name : optionNames) {
			Object value = options.getObject(name, null);
			latestValues.put(name, value);
		}

		List<String> diffs = getDiffs(initialValues, latestValues);

		if (diffs.size() != 0) {
			System.err.println(
				"Options values are not restored back to the original settings - diffs");
			for (String diff : diffs) {
				System.err.println("\tdiff: " + diff);
			}
			Assert.fail("Options values not restored (see error output)");
		}
	}
This test differs from {@link OptionsTest} in that this test is an integration test, pulling
options that have been registered by plugins.
Ghidra/Features/Base/src/test.slow/java/ghidra/framework/options/ToolPluginOptionsTest.java