@Test
	public void testGroupAndUngroup_WhenOneOfTheGroupIsAGroup() {
		//
		// This test seeks to ensure that you can group a selection of vertices when one of
		// those vertices is itself a group.
		//

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

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

		group(ungroupedVertices);

		// -1 because one of the edges was between two of the vertices being grouped
		int expectedGroupedEdgeCount = ungroupedEdges.size() - 1;
		GroupedFunctionGraphVertex groupedVertex = validateNewGroupedVertexFromVertices(
			functionGraph, ungroupedVertices, expectedGroupedEdgeCount);
		assertVerticesRemoved(graph, ungroupedVertices);
		assertEdgesRemoved(graph, ungroupedEdges);

		//
		// Now group the group vertex with another vertex
		//
		Set<FGVertex> secondUngroupedVertices = selectVertices(functionGraph,
			"01002d0f" /* LAB_01002d0f */, "01002d1f" /* Grouped Vertex */);
		Set<FGEdge> secondUngroupedEdges = getEdges(graph, secondUngroupedVertices);

		group(secondUngroupedVertices);

		// 5 edges expected:
		// -ungrouped vertex: 1 in, 1 out
		// -grouped vertex  : 1 in, 2 out
		expectedGroupedEdgeCount = 5;
		GroupedFunctionGraphVertex secondGroupedVertex = validateNewGroupedVertexFromVertices(
			functionGraph, secondUngroupedVertices, expectedGroupedEdgeCount);
		assertVerticesRemoved(graph, secondUngroupedVertices);
		assertEdgesRemoved(graph, secondUngroupedEdges);

		//
		// Ungrouping the first time should restore the previous grouped vertices, including the
		// group vertex.
		//

		ungroup(secondGroupedVertex);

		assertVertexRemoved(graph, secondGroupedVertex);
		assertVerticesAdded(graph, secondUngroupedVertices);
		assertEdgesAdded(functionGraph, secondUngroupedEdges);
		assertSelected(secondUngroupedVertices);

		ungroup(groupedVertex);

		assertVertexRemoved(graph, groupedVertex);
		assertVerticesAdded(graph, ungroupedVertices);
		assertEdgesAdded(functionGraph, ungroupedEdges);
		assertSelected(ungroupedVertices);
	}
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