@Test
	public void testUngroupAll() {
		//
		// Group some vertices and then group that vertex with some vertices to create a
		// recursively/nested grouping.  Also create a second top-level group.  Make sure the
		// ungroup all action will restore the original graph.
		//

		FGData graphData = graphFunction("01002cf5");
		FunctionGraph functionGraph = graphData.getFunctionGraph();
		Graph<FGVertex, FGEdge> graph = functionGraph;
		Set<FGVertex> originalVertices = new HashSet<>(graph.getVertices());

		Set<FGVertex> ungroupedVertices =
			selectVertices(functionGraph, "01002d2b" /* Another Local*/, "01002d1f" /* MyLocal */);
		group(ungroupedVertices);

		Set<FGVertex> outerUngroupedVertices = selectVertices(functionGraph,
			"01002d0f" /* LAB_01002d0f */, "01002d1f" /* Grouped Vertex */);
		group(outerUngroupedVertices);

		Set<FGVertex> secondUngroupedVertices =
			selectVertices(functionGraph, "01002d11" /* LAB_01002d11*/, "01002d06" /* 01002d06 */);
		group(secondUngroupedVertices);

		Assert.assertNotEquals(originalVertices.size(), graph.getVertices().size());

		ungroupAll();

		// don't use assertEQuals() with the different sets, as the sets may be of differing types
		// that do not correctly compare as equal
		Collection<FGVertex> vertices = graph.getVertices();
		assertEquals(originalVertices.size(), vertices.size());
		for (FGVertex originalVertex : originalVertices) {
			assertTrue("Original vertex not in ungrouped group: " + originalVertex,
				vertices.contains(originalVertex));
		}
	}
Tests that the app will recognize the case where the entry point to a function is invalid,
and generate the appropriate error message when trying to create a function graph.

Step 1: Make sure the function graph window is closed.
Step 2: Clear the entry point bytes
Step 3: Open the function graph window to generate the graph again.
Step 4: Check the error message.
Ghidra/Features/FunctionGraph/src/test.slow/java/ghidra/app/plugin/core/functiongraph/FunctionGraphGroupVertices1Test.java